Параметр для правила в Makefile - PullRequest
12 голосов
/ 24 января 2011

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

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

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

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

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

Ответы [ 2 ]

23 голосов
/ 24 января 2011

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

Если ваш make-файл выглядит следующим образом:

run:
        script $(param1) $(param2)

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

$> make run param1=20 param2=30

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

script 20 30
2 голосов
/ 30 сентября 2014

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

./configure param1 param2
make run

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...