Próbuję wykonać następujące czynności. Istnieje program, nazwij go foo-bin, który pobiera pojedynczy plik wejściowy i generuje dwa pliki wyjściowe. Głupia reguła Makefile byłaby następująca:
file-a.out file-b.out: input.in
foo-bin input.in file-a.out file-b.out
Nie oznacza to jednak makew żaden sposób, że oba cele zostaną wygenerowane jednocześnie. Jest to dobre, gdy działa makew trybie seryjnym, ale prawdopodobnie spowoduje problemy, jeśli spróbujesz make -j16lub coś równie szalonego.
Pytanie brzmi, czy istnieje sposób na napisanie właściwej reguły Makefile dla takiego przypadku? Oczywiście wygenerowałoby to DAG, ale w jakiś sposób podręcznik GNU make nie precyzuje, jak można by obsłużyć ten przypadek.
Uruchomienie tego samego kodu dwa razy i wygenerowanie tylko jednego wyniku nie wchodzi w grę, ponieważ obliczenia wymagają czasu (pomyśl: godziny). Wyprowadzenie tylko jednego pliku również byłoby raczej trudne, ponieważ często jest on używany jako dane wejściowe do GNUPLOT, który nie wie, jak obsłużyć tylko ułamek pliku danych.