summaryrefslogtreecommitdiff
path: root/texinfo-Makefile
diff options
context:
space:
mode:
authorLouie S <louie@example.com>2023-09-14 13:43:25 -0400
committerLouie S <louie@example.com>2023-09-14 13:43:25 -0400
commitbc3a8e65382af25a44049d1de8fa96647cd325e1 (patch)
treecb68b14921ba482108850a3e7627d91c9592ea26 /texinfo-Makefile
parent24630a5f215cfc949bac6faa9864b8ed29ee4594 (diff)
Basic texinfo dash docset
Diffstat (limited to 'texinfo-Makefile')
-rw-r--r--texinfo-Makefile80
1 files changed, 80 insertions, 0 deletions
diff --git a/texinfo-Makefile b/texinfo-Makefile
new file mode 100644
index 0000000..d41a6a1
--- /dev/null
+++ b/texinfo-Makefile
@@ -0,0 +1,80 @@
+DOCSET_NAME = GNU_Texinfo
+
+DOCSET_DIR = $(DOCSET_NAME).docset
+CONTENTS_DIR = $(DOCSET_DIR)/Contents
+RESOURCES_DIR = $(CONTENTS_DIR)/Resources
+DOCUMENTS_DIR = $(RESOURCES_DIR)/Documents
+
+INFO_PLIST_FILE = $(CONTENTS_DIR)/Info.plist
+INDEX_FILE = $(RESOURCES_DIR)/docSet.dsidx
+ICON_FILE = $(DOCSET_DIR)/icon.png
+ARCHIVE_FILE = $(DOCSET_NAME).tgz
+
+SRC_ICON = src/icon.png
+SRC_PLIST = src/texinfo/Info.plist
+
+MANUAL_URL = https://www.gnu.org/software/texinfo/manual/texinfo/texinfo.html_node.tar.gz
+MANUAL_FILE = tmp/texinfo.html_node.tar.gz
+
+ERROR_DOCSET_NAME = $(error DOCSET_NAME is unset)
+WARNING_MANUAL_URL = $(warning MANUAL_URL is unset)
+ERROR_MANUAL_FILE = $(error MANUAL_FILE is unset)
+.phony: err warn
+
+ifndef DOCSET_NAME
+err: ; $(ERROR_DOCSET_NAME)
+endif
+
+ifndef MANUAL_FILE
+err: ; $(ERROR_MANUAL_FILE)
+endif
+
+ifndef MANUAL_URL
+warn:
+ $(WARNING_MANUAL_URL)
+ $(MAKE) all
+endif
+
+DOCSET = $(INFO_PLIST_FILE) $(INDEX_FILE)
+ifdef SRC_ICON
+DOCSET += $(ICON_FILE)
+endif
+
+all: $(DOCSET)
+
+archive: $(ARCHIVE_FILE)
+
+clean:
+ rm -rf $(DOCSET_DIR) $(ARCHIVE_FILE)
+
+tmp:
+ mkdir -p $@
+
+$(ARCHIVE_FILE): $(DOCSET)
+ tar --exclude='.DS_Store' -czf $@ $(DOCSET_DIR)
+
+$(MANUAL_FILE): tmp
+ curl -o $@ $(MANUAL_URL)
+
+$(DOCSET_DIR):
+ mkdir -p $@
+
+$(CONTENTS_DIR): $(DOCSET_DIR)
+ mkdir -p $@
+
+$(RESOURCES_DIR): $(CONTENTS_DIR)
+ mkdir -p $@
+
+$(DOCUMENTS_DIR): $(RESOURCES_DIR) $(MANUAL_FILE)
+ mkdir -p $@
+ tar -x -z -f $(MANUAL_FILE) -C $@
+
+$(INFO_PLIST_FILE): $(SRC_PLIST) $(CONTENTS_DIR)
+ cp $(SRC_PLIST) $@
+
+$(INDEX_FILE): src/index.sh $(DOCUMENTS_DIR)
+ rm -f $@
+ src/index.sh $@ $(DOCUMENTS_DIR)/*.html
+
+$(ICON_FILE): src/icon.png $(DOCSET_DIR)
+ cp $(SRC_ICON) $@