Forums Neueste Beiträge
 

GNU make: Intermediate files bei Wildcards??

11/01/2012 - 22:03 von Peter Mairhofer | Report spam
Hi,

Ich habe folgendes Makefile:

foo/Test_%.csv:
echo Exporting $@ from database ...
echo Hello, world > $@

foo/Test_%.xml: foo/Test_%.csv
echo Convert $< to $@ ...
echo $< in XML format > $@

$ make Test_Peter.xml
echo Exporting foo/Test_Peter.csv from database ...
Exporting foo/Test_Peter.csv from database ...
echo Hello, world > foo/Test_Peter.csv
echo Convert foo/Test_Peter.csv to foo/Test_Peter.xml ...
Convert foo/Test_Peter.csv to foo/Test_Peter.xml ...
echo foo/Test_Peter.csv in XML format > foo/Test_Peter.xml
cp foo/Test_Peter.xml Test_Peter.xml
rm foo/Test_Peter.csv foo/Test_Peter.xml


Wie kommt make drauf, dass die Dateien in foo "intermediate" sind? Ohne
den Wildcard patterns betrachtet make die Dateien nàmlich nicht als
"intermediate" und werden daher nicht gelöscht.

Wie kann ich das Löschen verhindern?


Ich möchte nàmlich für sàmtliche intermediate files entsprechende
clean-Targets erstellen. Zum Beispiel dauert der Datenbankexport so
lange, dass dieses Target nur ausgeführt werden soll, wenn ein
explizites clean ausgeführt wird.

LG
Peter
 

Lesen sie die antworten

#1 Stefan Reuther
12/01/2012 - 18:49 | Warnen spam
Peter Mairhofer wrote:
Wie kommt make drauf, dass die Dateien in foo "intermediate" sind? Ohne
den Wildcard patterns betrachtet make die Dateien nàmlich nicht als
"intermediate" und werden daher nicht gelöscht.

Wie kann ich das Löschen verhindern?



RTFM: info "(make)Chained Rules"

Du suchst .SECONDARY / .PRECIOUS.


Stefan

Ähnliche fragen