Я знаю, что export
используется для рекурсивной передачи значения переменной вниз от Make-файла верхнего уровня к вспомогательным Make-файлам. Однако, если мне нужно передать переменные вверх, что мне делать?
Побочный эффект изменения экспортируемой переменной, по-видимому, исчезает после обработки вспомогательного Make-файла. Я пытался экспортировать его в подфайл Makefile, но он не работает.
Например, мне нужно собрать объектные файлы, сгенерированные вложенным Make-файлом в переменной L1
.
Makefile верхнего уровня
$(info Top-level makefile)
export L1 = one.obj
sub1:
cd sub1; make
all: sub1
$(info $(L1))
Подфайл: sub1/Makefile
$(info sub makefile)
L1 += two.obj
export L1
all:
$(info want to pass to the top-level: $(L1))
Я ожидаю, что L1
содержит one.obj
и two.obj
при построении цели all
. Тем не менее, он имеет только one.obj
.