summaryrefslogtreecommitdiff
path: root/Makefile
blob: 32ab99738d900a2e6eaa2c76902996492f144a09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 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 chapter[0-9][0-9][a-z]/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) --no-print-directory -C $(dir $@) $(notdir $@)

.PHONY: print/tests
tests: print/tests
print/tests:
	+$(MAKE) --no-print-directory -C print tests