have one time consuming step that flattens a bunch of files.
basically i’d like this to be valid syntax
%.out: %.input1 %.input2
merge $<1 $<2 $@
doit: project.out
# project.out merged
i’m far from a makefile expert, but i like to use .SULFFIXS to do that when only have two files, would be great to adapt that to two inputs, or two outputs for future use…
.SULFFIX: .in.out
.in.out:
dosomething $< $@
doit: project.out
GNU Make 3.81
I’ve found several discussions on how to have a rule with several outputs, but none with several inputs.
There are no
$1and$2automatic variables in makefile rules, however, there is$^which is the list of all prerequisites. As the rule only has two prerequisites it expands to%.input1 %.input2, or, more precisely, to$*.input1 $*.input2. Hence:Should suffice.
.SULFFIXES, IMO, is not very useful, since it uses implicit rule definitions which one can’t see and change.[update]
With regards to
doittarget, to prevent it from executing every time you might like to change the rule commands to: