NMake .PHONY аналог - PullRequest
       12

NMake .PHONY аналог

1 голос
/ 22 декабря 2010

У меня есть и цель 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 ]

4 голосов
/ 25 сентября 2015

Для тех, кто ищет выход из этого отсутствия .PHONY в nmake:

Вы можете ввести цель, которая определенно будет псевдотелью (то есть выбрать имя, не соответствующее ни одному из существующих файлов / каталогов) и сделать его зависимым от того, что вы подразумеваете под .PHONY. E.g.:

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
1 голос
/ 22 декабря 2010

Я думаю, это то, что вы ищете:

http://msdn.microsoft.com/en-us/library/7sb2acw1%28v=VS.71%29.aspx

Псевдоцелевые объекты

Псевдоцелевой объект - это метка, используемая вместо имени файла влиния зависимости.Он интерпретируется как файл, который не существует, и поэтому является устаревшим.NMAKE предполагает, что метка времени псевдот цели является самой последней из всех ее зависимых.Если у него нет иждивенцев, предполагается текущее время.Если в качестве цели используется псевдо-цель, ее команды всегда выполняются.Псевдоцелевая, используемая в качестве зависимой, также должна отображаться в качестве целевой в другой зависимости.Однако для этой зависимости необязательно иметь блок команд.

Имена псевдоцелевых объектов соответствуют синтаксическим правилам имени файла для целевых объектов.Однако, если имя не имеет расширения (то есть не содержит точку), оно может превышать 8-символьное ограничение для имен файлов и может быть длиной до 256 символов.

Еслия правильно понимаю, что у вас нет .PHONY в nmake (Microsoft, есть много разновидностей nmake).И ссылка, которую вы разместили, гласит, что сверху:

Учебное пособие: Небольшая помощь с Alcatel-Lucent nmake

Возможно, вы могли бы позвонить по одному тестуа другой тестирует?

...