печать длинных строк компиляции с помощью MS NMAKE - PullRequest
2 голосов
/ 11 августа 2009

У меня есть устаревший Makefile MS NMAKE, в котором нужно исправить несколько ошибок.

Есть несколько очень длинных командных строк, которые я хочу отлаживать, которые выполняются с помощью трюка NMAKE "встроенных файлов" :

dep:
    cmd @<<tmpfilename
cmd_args..
<<

При изменении строки на

dep:
    echo cmd @<<tmpfilename
cmd_args..
<<

NMAKE жалуется, что строка слишком длинная.

Есть ли какой-нибудь другой прием, который я могу применить для просмотра командной строки, выполняемой NMAKE?

Ответы [ 2 ]

3 голосов
/ 12 августа 2009

Чтобы сохранить временный файл, в котором хранится ваша командная строка, добавьте ключевое слово KEEP после последнего <<. Например

dep:
    echo cmd @<<tmpfilename
cmd_args..
<<KEEP

В этом случае после выдачи nmake dep файл с именем tmpfilename останется и будет содержать список аргументов cmd_args.

См. Пример make-файла 2 в этой статье MS kd . Это и , это (предупреждение: PDF) является объяснением ключевых слов KEEP и NOKEEP, но я не уверен, были ли они написаны специально для MS NMAKE.

1 голос
/ 11 августа 2009

Обычный unix make поддерживает «make -n» для отображения команд, которые он будет выполнять, для nmake это «make / n». Тем не менее, make обычно также старается быть умным и запускает правила, которые сначала обновляют зависимости в любом случае, даже для «-n», поэтому вы можете попробовать

#dep:
my_test_rule:
    cmd @<<tmpfilename
cmd_args..
<<

и затем запустите "nmake / n my_test_rule" для вашей отладки.

...