I made the following simple file to study .SECONDEXPANSION ### BEGIN rmsuffix=$(1:%$(suffix $1)=%) FILES := $(wildcard *.pdf)
all : $(FILES) .SECONDEXPANSION: %.pdf : $$(addsuffix .eps,$$(call rmsuffix,$$@)) # $(addsuffix .eps,$(call rmsuffix,$@)) ### END When I run it like this: $ make -f test.mk -p | grep ".pdf:" %.pdf: $(addsuffix .eps,$(call rmsuffix,$@)) # test.pdf: test.eps This is expected result. Now if i change the last two lines to be: %.pdf : $$(addsuffix .eps_,$$(call rmsuffix,$$@)) # $(addsuffix .eps_,$(call rmsuffix,$@)) and I get: test.pdf: since test.eps_ doesn't exist. So, using .SECONDEXPANSION to make a requisite list seems to drop all those that do not exist and make doesn't know the rule to make it. I want make to instead give up and throw me an error that says the requisite doesn't exist and it doesn't know how to make it instead so that I am reminded to make it manually. I am going to use this Makefile for writing some latex articles. Some of the figures are generated by other non-CLI program that I can't easily automates in make. Thanks, --MZ _______________________________________________ Help-make mailing list [email protected] https://lists.gnu.org/mailman/listinfo/help-make
