Многослойный make-файл кросс-компиляции - PullRequest
0 голосов
/ 17 апреля 2020

Как параметры передаются из родительского make-файла в дочерний make-файл в процессе кросс-компиляции? Все дочерние модули могут использовать не весь набор инструментов в своих собственных make-файлах, а только некоторые его части. Как родитель передает эти данные кросс-компилятора, такие как CC ranlib, ar и другие, дочерним make-файлам во время их индивидуальных вызовов. Также, как я узнаю, использую ли я Cmake или qmake. Я знаю в этой области. Любые ссылки или фрагменты кода могут быть полезны.

1 Ответ

0 голосов
/ 17 апреля 2020

Для нормальных переменных, которые установлены в make-файле, например, FOO = bar, они вообще не передаются под-маркам.

Если вы пометите нормальную переменную как экспортированную (через export FOO) тогда они будут переданы субмейкам в среде, как и любая другая переменная среды. Обратите внимание, что назначения в make-файле субмаки, такие как FOO = baz, будут иметь приоритет над любым значением, полученным из среды.

Для переменных, которые установлены в командной строке, таких как make FOO=bar, они передаются через специальный MAKEFLAGS переменная, и они будут иметь приоритет над любыми переменными, установленными в подмаке.

Однако для последнего следует помнить, что когда вы вызываете подмодель, вы должны всегда используйте переменную $(MAKE) (или ${MAKE}, то же самое) и никогда используйте голое изготовление как make.

См. документы по рекурсивное использование марки .

...