##Purpose: ## Show problem with long .PHONY statement ##Requires: ## ./src/part2/chapter08/XfaMovie.java file, of *any* type ## (i.e. need not be valid java code). ## SRC:=src BIN:=bin RES:=results ifdef nopre PRE:= else PRE:=part2.chapter08. endif MAIN.$(PRE)paths:= MAIN.path:=$(PRE)Buttons MAIN.$(PRE)paths+=$(MAIN.path) MAIN.path:=$(PRE)RadioButtons MAIN.$(PRE)paths+=$(MAIN.path) MAIN.path:=$(PRE)ReplaceIcon MAIN.$(PRE)paths+=$(MAIN.path) MAIN.path:=$(PRE)TextFields MAIN.$(PRE)paths+=$(MAIN.path) MAIN.path:=$(PRE)TextFieldFonts MAIN.$(PRE)paths+=$(MAIN.path) MAIN.path:=$(PRE)TextFieldActions MAIN.$(PRE)paths+=$(MAIN.path) MAIN.path:=$(PRE)ChoiceFields MAIN.$(PRE)paths+=$(MAIN.path) MAIN.path:=$(PRE)Subscribe MAIN.$(PRE)paths+=$(MAIN.path) MAIN.path:=$(PRE)MovieAds MAIN.$(PRE)paths+=$(MAIN.path) MAIN.path:=$(PRE)XfaMovie MAIN.$(PRE)paths+=$(MAIN.path) MAIN.path:=$(PRE)XfaMovies MAIN.$(PRE)paths+=$(MAIN.path) MAIN.path:=$(PRE)ReaderEnabledForm MAIN.$(PRE)paths+=$(MAIN.path) MAIN.$(PRE)results:=$(subst .,/,$(MAIN.$(PRE)paths)) MAIN.$(PRE)results:=$(MAIN.$(PRE)results:%=$(RES)/%.result) ifdef dophony .PHONY:$(MAIN.$(PRE)results) part2.chapter08.results endif part2.chapter08.results: $(MAIN.$(PRE)results) RESULT.path = part2/chapter08/XfaMovie $(BIN)/%.class: $(SRC)/%.java FORCE @echo compile $@ $(RES)/%.result: $(BIN)/%.class @echo run $@ result: $(RES)/$(RESULT.path).result echo: @echo XXX=$(MAIN.$(PRE)results) FORCE: show_bug: make -v @echo ***YES EXPECTED: make result @echo ***NOT EXPECTED: make result dophony=yes @echo ***YES EXPECTED: make result dophony=yes nopre=yes