Incluir variável de ambiente para duração da tarefa Tornar

3

Estou usando o make para manipular arquivos de construção para meu aplicativo, e esses processos de construção usam módulos de nó. Como eu instalo esses módulos de nó localmente, eu preciso especificar no meu $PATH onde chamar os executáveis, por exemplo, %código%.

Eu configurei uma variável dentro do meu Makefile, PATH=$(npm bin):$PATH , e prefixei isso aos meus comandos quando preciso. No entanto, para algumas tarefas mais longas, como durante os testes que executam vários comandos, seria conveniente que essa atribuição de PATH ocorresse durante toda a duração da tarefa, como NPMEXEC := PATH=$(shell npm bin):$$PATH / pushd . Isso é possível?

    
por josh 15.07.2016 / 23:05

2 respostas

2

“Tarefa” não é comum fazer terminologia. Suponho que você esteja se referindo a uma regra . Se você estiver usando o GNU make, você pode definir uma variável para uma regra específica, ou mais precisamente, para um target específico .

test-results: export PATH := $(shell npm bin):$$PATH
test-results: test-binary1 test-binary2 test-data2 reference-test-results
        test-binary1 >test-results
        test-binary2 test-data2 >>test-results
        diff test-results reference-test-results

Observe que a atribuição está na sintaxe make, que não é igual à sintaxe do shell. E observe que, ao modificar uma variável, você deve usar atribuição ansiosa (“expandida”) , não a designação = lazy que criaria uma referência circular.

    
por 17.07.2016 / 02:19
0

Acho que você está procurando o comando export no bash (ou o equivalente no shell de sua escolha): link

    
por 16.07.2016 / 10:11