Se il vostro obiettivo è quello di impostare solo le variabili d'ambiente per Make, perché non tenerlo nella sintassi Makefile e utilizzare il comando include
?
include other_makefile
Se si deve richiamare lo script di shell, catturare il risultato in un comando shell
:
JUST_DO_IT=$(shell source_script)
il comando di shell deve essere eseguito prima dei bersagli. Tuttavia questo non imposterà le variabili d'ambiente.
Se si desidera impostare le variabili di ambiente nella generazione, scrivere uno script di shell separato che indirizzi le variabili e le chiamate di ambiente create. Quindi, nel makefile, gli obiettivi chiamano il nuovo script della shell.
Ad esempio, se il makefile originale ha bersaglio a
, poi si vuole fare qualcosa di simile:
# mysetenv.sh
#!/bin/bash
. <script to source>
export FLAG=1
make "[email protected]"
# Makefile
ifeq($(FLAG),0)
export FLAG=1
a:
./mysetenv.sh a
else
a:
.. do it
endif
fonte
2011-09-21 23:13:11
Suona come quello che vuoi veramente è scrivere uno script che indirizzi il tuo script per impostare envvars e poi esegua make, piuttosto che avere lo stesso script sorgente ... –