Параметр правила в Makefile
Мне нужно сделать Makefile, и он должен иметь правило run
. Однако для запуска требуются некоторые параметры.
Кто-нибудь знает, как я могу передавать аргументы при запуске правила в Makefile? Я хочу иметь возможность запускать правило run
с аргументами, набрав make run foo bar
.
Я пробовал это, но он не работал:
run:
make compile
./scripts/runTrips $1 $2 $PLACES $OUT $VERS
Параметры, которые я хочу поставить, - это первый и второй.
Ответы
Ответ 1
При передаче параметров команде make ссылайтесь на них так же, как и на другие внутренние переменные make.
Если ваш make файл выглядит так:
run:
script $(param1) $(param2)
Вы можете вызвать его со следующим синтаксисом:
$> make run param1=20 param2=30
и make должен вызвать script как:
script 20 30
Ответ 2
Сделать сам не обеспечивает передачу аргументов, как для скриптов. Обычно make используется следующим образом: вы настраиваете проект, а просто выполняете "make". Конфигурирование можно выполнить, запустив shell script 'configure'. Этот script - это тот, который вы можете передать параметрам. Например:
./configure param1 param2
make run
configure script должен анализировать параметры и записывать их в config.mk. config.mk должен содержать следующее:
PARAM1 = val1
PARAM2 = val2
Ваш Makefile должен включать config.mk:
TOP = .
include $(TOP)/config.mk
run:
make compile
./scripts/runTrips $(PARAM1) $(PARAM2) $(PLACES) $(OUT) $(VERS)
В вашем "configure" script вы также можете проверить параметры на правильность и выполнить другие проверки и вычисления.