Вы вызываете GNU make из скрипта сборки clearmake? Или вы пытаетесь создать один make-файл, который будет поддерживать оба инструмента сборки? Я думаю, что GNUMAKEFLAGS EV безопаснее для значений GNU make specifici c. Я бы также использовал
- CCASE_MAKEFLAGS для любых makeflags, которые указаны c для очистки.
- CCASE_CON C для установки значения параллелизма. Хотя clearmake больше не передает -J в MAKEFLAGS, как это было раньше, и если вы используете более старый clearmake (где-то в семерке, насколько я помню), вы могли бы расстроить «дочерние» сеансы GNU make, поскольку им нравится -J примерно как так же, как clearmake любит -j.
Наконец, проверьте страницу руководства env_ccase на предмет поведения, упомянутого в CCASE_MAKEFLAGS_V6_OBSOLETE. Если вы явно передадите MAKEFLAGS в скрипте сборки, например
$(MAKE) $(MAKEFLAGS) TARGET=x
и запустили clearmake следующим образом:
clearmake -C gnu TARGET=Y
, вы фактически получите оба определения макроса TARGET в командной строке. Установка упомянутого EV (вообще) позволяет избежать поведения «передать определенные макросы в MAKEFLAGS». Переключатель существует потому, что у некоторых людей есть make-файлы, ЗАВИСИМЫЕ от этого поведения, в то время как у других есть файлы, РАЗРЕШЕННЫЕ этим поведением ...
Предполагая, что у вашей компании есть соглашение о поддержке с IBM или HCL, сейчас хорошее время, чтобы использовать ваши каналы поддержки, чтобы сообщить о проблемах clearmake.