[Makefile] makefile et bash
Résolu
Sri Lumpa
Messages postés
177
Statut
Membre
-
fiddy Messages postés 11653 Statut Contributeur -
fiddy Messages postés 11653 Statut Contributeur -
Bonjour,
Je cherche à définir dans un makefile une variable que je peux obtenir (normalement) grâce à une commande bash. Malheureusement, il n'est pas possible d'exécuter ce genre de commande dans un makefile. Etant pas très pro en makefile, je sais pas trop comment m'en sortir.
Bêtement j'aimerais pouvoir intialiser une variable dans mon makefile de la même manière que si je faisais
Quelqu'un a-t-il une solution ?
Je cherche à définir dans un makefile une variable que je peux obtenir (normalement) grâce à une commande bash. Malheureusement, il n'est pas possible d'exécuter ce genre de commande dans un makefile. Etant pas très pro en makefile, je sais pas trop comment m'en sortir.
Bêtement j'aimerais pouvoir intialiser une variable dans mon makefile de la même manière que si je faisais
VAR=$(ma_commande)dans un shell.
Quelqu'un a-t-il une solution ?
A voir également:
- Makefile bash
- Bingo bash free - Télécharger - Divers Jeux
- Bash pause ✓ - Forum Shell
- Bash addition - Forum Programmation
- Bash permission non accordée - Forum Shell
- Bash list ✓ - Forum Shell
10 réponses
Sinon, pour ceux que ca interesse, il est possible d'initialiser une variable d'un Makefile avec le resultat d'un script shell avec la construction $(shell ...)
Par example, pour que la variable FILES contiennent tous les fihier .suf du repertoire monRep:
FILES = $(shell find monRep -name *.suf -printf "%f ")
Il est meme possible de faire des pipes:
FILES = $(shell find monRep -name *.suf -printf "%f " | sed "s/.suf/.fus/g")
Par example, pour que la variable FILES contiennent tous les fihier .suf du repertoire monRep:
FILES = $(shell find monRep -name *.suf -printf "%f ")
Il est meme possible de faire des pipes:
FILES = $(shell find monRep -name *.suf -printf "%f " | sed "s/.suf/.fus/g")
Salut,
Initialiser une variable en makefile se fait comme ceci : CC=gcc par exemple.
Son utilisation $(CC)
Cdt
Initialiser une variable en makefile se fait comme ceci : CC=gcc par exemple.
Son utilisation $(CC)
Cdt
Oui, ça je sais mais quand il s'agit de récupérer le résultat d'une commande bash ? En gros, je fais
et il me retourne toujours LIBTIFF comme étant vide (pourtant je sais que la commande retourne /usr/lib). J'ai parcouru rapidement le web, et il semblerait qu'il ne soit pas possible de lancer des commandes bash dans un Makefile. Je sais pas comment contourner le problème.
LIBTIFF = $(dirname $(find / -name libtiff.a))
et il me retourne toujours LIBTIFF comme étant vide (pourtant je sais que la commande retourne /usr/lib). J'ai parcouru rapidement le web, et il semblerait qu'il ne soit pas possible de lancer des commandes bash dans un Makefile. Je sais pas comment contourner le problème.
Re,
Je ne pense pas que ce soit possible. Mais je n'en vois pas l'utilité. Autant faire directement un script en bash non ?
Je ne pense pas que ce soit possible. Mais je n'en vois pas l'utilité. Autant faire directement un script en bash non ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En fait je cherche à recréer un package .deb en ajoutant une option au moment de la configuration. Comme le fichier debian/rules et considérer comme un makefile, je voulais faire cette petite modif dedans.
Je suis en train de me dire que c'est pas comme ça que je devrais faire mais je vois pas d'autre méthode :(
Je suis en train de me dire que c'est pas comme ça que je devrais faire mais je vois pas d'autre méthode :(
hello
pour configurer il y a un script, non ?
dans le script mettre, avant le make
LIBTIFF = $(dirname $(find / -name libtiff.a)) ; export LIBTIFF
et dans la makefile appeller
$(LIBTIFF)
pour configurer il y a un script, non ?
dans le script mettre, avant le make
LIBTIFF = $(dirname $(find / -name libtiff.a)) ; export LIBTIFF
et dans la makefile appeller
$(LIBTIFF)
Je dois pas m'y prendre de la bonne façon...
ce que je souhaites faire, c'est dans le fichier des règles de compilation du paquet (debian/rules), c'est ajouter au moment de la configuration du paquet (c'est à dire du lancement du script configure) l'option --with-libtif=... pour que quand on fasse un apt-get install mon_paquet, la configuration se fasse automatiquement avec cette option.
Au fond, je dois probablement pas bien comprendre comment bien réaliser les règles de création de paquets Debian :s
ce que je souhaites faire, c'est dans le fichier des règles de compilation du paquet (debian/rules), c'est ajouter au moment de la configuration du paquet (c'est à dire du lancement du script configure) l'option --with-libtif=... pour que quand on fasse un apt-get install mon_paquet, la configuration se fasse automatiquement avec cette option.
Au fond, je dois probablement pas bien comprendre comment bien réaliser les règles de création de paquets Debian :s
Bon c'est réglé, j'ai plus ou moins suivi vos conseils en créant un script bash qui me fait ma config générale te que j'appelle au moment du build.
En tout cas, merci de votre aide.
En tout cas, merci de votre aide.