Atlas - Makefile
Home / doc / linux-ref Lines: 1 | Size: 2635 bytes [Download] [Show on GitHub] [Search similar files] [Raw] [Raw (proxy)][FILE BEGIN]1PANDOC ?= pandoc 2BUILDDIR = build 3CSS = docs/_static/whitepaper.css 4TITLE = The 0x4248 Linux Reference Manual 5SUBTITLE = A reference for GNU/Linux on x86-64 systems 6AUTHOR = 0x4248 7BUILD_DATE = $(shell date -u +"%Y-%m-%d") 8HTMLDIR = $(BUILDDIR)/html 9COVER_ENABLE ?= 1 10COVER_PDF ?= cover_compressed.pdf 11 12CHAPTERS = $(sort $(shell find docs/chapters -name '*.md')) 13 14CHAPTER_HTMLS = $(patsubst docs/chapters/%.md,$(HTMLDIR)/chapters/%.html,$(CHAPTERS)) 15HTML_INDEX = $(HTMLDIR)/index.html 16 17.PHONY: html pdf docs pdfdocs clean 18 19html: $(HTML_INDEX) $(CHAPTER_HTMLS) 20 21pdf: $(BUILDDIR)/manual.pdf 22 23$(BUILDDIR): 24 mkdir -p $(BUILDDIR) 25 26$(HTMLDIR): 27 mkdir -p $(HTMLDIR) 28 29$(HTMLDIR)/chapters/%.html: docs/chapters/%.md | $(HTMLDIR) 30 mkdir -p $(dir $@) 31 $(PANDOC) --standalone --embed-resources --metadata title='$(TITLE)' --metadata subtitle='$(SUBTITLE)' --metadata author='$(AUTHOR)' --metadata date='$(BUILD_DATE)' --css=$(CSS) -o $@ $< 32 33$(HTML_INDEX): $(CHAPTERS) $(CHAPTER_HTMLS) | $(HTMLDIR) 34 { \ 35 echo '# $(TITLE)'; \ 36 echo ''; \ 37 echo '## Contents'; \ 38 echo ''; \ 39 for file in $(CHAPTERS); do \ 40 rel=$${file#docs/chapters/}; \ 41 link=$${rel%.md}.html; \ 42 title=$$(grep -m1 '^# ' $$file | sed 's/^# //'); \ 43 if [ -z "$$title" ]; then title=$$rel; fi; \ 44 echo "- [$$title](chapters/$$link)"; \ 45 done; \ 46 } | $(PANDOC) --standalone --embed-resources --metadata title='$(TITLE)' --metadata subtitle='$(SUBTITLE)' --css=$(CSS) -o $@ 47 48$(BUILDDIR)/manual.pdf: $(CHAPTERS) | $(BUILDDIR) 49 @# Resolve $(COVER_PDF): prefer cover.html, fall back to $(COVER_PDF) in root 50 @if [ "$(COVER_ENABLE)" = "1" ] && [ -f cover.html ]; then \ 51 $(PANDOC) --standalone -V papersize=a4 -V geometry:margin=1in -o $(BUILDDIR)/$(COVER_PDF) cover.html; \ 52 elif [ "$(COVER_ENABLE)" = "1" ] && [ -f $(COVER_PDF) ]; then \ 53 cp $(COVER_PDF) $(BUILDDIR)/$(COVER_PDF); \ 54 fi 55 @# Build a before-body snippet that embeds the cover via pdfpages (no pdfunite) 56 @if [ -f $(BUILDDIR)/$(COVER_PDF) ]; then \ 57 echo '\includepdf[pages=-]{$(BUILDDIR)/$(COVER_PDF)}' > $(BUILDDIR)/cover-include.tex; \ 58 else \ 59 printf '' > $(BUILDDIR)/cover-include.tex; \ 60 fi 61 $(PANDOC) --toc --toc-depth=5 --top-level-division=chapter \ 62 -V documentclass=report \ 63 -V papersize=a4 \ 64 -V fontsize=11pt \ 65 -V geometry:margin=1in \ 66 -V fontfamily=tgtermes \ 67 --include-in-header=docs/_static/pdf-header.tex \ 68 --include-before-body=$(BUILDDIR)/cover-include.tex \ 69 --metadata title='$(TITLE)' \ 70 --metadata subtitle='$(SUBTITLE)' \ 71 --metadata author='$(AUTHOR)' \ 72 --metadata date='$(BUILD_DATE)' \ 73 -o $@ $(CHAPTERS) 74 75docs: html 76 77pdfdocs: pdf 78 79clean: 80 rm -rf $(BUILDDIR) 81[FILE END](C) 2025 0x4248 (C) 2025 4248 Media and 4248 Systems, All part of 0x4248 See LICENCE files for more information. Not all files are by 0x4248 always check Licencing.