general.general : Problème et questions de Makefile
Posté par Nap () le 24 septembre 2004
Bonjour tout le monde
Je ne maitrise pas le fonctionnement des makefile, même si je connais le mécanisme global (des règles qui en impliquent d'autres, les dates des fichires, etc...). Et là, je tombe sur un Makefile qui me pose problème, en l'occurrence Xerces-c (du C++) sur AIX. Je ne vais pas vous demander de bosser à ma place, mais juste de répondre à quelques questions :
le Makefile principal inclut un fichier Makefile.incl
Celui-ci définit entre autres les variable MAKE_SHARED et MAKE_SHARED_C, dans lesquelles on place la commande à utiliser pour construire la bibliothèque partagée Xerces.
Or cette variable n'est utiisée nulle part, dans aucun script ni rien. Et pourtant la commande est belle et bien executée ! J'ai mis 'toto' à la place pur voir, et je me suis bien fait engueuler pour cause d'absence de commande 'toto'.
La commande construisant la librairie semble être :
${MAKE} -C $(XML_OBJ_DIR)/.. -k $(MAKE_FLAGS)
Quelle magie noire permet à make d'utiliser une variable sans qu'on le lui demande ??
Autre truc : partout la commande utilisée dans les règles du makefile est de cette forme :
${MAKE} -C $(VALIDATORS_DIR) $(MAKE_FLAGS)
(comme d'ailleurs la commande précédente aussi)
or la variable MAKE n'est jamais définie !
comment tout ceci marche-t-il ?
J'aimerais vraiment que l'on m'explique...
Merci beaucoup !
François
Je ne maitrise pas le fonctionnement des makefile, même si je connais le mécanisme global (des règles qui en impliquent d'autres, les dates des fichires, etc...). Et là, je tombe sur un Makefile qui me pose problème, en l'occurrence Xerces-c (du C++) sur AIX. Je ne vais pas vous demander de bosser à ma place, mais juste de répondre à quelques questions :
le Makefile principal inclut un fichier Makefile.incl
Celui-ci définit entre autres les variable MAKE_SHARED et MAKE_SHARED_C, dans lesquelles on place la commande à utiliser pour construire la bibliothèque partagée Xerces.
Or cette variable n'est utiisée nulle part, dans aucun script ni rien. Et pourtant la commande est belle et bien executée ! J'ai mis 'toto' à la place pur voir, et je me suis bien fait engueuler pour cause d'absence de commande 'toto'.
La commande construisant la librairie semble être :
${MAKE} -C $(XML_OBJ_DIR)/.. -k $(MAKE_FLAGS)
Quelle magie noire permet à make d'utiliser une variable sans qu'on le lui demande ??
Autre truc : partout la commande utilisée dans les règles du makefile est de cette forme :
${MAKE} -C $(VALIDATORS_DIR) $(MAKE_FLAGS)
(comme d'ailleurs la commande précédente aussi)
or la variable MAKE n'est jamais définie !
comment tout ceci marche-t-il ?
J'aimerais vraiment que l'on m'explique...
Merci beaucoup !
François
> Lire le message (8 commentaires, moyenne: 2,3).
Vous avez demandé le commentaire #477366.



En passant ...
Y'a un forum sûrement plus approprié pour cette question
- Programmation.c
- Programmation.c++
[^]Re: En passant ...
bof... si ça avait été du fortran j'aurais eu le même problème je pense
[^]Encore mieux
Bien vu pour le fortran ;)
Mais dans ce cas :
- Programmation.autre
je lâche jamais
[^]Re: Encore mieux
ok je m'incline :)