added -Wshadow
[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 T_WARFLAGS := -Wall -Wextra -pedantic -ansi -Wshadow
28
29 G_CXXFLAGS := ${T_WARFLAGS}
30 ifeq (${G_BUILD},${B_DEBUG})
31     G_CXXFLAGS    += ${T_DBGFLAGS}
32 else
33 ifeq (${G_BUILD},${B_FINAL})
34     G_CXXFLAGS    += ${T_OPTFLAGS}
35 else
36 ifeq (${G_BUILD},${B_WIN32})
37     G_CXXFLAGS    += ${T_OPTFLAGS}
38 else
39     $(error 'G_BUILD = ${G_BUILD}' is invalid.)
40 endif
41 endif
42 endif
43
44 T_OPTFLAGS :=
45 T_DBGFLAGS :=
46 T_PRFFLAGS :=
47 T_WARFLAGS :=
48
49 G_LNKFLAGS :=
50
51 ifeq (${G_BUILD},${B_WIN32})
52     G_CXX := mingw32-g++
53 else
54     G_CXX := g++
55 endif
56
57 ifeq (${G_BUILD},${B_WIN32})
58     G_LIBGL   := -lopengl32 -lglu32
59     G_LIBSDL  := `/usr/mingw32/bin/sdl-config --libs`
60 else
61     G_LIBGL   := -lGL -lGLU
62     G_LIBSDL  := `sdl-config --libs`
63 endif
64
65 G_SRCSDIR := src/
66 G_DEPSDIR := deps/
67
68 ifeq (${G_BUILD},${B_DEBUG})
69     G_OBJSDIR := objsd/
70     G_BINDIR  := bind/
71 else
72 ifeq (${G_BUILD},${B_FINAL})
73     G_OBJSDIR := objs/
74     G_BINDIR  := bin/
75 else
76 ifeq (${G_BUILD},${B_WIN32})
77     G_OBJSDIR := objs-mingw32/
78     G_BINDIR  := bin-mingw32/
79 else
80     $(error 'G_BUILD = ${G_BUILD}' is invalid.)
81 endif
82 endif
83 endif
84
85 LOGFILE := bld.log
86
87 $(shell rm -f ${LOGFILE}) # remove the log file from last run
88
89 ifeq (${G_BUILD},${B_WIN32})
90     PRNTFMT := printf "%-12s: %s\n"
91     PRNTLOG := printf "\n\#\#  %-12s: %s\n"
92 else
93     PRNTFMT := printf "%-8s: %s\n"
94     PRNTLOG := printf "\n\#\#  %-8s: %s\n"
95 endif
96
97 VERBOSE := 0
98
99 ifeq (${VERBOSE},0)
100     # log the printf command
101     Q1s := @
102     Q1e := >> ${LOGFILE}
103     # quiet the printf command
104     Q2s := @
105     Q2e :=
106                 # log the command
107     Q3s := @echo # NOTE: the space between @echo and the # is VERY important!!
108     Q3e := >> ${LOGFILE}
109     # quiet the command
110     Q4s := @
111     Q4e :=
112 else
113     # EAT the logging printf command
114     Q1s := @true # NOTE: the space between @true and the # is VERY important!!
115     Q1e :=
116     # EAT the quiet printf command
117     Q2s := @true # NOTE: the space between @true and the # is VERY important!!
118     Q2e :=
119                 # EAT the logging command
120     Q3s := @true # NOTE: the space between @true and the # is VERY important!!
121     Q3e :=
122     # do not quiet the command
123     Q4s :=
124     Q4e :=
125 endif
126
127
128 ifeq (${G_BUILD},${B_WIN32})
129     prefix      := /usr/mingw32
130 else
131     prefix      := /usr
132 endif
133 exec_prefix := ${prefix}
134 includedir  := ${prefix}/include
135 libdir      := ${exec_prefix}/lib
136 INSTALL     := install
137