[makefile] constantes de compilation

constantes de compilation [makefile] - C++ - Programmation

Marsh Posté le 14-04-2003 à 23:32:28    

c'est pour un algo, soit je montre qu'il marche avec pleins de cout, soit je mesure sont temps d'éxécution
 
donc pour tout faire au plus rapide avec les couts lents, j'ai utilisé des directives de compilation BENCH ou DEMO  
 
j'arrive a faire ce que je veux, mai la question est : comment faire pour que mon makefile puisse prendre en argument la "constante" qui change en fonction de mon choix et la répartit a l'intérieur
 
sinon, commpent fairedes petits messages gentils pour dire qu'un make tt court ca suffit pas, qu'il faut faire "make demo" ou "make bench" pour bien compiler ?
(j'avais utilisé la directive #error quand j'avias pas encore fait de makefile)


tp: tp.o def_aux.o tri_autre.o tri_tas.o
 g++ -DBENCH tp.o def_aux.o tri_autre.o tri_tas.o -o tp2
 
tp.o: tp.cpp tp.h
 g++ -c  -DBENCH tp.cpp
 
def_aux.o: def_aux.cpp def_aux.h
 g++ -c -DBENCH def_aux.cpp
 
tri_tas.o: tri_tas.cpp tri_tas.h
 g++ -c -DBENCH tri_tas.cpp
 
tri_autre.o: tri_autre.cpp tri_autre.h
 g++ -c -DBENCH tri_autre.cpp
 
 


Message édité par farib le 15-04-2003 à 12:14:15

---------------
Bitcoin, Magical Thinking, and Political Ideology
Reply

Marsh Posté le 14-04-2003 à 23:32:28   

Reply

Marsh Posté le 15-04-2003 à 10:43:53    

Reply

Marsh Posté le 15-04-2003 à 12:13:16    

je reformule ma question : comment faire pour que la constante de compilation soit passée par le makefile via un  
"make bench" ou "make demo", qu'un simple "make" affiche un message d'erreur ?


---------------
Bitcoin, Magical Thinking, and Political Ideology
Reply

Marsh Posté le 15-04-2003 à 13:27:51    

essaye avec un truc dans le genre:
 


CC = gcc
CFLAGS = -Wall -O2
 
RM = rm
 
OBJECTS = fichier1.o fichier2.o
 
.c.o:
 $(CC) $(CFLAGS) -c $<
 
default:
 @echo "taper make bench ou make demo";
 @exit 1;
 
demo:CFLAGS = $(CFLAGS) -DDEMO
demo:tp
 
bench: CFLAGS = $(CFLAGS) -DBENCH
bench:tp
 
tp:$(OBJECTS)
 $(CC) $< -o $@
 
clean:
 $(RM) -f *.o core

 

Reply

Marsh Posté le 15-04-2003 à 13:30:18    

Le fonctionnement du makefile est en gros celui-là :  
 
ma_commande : dépendances
[! tab]  choses_à_faire
 
et un ch'tit exemple :
 
 

Code :
  1. ###
  2. ###  File : makefile
  3. ###  Creation date : 2003-04-15
  4. ###
  5. # le @ empêche l'affichage de la commande
  6. # appel avec make sans arguments
  7. # en fait, c'est la première commande qui est appelée
  8. # on peut faire faire au make n'importe quoi...
  9. # attention à la tabulation, ce ne sont pas des espaces !
  10. all:
  11. @ls -a
  12. @echo
  13. @echo vous avez tapé "make"
  14. @echo blabla
  15. # deux exemples d'appels avec argument
  16. depend :
  17. @echo gestion des dépendances
  18. # le symbole * a même un sens
  19. clean:
  20. @echo nettoyage
  21. @echo ls *

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed