Использование nmake с подстановочными знаками в make-файле
Я пытаюсь настроить make-файл nmake для автоматического экспорта наших макетных файлов balsamiq в png-файлы, но ябоюсь, я могуЯ не знаю, как создать общее правило для этого, без явного перечисления всех файлов, которые я хочу экспортировать.
Эта страница подробно описывает синтаксис командной строки для экспорта файлов иэта страница содержит пример, который выглядит так, как будто он содержит общее правило для файлов .obj и файлов .exe.
Makefile, который я пробовал до сих пор, выглядит так:
.bmml.png:
"C:\Program Files\Balsamiq Mockups\Balsamiq Mockups.exe" export .bmml.png:
"C:\Program Files\Balsamiq Mockups\Balsamiq Mockups.exe" export $< $@
lt; $@
Но это нет работа.
Если я просто запускаю nmake (с некоторыми устаревшими файлами png), nmake просто делает это:
[C:\Temp] :nmake
Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
[C:\Temp] :
Если я прошу его создать один конкретный файл, он делает это:
[C:\Temp] :nmake "TestFile.png"
Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
NMAKE : fatal error U1073: don't know how to make '"TestFile.png"'
Stop.
[C:\Temp] :
Есть какие-нибудь гуру нмаке, которые могут меня поправить?
Пример make-файла, который просто создает файлы .dat из файлов .txt, копируя их для экспериментов, выглядит следующим образом:
.txt.dat:
copy .txt.dat:
copy $< $@
lt; $@
это ничего не делает, так ясно, яЯ не понимаю, как работают такие общие правила. Нужно ли указывать выше цель, которая каким-то образом перечисляет файлы, которые я хочу?
редактировать: В ответ на новый ответ:
Этот makefile:
{}.txt{}.dat:
copy $** $@
с этим файлом (test.dat)
1
2
3
и эта команда:
NMAKE test.txt
Выдает это сообщение об ошибке:
[C:\] :nmake test.txt
Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
NMAKE : fatal error U1073: don't know how to make 'test.txt'
Stop.