В nmake.exe используется самый простой способ: выполнять только один проход за раз. Предполагается, что он станет частью более широкой цепочки инструментов. Поэтому, если у вас есть многопроходные зависимости, вам понадобится несколько проходов nmake. Если ваш процесс сборки требует более 3 проходов, вы, вероятно, делаете A Bad Thing, и вам следует исправить свой процесс. И для громкого крика, если вам нужно несколько проходов, просто напишите сценарий, чтобы сделать это.
етилnmake.exe
ограничивает поиск правил вывода одним отсутствующим файлом. Я не нахожу упоминания о проблеме в Интернете. Я что-то пропустил?
$ cat Makefile .SUFFIXES: .a .b .d .e all: abc.e .a.b: copy $** $@ .b.d: copy $** $@ .d.e: copy $** $@ $ touch abc.a $ nmake NMAKE : fatal error U1073: don't know how to make 'abc.e' Stop. $ nmake -n abc.a 'abc.a' is up-to-date $ nmake -n abc.b copy abc.a abc.b $ nmake -n abc.d NMAKE : fatal error U1073: don't know how to make 'abc.d' Stop.
Этот же Makefile производит следующее с GNU make:
$ make -n copy abc* abc.b copy abc* abc.d copy abc* abc.e rm abc.b abc.d
Конечно,$**
макро иcopy
команда не так полезна в GNU make. ;-)
Ваша версияnmake.exe
справиться с этим лучше? Есть ли магический переключатель? Или это действительно так сломано, как кажется?