Я написал программу для назначения, которая должна выводить ее вывод на стандартный вывод. Спецификация присваивания требует создания Makefile, который при make run > outputFile
запуске as должен запускать программу и записывать вывод в файл, имеющий отпечаток SHA1, идентичный указанному в спецификации.
Моя проблема в том, что мой make-файл:
...
run:
java myprogram
также выводит команду, которая запускает мою программу (например, java myprogram) в выходной файл, так что мой файл содержит эту дополнительную строку, приводящую к неправильному отпечатку пальца.
Есть ли способ выполнить команду без вызова команды, повторяющейся в командной строке?
make -s
делает это, и ИМХО, в любом случае, является гораздо лучшим решением. Недавно он был опубликован как отдельный ответ на этот вопрос.Еще проще использовать
make -s
(беззвучный режим)!источник
@
командами затрудняет отладку и добавляет много беспорядка..SILENT:
цель. См. Make.mad-scientist.net/managing-recipe-echoing-Wall
он все еще печатает их. Конечно, зачем использовать,-s
если вы тоже хотите видеть предупреждения?Вы также можете использовать
.SILENT
В этом случае
make hi
будет выводиться команда, ноmake run
не будет выводиться.источник
Эффект добавления команды к команде
@
может быть распространен на раздел путем расширения команды с помощью завершающего обратного слеша в строке. Если требуется.PHONY
команда для подавления вывода, можно начать раздел с:источник