O problema com
MYLIB:=$(MYLIB_ENV)
MYLIB?=/.../mylib-1.2.34
é que MYLIB
é sempre definido na primeira linha, então o segundo nunca se aplica.
A abordagem típica nessa situação é apenas
MYLIB?=/.../mylib-1.2.34
Dessa forma, desenvolvedores individuais podem especificar seu próprio valor a partir do shell, seja na linha de comando make
make MYLIB=...
ou em seu ambiente antes de executar make
export MYLIB=...
make
(para que eles possam defini-lo uma vez, por exemplo. em seus scripts de inicialização do shell, e esquecê-lo).
Se você acabou de executar
make
sem especificar um valor para MYLIB
, o padrão /.../mylib-1.2.34
é usado.
Outra opção é determinar onde o Makefile é armazenado , mas isso não funciona em todos os casos (em particular, se o caminho para o Makefile contém espaços).