diff options
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | README | 4 | ||||
-rw-r--r-- | grub-dev-Makefile | 83 | ||||
-rw-r--r-- | src/grub-dev/Info.plist | 14 |
4 files changed, 104 insertions, 3 deletions
@@ -1,9 +1,13 @@ -all: grub +all: grub grub-dev grub: $(MAKE) -f grub-Makefile +grub-dev: + $(MAKE) -f grub-dev-Makefile + .PHONY: clean clean: $(MAKE) clean -f grub-Makefile + $(MAKE) clean -f grub-dev-Makefile @@ -11,11 +11,11 @@ appropriately. The possible `make` targets are: -- `grub` - GRUB2 Documentation [https://www.gnu.org/software/grub/manual/grub/] +- `grub` - GRUB2 Documentation [https://www.gnu.org/software/grub/manual/grub/] +- `grub-dev` - GRUB2 Developers Manual [https://www.gnu.org/software/grub/manual/grub-dev/] Additional `make` targets that have not been implemented are: -- `grub-dev` - GRUB2 Developers Manual [https://www.gnu.org/software/grub/manual/grub-dev/] - `grub-legacy` - GRUB Legacy Documentation [https://www.gnu.org/software/grub/manual/legacy/] - `multiboot` - Multiboot Specification [https://www.gnu.org/software/grub/manual/multiboot/] - `multiboot2` - Multiboot2 Specification [https://www.gnu.org/software/grub/manual/multiboot2/] diff --git a/grub-dev-Makefile b/grub-dev-Makefile new file mode 100644 index 0000000..a4ce396 --- /dev/null +++ b/grub-dev-Makefile @@ -0,0 +1,83 @@ +DOCSET_NAME = GNU_Grub_Dev + +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/grub-dev/Info.plist +PAGE_INDEXING_SCRIPT = src/index-page.sh +TERM_INDEXING_SCRIPT = src/index-terms.sh + +MANUAL_URL = https://www.gnu.org/software/grub/manual/grub-dev/grub-dev.html_node.tar.gz +MANUAL_FILE = tmp/grub-dev.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): $(PAGE_INDEXING_SCRIPT) $(TERM_INDEXING_SCRIPT) $(DOCUMENTS_DIR) + rm -f $@ + $(PAGE_INDEXING_SCRIPT) $@ $(DOCUMENTS_DIR)/*.html + $(TERM_INDEXING_SCRIPT) Entry $@ $(DOCUMENTS_DIR)/Index.html + +$(ICON_FILE): src/icon.png $(DOCSET_DIR) + cp $(SRC_ICON) $@ diff --git a/src/grub-dev/Info.plist b/src/grub-dev/Info.plist new file mode 100644 index 0000000..afa6d3d --- /dev/null +++ b/src/grub-dev/Info.plist @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleIdentifier</key> + <string>gnugrubdev</string> + <key>CFBundleName</key> + <string>GNU Grub Developers</string> + <key>DocSetPlatformFamily</key> + <string>grub-dev</string> + <key>isDashDocset</key> + <true/> +</dict> +</plist> |