wiadomo, że reguły makefile wyglądają mniej więcej tak:
targets: dependencies
commands
commands
...
help od make'a (pinfo make, węzeł: Multiple Targets, make --version = GNU Make 3.81) mówi, że jeżeli jest więcej targetów tzn:
target1 target2: source1 source2 ...
command1
command2
to w rzeczywistości jest to równoważne
target1: source1 source2 ...
command1
command2
target2: source1 source2 ...
command1
command2
czyli komendy command1 i command2 uruchamiane są dwa razy - dla każdego targeta osobno.
Ale gdzieś czytałem, że istnieje taka możliwość zapisu reguły, że komendy wykonają się raz i wtedy wszystkie targety oznaczone są jako zrobione tj.
opts.h opts.cpp: opts.txt
perl opts_parser.pl opts.txt opts.h opts.cpp
spowoduje, że skrypt perlowy odpali się tylko raz i wyprodukuje zarówno opts.h i opts.cpp. Cały czas myślałem, że tak właśnie działa make jak napotyka wiele targetów ale okazało się, że nie. Pomóżcie, gdzie takie coś może być? :-)