nmake: может ли командный файл запускаться как часть командного блока make влиять на среду процесса nmake.exe? - PullRequest
2 голосов
/ 11 мая 2010

Я думаю, в nmake, если я сделаю это:

 example :
        set value=77
        echo %%value%%

Результат будет отображать 77 на консоли.

Можно ли мне вызвать файл .cmd или .bat, который повлияет на среду процесса nmake.exe? Предположим, я поместил оператор set value=77 в файл с именем "setvalue.cmd". Затем измените make-файл следующим образом:

 example :
        setvalue
        echo %%value%%

Я получаю:

%value%

В качестве альтернативы, если есть способ установить макрос внутри командного блока, это также сработает. Или способ установить значение макроса из пакетного файла, даже вне командного блока.

Ответы [ 2 ]

4 голосов
/ 19 января 2011

Вы можете создать фрагмент nmake во время предварительной обработки make-файла и прочитать его. Предполагая, что batch.cmd выводит правильный синтаксис nmake, затем

!if [batch.cmd >makefile.auto]
!error *** Could not create makefile.auto
!endif
!include makefile.auto

Вы должны убедиться, что batch.cmd устанавливает %errorlevel% надлежащим образом (например, exit /b 22).

makefile.auto может содержать что угодно, но вы, вероятно, захотите что-то вроде value=77. Пара моментов:

  • Разыменование value с использованием синтаксиса nmake ($(value))
  • При необходимости вы можете передать параметры в batch.cmd ([batch.cmd $(OBJECTS) >makefile.auto])
0 голосов
/ 23 мая 2010

Нет, я так не думаю.

...