From 71c50c340cb4b68d26e008eebbe2f65a9ccbc425 Mon Sep 17 00:00:00 2001 From: "Brian S. Stephan" Date: Fri, 4 Apr 2025 17:11:39 -0500 Subject: [PATCH] slowly I am learning how to do Makefiles properly Signed-off-by: Brian S. Stephan --- Makefile | 60 ++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 17 deletions(-) diff --git a/Makefile b/Makefile index 3014a90..545af87 100644 --- a/Makefile +++ b/Makefile @@ -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)