Это ответвление на мой другой вопрос .
Есть ли что-то особенное, что я должен сделать, чтобы заставить эту работу работать с переменными экспорта?
Так что я запускаю этот файл Makefile, который включает основной Makefile в другом месте.В этом локальном Makefile у меня есть:
include /path/to/master/Makefile/
export TOOL = A
Теперь в моем Master Makefile у меня есть:
ifeq ( $(TOOL), A )
echo "Tool A will be run..."
[syntax for toolA]
else
echo "Tool B will be run..."
[syntax for toolB]
endif
Но когда я запускаю gmake, toolB всегда запускается!Я проверил переменную $ (TOOL), и она показывает A. Что я делаю не так?
Спасибо !!
EDIT : Пример добавления Makefile.
Для моей проблемы, перемещение include на после экспорта исправило мою проблему.Но это уже существующий Makefile, и включение include в самом верху всегда работало!
Оператор include находится наверху локального, а весь экспорт - внизу.Только моя новая экспортная линия терпит неудачу.Кто-нибудь знает почему?
Локальный Makefile
export TOOL A
include /path/to/master/Makefile
export VERSION IMP-IR5
Мастер Makefile
export VERSION IAP-100
ci:
ifeq ( $(TOOL), A )
echo "Tool A will be run..."
[syntax for toolA]
echo $(VERSION)
else
echo "Tool B will be run..."
[syntax for toolB]
echo $(VERSION)
endif
Вывод
echo "Tool A will be run..."
Tool A will be run...
echo IMP-IR5
IMP-IR5
Но если я переключу верхнюю часть на строки в локальном Makefile (как это было изначально):
include /path/to/master/Makefile
export TOOL A
export VERSION IMP-IR5
Я получаю:
echo "Tool B will be run..."
Tool B will be run...
echo IMP-IR5
IMP-IR5
Почему IMP-IR5 проходит, но не инструмент A?Так растерялся ...