Autant que possible, j'aimerais utiliser les possibilité qu'offrent les
macros pour éviter d'avoir à modifier le makefile dès que j'ajoute ou
supprime un fichier (voir une arborescence) source.
Comment écrire mon makefile si je veux avoir le résultat suivant ?
Arborescence avant 'gmake'
./ makefile src/ main.c test/ hello.c youpi.c
<...>
Quel rapport avec le langage C. Tu crois que le problème serait différent avec des fichiers .cpp ou .pas?
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Nicolas Hervé
Ok, même si le message n'est pas très approprié à un forum spécifique sur le langage C. Il y en a un de rapport puisque qui n'a jamais touché à un makefile ici ?
Si un message avec un entête bien spécifié "Makefile" (peut-être aurait-on préféré "[Makefile]") nuit à la lisibilité de ce forum et que l'on veuille bien me donner un forum approprié (Il n'y a pas de forum fr.comp.makefile) alors je veux bien reposer ma question là-bas.
Emmanuel Delahaye wrote:
In 'fr.comp.lang.c', Nicolas Hervé wrote:
Comment écrire mon makefile si je veux avoir le résultat suivant ?
Quel rapport avec le langage C. Tu crois que le problème serait différent avec des fichiers .cpp ou .pas?
Ok, même si le message n'est pas très approprié à un forum spécifique
sur le langage C. Il y en a un de rapport puisque qui n'a jamais touché
à un makefile ici ?
Si un message avec un entête bien spécifié "Makefile" (peut-être
aurait-on préféré "[Makefile]") nuit à la lisibilité de ce forum et que
l'on veuille bien me donner un forum approprié (Il n'y a pas de forum
fr.comp.makefile) alors je veux bien reposer ma question là-bas.
Emmanuel Delahaye wrote:
In 'fr.comp.lang.c', Nicolas Hervé <nicolas.herveNO@SPAMenssat.fr> wrote:
Comment écrire mon makefile si je veux avoir le résultat suivant ?
Quel rapport avec le langage C. Tu crois que le problème serait différent
avec des fichiers .cpp ou .pas?
Ok, même si le message n'est pas très approprié à un forum spécifique sur le langage C. Il y en a un de rapport puisque qui n'a jamais touché à un makefile ici ?
Si un message avec un entête bien spécifié "Makefile" (peut-être aurait-on préféré "[Makefile]") nuit à la lisibilité de ce forum et que l'on veuille bien me donner un forum approprié (Il n'y a pas de forum fr.comp.makefile) alors je veux bien reposer ma question là-bas.
Emmanuel Delahaye wrote:
In 'fr.comp.lang.c', Nicolas Hervé wrote:
Comment écrire mon makefile si je veux avoir le résultat suivant ?
Quel rapport avec le langage C. Tu crois que le problème serait différent avec des fichiers .cpp ou .pas?
Antoine Leca
En c50hrf$86v$, Nicolas Hervé va escriure:
Ok, même si le message n'est pas très approprié à un forum spécifique sur le langage C. Il y en a un de rapport puisque qui n'a jamais touché à un makefile ici ?
Je « touche » souvent à des makefile, mais pour autant je ne connais aucune des particularités du make GNU (bon c'est pas vrai: j'essaye de ne pas les connaître ;-)).
Et en plus, je ne veux surtout pas les connaître: soit j'écris un projet que je veux portable, et donc je crée des makefile sans aucune particularité liée à une certaine implémentation (surtout que dans mon cas je n'arrive pas à compiler ce programme sur ma plateforme qui n'a pas de mémoire virtuelle: tros bouffi). Soit je dois gérer un gros projet, et là dès le début make "pur" est hors jeu ! Déjà donné !
Si un message avec un entête bien spécifié "Makefile" (peut-être aurait-on préféré "[Makefile]") nuit à la lisibilité de ce forum et que l'on veuille bien me donner un forum approprié (Il n'y a pas de forum fr.comp.makefile) alors je veux bien reposer ma question là-bas.
C'est sûr que si tu ne sais pas lire l'anglais mais que tu veux programmer en make pur, ce n'est pas facile.
Antoine
En c50hrf$86v$1@news.univ-rennes1.fr, Nicolas Hervé va escriure:
Ok, même si le message n'est pas très approprié à un forum spécifique
sur le langage C. Il y en a un de rapport puisque qui n'a jamais
touché à un makefile ici ?
Je « touche » souvent à des makefile, mais pour autant je ne connais aucune
des particularités du make GNU (bon c'est pas vrai: j'essaye de ne pas les
connaître ;-)).
Et en plus, je ne veux surtout pas les connaître: soit j'écris un projet que
je veux portable, et donc je crée des makefile sans aucune particularité
liée à une certaine implémentation (surtout que dans mon cas je n'arrive pas
à compiler ce programme sur ma plateforme qui n'a pas de mémoire virtuelle:
tros bouffi). Soit je dois gérer un gros projet, et là dès le début make
"pur" est hors jeu ! Déjà donné !
Si un message avec un entête bien spécifié "Makefile" (peut-être
aurait-on préféré "[Makefile]") nuit à la lisibilité de ce forum et
que l'on veuille bien me donner un forum approprié (Il n'y a pas de
forum fr.comp.makefile) alors je veux bien reposer ma question là-bas.
C'est sûr que si tu ne sais pas lire l'anglais mais que tu veux programmer
en make pur, ce n'est pas facile.
Ok, même si le message n'est pas très approprié à un forum spécifique sur le langage C. Il y en a un de rapport puisque qui n'a jamais touché à un makefile ici ?
Je « touche » souvent à des makefile, mais pour autant je ne connais aucune des particularités du make GNU (bon c'est pas vrai: j'essaye de ne pas les connaître ;-)).
Et en plus, je ne veux surtout pas les connaître: soit j'écris un projet que je veux portable, et donc je crée des makefile sans aucune particularité liée à une certaine implémentation (surtout que dans mon cas je n'arrive pas à compiler ce programme sur ma plateforme qui n'a pas de mémoire virtuelle: tros bouffi). Soit je dois gérer un gros projet, et là dès le début make "pur" est hors jeu ! Déjà donné !
Si un message avec un entête bien spécifié "Makefile" (peut-être aurait-on préféré "[Makefile]") nuit à la lisibilité de ce forum et que l'on veuille bien me donner un forum approprié (Il n'y a pas de forum fr.comp.makefile) alors je veux bien reposer ma question là-bas.
C'est sûr que si tu ne sais pas lire l'anglais mais que tu veux programmer en make pur, ce n'est pas facile.
Antoine
Nicolas Hervé
Antoine Leca wrote:
Si un message avec un entête bien spécifié "Makefile" (peut-être aurait-on préféré "[Makefile]") nuit à la lisibilité de ce forum et que l'on veuille bien me donner un forum approprié (Il n'y a pas de forum fr.comp.makefile) alors je veux bien reposer ma question là-bas.
C'est sûr que si tu ne sais pas lire l'anglais mais que tu veux programmer en make pur, ce n'est pas facile.
Antoine
Que de sarcasmes ! :-D Si vous avez un forum ou une URL en anglais (ou même en Allemand, en Espagnol ou en Italien :-p) sur le sujet je suis preneur.
Antoine Leca wrote:
Si un message avec un entête bien spécifié "Makefile" (peut-être
aurait-on préféré "[Makefile]") nuit à la lisibilité de ce forum et
que l'on veuille bien me donner un forum approprié (Il n'y a pas de
forum fr.comp.makefile) alors je veux bien reposer ma question là-bas.
C'est sûr que si tu ne sais pas lire l'anglais mais que tu veux programmer
en make pur, ce n'est pas facile.
Antoine
Que de sarcasmes ! :-D
Si vous avez un forum ou une URL en anglais (ou même en Allemand, en
Espagnol ou en Italien :-p) sur le sujet je suis preneur.
Si un message avec un entête bien spécifié "Makefile" (peut-être aurait-on préféré "[Makefile]") nuit à la lisibilité de ce forum et que l'on veuille bien me donner un forum approprié (Il n'y a pas de forum fr.comp.makefile) alors je veux bien reposer ma question là-bas.
C'est sûr que si tu ne sais pas lire l'anglais mais que tu veux programmer en make pur, ce n'est pas facile.
Antoine
Que de sarcasmes ! :-D Si vous avez un forum ou une URL en anglais (ou même en Allemand, en Espagnol ou en Italien :-p) sur le sujet je suis preneur.
Antoine Leca
En c50upm$d0i$, Nicolas Hervé va escriure:
Que de sarcasmes ! :-D Si vous avez un forum ou une URL en anglais (ou même en Allemand, en Espagnol ou en Italien :-p) sur le sujet je suis preneur.
Je ne sais pas pourquoi vous me tirez la langue. Je ne travaille peut-être pas en allemand en ce moment, mais je pratique en ce moment quatre langues différentes. Et c'est pas du gâteau. Mais vous avouerez que ce n'est pas une situation commune. Donc quand quelqu'un annonce sur fr.comp.lang.c, dans un thème passablement hors sujet, qu'il n'a trouvé aucune ressource, je comprend qu'il est limité au français, seule explication raisonnable à mon sens.
Bon, c'est pas tout cela. Je ne sais pas combien de temps vous avez cherché. J'ai demandé la liste des forums sur mon serveur, et j'ai trouvé, au hasard:
Je me suis arrêté là, comme je vous l'écrivis, make ne m'intéresse pas vraiment, et GNU make encore moins.
En castillan, il ne semble pas y avoir une très bonne pêche.
Sur le web, évidemment, il y a profusion. Le problème, c'est plutôt de filtrer... Commençons par le plus simple. <URL:http://www.gnu.org/software/automake/manual/> ? <URL:http://www.math.utah.edu/docs/info/configure_toc.html> ? <URL:http://make.paulandlesley.org/> ?
Antoine
En c50upm$d0i$1@news.univ-rennes1.fr, Nicolas Hervé va escriure:
Que de sarcasmes ! :-D
Si vous avez un forum ou une URL en anglais (ou même en Allemand, en
Espagnol ou en Italien :-p) sur le sujet je suis preneur.
Je ne sais pas pourquoi vous me tirez la langue. Je ne travaille peut-être
pas en allemand en ce moment, mais je pratique en ce moment quatre langues
différentes. Et c'est pas du gâteau. Mais vous avouerez que ce n'est pas une
situation commune. Donc quand quelqu'un annonce sur fr.comp.lang.c, dans un
thème passablement hors sujet, qu'il n'a trouvé aucune ressource, je
comprend qu'il est limité au français, seule explication raisonnable à mon
sens.
Bon, c'est pas tout cela. Je ne sais pas combien de temps vous avez cherché.
J'ai demandé la liste des forums sur mon serveur, et j'ai trouvé, au hasard:
Je me suis arrêté là, comme je vous l'écrivis, make ne m'intéresse pas
vraiment, et GNU make encore moins.
En castillan, il ne semble pas y avoir une très bonne pêche.
Sur le web, évidemment, il y a profusion. Le problème, c'est plutôt de
filtrer...
Commençons par le plus simple.
<URL:http://www.gnu.org/software/automake/manual/> ?
<URL:http://www.math.utah.edu/docs/info/configure_toc.html> ?
<URL:http://make.paulandlesley.org/> ?
Que de sarcasmes ! :-D Si vous avez un forum ou une URL en anglais (ou même en Allemand, en Espagnol ou en Italien :-p) sur le sujet je suis preneur.
Je ne sais pas pourquoi vous me tirez la langue. Je ne travaille peut-être pas en allemand en ce moment, mais je pratique en ce moment quatre langues différentes. Et c'est pas du gâteau. Mais vous avouerez que ce n'est pas une situation commune. Donc quand quelqu'un annonce sur fr.comp.lang.c, dans un thème passablement hors sujet, qu'il n'a trouvé aucune ressource, je comprend qu'il est limité au français, seule explication raisonnable à mon sens.
Bon, c'est pas tout cela. Je ne sais pas combien de temps vous avez cherché. J'ai demandé la liste des forums sur mon serveur, et j'ai trouvé, au hasard:
Je me suis arrêté là, comme je vous l'écrivis, make ne m'intéresse pas vraiment, et GNU make encore moins.
En castillan, il ne semble pas y avoir une très bonne pêche.
Sur le web, évidemment, il y a profusion. Le problème, c'est plutôt de filtrer... Commençons par le plus simple. <URL:http://www.gnu.org/software/automake/manual/> ? <URL:http://www.math.utah.edu/docs/info/configure_toc.html> ? <URL:http://make.paulandlesley.org/> ?
Antoine
DINH Viêt Hoà
Arborescence avant 'gmake'
./ makefile src/ main.c test/ hello.c youpi.c
l'expérience dit qu'il faut avoir les .o dans le même répertoire que les .c. Pour les bibliothèques, tu peux ruser en créant des .a et en liant à la fin les .a ensembles.
-- DINH V. Hoa,
"dans la famille, on est tous intelligents" -- sunZ
Arborescence avant 'gmake'
./
makefile
src/
main.c
test/
hello.c
youpi.c
l'expérience dit qu'il faut avoir les .o dans le même répertoire que
les .c. Pour les bibliothèques, tu peux ruser en créant des .a et en
liant à la fin les .a ensembles.
--
DINH V. Hoa,
"dans la famille, on est tous intelligents" -- sunZ
l'expérience dit qu'il faut avoir les .o dans le même répertoire que les .c. Pour les bibliothèques, tu peux ruser en créant des .a et en liant à la fin les .a ensembles.
-- DINH V. Hoa,
"dans la famille, on est tous intelligents" -- sunZ
Antoine Leca
En , DINH Viêt Hoà va escriure:
l'expérience dit qu'il faut avoir les .o dans le même répertoire que les .c.
Comment fais-tu pour gérer deux cibles différentes avec le même arbre source (en utilisant make, donc sans effacer tout entre chaque compilation) ? Une fois je m'en suis sorti parce qu'un compilateur génèrait des .o et l'autre des .OBJ, mais je pense que c'était de la chance...
Comment fais-tu quand l'arbre des sources est (partiellement) sur un répertoire en lecture seule (partagé, bien sûr), sans utiliser un logiciel de contrôle de sources ?
Antoine
En etPan.40742674.14c59598.4ddd@homer, DINH Viêt Hoà va escriure:
l'expérience dit qu'il faut avoir les .o dans le même répertoire que
les .c.
Comment fais-tu pour gérer deux cibles différentes avec le même arbre source
(en utilisant make, donc sans effacer tout entre chaque compilation) ? Une
fois je m'en suis sorti parce qu'un compilateur génèrait des .o et l'autre
des .OBJ, mais je pense que c'était de la chance...
Comment fais-tu quand l'arbre des sources est (partiellement) sur un
répertoire en lecture seule (partagé, bien sûr), sans utiliser un logiciel
de contrôle de sources ?
l'expérience dit qu'il faut avoir les .o dans le même répertoire que les .c.
Comment fais-tu pour gérer deux cibles différentes avec le même arbre source (en utilisant make, donc sans effacer tout entre chaque compilation) ? Une fois je m'en suis sorti parce qu'un compilateur génèrait des .o et l'autre des .OBJ, mais je pense que c'était de la chance...
Comment fais-tu quand l'arbre des sources est (partiellement) sur un répertoire en lecture seule (partagé, bien sûr), sans utiliser un logiciel de contrôle de sources ?
Antoine
Pierre Maurette
"Antoine Leca" typa: [...]
Bon, c'est pas tout cela. Je ne sais pas combien de temps vous avez cherché. J'ai demandé la liste des forums sur mon serveur, et j'ai trouvé, au hasard:
de.comp.gnu alt.make.money.fast Manque pas un "rigolard", là ? Ou alors il est implicite ?
"Antoine Leca" <root@localhost.gov> typa:
[...]
Bon, c'est pas tout cela. Je ne sais pas combien de temps vous avez cherché.
J'ai demandé la liste des forums sur mon serveur, et j'ai trouvé, au hasard:
de.comp.gnu
alt.make.money.fast
Manque pas un "rigolard", là ? Ou alors il est implicite ?
Bon, c'est pas tout cela. Je ne sais pas combien de temps vous avez cherché. J'ai demandé la liste des forums sur mon serveur, et j'ai trouvé, au hasard:
de.comp.gnu alt.make.money.fast Manque pas un "rigolard", là ? Ou alors il est implicite ?
kilobug
En , DINH Viêt Hoà va escriure:
l'expérience dit qu'il faut avoir les .o dans le même répertoire que les .c.
Comment fais-tu pour gérer deux cibles différentes avec le même arbre source (en utilisant make, donc sans effacer tout entre chaque compilation) ? Une fois je m'en suis sorti parce qu'un compilateur génèrait des .o et l'autre des .OBJ, mais je pense que c'était de la chance...
De manière générale, je conseille l'utilisation d'autoconf et d'automake. Il est alors possible, au choix, de compiler "sur place" ou dans un répertoire différent:
Pour compiler sur place cd /chemin/vers/monprojet ./configure <...> make
Compiler à côté: cd /chemin/vers/buildir/ /chemin/vers/monprojet/configure <...> make
(typiquement: cd /usr/src/foo mkdir build cd build ../configure <....> make )
C'est complètement HS, mais c'est ainsi que je fait.
Attention à ne pas faire "n'importe quoi" dans les Makefile.am, sinon ça ne marche plus.
Comment fais-tu quand l'arbre des sources est (partiellement) sur un répertoire en lecture seule (partagé, bien sûr), sans utiliser un logiciel de contrôle de sources ?
Même pour travailler en solo, je conseille d'utiliser un CVS ou équivalent, alors à plusieurs ;)
-- Gael Le Mignot "Kilobug" - - http://kilobug.free.fr GSM : 06.71.47.18.22 (in France) ICQ UIN : 7299959 Fingerprint : 1F2C 9804 7505 79DF 95E6 7323 B66B F67B 7103 C5DA
Member of HurdFr: http://hurdfr.org - The GNU Hurd: http://hurd.gnu.org
En etPan.40742674.14c59598.4ddd@homer, DINH Viêt Hoà va escriure:
l'expérience dit qu'il faut avoir les .o dans le même répertoire que
les .c.
Comment fais-tu pour gérer deux cibles différentes avec le même arbre source
(en utilisant make, donc sans effacer tout entre chaque compilation) ? Une
fois je m'en suis sorti parce qu'un compilateur génèrait des .o et l'autre
des .OBJ, mais je pense que c'était de la chance...
De manière générale, je conseille l'utilisation d'autoconf et
d'automake. Il est alors possible, au choix, de compiler "sur place"
ou dans un répertoire différent:
Pour compiler sur place
cd /chemin/vers/monprojet
./configure <...>
make
Compiler à côté:
cd /chemin/vers/buildir/
/chemin/vers/monprojet/configure <...>
make
(typiquement:
cd /usr/src/foo
mkdir build
cd build
../configure <....>
make
)
C'est complètement HS, mais c'est ainsi que je fait.
Attention à ne pas faire "n'importe quoi" dans les Makefile.am, sinon
ça ne marche plus.
Comment fais-tu quand l'arbre des sources est (partiellement) sur
un répertoire en lecture seule (partagé, bien sûr), sans utiliser
un logiciel de contrôle de sources ?
Même pour travailler en solo, je conseille d'utiliser un CVS ou
équivalent, alors à plusieurs ;)
--
Gael Le Mignot "Kilobug" - kilobug@nerim.net - http://kilobug.free.fr
GSM : 06.71.47.18.22 (in France) ICQ UIN : 7299959
Fingerprint : 1F2C 9804 7505 79DF 95E6 7323 B66B F67B 7103 C5DA
Member of HurdFr: http://hurdfr.org - The GNU Hurd: http://hurd.gnu.org
l'expérience dit qu'il faut avoir les .o dans le même répertoire que les .c.
Comment fais-tu pour gérer deux cibles différentes avec le même arbre source (en utilisant make, donc sans effacer tout entre chaque compilation) ? Une fois je m'en suis sorti parce qu'un compilateur génèrait des .o et l'autre des .OBJ, mais je pense que c'était de la chance...
De manière générale, je conseille l'utilisation d'autoconf et d'automake. Il est alors possible, au choix, de compiler "sur place" ou dans un répertoire différent:
Pour compiler sur place cd /chemin/vers/monprojet ./configure <...> make
Compiler à côté: cd /chemin/vers/buildir/ /chemin/vers/monprojet/configure <...> make
(typiquement: cd /usr/src/foo mkdir build cd build ../configure <....> make )
C'est complètement HS, mais c'est ainsi que je fait.
Attention à ne pas faire "n'importe quoi" dans les Makefile.am, sinon ça ne marche plus.
Comment fais-tu quand l'arbre des sources est (partiellement) sur un répertoire en lecture seule (partagé, bien sûr), sans utiliser un logiciel de contrôle de sources ?
Même pour travailler en solo, je conseille d'utiliser un CVS ou équivalent, alors à plusieurs ;)
-- Gael Le Mignot "Kilobug" - - http://kilobug.free.fr GSM : 06.71.47.18.22 (in France) ICQ UIN : 7299959 Fingerprint : 1F2C 9804 7505 79DF 95E6 7323 B66B F67B 7103 C5DA
Member of HurdFr: http://hurdfr.org - The GNU Hurd: http://hurd.gnu.org
DINH Viêt Hoà
(en utilisant make, donc sans effacer tout entre chaque compilation) ? Une fois je m'en suis sorti parce qu'un compilateur génèrait des .o et l'autre des .OBJ, mais je pense que c'était de la chance...
libtool génère du .lo et .o à titre d'information.
Comment fais-tu quand l'arbre des sources est (partiellement) sur un répertoire en lecture seule (partagé, bien sûr), sans utiliser un logiciel de contrôle de sources ?
utiliser un logiciel de contrôle de source.
ou se le faire à la main :
cp projet ~/mon_repertoire et make dans ~/mon_repertoire
-- DINH V. Hoa,
"dans la famille, on est tous intelligents" -- sunZ
(en utilisant make, donc sans effacer tout entre chaque compilation) ? Une
fois je m'en suis sorti parce qu'un compilateur génèrait des .o et l'autre
des .OBJ, mais je pense que c'était de la chance...
libtool génère du .lo et .o à titre d'information.
Comment fais-tu quand l'arbre des sources est (partiellement) sur un
répertoire en lecture seule (partagé, bien sûr), sans utiliser un logiciel
de contrôle de sources ?
utiliser un logiciel de contrôle de source.
ou se le faire à la main :
cp projet ~/mon_repertoire
et make dans ~/mon_repertoire
--
DINH V. Hoa,
"dans la famille, on est tous intelligents" -- sunZ
(en utilisant make, donc sans effacer tout entre chaque compilation) ? Une fois je m'en suis sorti parce qu'un compilateur génèrait des .o et l'autre des .OBJ, mais je pense que c'était de la chance...
libtool génère du .lo et .o à titre d'information.
Comment fais-tu quand l'arbre des sources est (partiellement) sur un répertoire en lecture seule (partagé, bien sûr), sans utiliser un logiciel de contrôle de sources ?
utiliser un logiciel de contrôle de source.
ou se le faire à la main :
cp projet ~/mon_repertoire et make dans ~/mon_repertoire
-- DINH V. Hoa,
"dans la famille, on est tous intelligents" -- sunZ