У меня есть как цель test
в моем Makefile, так и каталог под названием test
в моем проекте. В GNU Make я могу объявить это фальшивкой вот так:
.PHONY: all compile test clean docs static
Можно ли в NMake сделать то же самое? Согласно http://www.bell-labs.com/project/nmake /tutorial/s6.html, мне нужно сделать
test: .VIRTUAL
Но не работает:
F:\SomePath>nmake test /f msvc.mk
Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
NMAKE : fatal error U1073: don't know how to make '.VIRTUAL'
Stop.
2 ответа
Думаю, это то, что вы ищете:
http://msdn.microsoft.com/en-us/library/7sb2acw1%28v=VS.71%29.aspx
Псевдотаргеты
Псевдотаргетинг - это метка, используемая вместо имени файла в строке зависимости. Он интерпретируется как несуществующий файл, поэтому он устарел. NMAKE предполагает, что временная метка псевдотаргетинга является самой последней из всех зависимых от нее целей. Если у него нет иждивенцев, предполагается текущее время. Если в качестве цели используется псевдотаргетинг, ее команды всегда выполняются. Псевдо-цель, используемая в качестве зависимой, также должна выступать в качестве цели в другой зависимости. Однако для этой зависимости не требуется блок команд.
Имена псевдотаргетов соответствуют правилам синтаксиса имени файла для целей. Однако, если имя не имеет расширения (т. Е. Не содержит точки), оно может превышать ограничение в 8 символов для имен файлов и может иметь длину до 256 символов.
Если я правильно понимаю, у вас нет .PHONY в nmake (у Microsoft есть много разновидностей nmake). И ссылка, которую вы разместили, гласит, что вверху:
Учебное пособие: небольшая справка по Alcatel-Lucent nmake
Может быть, вы могли бы назвать один тест, а другой тесты?
Для тех, кто ищет способ обойти этот отсутствующий .PHONY в nmake:
Вы можете ввести цель, которая определенно будет псевдотаргетингом (т.е. выбрать имя, не совпадающее ни с одним из существующих файлов / каталогов), и сделать ее зависимой от того, что вы имеете в виду под .PHONY. Например.:
test: .phony
dir /b
.phony:
И вот результат:
D:\Temp\nmake-phony>nmake
Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation. All rights reserved.
dir /b
Makefile
test
Похожие вопросы
Новые вопросы
makefile
Makefile - это входной файл для языка управления сборкой / инструмента make. Он определяет цели и зависимости, а также соответствующие команды для выполнения (a.k.a. recipes) для обновления целей.