Sto usando GNU make e includo una libreria di terze parti in un progetto che ha un sistema di build che impazzisce se CFLAGS
viene definito nell'ambiente quando viene chiamato. Mi piace avere CFLAGS
definito nel mio ambiente per altri motivi. costruzione della biblioteca sia invocata da un altro makefile, in modo che io dico ad es .:È possibile "disinserire" una variabile d'ambiente in un Makefile?
3rdparty: $(MAKE) -f Makefile.3rdparty
ma vorrei essere sicuro che CFLAGS
è impostata quando invoco rendere al 3 ° partito Makefile. La cosa più vicina che posso trovare è dire:
CFLAGS:=
Ma questo lascia ancora CFLAGS
set nell'ambiente, è solo una stringa vuota. Oltre dal fare qualcosa di orribile come dire:
3rdparty: bash -c "unset CFLAGS; $(MAKE) -f Makefile.3rdparty"
C'è un modo semplice per "unset" il CFLAGS
variabile da dentro il mio makefile primaria, in modo che esso non è presente affatto nel ambiente quando viene richiamata la libreria di terze parti?
lo fa! Non conoscevo la parola chiave "unexport", ora lo so. Grazie! –
@ JayWalker, contrassegnare questa risposta come accettata se si è soddisfatti. –