Frage zu make und makefiles
-
Hi,
ich braeuchte mal Hilfe beim erstellen eines makefiles. Dabei wuerde ich gern zwei verschiedene compilerversionen zum compilieren verwenden. Also in etwa so:
make all_gcc_4.0
bzw.
make all_gcc_4.2hat jemand schonmal sowas gemacht und kann mir zeigen wie es geht? (Prinzipiell haette ich es gern das die entsprechenden .o und executable dateien einen Names haben der unabhaengig vom compiler ist, also micht main_gcc_4.0 sondern einfach main)
Gruesse und vielen Dank
-
Man kann mit Variablen arbeiten. Diese kann man entweder in der Makefile setzen oder von außerhalb vorgeben. Ob man diese Variablen in einer Verarbeitungsregel ändern kann, weiß ich jetzt so nicht...
Beispiel für das Setzen der Variablen im Makefile:
CXX=g++-4.2.0 ... myfile.o: $(CXX) -o myfile.o ...
Wenn man die Zeile "CXX=g++-4.2.0" wegläßt, wird die Variable aus der Env genommen oder man kann sie beim Makeaufruf setzen.
GXX=g++-4.2.0 make
Hoffe, daß hilft.
-
meine Idee wäre
ifeq ($(MAKECMDGOALS), all_gcc_4_0) CC := gcc-4.0 # etc. endif ifeq ($(MAKECMDGOALS), all_gcc_4_1) CC := gcc-4.1 # etc. endif .PHONY: all_gcc_4_0 all_gcc_4_1 all all_gcc_4_0: all all_gcc_4_1: all all: $(OBJECTS) #...
Siehe auch das ultimative Makefile in der rudpf FAQ, wenn du den Rest auch gleich sauber hinbekommen willst
<edit>
btw. wäre die üblichere Methode eher
CC=gcc-4.1 make all
aufzurufen!
</edit>