summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2026-09-17 14:36:22 -0700
committerCliff Click <cliffc@acm.org>2026-09-17 14:36:22 -0700
commit0c99d74c85b937e5d566a7f2899d75025d9c54ea (patch)
tree9f4834d3fb1ec936fbea575d241f05a53c09336e /Makefile
parent410ee209ba1db89959f8e6be9cdaf2350e70fd27 (diff)
downloadSimple-0c99d74c85b937e5d566a7f2899d75025d9c54ea.tar.gz
Simple-0c99d74c85b937e5d566a7f2899d75025d9c54ea.zip
Get makefiles and fuzzer testing uniform across chapters
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile16
1 files changed, 16 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 00000000..0947e7fa
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,16 @@
+# Run chapter targets from the repository root. Override CHAPTERS for a review batch:
+# make tests CHAPTERS="chapter21 chapter22"
+# make -k tests # continue through failures, but return a failing status
+.DEFAULT_GOAL := tests
+CHAPTERS ?= $(sort $(patsubst %/pom.xml,%,$(wildcard chapter[0-9][0-9]/pom.xml)))
+ACTIONS := tests tags release lib
+CHAPTER_TARGETS := $(foreach action,$(ACTIONS),$(addsuffix /$(action),$(CHAPTERS)))
+
+# Keep baseline/review runs sequential, including when invoked with -j.
+.NOTPARALLEL:
+.PHONY: $(ACTIONS) tag $(CHAPTER_TARGETS)
+tag: tags
+$(foreach action,$(ACTIONS),$(eval $(action): $(addsuffix /$(action),$(CHAPTERS))))
+
+$(CHAPTER_TARGETS):
+ +$(MAKE) -C $(dir $@) $(notdir $@)