Параметр правила в 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 вы также можете проверить параметры на правильность и выполнить другие проверки и вычисления.