root/haypocalc/make.env

Revision 17, 3.7 kB (checked in by haypo, 1 year ago)

Import HaypoCALC version 1.6.23

Line 
1 ###############################################################################
2 # Définitons communes pour les différents makefile de HaypoCALC (hcalc)
3 # Par STINNER Victor (Haypo) - http://www.haypocalc.com/
4 ###############################################################################
5
6 # Version de HaypoCALC (ne doit pas contenir d'espace!)
7 # utilisé pour nommer l'archive tgz
8 VERSION=$(shell grep '\#define VERSION_HAYPOCALC' hcalc/version.h \
9   | sed -e 's/.*"\([^"]\+\)".*/\1/')
10
11 # Mode release ?
12 #RELEASE=1
13
14 # Utilise les séquences d'echappement ANSI ?
15 UTILISE_ESC=$(shell if [ "$$EMACS" = "t" ]; then echo '0'; else echo '1'; fi)
16
17 ###############################################################################
18
19 # Compilateur C++
20 CXX:=g++
21
22 ###############################################################################
23
24 # Options de compilation C++
25 # -Wall     : Affiche tous les avertissments
26 # -g        : Rajoute les informations de débogage (pour utiliser GDB)
27 # -ansi     : Rejette le code non-ANSI
28 # -pedantic : Rejette le code non-ANSI, mais vraiment tout !
29 CXXFLAGS:=-Wall -Wextra
30 ifeq ($(RELEASE),1)
31   CXXFLAGS+=-O2 -DRELEASE
32 else
33   CXXFLAGS+=-g
34 endif
35
36 # Liste des répertoires
37 DIRS:=include type fct interface lst op console hcalc
38
39 # Répertoires d'inclusion
40 INCDIR:=$(foreach dir,$(DIRS),-I$(ROOT_DIR)$(dir)/)
41 CXXFLAGS+=$(INCDIR)
42
43 # `uname -s` == "Linux"
44 LINUX=1
45
46 # Librairies
47 LIBS:=-lm
48 ifdef LINUX
49   LIBS+=-lncurses
50 endif
51
52 ###############################################################################
53
54 # Fonction qui génère la liste des objets d'un répertoire
55 LISTE_OBJECTS=$(patsubst %.cpp,%.o,$(notdir $(wildcard $(ROOT_DIR)/$(1)/*.cpp)))
56
57 # Objets des différents répertoire
58 OBJECTS_console:=$(call LISTE_OBJECTS,console)
59 OBJECTS_type:=$(call LISTE_OBJECTS,type)
60 OBJECTS_fct:=$(call LISTE_OBJECTS,fct)
61 OBJECTS_hcalc:=$(call LISTE_OBJECTS,hcalc)
62 OBJECTS_include:=$(call LISTE_OBJECTS,include)
63 OBJECTS_interface:=$(call LISTE_OBJECTS,interface)
64 OBJECTS_lst:=$(call LISTE_OBJECTS,lst)
65 OBJECTS_op:=$(call LISTE_OBJECTS,op)
66 OBJECTS_root:=main.o
67
68 # Toutes les objets
69 OBJECTS:=$(addprefix include/, $(OBJECTS_include))
70 OBJECTS+=$(addprefix type/, $(OBJECTS_type))
71 OBJECTS+=$(addprefix lst/, $(OBJECTS_lst))
72 OBJECTS+=$(addprefix fct/, $(OBJECTS_fct))
73 OBJECTS+=$(addprefix op/, $(OBJECTS_op))
74 OBJECTS+=$(addprefix interface/, $(OBJECTS_interface))
75 OBJECTS+=$(addprefix console/, $(OBJECTS_console))
76 OBJECTS+=$(addprefix hcalc/, $(OBJECTS_hcalc))
77 OBJECTS+=$(OBJECTS_root)
78
79 # Nom du programme (binaire)
80 ifdef LINUX
81   BINAIRE:=hcalc-bin
82 else
83   BINAIRE:=hcalc.exe
84 endif
85
86 ###############################################################################
87
88 # Fichiers temporaires (à supprimer)
89 FICH_TMP:=*.o *.obj *~ *.~* *.bak *.tds *.asm *.gch
90
91 ifeq ($(UTILISE_ESC),1)
92   # Met le texte 'en gras'
93   COUL_GRAS=\033[0;1m
94
95   # Attributs par défaut pour le texte
96   COUL_DEFAUT=\033[0m
97
98   # Couleur de titre
99   COUL_SEP=\033[37m\033[44m
100
101   # Couleur de la commande à exécuter
102   COUL_EXEC=\033[1;31m
103
104   # Erreur
105   COUL_ERREUR=\033[1;33;41m
106 endif
107
108 # Commandes pour compiler du code C++
109 # -c          : Compiler uniquement, n'édite pas les liens
110 # -o NOMFICHO : NOMFICHO sera utilisé comme fichier de sortie (Output)
111 COMPILE_CXX=@echo -e "* Compile '$(COUL_GRAS)$@$(COUL_DEFAUT)'"
112 COMPILE_CXX+=&& $(CXX) -c $(basename $@).cpp -o $@ $(CXXFLAGS)
113
114 %.o: %.cpp
115         $(COMPILE_CXX)
116
117 ###############################################################################
118
119 NCURSES_MANQUE="ERREUR$(COUL_ERREUR)\n\
120   !!!\n\
121   !!! Veuillez installer les entêtes de développement de la librairie ncurses,\n\
122   !!! Vous pouvez la trouver à l'adresse :\n\
123   !!!   http://www.gnu.org/software/ncurses/\n\
124   !!!\n\
125   !!! Sous Debian, passez en root (su), puis tapez :\n\
126   !!!   apt-get install libncurses5-dev\n\
127   !!!$(COUL_DEFAUT)\n"
Note: See TracBrowser for help on using the browser.