1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-05-17 08:28:42 +03:00

Further work on makefiles

This commit is contained in:
Graham Nelson 2022-04-22 23:55:36 +01:00
parent bb1bb75578
commit f79f550d37
2 changed files with 154 additions and 156 deletions

View file

@ -36,13 +36,14 @@ retrospective/{BUILD}/ni:
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
{set name: SUPPORTED_BUILDS value: 6L02, 6L38, 6M62}
# -----------------------------------------------------------------------------
.PHONY: all .PHONY: all
all: \ all: {repeat with: BUILD in: {SUPPORTED_BUILDS}}retrospective/{BUILD}/cBlorb retrospective/{BUILD}/ni {end-repeat}
retrospective/6L02/cBlorb retrospective/6L02/ni \
retrospective/6L38/cBlorb retrospective/6L38/ni \
retrospective/6M62/cBlorb retrospective/6M62/ni
{retro-targets build: 6L02} {repeat with: BUILD in: {SUPPORTED_BUILDS}}
{retro-targets build: 6L38} {retro-targets build: {BUILD}}
{retro-targets build: 6M62} {end-repeat}

View file

@ -58,33 +58,33 @@ INBUILDX = inbuild/Tangled/inbuild
# root of the core Inform distribution. # root of the core Inform distribution.
# In the eventual makefile, the symbol NAMEWEB is defined as its location. # In the eventual makefile, the symbol NAMEWEB is defined as its location.
{module} WORDS words services/words-module modules {component symbol: WORDS webname: words path: services/words-module set: modules category: module}
{module} SYNTAX syntax services/syntax-module modules {component symbol: SYNTAX webname: syntax path: services/syntax-module set: modules category: module}
{module} HTML html services/html-module modules {component symbol: HTML webname: html path: services/html-module set: modules category: module}
{module} ARCH arch services/arch-module modules {component symbol: ARCH webname: arch path: services/arch-module set: modules category: module}
{module} INFLECTIONS inflections services/inflections-module modules {component symbol: INFLECTIONS webname: inflections path: services/inflections-module set: modules category: module}
{module} LEXICON lexicon services/lexicon-module modules {component symbol: LEXICON webname: lexicon path: services/lexicon-module set: modules category: module}
{module} LINGUISTICS linguistics services/linguistics-module modules {component symbol: LINGUISTICS webname: linguistics path: services/linguistics-module set: modules category: module}
{module} PROBLEMS problems services/problems-module modules {component symbol: PROBLEMS webname: problems path: services/problems-module set: modules category: module}
{module} KINDS kinds services/kinds-module modules {component symbol: KINDS webname: kinds path: services/kinds-module set: modules category: module}
{module} CALCULUS calculus services/calculus-module modules {component symbol: CALCULUS webname: calculus path: services/calculus-module set: modules category: module}
{module} CORE core inform7/core-module modules {component symbol: CORE webname: core path: inform7/core-module set: modules category: module}
{module} ASSERTIONS assertions inform7/assertions-module modules {component symbol: ASSERTIONS webname: assertions path: inform7/assertions-module set: modules category: module}
{module} KNOWLEDGE knowledge inform7/knowledge-module modules {component symbol: KNOWLEDGE webname: knowledge path: inform7/knowledge-module set: modules category: module}
{module} IMPERATIVE imperative inform7/imperative-module modules {component symbol: IMPERATIVE webname: imperative path: inform7/imperative-module set: modules category: module}
{module} RUNTIME runtime inform7/runtime-module modules {component symbol: RUNTIME webname: runtime path: inform7/runtime-module set: modules category: module}
{module} VALUES values inform7/values-module modules {component symbol: VALUES webname: values path: inform7/values-module set: modules category: module}
{module} IF if inform7/if-module modules {component symbol: IF webname: if path: inform7/if-module set: modules category: module}
{module} MULTIMEDIA multimedia inform7/multimedia-module modules {component symbol: MULTIMEDIA webname: multimedia path: inform7/multimedia-module set: modules category: module}
{module} BYTECODE bytecode inter/bytecode-module modules {component symbol: BYTECODE webname: bytecode path: inter/bytecode-module set: modules category: module}
{module} BUILDING building inter/building-module modules {component symbol: BUILDING webname: building path: inter/building-module set: modules category: module}
{module} PIPELINE pipeline inter/pipeline-module modules {component symbol: PIPELINE webname: pipeline path: inter/pipeline-module set: modules category: module}
{module} FINAL final inter/final-module modules {component symbol: FINAL webname: final path: inter/final-module set: modules category: module}
{module} INDEX index inter/index-module modules {component symbol: INDEX webname: index path: inter/index-module set: modules category: module}
{module} SUPERVISOR supervisor inbuild/supervisor-module modules {component symbol: SUPERVISOR webname: supervisor path: inbuild/supervisor-module set: modules category: module}
# First, the tools we need to make, using the same declaration notation. # First, the tools we need to make, using the same declaration notation.
# In the eventual makefile, the symbol NAMEWEB is the location of NAME; # In the eventual makefile, the symbol NAMEWEB is the location of NAME;
@ -92,13 +92,13 @@ INBUILDX = inbuild/Tangled/inbuild
# the symbol NAMEX is the actual executable which the tool compiles into. # the symbol NAMEX is the actual executable which the tool compiles into.
# After its declaration, we list all modules needed to compile the tool. # After its declaration, we list all modules needed to compile the tool.
{tool} INBLORB inblorb inblorb otools {component symbol: INBLORB webname: inblorb path: inblorb set: otools category: tool}
{tool} INDOC indoc indoc otools {component symbol: INDOC webname: indoc path: indoc set: otools category: tool}
{tool} INFORM7 inform7 inform7 ctools {component symbol: INFORM7 webname: inform7 path: inform7 set: ctools category: tool}
{tool} INPOLICY inpolicy inpolicy otools {component symbol: INPOLICY webname: inpolicy path: inpolicy set: otools category: tool}
{tool} INRTPS inrtps inrtps otools {component symbol: INRTPS webname: inrtps path: inrtps set: otools category: tool}
{tool} INBUILDTOOL inbuild inbuild ctools {component symbol: INBUILDTOOL webname: inbuild path: inbuild set: ctools category: tool}
{tool} INTERTOOL inter inter ctools {component symbol: INTERTOOL webname: inter path: inter set: ctools category: tool}
# Inform 6 is not a web, so we have to give it special treatment: # Inform 6 is not a web, so we have to give it special treatment:
@ -106,26 +106,26 @@ INFORM6X = inform6/Tangled/inform6
# While these are also executables, they only provide unit tests for modules: # While these are also executables, they only provide unit tests for modules:
{tool} SYNTAXTEST syntax-test services/syntax-test utools {component symbol: SYNTAXTEST webname: syntax-test path: services/syntax-test set: utools category: tool}
{tool} WORDSTEST words-test services/words-test utools {component symbol: WORDSTEST webname: words-test path: services/words-test set: utools category: tool}
{tool} ARCHTEST arch-test services/arch-test utools {component symbol: ARCHTEST webname: arch-test path: services/arch-test set: utools category: tool}
{tool} INFLECTIONSTEST inflections-test services/inflections-test utools {component symbol: INFLECTIONSTEST webname: inflections-test path: services/inflections-test set: utools category: tool}
{tool} LINGUISTICSTEST linguistics-test services/linguistics-test utools {component symbol: LINGUISTICSTEST webname: linguistics-test path: services/linguistics-test set: utools category: tool}
{tool} KINDSTEST kinds-test services/kinds-test utools {component symbol: KINDSTEST webname: kinds-test path: services/kinds-test set: utools category: tool}
{tool} CALCULUSTEST calculus-test services/calculus-test utools {component symbol: CALCULUSTEST webname: calculus-test path: services/calculus-test set: utools category: tool}
{tool} PROBLEMSTEST problems-test services/problems-test utools {component symbol: PROBLEMSTEST webname: problems-test path: services/problems-test set: utools category: tool}
{tool} BUILDINGTEST building-test inter/building-test utools {component symbol: BUILDINGTEST webname: building-test path: inter/building-test set: utools category: tool}
# And here are other webs: # And here are other webs:
{web} BASICINFORMKIT BasicInformKit inform7/Internal/Inter/BasicInformKit kits {component symbol: BASICINFORMKIT webname: BasicInformKit path: inform7/Internal/Inter/BasicInformKit set: kits category: web}
{web} WORLDMODELKIT WorldModelKit inform7/Internal/Inter/WorldModelKit kits {component symbol: WORLDMODELKIT webname: WorldModelKit path: inform7/Internal/Inter/WorldModelKit set: kits category: web}
{web} COMMANDPARSERKIT CommandParserKit inform7/Internal/Inter/CommandParserKit kits {component symbol: COMMANDPARSERKIT webname: CommandParserKit path: inform7/Internal/Inter/CommandParserKit set: kits category: web}
{web} BASICINFORMEXTRASKIT BasicInformExtrasKit inform7/Internal/Inter/BasicInformExtrasKit kits {component symbol: BASICINFORMEXTRASKIT webname: BasicInformExtrasKit path: inform7/Internal/Inter/BasicInformExtrasKit set: kits category: web}
{web} ENGLISHLANGUAGEKIT EnglishLanguageKit inform7/Internal/Inter/EnglishLanguageKit kits {component symbol: ENGLISHLANGUAGEKIT webname: EnglishLanguageKit path: inform7/Internal/Inter/EnglishLanguageKit set: kits category: web}
{web} STANDARDRULES standard_rules inform7/extensions/standard_rules extensions {component symbol: STANDARDRULES webname: standard_rules path: inform7/extensions/standard_rules set: extensions category: web}
{web} BASICINFORM basic_inform inform7/extensions/basic_inform extensions {component symbol: BASICINFORM webname: basic_inform path: inform7/extensions/basic_inform set: extensions category: web}
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Targets "all" and "force" # Targets "all" and "force"
@ -167,15 +167,12 @@ inform7/Tangled/inform7_clib.c: inter/final-module/Chapter\ 5/*.w
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Each individual tool has its own makefile, stored inside its individual web. # Each individual tool has its own makefile, stored inside its individual web.
# "make makers" runs through each tool in turn and creates this makefile. # "make makers" runs through each tool in turn and creates this makefile.
# Note the repeat-tools-block feature: the line in the block is repeated once for each
# defined tool. Inside the block, an asterisk expands to the tool's symbol
# name: so for example, for inblorb, *WEB would become INBLORBWEB.
.PHONY: makers .PHONY: makers
makers: makers:
{repeat-tools-block:all} {repeat over: tool}
$(INWEBX) $(@WEB) -makefile $(@MAKER) $(INWEBX) $({NAME}WEB) -makefile $({NAME}MAKER)
{end-block} {end-repeat}
$(INWEBX) -prototype inform6/inform6.mkscript -makefile inform6/inform6.mk $(INWEBX) -prototype inform6/inform6.mkscript -makefile inform6/inform6.mk
$(INWEBX) -prototype retrospective/retrospective.mkscript -makefile retrospective/makefile $(INWEBX) -prototype retrospective/retrospective.mkscript -makefile retrospective/makefile
@ -187,9 +184,9 @@ makers:
.PHONY: gitignores .PHONY: gitignores
gitignores: gitignores:
$(INWEBX) -prototype scripts/gitignorescript.txt -gitignore .gitignore $(INWEBX) -prototype scripts/gitignorescript.txt -gitignore .gitignore
{repeat-tools-block:all} {repeat over: tool}
$(INWEBX) $(@WEB) -gitignore $(@WEB)/.gitignore $(INWEBX) $({NAME}WEB) -gitignore $({NAME}WEB)/.gitignore
{end-block} {end-repeat}
$(INWEBX) -prototype inform6/gitignorescript.txt -gitignore inform6/.gitignore $(INWEBX) -prototype inform6/gitignorescript.txt -gitignore inform6/.gitignore
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
@ -199,9 +196,9 @@ gitignores:
.PHONY: versions .PHONY: versions
versions: versions:
{repeat-tools-block:all} {repeat over: tool}
$(@X) -version $({NAME}X) -version
{end-block} {end-repeat}
$(INFORM6X) -V $(INFORM6X) -V
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
@ -247,13 +244,13 @@ forcekits:
# Note the use of repeat to make a list: $(INBLORBX) $(INDOCX) ..., etc. # Note the use of repeat to make a list: $(INBLORBX) $(INDOCX) ..., etc.
.PHONY: tools .PHONY: tools
tools: {repeat-tools-span}$(@X){end-span} $(INFORM6X) tools: {repeat over: tool}$({NAME}X) {end-repeat}$(INFORM6X)
{repeat-tools-block:all} {repeat over: tool}
$(@X): {dependent-files-for-tool-and-modules}@ $({NAME}X): {dependent-files tool-and-modules: {NAME}}
$(MAKE) -f $(@MAKER) $(MAKE) -f $({NAME}MAKER)
{end-block} {end-repeat}
# As ever, Inform 6 needs special handling: # As ever, Inform 6 needs special handling:
@ -278,10 +275,10 @@ retrospective:
.PHONY: forcetools .PHONY: forcetools
forcetools: forcetools:
{repeat-tools-block:all} {repeat over: tool}
$(MAKE) -f $(@MAKER) force $(MAKE) -f $({NAME}MAKER) force
$(MAKE) -f inform6/inform6.mk force $(MAKE) -f inform6/inform6.mk force
{end-block} {end-repeat}
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Target "check" # Target "check"
@ -295,9 +292,9 @@ forcetools:
check: check:
$(MAKE) -f inform6/inform6.mk test $(MAKE) -f inform6/inform6.mk test
$(INPOLICYX) -silence -check-problems $(INPOLICYX) -silence -check-problems
{repeat-tools-block:all} {repeat over: tool}
$(MAKE) -f $(@MAKER) test $(MAKE) -f $({NAME}MAKER) test
{end-block} {end-repeat}
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Target "tangle" # Target "tangle"
@ -310,9 +307,9 @@ tangle:
$(call tangle-webs) $(call tangle-webs)
define tangle-webs define tangle-webs
{repeat-tools-block:all} {repeat over: tool}
$(INWEBX) $(@WEB) -tangle $(INWEBX) $({NAME}WEB) -tangle
{end-block} {end-repeat}
endef endef
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
@ -328,9 +325,9 @@ weave:
$(call weave-webs) $(call weave-webs)
define weave-webs define weave-webs
{repeat-tools-block:all} {repeat over: tool}
$(INWEBX) $(@WEB) $(WEAVEOPTS) $(INWEBX) $({NAME}WEB) $(WEAVEOPTS)
{end-block} {end-repeat}
endef endef
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
@ -353,8 +350,8 @@ commit:
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
.PHONY: pages .PHONY: pages
pages: diagnostics icon readmepage diagrams prepages {repeat-tools-span}@PAGES{end-span} \ pages: diagnostics icon readmepage diagrams prepages {repeat over: tool}{NAME}PAGES {end-repeat}\
{repeat-modules-span}@MPAGES{end-span} morepages {repeat over: module}{NAME}MPAGES {end-repeat} morepages
.PHONY: icon .PHONY: icon
icon: icon:
@ -363,8 +360,8 @@ icon:
cp -f docs-src/Inform.png docs/docs-assets cp -f docs-src/Inform.png docs/docs-assets
.PHONY: forcepages .PHONY: forcepages
forcepages: diagnostics readmepage diagrams forceprepages {repeat-tools-span}@FORCEPAGES{end-span} \ forcepages: diagnostics readmepage diagrams forceprepages {repeat over: tool}{NAME}FORCEPAGES {end-repeat}\
{repeat-modules-span}@FORCEMPAGES{end-span} forcemorepages {repeat over: module}{NAME}FORCEMPAGES {end-repeat}forcemorepages
.PHONY: readmepage .PHONY: readmepage
readmepage: readmepage:
@ -387,65 +384,65 @@ diagrams:
$(INFORM7X) -help >inform7/Figures/help.txt $(INFORM7X) -help >inform7/Figures/help.txt
$(INTERX) -help >inter/Figures/help.txt $(INTERX) -help >inter/Figures/help.txt
{repeat-tools-block:ctools} {repeat over: tool set: ctools}
.PHONY: @PAGES .PHONY: {NAME}PAGES
@PAGES: docs/$(@LEAF)/index.html {NAME}PAGES: docs/$({NAME}LEAF)/index.html
docs/$(@LEAF)/index.html: {dependent-files-for-tool-alone}@ docs/$({NAME}LEAF)/index.html: {dependent-files tool: {NAME}}
rm -f docs/$(@LEAF)/*.html rm -f docs/$({NAME}LEAF)/*.html
$(INWEBX) -colony $(COLONY) -member $(@LEAF) -weave $(INWEBX) -colony $(COLONY) -member $({NAME}LEAF) -weave
.PHONY: @FORCEPAGES .PHONY: {NAME}FORCEPAGES
@FORCEPAGES: {NAME}FORCEPAGES:
rm -f docs/$(@LEAF)/*.html rm -f docs/$({NAME}LEAF)/*.html
$(INWEBX) -colony $(COLONY) -member $(@LEAF) -weave $(INWEBX) -colony $(COLONY) -member $({NAME}LEAF) -weave
{end-block} {end-repeat}
{repeat-tools-block:otools} {repeat over: tool set: otools}
.PHONY: @PAGES .PHONY: {NAME}PAGES
@PAGES: docs/$(@LEAF)/index.html {NAME}PAGES: docs/$({NAME}LEAF)/index.html
docs/$(@LEAF)/index.html: {dependent-files-for-tool-alone}@ docs/$({NAME}LEAF)/index.html: {dependent-files tool: {NAME}}
rm -f docs/$(@LEAF)/*.html rm -f docs/$({NAME}LEAF)/*.html
$(INWEBX) -colony $(COLONY) -member $(@LEAF) -weave $(INWEBX) -colony $(COLONY) -member $({NAME}LEAF) -weave
.PHONY: @FORCEPAGES .PHONY: {NAME}FORCEPAGES
@FORCEPAGES: {NAME}FORCEPAGES:
rm -f docs/$(@LEAF)/*.html rm -f docs/$({NAME}LEAF)/*.html
$(INWEBX) -colony $(COLONY) -member $(@LEAF) -weave $(INWEBX) -colony $(COLONY) -member $({NAME}LEAF) -weave
{end-block} {end-repeat}
{repeat-tools-block:utools} {repeat over: tool set: utools}
.PHONY: @PAGES .PHONY: {NAME}PAGES
@PAGES: docs/$(@LEAF)/index.html {NAME}PAGES: docs/$({NAME}LEAF)/index.html
docs/$(@LEAF)/index.html: {dependent-files-for-tool-and-modules}@ docs/$({NAME}LEAF)/index.html: {dependent-files tool-and-modules: {NAME}}
rm -f docs/$(@LEAF)/*.html rm -f docs/$({NAME}LEAF)/*.html
$(INWEBX) -colony $(COLONY) -member $(@LEAF) -weave $(INWEBX) -colony $(COLONY) -member $({NAME}LEAF) -weave
.PHONY: @FORCEPAGES .PHONY: {NAME}FORCEPAGES
@FORCEPAGES: {NAME}FORCEPAGES:
rm -f docs/$(@LEAF)/*.html rm -f docs/$({NAME}LEAF)/*.html
$(INWEBX) -colony $(COLONY) -member $(@LEAF) -weave $(INWEBX) -colony $(COLONY) -member $({NAME}LEAF) -weave
{end-block} {end-repeat}
{repeat-modules-block:all} {repeat over: module}
.PHONY: @MPAGES .PHONY: {NAME}MPAGES
@MPAGES: docs/$(@LEAF)-module/index.html {NAME}MPAGES: docs/$({NAME}LEAF)-module/index.html
docs/$(@LEAF)-module/index.html: {dependent-files-for-module}@ docs/$({NAME}LEAF)-module/index.html: {dependent-files module: {NAME}}
rm -f docs/$(@LEAF)-module/*.html rm -f docs/$({NAME}LEAF)-module/*.html
$(INWEBX) -colony $(COLONY) -member $(@LEAF) -weave $(INWEBX) -colony $(COLONY) -member $({NAME}LEAF) -weave
.PHONY: @FORCEMPAGES .PHONY: {NAME}FORCEMPAGES
@FORCEMPAGES: {NAME}FORCEMPAGES:
rm -f docs/$(@LEAF)-module/*.html rm -f docs/$({NAME}LEAF)-module/*.html
$(INWEBX) -colony $(COLONY) -member $(@LEAF) -weave $(INWEBX) -colony $(COLONY) -member $({NAME}LEAF) -weave
{end-block} {end-repeat}
.PHONY: prepages .PHONY: prepages
prepages: docs/index.html docs/structure.html docs/extensions.html docs/kits.html docs/services.html docs/inform6.html docs/inbuildn.html docs/inform7n.html docs/intern.html docs/inblorbn.html docs/indocn.html docs/inrtpsn.html docs/inpolicyn.html docs/secrets.html prepages: docs/index.html docs/structure.html docs/extensions.html docs/kits.html docs/services.html docs/inform6.html docs/inbuildn.html docs/inform7n.html docs/intern.html docs/inblorbn.html docs/indocn.html docs/inrtpsn.html docs/inpolicyn.html docs/secrets.html
@ -523,33 +520,33 @@ diagnostics:
rm -f inform7/Figures/stock-diagnostics.txt rm -f inform7/Figures/stock-diagnostics.txt
.PHONY: morepages .PHONY: morepages
morepages: {repeat-webs-span}docs/$(@LEAF)/index.html{end-span} morepages: {repeat over: web}docs/$({NAME}LEAF)/index.html {end-repeat}
{repeat-webs-block:kits} {repeat over: web set: kits}
docs/$(@LEAF)/index.html: {dependent-files-for-tool-alone}@ docs/$({NAME}LEAF)/index.html: {dependent-files tool: {NAME}}
rm -f docs/$(@LEAF)/*.html rm -f docs/$({NAME}LEAF)/*.html
$(INWEBX) -colony $(COLONY) -member $(@LEAF) -weave $(INWEBX) -colony $(COLONY) -member $({NAME}LEAF) -weave
{end-block} {end-repeat}
{repeat-webs-block:extensions} {repeat over: web set: extensions}
docs/$(@LEAF)/index.html: {dependent-files-for-tool-alone}@ docs/$({NAME}LEAF)/index.html: {dependent-files tool: {NAME}}
rm -f docs/$(@LEAF)/*.html rm -f docs/$({NAME}LEAF)/*.html
$(INWEBX) -colony $(COLONY) -member $(@LEAF) -weave $(INWEBX) -colony $(COLONY) -member $({NAME}LEAF) -weave
{end-block} {end-repeat}
.PHONY: forcemorepages .PHONY: forcemorepages
forcemorepages: forcemorepages:
{repeat-webs-block:kits} {repeat over: web set: kits}
rm -f docs/$(@LEAF)/*.html rm -f docs/$({NAME}LEAF)/*.html
$(INWEBX) -colony $(COLONY) -member $(@LEAF) -weave $(INWEBX) -colony $(COLONY) -member $({NAME}LEAF) -weave
{end-block} {end-repeat}
{repeat-webs-block:extensions} {repeat over: web set: extensions}
rm -f docs/$(@LEAF)/*.html rm -f docs/$({NAME}LEAF)/*.html
$(INWEBX) -colony $(COLONY) -member $(@LEAF) -weave $(INWEBX) -colony $(COLONY) -member $({NAME}LEAF) -weave
{end-block} {end-repeat}
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Target "clean" # Target "clean"
@ -562,9 +559,9 @@ clean:
$(call clean-up) $(call clean-up)
define clean-up define clean-up
{repeat-tools-block:all} {repeat over: tool}
$(MAKE) -f $(@MAKER) clean $(MAKE) -f $({NAME}MAKER) clean
{end-block} {end-repeat}
$(MAKE) -f inform6/inform6.mk clean $(MAKE) -f inform6/inform6.mk clean
endef endef
@ -579,9 +576,9 @@ purge:
$(call purge-up) $(call purge-up)
define purge-up define purge-up
{repeat-tools-block:all} {repeat over: tool}
$(MAKE) -f $(@MAKER) purge $(MAKE) -f $({NAME}MAKER) purge
{end-block} {end-repeat}
$(MAKE) -f inform6/inform6.mk purge $(MAKE) -f inform6/inform6.mk purge
endef endef