Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 31/10/2006, à 00:43

GreenSkol

echo dans Makefile et caractères d'échappement

Bonjour,

Après un upgrade de Breezy vers Edgy, j'ai un souci avec la gestion du "echo" dans les Makefile, qui m'empêche de cross-compiler la glibc-2.3.2 :

Le Makefile minimaliste suivant illustre très bien le problème auquel je suis confronté :

all:
        @echo "\"Available extensions:\\n\"";

Sous breezy, ça donnaît (ce que j'attendais) :

"Available extensions:\n"

Et sous Edgy, ça donne malheureusement (et ça ne compile plus...) :

"Available extensions:
"

Ce que je ne comprends pas, c'est que normalement le Makefile s'appuie sur le shell par défaut ($SHELL=/bin/bash) pour exécuter les commandes shell. Sous Edgy et Breezy la commande "echo" me renvoie bien la bonne chaîne quand je l'exécute...

C'est comme si l'option "-e" était passée au bash qu'exécute make.

Quelqu'un aurait-il une solution miracle à me proposer ??

Merci d'avance,

GreenSkol.

Hors ligne

#2 Le 31/10/2006, à 04:08

foobar2000

Re : echo dans Makefile et caractères d'échappement

Ceci devrait marcher :

all:
        @echo '"Available extensions:\n"'

Aucun rapport avec le logiciel du même nom.

Hors ligne

#3 Le 31/10/2006, à 14:28

GreenSkol

Re : echo dans Makefile et caractères d'échappement

Merci pour le correctif, mais je voulais éviter de me taper tous les Makefile (je cross-compile une distribution complète pour un équipement embarqué...).

J'ai trouvé la solution du problème : avec Edgy, /bin/sh ne pointe plus vers bash, mais vers dash.
Comme la plupart des makefile ne définissent pas la variable SHELL, make se replie alors vers /bin/sh, et donc vers la commande echo du shell qui se cache derrière sh.

Problème : echo ne fonctionne pas de la même façon sous bash et dash, et les Makefile de la glib-2.3.2 ne fonctionnent plus.

Solution : dpkg-reconfigure dash, pour lui dire de ne plus remplacer bash pour /bin/sh

Hors ligne