Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[HS] Makefile

6 réponses
Avatar
Jean-Michel OLTRA
bonjour,


HS violent, mais je sèche...

J'essaie de faire un Makefile en redéfinissant une variable dans une
cible:

DESTDIR = /chemin/par/defaut

install:
commandes vers $(DESTDIR)

install-ailleurs: DESTDIR = /autre/chemin
$(MAKE) install

Mais il me jette sur le `$(MAKE) install` en disant que les commandes
commencent avant la première cible. C'est la redéfinition de DESTDIR qui
est fautive. Le manuel de make dit qu'il est possible d'agir ainsi.

Où est l'erreur ? Quelqu'un sait/voit ?

merci.

--
jm



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

6 réponses

Avatar
Jean-Damien Durand
On Wednesday 03 May 2006 08:46, Jean-Michel OLTRA wrote:
J'essaie de faire un Makefile en redéfinissant une variable dans une
cible:

DESTDIR = /chemin/par/defaut

install:
commandes vers $(DESTDIR)

install-ailleurs: DESTDIR = /autre/chemin
$(MAKE) install

Mais il me jette sur le `$(MAKE) install` en disant que les commandes
commencent avant la première cible. C'est la redéfinition de DE STDIR qui
est fautive. Le manuel de make dit qu'il est possible d'agir ainsi.



Essaie ca:

DESTDIR := /chemin/par/defaut

install:
commandes vers $(DESTDIR)

install-ailleurs:
$(MAKE) install DESTDIR=/autre/chemin

A+, JD / ps: mettre des tabulation au lieu des espaces
Avatar
Didier Verna
Jean-Michel OLTRA wrote:

install-ailleurs: DESTDIR = /autre/chemin
$(MAKE) install




install-ailleurs:
$(MAKE) DESTDIR=/autre/chemin install


--
Didier Verna, , http://www.lrde.epita.fr/~didier

EPITA / LRDE, 14-16 rue Voltaire Tel.+33 (1) 44 08 01 85
94276 Le Kremlin-Bicêtre, France Fax.+33 (1) 53 14 59 22 s.org
Avatar
Jean-Michel OLTRA
bonjour,


Le mercredi 03 mai 2006, Jean-Damien Durand a écrit...


DESTDIR := /chemin/par/defaut



install:
commandes vers $(DESTDIR)



install-ailleurs:
$(MAKE) install DESTDIR=/autre/chemin



Ma foi, c'est nickel, merci. C'est une syntaxe que je n'ai pas vu dans
la doc. J'ai bien galéré avec ce machin.

A+, JD / ps: mettre des tabulation au lieu des espaces



Oui, c'est ma configuration qui remplace les tabulations par des
espaces dans le corps du courriel.

--
jm



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jean-Michel OLTRA
bonjour,


Le mercredi 03 mai 2006, Didier Verna a écrit...


> install-ailleurs: DESTDIR = /autre/chemin
> $(MAKE) install
>



install-ailleurs:
$(MAKE) DESTDIR=/autre/chemin install



Marche aussi. Merci également.

--
jm



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Didier Verna
Jean-Michel OLTRA wrote:

Ma foi, c'est nickel, merci. C'est une syntaxe que je n'ai pas vu dans la
doc. J'ai bien galéré avec ce machin.



info make => Running => Overriding Variables (sec 9.5)

--
Didier Verna, , http://www.lrde.epita.fr/~didier

EPITA / LRDE, 14-16 rue Voltaire Tel.+33 (1) 44 08 01 85
94276 Le Kremlin-Bicêtre, France Fax.+33 (1) 53 14 59 22 s.org
Avatar
Vincent Danjean
Jean-Michel OLTRA wrote:
J'essaie de faire un Makefile en redéfinissant une variable dans une
cible:

DESTDIR = /chemin/par/defaut

install:
commandes vers $(DESTDIR)

install-ailleurs: DESTDIR = /autre/chemin
$(MAKE) install



Tu ne peux pas définir une variable et de commandes en même temps. Il
faut le faire en deux fois :
install-ailleurs: DESTDIR=/autre/chemin
install-ailleurs:
$(MAKE) install

Par contre, si cette syntaxe est valide, elle ne fera pas ce que tu
veux : DESTDIR n'est redéfini que pour la commande associé à la cible
courante (install-ailleurs) et pas pour l'invocation récursive du
Makefile. On voit mieux ce qui ce passe avec :
DESTDIR=/global
install:
echo installation dans DESTDIR=$(DESTDIR)
install-ailleurs: DESTDIR=/autre/chemin
install-ailleurs:
echo redéfinition DESTDIR=$(DESTDIR)
$(MAKE) install

La bonne solution est bien, comme il te l'a été indiqué dans d'autres
messages, de passer en argument de make la définition de ta variable
DESTDIR (comme ça, il ignore ce qu'il trouve dans le Makefile)
Ce mécanisme permet de faire des trucs du genre :
./configure --prefix=$HOME/usr
make
make install prefix=$HOME/usr/stow/monlogiciel-version

Évidemment, si le Makefile a des trucs bizarres (utilisation de
override, $(origin ), ...), ce genre de manip peut ne pas marcher.

A+
Vince


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact