-
Makefiles
Hallo allerseits, ich habe ein Problem bei einem Makefile...
Ich muss die Abhängigkeiten Dynamisch verändert in Abhängigkeit ob eine bestimmte Datei existiert oder nicht. Schematisch sieht mein Makefile so aus:
Code:
all: test
test: test.o
gcc beispiel.c test.o -o test
test.o: test.c
gcc -c test.c
Nun ist es erforderlich, dass die Datei test.c gelöscht wird, aber test.o wurde vorher erstellt.
Theoretisch funktioniert der gcc befehl nachwievor, bis auf die tatsache, dass make die datei test.c nicht findet und abbricht, anstatt einfach test.o zu verwenden.
jetzt möchte ich am liebsten so was in der art haben:
Code:
DEP=$([ -e test.c ] && echo test.o)
all: test
test: $(DEP)
gcc beispiel.c test.o -o test
test.o: test.c
gcc -c test.c
was aber so nicht geht...
weiß einer wie man das lösen kann?
danke schonmal für jeden ansatz
greetz
-
Moin,
make kennt u. a. Funktionen, mit denen Du sowas machen könntest, aber versuchs mal ganz einfach (ungetestet):
Code:
test.o: test.c
test -f test.c && gcc -c test.c
Jan
EDIT: Funktioniert nicht, glaube ich - make bricht ja schon ab, weil die Dependency nicht existiert. Also doch make-Funktionen - z. B. so:
Code:
DEP := $(shell test -f test.c && echo test.c || echo test.o)
-
echt genial :)
danke, funktioniert prima!
greetz