В нагрузку к предыдущему псто можно сказать одно - make 3.81 и 3.82 - в некотором поведении между собой несовместимы.
В предыдущем псто был пример с ifndef VAR и в нём делалось объявление этой самой VAR. Засада вылезла с той стороны с которой я её ну аще никак не ждал. Оказалось, что у make 3.81 и 3.82 по разному обрабатываются переменные командной строки. 3.82 их подставляет как надо, а вот 3.81 почему-то сначала выполняет присваивание которое в коде, гадит ошибками, после чего присваивает переменным те значения, которые переданы в параметрах командной строки. шозанах, я так и не понял. Пришлось устраивать трэш и передавать параметры как переменные окружения, вызывая
В предыдущем псто был пример с ifndef VAR и в нём делалось объявление этой самой VAR. Засада вылезла с той стороны с которой я её ну аще никак не ждал. Оказалось, что у make 3.81 и 3.82 по разному обрабатываются переменные командной строки. 3.82 их подставляет как надо, а вот 3.81 почему-то сначала выполняет присваивание которое в коде, гадит ошибками, после чего присваивает переменным те значения, которые переданы в параметрах командной строки. шозанах, я так и не понял. Пришлось устраивать трэш и передавать параметры как переменные окружения, вызывая
VAR=value make -e <target>Вот такие пироги с котятами. Я допускаю, что я упорот и строю костыли там где не надо. Если так, разупорите примером. про ?= знаю, не помогло.
Комментариев нет:
Отправить комментарий