Рекурсивный вызов make файла с присвоением переменной не работает - PullRequest
0 голосов
/ 13 июля 2020

Я работаю над несколькими модификациями в GNUmakefile нашей системы сборки.

Прямо сейчас у нас есть часть обработки в сценарии оболочки, где мы хотели переместить эту часть кода в GNUmakefile.

Фрагмент оболочки: -

args="TEST=1 PROJECTS=\"\""
make $args test_target

Примечание: - PROJECTS переменная должна быть определена, и она пуста.

Теперь мы хотели переместить этот код (запущенный make) в файл GNUmakefile, где я пытаюсь вызвать сам make.

фрагмент GNUmakefile

ifdef PROJECTS
  DIRS := ...
endif
....
$(MAKE) DISABLE_TEST=1 PROJECTS="" 

Я хочу выполнить некоторую обработку внутри условия if выше. Но во время бега я заметил, что он даже не зайдет внутрь, если проверил. Когда я звонил через сценарий оболочки, он работал нормально, как и ожидалось. Не могли бы вы помочь, как мы можем решить эту проблему?

1 Ответ

0 голосов
/ 13 июля 2020

При использовании

Ifdef PROJECTS
  DIRS := ...
endif

DIRS := ... запускается, только если PROJECTS имеет непустое значение.

При запуске сценария оболочки:

args="TEST=1 PROJECTS=\"\""
make $args test_target

PROJECTS равно не пусто, но содержит ""

...