Ich habe Basis-Makefile für alle meine Dienste, in einigen Fällen möchte ich meine Standard "Test" -Ziel verwenden, in anderen Fällen möchte ich überschreiben hinzufügen. Dies sind die Dateien, die ich bisher habe (und natürlich funktioniert es nicht wie erwartet).Erlaube Makefile sowohl anhängen als auch überschreiben Ziel
MakefileBase
test:
./.../run-tests.sh
Makefile
BASE_FILE := /path/to/MakefileBase
include ${BASE_FILE}
test:
@$(MAKE) -f $(BASE_FILE) test # un/comment this line in order to run the default tests.
# echo "custom test"
Wenn ich den Test mit der ersten Zeile laufen auf Kommentar ich die folgende
Makefile:10: warning: overriding commands for target `test'
/.../MakefileBase:63: warning: ignoring old commands for target `test'
echo "no tests"
no tests
außer der Warnung es wie erwartet funktioniert Das Problem ist, wenn ich versuche, die Elternfunktion zu verwenden, dann bekomme ich die folgenden Fehler:
Makefile:9: warning: overriding commands for target `test'
/.../MakefileBase:63: warning: ignoring old commands for target `test'
make[1]: test: No such file or directory
make[1]: *** No rule to make target `test'. Stop.
make: *** [test] Error 2
Es fügt nur die Befehle, wenn ich hinzufügen versuchen 'Test :: echo„Ich gar nichts tun wollen“' Es läuft die der Befehl von der Basis machen Datei und als Echo –