2009-04-29 4 views
1

Ich möchte Wert der Variablen mit dem Namen $ (MYVAR) _SOME_SUFFIX in der b.mak Makefile erhalten. Stattdessen erhalte ich "b.mak (2): schwerwiegender Fehler U1001: Syntaxfehler: ungültiges Zeichen '$' in Makro"nmake - simulieren eval Funktion

# ---- a.mak ---- 
all : 
    set MYVAR=SOME_PREFIX 
    nmake -f b.mak 
#--- END --- 

# ---- b.mak ---- 
all: 
    @echo $($(MYVAR)_SOME_SUFFIX) 
#--- END --- 

Antwort

2

Sie können eine Art tun, was Sie mit inline files wollen.

# ---- piotr1.mak ---- 

all : 
nmake -nologo -f piotr2.mak MYVAR=BBB 

#--- END --- 


# ---- piotr2.mak ---- 

AAA_SETTING=17 
BBB_SETTING=24 

AVAR=$(MYVAR)_SETTING 


all: 
# create and invoke a temporary cmd file 
    @<<myecho.cmd 
@echo off 
setlocal 
REM insert nMAKE macros into environment of the command 
set AAA_SETTING=$(AAA_SETTING) 
set BBB_SETTING=$(BBB_SETTING) 
REM now echo the value of whichever env var is named by the 
REM nmake macro, AVAR. 
echo %$(AVAR)% 
endlocal 
<< 

#--- END --- 

wenn ich nmake -f piotr1.mak laufen bekomme ich den erwarteten Wert an die Konsole echo'd: 24.