nmake - симуляция функции eval - PullRequest
1 голос
/ 29 апреля 2009

Я бы хотел получить значение переменной с именем $ (MYVAR) _SOME_SUFFIX в make-файле b.mak. Вместо этого я получаю «b.mak (2): фатальная ошибка U1001: синтаксическая ошибка: недопустимый символ« $ »в макросе»

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

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

1 Ответ

2 голосов
/ 11 мая 2010

Вы можете делать что угодно с встроенными файлами .

# ---- 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 ---

когда я запускаю nmake -f piotr1.mak, я получаю ожидаемое значение echo'd для консоли: 24.

...