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

Makefile: arborescence parallèle pour les .c et les .o

21 réponses
Avatar
Nicolas Hervé
Comment écrire mon makefile si je veux avoir le résultat suivant ?


Arborescence avant 'gmake'

./
makefile
src/
main.c
test/
hello.c
youpi.c


Arborescence après 'gmake'

./
makefile
mon_executable
src/
main.c
test/
hello.c
youpi.c
obj/
test/
test.o
youpi.o
lib/
libtest.so


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.

10 réponses

1 2 3
Avatar
Antoine Leca
En , Pierre Maurette va escriure:
"Antoine Leca" typa:
[...]
j'ai trouvé, au hasard:
alt.make.money.fast
Manque pas un "rigolard", là ? Ou alors il est implicite ?



À ton avis ?


:-D


Antoine


Avatar
Antoine Leca
En , Gaël Le Mignot va escriure:
C'est complètement HS, mais c'est ainsi que je fait.


Oui, cela je crois que l'on avait compris...

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 ;)


Eh les gars, c'est pas moi qui ai posé l'énoncé...

J'ai juste mis cela pour éviter la réponse évidente. Manifestement, j'ai
raté ma cible. :-(


Antoine


Avatar
Yves ROMAN

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 ?

Et avec des liens symboliques ?

(mais sous Unix seulement !)


Avatar
Emmanuel Delahaye
In 'fr.comp.lang.c', Nicolas Hervé wrote:

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 ?


Alors on va parler bagnole ou pizza, alors?

--
-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/

Avatar
Emmanuel Delahaye
In 'fr.comp.lang.c', DINH =?iso-8859-15?Q?Viêt_Hoà?=
wrote:

l'expérience dit qu'il faut avoir les .o dans le même répertoire que
les .c.


Comme ça quant on efface les .o (del *.*), on est sûr d'effacer aussi les .c!
Cool!

--
-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/

Avatar
DINH Viêt Hoà

In 'fr.comp.lang.c', DINH =?iso-8859-15?Q?Viêt_Hoà?=
wrote:

l'expérience dit qu'il faut avoir les .o dans le même répertoire que
les .c.


Comme ça quant on efface les .o (del *.*), on est sûr d'effacer aussi les .c!
Cool!


j'ai oublié, avec un outil comme "make"

à noter que tu as une drôle de facon d'effacer les .o

--
DINH V. Hoa,

"sauvons les petits enfants asthmatiques" -- the penguin-biker


Avatar
Antoine Leca
Emmanuel Delahaye va escriure:
Alors on va parler bagnole ou pizza, alors?


Paella, je préfère.


Antoine (depuis Valencia)

Avatar
Antoine Leca
En , DINH Viêt Hoà va escriure:
Comme ça quant on efface les .o (del *.*), on est sûr d'effacer
aussi les .c! Cool!


à noter que tu as une drôle de facon d'effacer les .o


Qu'est ce que tu as contre DJGPP ?

[extension .o et DEL => DJGPP; avec mingw, on est sous Windows, a des
disques tout plein d'espace, donc effacer les .o, c'est supprimer
l'arborescence.]

;-)


Antoine


Avatar
DINH Viêt Hoà

Comme ça quant on efface les .o (del *.*), on est sûr d'effacer
aussi les .c! Cool!


à noter que tu as une drôle de facon d'effacer les .o


Qu'est ce que tu as contre DJGPP ?

[extension .o et DEL => DJGPP; avec mingw, on est sous Windows, a des
disques tout plein d'espace, donc effacer les .o, c'est supprimer
l'arborescence.]



allez ! encore une alternative "à la con" :

cp *.c ../obj
puis compilation de ce qu'il y a dans obj

--
DINH V. Hoa,

"sauvons les petits enfants asthmatiques" -- the penguin-biker



Avatar
Jean Claude Calvez
"Emmanuel Delahaye" a écrit dans le message de news:

In 'fr.comp.lang.c', DINH =?iso-8859-15?Q?Viêt_Hoà? > wrote:

l'expérience dit qu'il faut avoir les .o dans le même répertoire que
les .c.


Comme ça quant on efface les .o (del *.*), on est sûr d'effacer aussi les
.c!


Pour effacer les .o dans un répertoire contenant d'autres
fichiers, je ferais plutôt : del *.o !
C'est moins risqué :-)

Mais bon, vous faites comme vous voulez !

Cool!


JCC


1 2 3