Frage zu nem Makefile
-
Ich habe hier ein Makefile und eine Datei hello.cpp:
%.step1 : %.cpp @echo "step 1" @touch $@ % : %.step1 @echo "step 2" touch $@
Nach meinem Verständnis müsste beimm Aufruf von "make hello" erst hello.step1 erzeugt werden und dann "hello". Es wird aber "g++ -o hello hello.cpp" aufgrufen. Wo liegt mein Denkfehler?
PS.: Wenn ich statt generischem "%" explizit hello überall vwewende gehts. Ich hätte es aber gern generisch.
-
Implizite Regeln.
make --no-builtin-rules
sollte helfen.
-
@wob Geht tatsächlich. Ist natürlich nervig, wenn das Makefile "kaputt" geht wenn man den Schalter vergisst.
-
@Tyrdal
https://stackoverflow.com/questions/4122831/disable-make-builtin-rules-and-variables-from-inside-the-make-fileDisabling the built-in rules is done by writing an empty rule for .SUFFIXES:
.SUFFIXES:
Ansonsten auch:
MAKEFLAGS += --no-builtin-rules .SUFFIXES:
-
Besten Dank an euch, jetzt läufts.