Ensemble de commande dans un makefile

Ensemble de commande dans un makefile - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 21-03-2006 à 14:20:48    

Bonjour
j'ai un petit makefile, et je me demandais si je pouvais mettre un truc dans ce genre :

Code :
  1. REP = proto
  2. COMPILE = ./autogen.sh --prefix=/opt/fdo && make && make install && cd ../../
  3. all:
  4. cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg co proto/XCMisc
  5. cd $(REP)/XCMisc
  6. COMPILE


 
Ca eviterai que le code soit trop long,
 
Merci de votre aide.


---------------
Celui qui sauve une vie, sauve l'humanité (Le Talmud) - Personne n'a plus grand amour que celui de donner sa vie pour ses amis (Jean XV, 13)
Reply

Marsh Posté le 21-03-2006 à 14:20:48   

Reply

Marsh Posté le 21-03-2006 à 15:33:14    

lorsque make met à jour une cible, il lit les commandes dans ton makefile et les exécute l'une après l'autre dans des sous-shells différents. Du coup, ton "cd" de la deuxième ligne ne sert à rien car il n'affecte pas la commande suivante. Il faut que ton "cd" soit exécuté en séquence avec la commande suivante :

all:
     cd $(REP) ; $(COMPILE)


Message édité par franceso le 21-03-2006 à 15:35:31
Reply

Marsh Posté le 21-03-2006 à 16:46:20    

Pour faire un truc comme ça (c'est dire sans gestion de dépendances ni rien), je pense qu'un simple script shell serait plus suffisant. Pourquoi utiliser un Makefile ?

Reply

Marsh Posté le 21-03-2006 à 17:04:13    

oui je suis d'accord aussi avec, mais mon tuteur veut me faire bosser sur les makefiles donc c pour ca que je fais ca
 
 
francesc o)=> merci je vais essayer ca


---------------
Celui qui sauve une vie, sauve l'humanité (Le Talmud) - Personne n'a plus grand amour que celui de donner sa vie pour ses amis (Jean XV, 13)
Reply

Marsh Posté le 21-03-2006 à 17:09:10    

les makefile c'est bon, mangez en :o


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed