Параметр для правила в Makefile

мне нужно сделать Makefile, и он должен иметь run правило. Однако для выполнения требуются некоторые параметры.

кто-нибудь знает, как я могу передавать аргументы при запуске правила в файле Makefile? Я хочу иметь возможность запускать run правило с аргументами, введя make run foo bar.

Я пробовал это, но это не сработало:

run:
    make compile
    ./scripts/runTrips   $PLACES $OUT $VERS

параметры, которые я хочу предоставить, являются первым и вторым.

2 ответов


при передаче параметров в команду make ссылайтесь на них, как на другие внутренние переменные make.

Если ваш Makefile выглядит так:

run:
        script $(param1) $(param2)

вы можете вызвать его со следующим синтаксисом:

$> make run param1=20 param2=30

и должен вызвать скрипт так:

script 20 30

Make сам не предоставляет передаваемые аргументы, как для скриптов. Обычно make используется следующим образом: вы настраиваете проект, чем запускаете просто "make". Настройка может быть выполнена путем запуска сценария оболочки "configure". Этот скрипт-тот, в который можно передавать параметры. Например:

./configure param1 param2
make run

configure script должен анализировать параметры и записывать их в config.МК. config.mk должен содержать следующее:

PARAM1 = val1
PARAM2 = val2

ваш Makefile должен включать config.МК:

TOP = .
include $(TOP)/config.mk

run:
    make compile
    ./scripts/runTrips $(PARAM1) $(PARAM2) $(PLACES) $(OUT) $(VERS)

в вашем скрипте "настройка" вы также можете проверить параметры на правильность и сделать другие проверки и вычисления.