У меня есть куча qmake
-генерированных make-файлов, каждый из которых вызывает make
внутри них (рекурсивный make
) в цепном виде.GNU recursive make - как захватить make-переменные для выполнения вложенного make-файла
После того, как моя сборка окончена, все созданные файлы на qmake
находятся на диске, поэтому можно подумать, что я могу просто позвонить make
на одном из них, если я захочу «воспроизвести» один конкретный make-файл. Неправильно.
Когда я пытаюсь выполнить make
, он не работает, возможно, потому что есть куча (окружения) переменных, которые он обычно наследует от вызывающего make-файла во время нормальной сборки.
За исключением переменных, каждый созданный make-файл qmake
довольно автономный.
ВОПРОС
Как я могу имитировать «нормальный» среды для данной рекурсивной make
так, что я могу назвать это в одиночку?
Я думаю, что мне нужно что-то сделать с выходом --print-data-base
: проанализируйте его, а затем позвоните по номеру make
с теми же самыми знаками и значениями, которые были у него во время нормальной сборки.
ПОЧЕМУ
Я делаю это потому, что мне нужно изменить команды компиляции для ONE Makefile, но это все под контролем верхнего уровня .conf
, и я получаю в слишком глубоко.
Разве вы не можете просто вызвать сделать на верхней Makefile и указать конкретную цель, которую вы заинтересованы в ('сделать что-я-want')? –
@ RenaudPacalet нет, потому что они прикованы. На верхнем уровне выполняются вызовы Qmake, которые генерируют make-файл, вызовы делают на нем, вызывают qmake изнутри этого, чтобы сгенерировать еще один make-файл, а затем нажимают make на этом. – Adrian
@Adrian, вы знаете, что Make не предназначен для рекурсии и единственной ситуации, когда рекурсивный Make работает правильно, если вы вызываете Make на подмодуле «черного ящика», то есть изолированный от остальной части сборки, явно не ваш случай ? –