Je ne parviens pas à trouver de solution en terme de Makefile pour faire
la chose suivante : dans le code, une certain nombre de conditions de
précompilation permet de gérer des petites différences entre une version
verbeuse de développement et une version de production. Je voudrais au
final obtenir quelque chose du genre :
- make prod : génère la version de production ;
- make verbose : génère la version verbeuse.
Tout cela est conditionné par des define géré à la ligne de compilation :
gcc -DDEVEL -DVERBOSE ...
gcc -DPROD ...
Pour l'instant, au mieux j'utilise une condition dans le Makefile. Ce
qui m'oblige à aller modifier ledit Makefile pour changer de version.
DEBUG=yes
ifeq ($(DEBUG),yes)
CFLAGS=...
else
CFLAGS=...
Impossible de transcrire cette idée (somme toute assez basique) dans un
Makefile. N'auriez-vous pas une idée qui me permette de m'en sortir ?
À (at) Tue, 16 Oct 2007 13:46:14 +0200, Matthieu Moy écrivait (wrote):
Paul Gaborit writes:
L'intérêt de la dépendance supplémentaire est de pouvoir gérer les choses plus finement. On peut imaginer que la production de certains fichiers sont indépendantes de l'aspect TEST/PROD. Et puis, même si on oublie le 'clean', ça marchera.
Au passage, si on en est à ajouter des dépendances, une solution est d'avoir un fichier config.h qui contienne, ou ne contienne pas #define DEBUG, en remplacement du -DDEBUG.
Oui, mais la demande initiale spécifiait qu'on devait pouvoir basculer d'un mode à l'autre par le simple passage d'une option à 'make' sans modifier de fichiers.
On peut aussi imaginer d'utiliser des variables d'environnement permettant, par exemple, de reconnaître la machine de production et celle de tests...
En fait, tout est faisable ! ;-)
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
À (at) Tue, 16 Oct 2007 13:46:14 +0200,
Matthieu Moy <MatthieuNOSPAM.Moy@imag.fr.invalid> écrivait (wrote):
Paul Gaborit <Paul.Gaborit@invalid.invalid> writes:
L'intérêt de la dépendance supplémentaire est de pouvoir gérer les
choses plus finement. On peut imaginer que la production de certains
fichiers sont indépendantes de l'aspect TEST/PROD. Et puis, même si on
oublie le 'clean', ça marchera.
Au passage, si on en est à ajouter des dépendances, une solution est
d'avoir un fichier config.h qui contienne, ou ne contienne pas
#define DEBUG, en remplacement du -DDEBUG.
Oui, mais la demande initiale spécifiait qu'on devait pouvoir basculer
d'un mode à l'autre par le simple passage d'une option à 'make' sans
modifier de fichiers.
On peut aussi imaginer d'utiliser des variables d'environnement
permettant, par exemple, de reconnaître la machine de production et
celle de tests...
En fait, tout est faisable ! ;-)
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
À (at) Tue, 16 Oct 2007 13:46:14 +0200, Matthieu Moy écrivait (wrote):
Paul Gaborit writes:
L'intérêt de la dépendance supplémentaire est de pouvoir gérer les choses plus finement. On peut imaginer que la production de certains fichiers sont indépendantes de l'aspect TEST/PROD. Et puis, même si on oublie le 'clean', ça marchera.
Au passage, si on en est à ajouter des dépendances, une solution est d'avoir un fichier config.h qui contienne, ou ne contienne pas #define DEBUG, en remplacement du -DDEBUG.
Oui, mais la demande initiale spécifiait qu'on devait pouvoir basculer d'un mode à l'autre par le simple passage d'une option à 'make' sans modifier de fichiers.
On peut aussi imaginer d'utiliser des variables d'environnement permettant, par exemple, de reconnaître la machine de production et celle de tests...
En fait, tout est faisable ! ;-)
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
À mon avis, il vaut mieux garder les noms des objets en .o, et maintenir les .o dans des répertoires différents. Avec GNU make, on put bien faire quelque chose comme :
Je suis bien d'accord, mais il semble ne pas vouloir deux répertoires distincts. Donc, on bricole...
Marc Boyer -- Si tu peux supporter d'entendre tes paroles Travesties par des gueux pour exciter des sots IF -- Rudyard Kipling (Trad. André Maurois)
On 2007-10-16, James Kanze <james.kanze@gmail.com> wrote:
On Oct 15, 2:33 pm, Marc Boyer <Marc.Bo...@enseeiht.yahoo.fr.invalid>
wrote:
À mon avis, il vaut mieux garder les noms des objets en .o, et
maintenir les .o dans des répertoires différents. Avec GNU make,
on put bien faire quelque chose comme :
Je suis bien d'accord, mais il semble ne pas vouloir
deux répertoires distincts. Donc, on bricole...
Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. André Maurois)
À mon avis, il vaut mieux garder les noms des objets en .o, et maintenir les .o dans des répertoires différents. Avec GNU make, on put bien faire quelque chose comme :
Je suis bien d'accord, mais il semble ne pas vouloir deux répertoires distincts. Donc, on bricole...
Marc Boyer -- Si tu peux supporter d'entendre tes paroles Travesties par des gueux pour exciter des sots IF -- Rudyard Kipling (Trad. André Maurois)
Cyrille Lefevre
15/10/2007 15:37 - Matthieu Moy :
debug: $(MAKE) DEBUG=yes all
all: ...
Après test, cette solution me va très bien. Je vous remercie tous.
je te conseille très fortement la double arborescence ou tu auras des surprises à un moment ou un autre.
Regards, Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre. remove "%nospam" and ".invalid" to answer me.
15/10/2007 15:37 - Matthieu Moy :
debug:
$(MAKE) DEBUG=yes all
all:
...
Après test, cette solution me va très bien. Je vous remercie tous.
je te conseille très fortement la double arborescence ou tu auras des
surprises à un moment ou un autre.
Regards, Cordialement,
Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%nospam@laposte.net.invalid
supprimer "%nospam% et ".invalid" pour me repondre.
remove "%nospam" and ".invalid" to answer me.
Après test, cette solution me va très bien. Je vous remercie tous.
je te conseille très fortement la double arborescence ou tu auras des surprises à un moment ou un autre.
Regards, Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre. remove "%nospam" and ".invalid" to answer me.
Marc Boyer
On 2007-10-18, Cyrille Lefevre wrote:
15/10/2007 15:37 - Matthieu Moy :
debug: $(MAKE) DEBUG=yes all
all: ...
Après test, cette solution me va très bien. Je vous remercie tous.
je te conseille très fortement la double arborescence ou tu auras des surprises à un moment ou un autre.
On peut même dire que ce moment sera quand il oubliera de faire un "clean" entre les deux, et que ce jour là sera probablement un jour de stress, c-à-d un jour où justement il y a des enjeux important très sûrement.
Marc Boyer -- Si tu peux supporter d'entendre tes paroles Travesties par des gueux pour exciter des sots IF -- Rudyard Kipling (Trad. André Maurois)
On 2007-10-18, Cyrille Lefevre wrote:
15/10/2007 15:37 - Matthieu Moy :
debug:
$(MAKE) DEBUG=yes all
all:
...
Après test, cette solution me va très bien. Je vous remercie tous.
je te conseille très fortement la double arborescence ou tu auras des
surprises à un moment ou un autre.
On peut même dire que ce moment sera quand il oubliera de faire
un "clean" entre les deux, et que ce jour là sera probablement
un jour de stress, c-à-d un jour où justement il y a des enjeux
important très sûrement.
Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. André Maurois)
Après test, cette solution me va très bien. Je vous remercie tous.
je te conseille très fortement la double arborescence ou tu auras des surprises à un moment ou un autre.
On peut même dire que ce moment sera quand il oubliera de faire un "clean" entre les deux, et que ce jour là sera probablement un jour de stress, c-à-d un jour où justement il y a des enjeux important très sûrement.
Marc Boyer -- Si tu peux supporter d'entendre tes paroles Travesties par des gueux pour exciter des sots IF -- Rudyard Kipling (Trad. André Maurois)