slowly I am learning how to do Makefiles properly

Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
This commit is contained in:
Brian S. Stephan 2025-04-04 17:11:39 -05:00
parent 50fd495b2c
commit 71c50c340c
Signed by: bss
GPG Key ID: 3DE06D3180895FCB

View File

@ -1,31 +1,57 @@
TMPDIR := ./_tmp
CSRD := ./srd/Cypher-System-Reference-Document-2024-09-26.docx
MD_CSRD := $(TMPDIR)/csrd.md
CCSRD := $(TMPDIR)/ccsrd.md
WEBDIR := ./incorporealcms-instance
PAGESDIR := $(TMPDIR)/$(WEBDIR)/pages
TMPDIR := ./_tmp
CSRD := ./srd/Cypher-System-Reference-Document-2024-09-26.docx
MD_CSRD := $(TMPDIR)/csrd.md
CCSRD := $(TMPDIR)/ccsrd.md
WEBDIR := ./incorporealcms-instance
PAGESDIR := $(TMPDIR)/$(WEBDIR)/pages
BASE_PATCH_DIR := ./patches/base
BASE_PATCHES := $(wildcard $(BASE_PATCH_DIR)/*.patch)
BASE_PATCHES_OUT := $(subst $(BASE_PATCH_DIR),$(TMPDIR),$(BASE_PATCHES))
# DEFAULT BUILD
all: base-patches
base-patches: $(MD_CSRD)
cp -a $(MD_CSRD) $(CCSRD)
find patches/base -type f -name \*.patch -exec echo ">> {}" \; -exec patch $(CCSRD) {} \;
# CCSRD VERSIONS
base-patches: $(CCSRD) $(BASE_PATCHES_OUT)
# CLEANUPS
clean:
rm -rf $(TMPDIR)/ccsrd*
rm -rf $(TMPDIR)/*.patch
distclean:
rm -rf $(TMPDIR)
# PATCHERS
$(TMPDIR)/%.patch: $(BASE_PATCH_DIR)/%.patch
$(info >>> BASE '$<')
patch $(CCSRD) $< --quiet
@touch $@
# OUTPUTS
web: base-patches
find patches/web -type f -name \*.patch -exec echo ">> {}" \; -exec patch $(CCSRD) {} \;
find patches/web -type f -name \*.patch -print0 | sort -z | xargs -0 -n 1 patch $(CCSRD)
cp -a $(WEBDIR) $(TMPDIR)/
mkdir -p $(PAGESDIR)
cp $(CCSRD) $(PAGESDIR)/index.md
incorporealcms-build $(TMPDIR)/$(WEBDIR) /var/www/localhost/incorporealcms-testing/root
$(MD_CSRD): | $(TMPDIR)
# BUILD STEPS
# generate the basic markdown file
$(MD_CSRD): $(CSRD) | $(TMPDIR)
pandoc -f docx -t gfm $(CSRD) -o $(MD_CSRD) --columns 120
# create the markdown file to patch
$(CCSRD): $(MD_CSRD)
cp -a $(MD_CSRD) $(CCSRD)
# create the build dir
$(TMPDIR):
mkdir -p $(TMPDIR)
clean:
rm -rf $(TMPDIR)/ccsrd*
distclean:
rm -rf $(TMPDIR)