Я использую Make и у меня есть make-файл, который устанавливает переменную со значением, которое мне нужно переопределить из родительского make-файла. Я попытался установить переменную в родительском make-файле и использовать export
, чтобы передать ее в подмакету, но переменная не использует переданное значение, вместо этого оно использует значение, явно заданное в под-Makefile.Переопределение подменю назначенных переменных в родительском make-файле
Я знаю, что переменные, указанные в командной строке, переопределяют любые обычные назначения в make-файле (если не используется override
), но есть ли способ достичь этого для подземелий без необходимости указывать его в командной строке для каждого вызова (потому что их довольно много, и мне нравится оставаться СУХОЙ)?
UPDATE
Я должен отметить, что я не могу изменить файл submake, потому что это из внешнего хранилища, которую мы отслеживаем и не имеют права изменять его, поэтому мне нужно работать родительский уровень makefile, чтобы повлиять на подделку.
Пример
Вот представитель цель в родительском Makefile, который звонит в submake:
$.PHONY (external_lib)
$(external_lib):
$(MAKE) -C $(source_dir)/project/component $(PROJECTVARS) make_a
$(MAKE) -C $(source_dir)/project/component $(PROJECTVARS) make_b
$(MAKE) -C $(source_dir)/project/component $(PROJECTVARS) make_c
$(MAKE) -C $(source_dir)/project/component $(PROJECTVARS) make_d
$(MAKE) -C $(source_dir)/project/component $(PROJECTVARS) make_e
$(MAKE) -C $(source_dir)/project/component $(PROJECTVARS) make_f
$(MAKE) -C $(source_dir)/project/component $(PROJECTVARS) make_g
$(MAKE) -C $(source_dir)/project/component $(PROJECTVARS) make_h
$(MAKE) -C $(source_dir)/project/component $(PROJECTVARS) make_i
$(MAKE) -C $(source_dir)/project/component $(PROJECTVARS) library
1) Вы готовы изменить файл подкачки? 2) указание переменной в командных строках может быть DRYER, чем вы думаете, можете ли вы дать нам образец родительского файла с несколькими командами MAKE? – Beta