added more warning flags
[libbear.git] / vars.mk
1
2 # cause the fancy $${@D} directory rules to work out
3 .SECONDEXPANSION:
4
5 B_DEBUG    := DEBUG
6 B_FINAL    := FINAL
7 B_WIN32    := WIN32
8
9 # set this on the command line to get a WIN32 or a FINAL build
10 G_BUILD    := ${B_DEBUG}
11
12 ifeq (${G_BUILD},${B_DEBUG})
13 else
14 ifeq (${G_BUILD},${B_FINAL})
15 else
16 ifeq (${G_BUILD},${B_WIN32})
17 else
18     $(error 'G_BUILD = ${G_BUILD}' is invalid. Valid types are '${B_DEBUG}', '${B_FINAL}' or '${B_WIN32}')
19 endif
20 endif
21 endif
22
23
24 T_OPTFLAGS := -O2
25 T_DBGFLAGS := -ggdb
26 T_PRFFLAGS := ${T_DBGFLAGS} -pg
27
28 T_WARFLAGS :=
29 T_WARFLAGS += -Wall
30 T_WARFLAGS += -Wextra
31 T_WARFLAGS += -pedantic
32 T_WARFLAGS += -ansi
33 T_WARFLAGS += -Wshadow
34 T_WARFLAGS += -Wswitch-enum
35 T_WARFLAGS += -Wfloat-equal
36 T_WARFLAGS += -Wundef
37
38 G_CXXFLAGS := ${T_WARFLAGS}
39 ifeq (${G_BUILD},${B_DEBUG})
40     G_CXXFLAGS    += ${T_DBGFLAGS}
41 else
42 ifeq (${G_BUILD},${B_FINAL})
43     G_CXXFLAGS    += ${T_OPTFLAGS}
44 else
45 ifeq (${G_BUILD},${B_WIN32})
46     G_CXXFLAGS    += ${T_OPTFLAGS}
47 else
48     $(error 'G_BUILD = ${G_BUILD}' is invalid.)
49 endif
50 endif
51 endif
52
53 T_OPTFLAGS :=
54 T_DBGFLAGS :=
55 T_PRFFLAGS :=
56 T_WARFLAGS :=
57
58 G_LNKFLAGS :=
59
60 ifeq (${G_BUILD},${B_WIN32})
61     G_CXX := mingw32-g++
62 else
63     G_CXX := g++
64 endif
65
66 ifeq (${G_BUILD},${B_WIN32})
67     G_LIBGL   := -lopengl32 -lglu32
68     G_LIBSDL  := `/usr/mingw32/bin/sdl-config --libs`
69 else
70     G_LIBGL   := -lGL -lGLU
71     G_LIBSDL  := `sdl-config --libs`
72 endif
73
74 G_SRCSDIR := src/
75 G_DEPSDIR := deps/
76
77 ifeq (${G_BUILD},${B_DEBUG})
78     G_OBJSDIR := objsd/
79     G_BINDIR  := bind/
80 else
81 ifeq (${G_BUILD},${B_FINAL})
82     G_OBJSDIR := objs/
83     G_BINDIR  := bin/
84 else
85 ifeq (${G_BUILD},${B_WIN32})
86     G_OBJSDIR := objs-mingw32/
87     G_BINDIR  := bin-mingw32/
88 else
89     $(error 'G_BUILD = ${G_BUILD}' is invalid.)
90 endif
91 endif
92 endif
93
94 LOGFILE := bld.log
95
96 $(shell rm -f ${LOGFILE}) # remove the log file from last run
97
98 ifeq (${G_BUILD},${B_WIN32})
99     PRNTFMT := printf "%-12s: %s\n"
100     PRNTLOG := printf "\n\#\#  %-12s: %s\n"
101 else
102     PRNTFMT := printf "%-8s: %s\n"
103     PRNTLOG := printf "\n\#\#  %-8s: %s\n"
104 endif
105
106 VERBOSE := 0
107
108 ifeq (${VERBOSE},0)
109     # log the printf command
110     Q1s := @
111     Q1e := >> ${LOGFILE}
112     # quiet the printf command
113     Q2s := @
114     Q2e :=
115                 # log the command
116     Q3s := @echo # NOTE: the space between @echo and the # is VERY important!!
117     Q3e := >> ${LOGFILE}
118     # quiet the command
119     Q4s := @
120     Q4e :=
121 else
122     # EAT the logging printf command
123     Q1s := @true # NOTE: the space between @true and the # is VERY important!!
124     Q1e :=
125     # EAT the quiet printf command
126     Q2s := @true # NOTE: the space between @true and the # is VERY important!!
127     Q2e :=
128                 # EAT the logging command
129     Q3s := @true # NOTE: the space between @true and the # is VERY important!!
130     Q3e :=
131     # do not quiet the command
132     Q4s :=
133     Q4e :=
134 endif
135
136
137 ifeq (${G_BUILD},${B_WIN32})
138     prefix      := /usr/mingw32
139 else
140     prefix      := /usr
141 endif
142 exec_prefix := ${prefix}
143 includedir  := ${prefix}/include
144 libdir      := ${exec_prefix}/lib
145 INSTALL     := install
146