Каков синтаксис условий в файлах Makefile Solaris 10?

Я вынужден использовать /usr/ccs/bin/make в Solaris 10 (SunOS 5.10).

Типичный синтаксис GNU make для ifeq, который можно использовать для включения или исключения текста, не работает с Solaris make.

Я могу использовать операторы if в стиле sh при присвоении значений макросам, но я ищу способ включить или исключить кучу текста в make-файле на основе переменной среды (например, в GNU ifeq).

Любые идеи? Я также был бы признателен за любую документацию по версии make для Solaris 10.


person aoeu    schedule 28.01.2011    source источник


Ответы (2)


Solaris make — зверь средней сложности, но это не GNU Make.

Насколько я знаю, он не использует условные выражения.

У него есть условные макросы := и добавочные макросы +=.

person Jonathan Leffler    schedule 29.01.2011
comment
Я не смог найти примеры условных выражений, отсюда и этот вопрос. Означает ли ваш ответ, что то, что я пытаюсь сделать, невозможно с помощью make Solaris? - person aoeu; 02.02.2011
comment
ifeq условия являются нестандартным расширением GNU Make. В других версиях make нет (всех) расширений GNU make. Да; то, что вы пытаетесь сделать, невозможно с использованием синтаксиса, который вы пытаетесь использовать. Могут быть и другие способы добиться того же самого, но вы не сможете сделать это так же, как с помощью GNU make. (Это обратная сторона использования расширений: вы привязываетесь к конкретной реализации того, что предоставляет расширения. Привязка так же реальна с открытым исходным кодом, как и с проприетарным; просто обычно это менее болезненно, чем проприетарная блокировка, потому что у тебя есть исходники) - person Jonathan Leffler; 02.02.2011

Электронная документация также доступна здесь:

страницы руководства, раздел 1: Пользовательские команды

person jlliagre    schedule 29.01.2011
comment
Спасибо, я искал это. (Доступ к онлайн-справочным страницам с главной страницы документации оракула не сразу очевиден.) - person aoeu; 30.01.2011
comment
На самом деле, я имел в виду страницу онлайн-руководства, которая является очевидным местом для поиска. Ссылка была там на всякий случай, если вы не установили его. - person jlliagre; 02.02.2011