[Makefile] makefile et bash
Résolu/Fermé
Sri Lumpa
Messages postés
177
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
1 juin 2010
-
11 juil. 2008 à 18:26
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 25 juil. 2009 à 23:51
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 25 juil. 2009 à 23:51
A voir également:
- Makefile bash
- Bingo bash free - Télécharger - Divers Jeux
- Retour à la ligne bash ✓ - Forum Shell
- Bash écrire dans un fichier - Forum Shell
- Bash addition ✓ - Forum Shell
- [Bash]Impossible de faire une simple addition - 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")
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
11 juil. 2008 à 18:43
11 juil. 2008 à 18:43
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
Sri Lumpa
Messages postés
177
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
1 juin 2010
69
11 juil. 2008 à 18:58
11 juil. 2008 à 18:58
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.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
12 juil. 2008 à 00:55
12 juil. 2008 à 00:55
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
Sri Lumpa
Messages postés
177
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
1 juin 2010
69
12 juil. 2008 à 07:26
12 juil. 2008 à 07:26
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 :(
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
12 juil. 2008 à 14:10
12 juil. 2008 à 14:10
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)
Sri Lumpa
Messages postés
177
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
1 juin 2010
69
12 juil. 2008 à 16:26
12 juil. 2008 à 16:26
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
Sri Lumpa
Messages postés
177
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
1 juin 2010
69
13 juil. 2008 à 08:19
13 juil. 2008 à 08:19
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.
salut
je sais que la reponse arrive tres tardivement mais bon si qqn tombe dessus il pourra avancer un peu.
il semblerait que la seule solution soit celle des vieux bash
utilisation des `cmd`
donc ca donnerais
LIBTIFF=`dirname $(find / -name libtiff.a)`
je sais que la reponse arrive tres tardivement mais bon si qqn tombe dessus il pourra avancer un peu.
il semblerait que la seule solution soit celle des vieux bash
utilisation des `cmd`
donc ca donnerais
LIBTIFF=`dirname $(find / -name libtiff.a)`
re la solution officiel
est de faire
LIBTIFF=$(shell dirname $(find / -name libtiff.a)
(desole je n'ai pas reussit a modifier mon post precedent)
est de faire
LIBTIFF=$(shell dirname $(find / -name libtiff.a)
(desole je n'ai pas reussit a modifier mon post precedent)
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
25 juil. 2009 à 23:51
25 juil. 2009 à 23:51
soit la version de dubcek donné un an plus tôt ^^.