Existe-t-il un meilleur moyen de générer un script, qui définit les variables d'environnement, à partir d'un makefile ?
FLAG ?= 0
ifeq ($(FLAG),0)
export FLAG=1
/bin/myshell -c '<source scripts here> ; $(MAKE) $@'
else
...targets...
endif
Existe-t-il un meilleur moyen de générer un script, qui définit les variables d'environnement, à partir d'un makefile ?
FLAG ?= 0
ifeq ($(FLAG),0)
export FLAG=1
/bin/myshell -c '<source scripts here> ; $(MAKE) $@'
else
...targets...
endif
En utilisant GNU Make 3.81, je peux sourcer un script shell à partir de make en utilisant :
rule:
<tab>source source_script.sh && build_files.sh
build_files.sh « obtient » les variables d'environnement exportées par source_script.sh.
Notez qu'en utilisant :
rule:
<tab>source source_script.sh
<tab>build_files.sh
ne fonctionnera pas. Chaque ligne est exécutée dans son propre sous-shell.
Cela fonctionne pour moi. Remplacez env.sh
par le nom du fichier que vous souhaitez sourcer. Cela fonctionne en sourçant le fichier dans bash et en sortant l'environnement modifié, après l'avoir formaté, dans un fichier appelé makeenv
qui est ensuite sourcé par le makefile.
IGNORE := $(shell bash -c "source env.sh; env | sed 's/=/:=/' | sed 's/^/export /' > makeenv")
include makeenv
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.