J'ai fait un makefile simple.
Mais à chaque fois que je lance une compilation, il me recompile
absolument tout alors que les .objs n'ont pas toujours à être recompilé
(source moins récente que l'.objs).
N'y a t-il pas options "GNU Makefilienne" (c'est à dire portable Linux et
MinGw) qui permette de faire ça ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Richard Delorme
Le 04/12/2009 23:41, TSalm a écrit :
Bonjour,
J'ai fait un makefile simple. Mais à chaque fois que je lance une compilation, il me recompile absolument tout alors que les .objs n'ont pas toujours à être recompilé (source moins récente que l'.objs). N'y a t-il pas options "GNU Makefilienne" (c'est à dire portable Linux et MinGw) qui permette de faire ça ?
Normalement, ça marche toujours comme ça. A quoi ressemble votre Makefile ?
-- Richard
Le 04/12/2009 23:41, TSalm a écrit :
Bonjour,
J'ai fait un makefile simple.
Mais à chaque fois que je lance une compilation, il me recompile
absolument tout alors que les .objs n'ont pas toujours à être recompilé
(source moins récente que l'.objs).
N'y a t-il pas options "GNU Makefilienne" (c'est à dire portable Linux
et MinGw) qui permette de faire ça ?
Normalement, ça marche toujours comme ça. A quoi ressemble votre Makefile ?
J'ai fait un makefile simple. Mais à chaque fois que je lance une compilation, il me recompile absolument tout alors que les .objs n'ont pas toujours à être recompilé (source moins récente que l'.objs). N'y a t-il pas options "GNU Makefilienne" (c'est à dire portable Linux et MinGw) qui permette de faire ça ?
Normalement, ça marche toujours comme ça. A quoi ressemble votre Makefile ?
-- Richard
TSalm
Le Sat, 05 Dec 2009 00:09:23 +0100, Richard Delorme a écrit:
Le 04/12/2009 23:41, TSalm a écrit :
Bonjour,
J'ai fait un makefile simple. Mais à chaque fois que je lance une compilation, il me recompile absolument tout alors que les .objs n'ont pas toujours à être recompilé (source moins récente que l'.objs). N'y a t-il pas options "GNU Makefilienne" (c'est à dire portable Linux et MinGw) qui permette de faire ça ?
Normalement, ça marche toujours comme ça. A quoi ressemble votre Makefile ?
# CCC L EEE A NN N # C L EE A=A N NN # CCC LLL EEE A A N N clean: rm -rf $(OBJDIR)/*
/* ------------------------------------ */
Le Sat, 05 Dec 2009 00:09:23 +0100, Richard Delorme <abulmo@nospam.fr> a
écrit:
Le 04/12/2009 23:41, TSalm a écrit :
Bonjour,
J'ai fait un makefile simple.
Mais à chaque fois que je lance une compilation, il me recompile
absolument tout alors que les .objs n'ont pas toujours à être recompilé
(source moins récente que l'.objs).
N'y a t-il pas options "GNU Makefilienne" (c'est à dire portable Linux
et MinGw) qui permette de faire ça ?
Normalement, ça marche toujours comme ça. A quoi ressemble votre
Makefile ?
Le Sat, 05 Dec 2009 00:09:23 +0100, Richard Delorme a écrit:
Le 04/12/2009 23:41, TSalm a écrit :
Bonjour,
J'ai fait un makefile simple. Mais à chaque fois que je lance une compilation, il me recompile absolument tout alors que les .objs n'ont pas toujours à être recompilé (source moins récente que l'.objs). N'y a t-il pas options "GNU Makefilienne" (c'est à dire portable Linux et MinGw) qui permette de faire ça ?
Normalement, ça marche toujours comme ça. A quoi ressemble votre Makefile ?
# CCC L EEE A NN N # C L EE A=A N NN # CCC LLL EEE A A N N clean: rm -rf $(OBJDIR)/*
/* ------------------------------------ */
Richard Delorme
Le 05/12/2009 00:18, TSalm a écrit :
Le Sat, 05 Dec 2009 00:09:23 +0100, Richard Delorme a écrit:
Le 04/12/2009 23:41, TSalm a écrit :
Bonjour,
J'ai fait un makefile simple. Mais à chaque fois que je lance une compilation, il me recompile absolument tout alors que les .objs n'ont pas toujours à être recompilé (source moins récente que l'.objs). N'y a t-il pas options "GNU Makefilienne" (c'est à dire portable Linux et MinGw) qui permette de faire ça ?
Normalement, ça marche toujours comme ça. A quoi ressemble votre Makefile ?
# CCC L EEE A NN N # C L EE A=A N NN # CCC LLL EEE A A N N clean: rm -rf $(OBJDIR)/*
/* ------------------------------------ */
Il manque les dépendences entre les .o et les .cpp.
-- Richard
Le 05/12/2009 00:18, TSalm a écrit :
Le Sat, 05 Dec 2009 00:09:23 +0100, Richard Delorme <abulmo@nospam.fr> a
écrit:
Le 04/12/2009 23:41, TSalm a écrit :
Bonjour,
J'ai fait un makefile simple.
Mais à chaque fois que je lance une compilation, il me recompile
absolument tout alors que les .objs n'ont pas toujours à être recompilé
(source moins récente que l'.objs).
N'y a t-il pas options "GNU Makefilienne" (c'est à dire portable Linux
et MinGw) qui permette de faire ça ?
Normalement, ça marche toujours comme ça. A quoi ressemble votre
Makefile ?
Le Sat, 05 Dec 2009 00:09:23 +0100, Richard Delorme a écrit:
Le 04/12/2009 23:41, TSalm a écrit :
Bonjour,
J'ai fait un makefile simple. Mais à chaque fois que je lance une compilation, il me recompile absolument tout alors que les .objs n'ont pas toujours à être recompilé (source moins récente que l'.objs). N'y a t-il pas options "GNU Makefilienne" (c'est à dire portable Linux et MinGw) qui permette de faire ça ?
Normalement, ça marche toujours comme ça. A quoi ressemble votre Makefile ?
# CCC L EEE A NN N # C L EE A=A N NN # CCC LLL EEE A A N N clean: rm -rf $(OBJDIR)/*
/* ------------------------------------ */
Il manque les dépendences entre les .o et les .cpp.
-- Richard
espie
In article , TSalm wrote:
Le Sat, 05 Dec 2009 00:09:23 +0100, Richard Delorme a écrit:
Le 04/12/2009 23:41, TSalm a écrit :
Bonjour,
J'ai fait un makefile simple. Mais à chaque fois que je lance une compilation, il me recompile absolument tout alors que les .objs n'ont pas toujours à être recompilé (source moins récente que l'.objs). N'y a t-il pas options "GNU Makefilienne" (c'est à dire portable Linux et MinGw) qui permette de faire ça ?
Normalement, ça marche toujours comme ça. A quoi ressemble votre Makefile ?
C'est des problemes de repertoire: make n'a aucune raison de trouver tout seul la correspondance entre tes sources et tes objets.
Il faut: - soit que tu lui dises explicitement comment ca marche - soit que tu mettes tes objets au meme endroit que tes sources - ou alors tu peux utiliser l'extension extremement commune VPATH pour lui dire de regarder aussi dans OBJDIR.
Deja, ton mkdir -p `dirname $(OBJDIR)/$@` me fait ticker. Normalement, $@ doit etre le bon nom de cible, et il faudrait un bete mkdir -p ${@D}
In article <op.u4fsdasnk9rspk@papillon>, TSalm <tsalm@free.fr> wrote:
Le Sat, 05 Dec 2009 00:09:23 +0100, Richard Delorme <abulmo@nospam.fr> a
écrit:
Le 04/12/2009 23:41, TSalm a écrit :
Bonjour,
J'ai fait un makefile simple.
Mais à chaque fois que je lance une compilation, il me recompile
absolument tout alors que les .objs n'ont pas toujours à être recompilé
(source moins récente que l'.objs).
N'y a t-il pas options "GNU Makefilienne" (c'est à dire portable Linux
et MinGw) qui permette de faire ça ?
Normalement, ça marche toujours comme ça. A quoi ressemble votre
Makefile ?
C'est des problemes de repertoire: make n'a aucune raison de trouver
tout seul la correspondance entre tes sources et tes objets.
Il faut:
- soit que tu lui dises explicitement comment ca marche
- soit que tu mettes tes objets au meme endroit que tes sources
- ou alors tu peux utiliser l'extension extremement commune VPATH
pour lui dire de regarder aussi dans OBJDIR.
Deja, ton mkdir -p `dirname $(OBJDIR)/$@` me fait ticker.
Normalement, $@ doit etre le bon nom de cible, et il faudrait un
bete mkdir -p ${@D}
Le Sat, 05 Dec 2009 00:09:23 +0100, Richard Delorme a écrit:
Le 04/12/2009 23:41, TSalm a écrit :
Bonjour,
J'ai fait un makefile simple. Mais à chaque fois que je lance une compilation, il me recompile absolument tout alors que les .objs n'ont pas toujours à être recompilé (source moins récente que l'.objs). N'y a t-il pas options "GNU Makefilienne" (c'est à dire portable Linux et MinGw) qui permette de faire ça ?
Normalement, ça marche toujours comme ça. A quoi ressemble votre Makefile ?
C'est des problemes de repertoire: make n'a aucune raison de trouver tout seul la correspondance entre tes sources et tes objets.
Il faut: - soit que tu lui dises explicitement comment ca marche - soit que tu mettes tes objets au meme endroit que tes sources - ou alors tu peux utiliser l'extension extremement commune VPATH pour lui dire de regarder aussi dans OBJDIR.
Deja, ton mkdir -p `dirname $(OBJDIR)/$@` me fait ticker. Normalement, $@ doit etre le bon nom de cible, et il faudrait un bete mkdir -p ${@D}
TSalm
>>>> J'ai fait un makefile simple. Mais à chaque fois que je lance une compilation, il me recompile absolument tout alors que les .objs n'ont pas toujours à être recompilé (source moins récente que l'.objs). N'y a t-il pas options "GNU Makefilienne" (c'est à dire portable Linux et MinGw) qui permette de faire ça ?
Normalement, ça marche toujours comme ça. A quoi ressemble votre Makefile ?
C'est des problemes de repertoire: make n'a aucune raison de trouver tout seul la correspondance entre tes sources et tes objets.
Il faut: - soit que tu lui dises explicitement comment ca marche - soit que tu mettes tes objets au meme endroit que tes sources - ou alors tu peux utiliser l'extension extremement commune VPATH pour lui dire de regarder aussi dans OBJDIR.
Effectivement, j'ai ajouté : vpath %.o $(OBJDIR) j'ai ensuite du retirer mes $(OBJDIR) de mes lignes de compilation, et maintenant, ça fonctionne super bien.
Deja, ton mkdir -p `dirname $(OBJDIR)/$@` me fait ticker. Normalement, $@ doit etre le bon nom de cible, et il faudrait un bete mkdir -p ${@D}
Effectivement, ça ne doit pas être portable non plus.
Merci.
>>>> J'ai fait un makefile simple.
Mais à chaque fois que je lance une compilation, il me recompile
absolument tout alors que les .objs n'ont pas toujours à être
recompilé
(source moins récente que l'.objs).
N'y a t-il pas options "GNU Makefilienne" (c'est à dire portable Linux
et MinGw) qui permette de faire ça ?
Normalement, ça marche toujours comme ça. A quoi ressemble votre
Makefile ?
C'est des problemes de repertoire: make n'a aucune raison de trouver
tout seul la correspondance entre tes sources et tes objets.
Il faut:
- soit que tu lui dises explicitement comment ca marche
- soit que tu mettes tes objets au meme endroit que tes sources
- ou alors tu peux utiliser l'extension extremement commune VPATH
pour lui dire de regarder aussi dans OBJDIR.
Effectivement, j'ai ajouté :
vpath %.o $(OBJDIR)
j'ai ensuite du retirer mes $(OBJDIR) de mes lignes de compilation, et
maintenant, ça fonctionne super bien.
Deja, ton mkdir -p `dirname $(OBJDIR)/$@` me fait ticker.
Normalement, $@ doit etre le bon nom de cible, et il faudrait un
bete mkdir -p ${@D}
Effectivement, ça ne doit pas être portable non plus.
>>>> J'ai fait un makefile simple. Mais à chaque fois que je lance une compilation, il me recompile absolument tout alors que les .objs n'ont pas toujours à être recompilé (source moins récente que l'.objs). N'y a t-il pas options "GNU Makefilienne" (c'est à dire portable Linux et MinGw) qui permette de faire ça ?
Normalement, ça marche toujours comme ça. A quoi ressemble votre Makefile ?
C'est des problemes de repertoire: make n'a aucune raison de trouver tout seul la correspondance entre tes sources et tes objets.
Il faut: - soit que tu lui dises explicitement comment ca marche - soit que tu mettes tes objets au meme endroit que tes sources - ou alors tu peux utiliser l'extension extremement commune VPATH pour lui dire de regarder aussi dans OBJDIR.
Effectivement, j'ai ajouté : vpath %.o $(OBJDIR) j'ai ensuite du retirer mes $(OBJDIR) de mes lignes de compilation, et maintenant, ça fonctionne super bien.
Deja, ton mkdir -p `dirname $(OBJDIR)/$@` me fait ticker. Normalement, $@ doit etre le bon nom de cible, et il faudrait un bete mkdir -p ${@D}
Effectivement, ça ne doit pas être portable non plus.