summaryrefslogtreecommitdiff
path: root/src/Makefile
diff options
context:
space:
mode:
authorLouie S <louie@example.com>2024-06-06 16:47:11 -0400
committerLouie S <louie@example.com>2024-06-06 16:47:11 -0400
commita9413e16e8a8d160acb760a0971f25ef23d71e8c (patch)
tree52148f7902c270f35c5820e3fb280af2ab6edacd /src/Makefile
parent973bbcd6a8af9695a937fdc754e384a917984d2a (diff)
Rework structure to be friendlier to end-users
Diffstat (limited to 'src/Makefile')
-rw-r--r--src/Makefile51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/Makefile b/src/Makefile
new file mode 100644
index 0000000..b479925
--- /dev/null
+++ b/src/Makefile
@@ -0,0 +1,51 @@
+# If called directly, Makefile should be called passing the following arguments:
+# DOCSET_NAME = ... (should be a directory under ./configs)
+# BUILD_DIR = ... (create built docsets under the directory BUILD_DIR)
+
+ERROR_DOCSET_NAME = $(error DOCSET_NAME is unset)
+.phony: err
+
+ifndef DOCSET_NAME
+err: ; $(ERROR_DOCSET_NAME)
+endif
+
+SOURCE_DIR = src/configs/$(DOCSET_NAME)
+DOCSET_DIR = $(BUILD_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_INFO_PLIST_FILE = $(SOURCE_DIR)/Info.plist
+
+DOCSET = $(INFO_PLIST_FILE) $(INDEX_FILE) $(ICON_FILE)
+
+all: $(DOCSET)
+
+ifdef DOCSET_NAME
+include src/configs/$(DOCSET_NAME)/config.mk
+endif
+
+tmp:
+ mkdir -p $@
+
+$(DOCSET_DIR):
+ mkdir -p $@
+
+$(CONTENTS_DIR): $(DOCSET_DIR)
+ mkdir -p $@
+
+$(RESOURCES_DIR): $(CONTENTS_DIR)
+ mkdir -p $@
+
+$(INFO_PLIST_FILE): $(SRC_INFO_PLIST_FILE) $(CONTENTS_DIR)
+ cp $(SRC_INFO_PLIST_FILE) $@
+
+ifdef SRC_ICON_FILE
+$(ICON_FILE): $(SRC_ICON_FILE) $(DOCSET_DIR)
+ cp $(SRC_ICON_FILE) $@
+endif