gnuMake, Как переопределить переменную среды

Параметры монтирования на клиенте NFS могут быть более строгими, чем на сервере, но не наоборот. Например, если общий ресурс экспортируется для чтения / записи, клиент может выбрать монтирование только для чтения. Однако, если общий ресурс экспортируется только для чтения, клиент становится доступным только для чтения, независимо от того, как он пытается его смонтировать.

5
12.03.2017, 06:34
2 ответа

Проблема с

MYLIB:=$(MYLIB_ENV)
MYLIB?=/.../mylib-1.2.34

заключается в том, что MYLIB всегда определяется в первой строке, поэтому вторая никогда не применяется.

Типичный подход в этой ситуации просто

MYLIB?=/.../mylib-1.2.34

Таким образом, отдельные разработчики могут указать свое собственное значение из оболочки либо в командной строке make

make MYLIB=...

, либо в своей среде перед запуском ] make

export MYLIB=...
make

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

Если вы просто запускаете

make

без указания значения для MYLIB , используется значение по умолчанию /.../ mylib-1.2.34 .

Другой вариант - определить, где хранится Makefile , но это работает не во всех случаях (в частности, если путь к Makefile содержит пробелы).

13
27.01.2020, 20:34

Не очень понятно, что именно вам нужно. Но если вы хотите, чтобы вам нужно было изменить настройки переменной make MYLIB на что-то отличное от того, что указано в Makefile, БЕЗ необходимости редактировать Makefile для этого, то это очень просто: в вашем make , укажите MYLIB в командной строке со значением по вашему выбору, например:

make -f yourmakefile yourtarget MYLIB="I_need_my_personal_value"

Другой метод:

MYLIB := ORIGINAL_VALUE

ifneq '$(MYLIB_ENV)' ''
MYLIB := $(MYLIB_ENV)
endif
2
27.01.2020, 20:34

Теги

Похожие вопросы