Você não pode escrever scripts de bash
de várias linhas em Makefile
. Cada linha é executada em um novo shell, então você perderá o contexto. Além disso, as variáveis são avaliadas como make
variables. Em vez disso, armazene seu código em script bash
separado e execute isso em Makefile
. Não vale a pena abusar do seu script bash
nem make
para fazer esse trabalho.
Se você realmente quiser tê-lo em seu Makefile
, você precisa torná-lo uma linha e escapar dos dólares em variáveis.
Exemplo que não funcionará:
$ cat Makefile
test:
VAR="YES";
echo "x${VAR}";
$ make
VAR="YES";
echo "x";
x
Escapado:
$ cat Makefile
test:
VAR="YES"; \
echo "x$${VAR}";
jakuje@E6430:/tmp/test$ make
VAR="YES"; \
echo "x${VAR}";
xYES