Ich versuche Folgendes zu tun. Es gibt ein Programm, nennen Sie es foo-bin
, das eine einzelne Eingabedatei aufnimmt und zwei Ausgabedateien generiert. Eine dumme Makefile-Regel dafür wäre:
file-a.out file-b.out: input.in
foo-bin input.in file-a.out file-b.out
Dies bedeutet jedoch make
in keiner Weise, dass beide Ziele gleichzeitig generiert werden. Das ist in Ordnung, wenn es make
in Serie läuft , wird aber wahrscheinlich Probleme verursachen, wenn man es versucht make -j16
oder etwas ähnlich Verrücktes.
Die Frage ist, ob es eine Möglichkeit gibt, eine richtige Makefile-Regel für einen solchen Fall zu schreiben. Natürlich würde es eine DAG erzeugen, aber irgendwie gibt das GNU make-Handbuch nicht an, wie dieser Fall behandelt werden könnte.
Es kommt nicht in Frage, denselben Code zweimal auszuführen und nur ein Ergebnis zu generieren, da die Berechnung Zeit in Anspruch nimmt (denken Sie an Stunden). Die Ausgabe nur einer Datei wäre ebenfalls ziemlich schwierig, da sie häufig als Eingabe für GNUPLOT verwendet wird, das nicht weiß, wie nur ein Bruchteil einer Datendatei zu verarbeiten ist.