From a9413e16e8a8d160acb760a0971f25ef23d71e8c Mon Sep 17 00:00:00 2001 From: Louie S Date: Thu, 6 Jun 2024 16:47:11 -0400 Subject: Rework structure to be friendlier to end-users --- Makefile | 74 ++++++++++++++++++---------------------------------------------- 1 file changed, 21 insertions(+), 53 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index f37435f..dc6ed0c 100644 --- a/Makefile +++ b/Makefile @@ -1,61 +1,29 @@ -# Makefile should be called directly, passing the following arguments: -# DOCSET_NAME = ... (should be a directory under ./configs) -# optionally: -# BUILD_DIR = ... (create built docsets under the directory BUILDDIR) - -ERROR_DOCSET_NAME = $(error DOCSET_NAME is unset) +ERROR_NO_ARGUMENT = $(error Must pass at least one argument) .phony: err +err: + $(ERROR_NO_ARGUMENT) -ifndef DOCSET_NAME -err: ; $(ERROR_DOCSET_NAME) -endif - -SOURCE_DIR = configs/$(DOCSET_NAME) -BUILD_DIR = . -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) +BUILD_DIR = build +SRC_MAKE_CALL = $(MAKE) -f src/Makefile BUILD_DIR=$(BUILD_DIR) -ifdef DOCSET_NAME -include configs/$(DOCSET_NAME)/config.mk -endif - -archive: $(ARCHIVE_FILE) +# For this target, only archive docsets that have already been built in BUILD_DIR +.phony: archive +archive: + #TODO +# For this target, simply remove all docsets and tgz files from BUILD_DIR +.phony: clean clean: - rm -rf $(DOCSET_DIR) $(ARCHIVE_FILE) - -tmp: - mkdir -p $@ - -$(ARCHIVE_FILE): $(DOCSET) - tar --exclude='.DS_Store' -czf $@ $(DOCSET_DIR) - -$(DOCSET_DIR): - mkdir -p $@ - -$(CONTENTS_DIR): $(DOCSET_DIR) - mkdir -p $@ + rm -rf $(BUILD_DIR)/*.docset $(BUILD_DIR)/*.tgz -$(RESOURCES_DIR): $(CONTENTS_DIR) - mkdir -p $@ +# All supported docsets should be listed here +.phony: GNU_Make +GNU_Make: $(BUILD_DIR)/GNU_Make.docset -$(INFO_PLIST_FILE): $(SRC_INFO_PLIST_FILE) $(CONTENTS_DIR) - cp $(SRC_INFO_PLIST_FILE) $@ +# All docset files should be listed here +$(BUILD_DIR)/GNU_Make.docset: + $(SRC_MAKE_CALL) DOCSET_NAME=GNU_Make -ifdef SRC_ICON_FILE -$(ICON_FILE): $(SRC_ICON_FILE) $(DOCSET_DIR) - cp $(SRC_ICON_FILE) $@ -endif +# All archive files should be listed here +$(BUILD_DIR)/GNU_Make.tgz: GNU_Make + tar --exclude='.DS_Store' -czf $@ $(BUILD_DIR)/GNU_Make.docset -- cgit