SHELL = /bin/sh # Β© 2023–2024 Lady [@ Lady’s Computer]. # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at https://mozilla.org/MPL/2.0/. SRCDIR := sources BUILDDIR := build BUILDTARGET := .grass DESTDIR := public SHUSHE := .β›©πŸ“° SHUSHEOPTS := SRCDIR='$(SRCDIR)' INCLUDEDIR='$(SRCDIR)/{include}' EXTRAPARSERS='$(wildcard parsers/*.xslt)' EXTRATRANSFORMS='$(wildcard transforms/*.xslt)' YSEME := .πŸ‘₯πŸ“€ YSEMEOPTS := BUILDTARGET='.grass' DESTDIR='$(DESTDIR)' SERVERPATH='lady/www' # ━ Β§ Call out to β›©πŸ“° δΉ¦η€Ύ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ build : $(SHUSHE)/GNUmakefile prebuild @for publicfile in $(patsubst %,"%",$(wildcard $(DESTDIR)/*)); do if git check-ignore -q "$$publicfile"; then rm -rf "$$publicfile"; fi; done @$(MAKE) -f '$<' install $(SHUSHEOPTS) @touch '$(BUILDTARGET)' prebuild : $(SHUSHE)/GNUmakefile @$(MAKE) -f '$<' $(SHUSHEOPTS) list : $(SHUSHE)/GNUmakefile @$(MAKE) -f '$<' $@ $(SHUSHEOPTS) $(BUILDDIR)/% $(DESTDIR)/% : $(SHUSHE)/GNUmakefile @$(MAKE) -f '$<' $@ $(SHUSHEOPTS) # ━ Β§ Call out to πŸ‘₯πŸ“€ Yseme ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ dry-sync sync : $(YSEME)/GNUmakefile $(MAKE) -f '$<' $@ $(YSEMEOPTS) # ━ Β§ Special targets ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ gone : @for publicfile in $(patsubst %,"%",$(wildcard $(DESTDIR)/*)); do if git check-ignore -q "$$publicfile"; then rm -rf "$$publicfile"; fi; done FORCE : ; .PHONY : FORCE build dry-sync gone list prebuild sync ; # ━ Β§ MakeΒ·file targets ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ $(SHUSHE)/GNUmakefile $(YSEME)/GNUmakefile : %/GNUmakefile : FORCE git submodule update --init '$*'