Параметры монтирования на клиенте NFS могут быть более строгими, чем на сервере, но не наоборот. Например, если общий ресурс экспортируется для чтения / записи, клиент может выбрать монтирование только для чтения. Однако, если общий ресурс экспортируется только для чтения, клиент становится доступным только для чтения, независимо от того, как он пытается его смонтировать.
Проблема с
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 содержит пробелы).
Не очень понятно, что именно вам нужно. Но если вы хотите, чтобы вам нужно было изменить настройки переменной 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