Стандартный ввод из Makefile с помощью команды make run

#python-3.x #makefile #compilation #stdin

#python-3.x #makefile #Сборник #стандартный ввод

Вопрос:

У меня есть программа, в которой я пытаюсь вызвать следующую команду:

 make run {FILE} e.g filename.txt
  

Как я могу создать свой Makefile, чтобы он мог выполнять эту программу и принимать любое имя файла через стандартный файл.

Мой Makefile выглядит следующим образом:

 run:
   python execute.py --filename {ANY FILENAME}
  

Комментарии:

1. Однако этот вопрос не имеет ничего общего с STDIN.

Ответ №1:

Аргументы make являются целевыми. В вашем первоначальном примере нет особой связи между run и {FILE} . Если вы хотите принудительно ввести run префикс, он должен быть частью целевого имени, а не разделяться пробелом:

 run-%:
    python execute.py --filename $*
  

Комментарии:

1. Спасибо, Карл. Я продолжаю получать (make: *** Нет правила для выполнения целевого «запуска». Стоп.) и если я удалю «-%:» из команды run, которую я получаю (make: ничего не нужно делать для data.txt ) data.txt это мое входное имя файла

2. Вам нужно использовать make run-data.txt .

3. Итак, мы никак не можем получить команду make run run-data.txt для запуска скрипта python без получения этой ошибки? есть ли обходной путь?

4. Это просто не так make работает. Если вы хотите проанализировать аргументы командной строки, вместо этого напишите скрипт.