Wo ist der Fehler im Makefile
-
Hallo zusammen,
ich versuche mit folgenden Code die Abhängigkeiten für ein Target zu definieren, leider wird die IF Anweisung falsch ausgewertet. Wo ist also mein Fehler?
PROJECT_PATH_SOURCE=/a/b/c NAME_OF_EXECUTABLE=Test LINK_TO_EXECUTABLE = $(PROJECT_PATH_SOURCE)/$(NAME_OF_EXECUTABLE) ifeq ( $(wildcard $(LINK_TO_EXECUTABLE)) , "" ) BUILD_ALL_DEPENDENCIES=UBeeMeLibs MoversightSetup else BUILD_ALL_DEPENDENCIES= endif all: $(BUILD_ALL_DEPENDENCIES) @echo $(BUILD_ALL_DEPENDENCIES) --- do something
Fürs ifeq habe ich auch schon probiert:
ifeq ( $(wildcard $(LINK_TO_EXECUTABLE)) , ) ifeq ( ""+$(wildcard $(LINK_TO_EXECUTABLE)) , "" ) ifeq ( "x"+$(wildcard $(LINK_TO_EXECUTABLE)) , "x" )
Egal ob die Datei da ist, oder nicht, er geht immer in den else Fall. Jemand einen Tipp? Ich sehe glaub ich den Wald vor lauter Bäumen nicht. Danke!!!
-
ifeq ( $(wildcard $(LINK_TO_EXECUTABLE)) , )
Das hier sollte eigentlich richtig sein.
edit: Ach, du hast da ja noch ein Leerzeichen versteckt, da muss man ja ganz genau hingucken. So ist es richtig:
ifeq ($(wildcard $(LINK_TO_EXECUTABLE)) , )
Ich höre schon von Ferne einen Kopf auf einen Tisch hauen
.
edit2: Oder wenn man es ganz genau nimmt:
ifeq ($(wildcard $(LINK_TO_EXECUTABLE)),)
Merke: Whitespace in Makefiles wird nicht wie in anderen Sprachen ignoriert.
-
Cool. Rumps. Rumps. Es tut
Vielen Dank!