LINUX.ORG.RU

Запросить значение цели, которая была в командной строке

 


0

2

Приветствую.
Запускаем make:

$ make install
имеем рецепт:
install: action ;

action:
    VAR=
Может ли кто-нибудь подсказать способ, который позволит присвоить переменной VAR значение install, которое мы передали в качестве аргумента при вызове make? Был бы clean, то VAR был бы == clean. Я имею в виду официальный способ, сделать обвёртку над мэйком и передать цель через окружения я и сам могу ))

Ты лучше конечный результат опиши, а то может пытаешься гланды через задницу удалить.

Radjah ★★★★★ ()
Ответ на: комментарий от Radjah

Ну в общем примерно так: есть главный мэйк и субмэйки, главный запускает цель во всех подпроектах. Очевидный способ сразу - сделать в одном правиле через shell, но ведь не будет параллелиться, не лучший способ, наверное. Сделал такой костылёк:

%::
	$(MAKE) -C $(firstword $(subst ++++, ,$@)) $(lastword $(subst ++++, ,$@))

all: 1_/build++++all 2_/build++++all  ;
clean: 1_/build++++clean 2_/build++++clean ;
Можно подрихтовать, конечно, в макросы завернуть, чтобы не дублировать имена. Но ведь костыль же.

pavlick ()
Ответ на: комментарий от joy4eg

Спасибо, похоже это то что нужно. Чуть позже гляну, отпишусь.

pavlick ()
Ответ на: комментарий от joy4eg

Всё работает, я это и искал. Набросал так:

.PHONY: all install uninstall clean
all install uninstall clean: 1_/build 2_/build ;

#1_/build: 2_/build  # если надо, задаём порядок построения

%/build: FORCE
	$(MAKE) -C $@ $(MAKECMDGOALS)
FORCE: ;
Еще раз спасибо.

pavlick ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.