Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1050 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [ make ] pb assez avancé de génération automatique....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ make ] pb assez avancé de génération automatique....

n°1014312
cityhunter​xyz
100111011010010011 bip!
Posté le 16-03-2005 à 11:16:07  profilanswer
 

bonjour,
je suis en train de travailler sur un remplacement de autoconf/automake basé sur les features de gnu make....
je cherche à pousser un peu plus loin la simplification du makefile.....
pour cela je cherche à effectuer le comportement suivant :
 
dans le makefile "projet"

Code :
  1. include makefile.conf
  2. mylib.so : $(mylibsources:%.c=%.o)


 
dans le makefile.conf

Code :
  1. %.so : %.o
  2.   cmd1
  3.   cmd2
  4.   ....


 
donc dans le makefile projet : un target sans règle  
et dans le makefile de configuration : une target générique qui doit être appelée en lieu et place de celle du makefile projet
 
je sais ceci ne marche pas
en effet la règel du makefile.conf construit un .so à partir d'un seul .o
 
 
quelqu'un m'a parlé d'utiliser un truc comme cela :
makefile projet

Code :
  1. listelib= libmylib1 libmylib2
  2. sources_libmylib1 = 1.c 2.c 3.c
  3. sources_libmylib2 = a.c b.c d.c


 
dans makefile de conf

Code :
  1. $(listelib:%=%.so) : $($(@:%=sources_%):%=%.o)
  2.   cmd1
  3.   cmd2
  4.   cmd3


 
je ne suis pas sur que cela marchera..... :pt1cable:  
en particulier est-il possible de d'accéder à $@ dans la liste des prequis?
 
y aurait'il pas une manière plus simple?  :love:


Message édité par cityhunterxyz le 16-03-2005 à 15:00:26
mood
Publicité
Posté le 16-03-2005 à 11:16:07  profilanswer
 

n°1014594
cityhunter​xyz
100111011010010011 bip!
Posté le 16-03-2005 à 15:00:47  profilanswer
 

up ^_^

n°1015604
cityhunter​xyz
100111011010010011 bip!
Posté le 17-03-2005 à 09:52:55  profilanswer
 

Code :
  1. .PHONY : all
  2. listelib = libmylib1 libmylib2
  3. libmylib1 = 1.c 2.c 3.c
  4. libmylib2 = a.c b.c d.c
  5. all : $(listelib:%=%.so)
  6. %.c :
  7. @touch $@
  8. %.o : %.c
  9. @echo compile $<
  10. $(listelib:%=%.so) : $(foreach lib,$(listelib),$($(lib):%.c=%.o))
  11. @echo "$@ : $($(@:%.so=%):%.c=%.o)"


 
here is the solution ^_^
note about the use of foreach and that the .so target has a dependency upon all librairies .o
I know this is not good since linkage will be performed for every lib each time a .o is updated  :pfff:  
but $@ variables aren't accessible in prerequis
 
oups c'est un forum français ^_^ désolé....... déformation de passe temps  :whistle:  :lol:  :pt1cable:

n°1016198
cityhunter​xyz
100111011010010011 bip!
Posté le 17-03-2005 à 16:20:49  profilanswer
 

wa merci cityhunterxyz pour ce tip
tu peux obtenir le mm résultat de manière plus "clean" en utilisant un méchanisme similaire à la section "automatique dependency tracking" de l'info page
 

Code :
  1. .PHONY : all
  2. listelib = libmylib1.so libmylib2.so
  3. libmylib1 = 1.c 2.c 3.c
  4. libmylib2 = a.c b.c d.c
  5. all : $(listelib)
  6. include $(listelib:%.so=%.so.d)
  7. %.c :
  8. @touch $@
  9. %.o : %.c
  10. @echo compile $<
  11. %.so.d :
  12. echo '$(@:%.so.d=%.so) : $($(@:%.so.d=%):%.c=%.o)' > $@
  13. echo ' echo hello world' >> $@


 
 :heink: g du  :pt1cable:  parceque je me réponds à moi mm..... :lol:

n°1016228
Atlantis
Enfin de retour au SOLEIL !!
Posté le 17-03-2005 à 16:27:50  profilanswer
 

[:dao]


---------------
"Il n’y a rien de noble à être supérieur à vos semblables. La vraie noblesse est d’être supérieur à celui que vous avez été auparavant."

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [ make ] pb assez avancé de génération automatique....

 

Sujets relatifs
téléchargement automatique des policesScrolling automatique dans une textarea
vba : incrementation automatiqueGénération d'un nombre aléatoire entre 0 et 2^31-1 sous Visual C++ 6.0
[Java] Envoi de mail automatique en début de moisGénération de CSV
Génération de script de base de donnéesliste déroulante affichage automatique
affichage automatique dans zone texte grace listboxgénération de tableaux et de lignes
Plus de sujets relatifs à : [ make ] pb assez avancé de génération automatique....


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR