Как заставить gnumake вести себя так, как если бы были переданы параметры по умолчанию в командной строке? - PullRequest
0 голосов
/ 02 октября 2010

Я использую make-файл, в котором, если я передаю параметры в командной строке, такие как

make OPT1=opt1 OPT1=2

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

OPT1=opt1
OPT2=opt2

и затем запустите

make

в командной строке.

Мне нужно поведение, в котором я использую параметры в командной строке. Прямо сейчас я использую псевдоним, но яМне интересно узнать, можно ли это сделать только с помощью Makefile.

Спасибо.

Ответы [ 2 ]

1 голос
/ 07 октября 2010

В итоге я решил, что это так:

mv Makefile Makefile.aux

затем создайте сейчас Makefile с содержимым

OPT1=true
OPT2=false

DEFAULT_OPTS=--no-print-directory OPT1=$(OPT1) OPT2=$(OPT2)

.PHONY : $(MAKECMDGOALS)
$(MAKECMDGOALS):
        $(MAKE) -f Makefile.aux $(DEFAULT_OPTS) $(MAKEFLAGS) $(MAKECMDGOALS)

.PHONY: all
all:
        $(MAKE) -f Makefile.aux $(DEFAULT_OPTS) $(MAKEFLAGS) $(MAKECMDGOALS)

Причина, по которой я использую --no-print-directory, заключается в том, что если я использую этот метод без этой опции, он напечатает дополнительное сообщение в начале и в конце компиляции.

1 голос
/ 02 октября 2010

Использует ли ваш файл make команду origin для этих переменных, чтобы решить, следует ли их перезаписать? Это возвращает, ну, в общем, происхождение переменной, например, "environment" или "command line", и, возможно, make-файл написан для того, чтобы сделать что-то другое в этих случаях.

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