Makefile
-
Hallo.....
ich habe ein kleines Problem mit meinem Makefile.
Der Makefilekopf sieht ungefähr so aus:#=====================================================
MODEL = vz1_test10
MODULES =
S_FUNCTIONS = aime3000.c aome3000.c
S_FUNCTIONS_LIB =
SOLVER =
NUMST = 1
TID01EQ = 0
NCSTATES = 0
BUILDARGS =
MULTITASKING =
EXT_MODE =
CHRONOMETRY = 1# an dieser stelle will ich eine Abfrage machen ob "NUMST = 1" und dann etwas #tuen.dieses funktioniert aber nicht..Wie kann man diese realisieren.
@if [$(NUMST) -eg 1] then; SOLVER = 1; fi
CC = qcc
LIBS = -lm
OPTFLAGS = -O
DEBUG =
INCLUDES = -I/usr/include_own
INCLUDES_OBJ = -I/usr/src/objs
CFLAGS = $(OPTFLAGES) $(DEFINES) $(DEBUG) (NUMST) -DMODEL=(NCSTATES) -DTID01EQ=(CHRONOMETRY)
TARGET = sim
S_FUN_1 =$(word 1, (word 2, $(S_FUNCTIONS))
#=================================================================Hintergrund des Problems:
Der erste Teil des Makefile wird generiert und "S_FUNCTIONS" kann verschiedene Sourcen beinhalten. Je nach beinhalteten Sourcen müssen noch andere Sourchen compeliert werden. Deshalb hab ich versucht oben im Kopf des Makefiles Variablen zu verändern über eine IF-Abfrage, dieses funktioniert irgendwie nicht. Das Makefile reagiert nicht auf die Änderung....
Kann mir jemand bitte helfen
Danke...
-
nimm doch das Make eigene if
Beispiel:
NUMST=1 ifeq ($(NUMST),1) SOLVER=1 endif all: echo $(SOLVER)
-
Danke für deine Antwort!!
Aber leider ist mir anscheinend noch nicht weiter geholfen.
Ich habe folgende Zeilen an die oben erwähnte Stelle gesetzt:-----------------------------------
ifeg ($(NUMST),1)\
NUMST=2:\
endif
-----------------------------------Jetzt müßte eigentlich "NUMST" überschrieben werden, wird es aber nicht!!!
"NUMST" ist einen Präprozessorangabe und das Compelieren müßte fehlschlagen bei NUMST=2....Komischer weise ist NUMST beim Compelieren immmer noch "1"Was mache ich falsch?
-
override ist glaub ich was du suchst, bin mir da aber nicht sicher