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

Reply via email to