Mercurial > hg > dmlib
annotate Makefile.gen @ 1:6e169d87d963
Improve buildsystem to support more flexible builds.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 28 Sep 2012 02:08:17 +0300 |
parents | 32250b436bca |
children | 9a8355b47e1c |
rev | line source |
---|---|
0 | 1 ### |
2 ### Get settings from config.mak | |
3 ### | |
4 include config.mak | |
5 | |
6 ifeq ($(EXTRA_CFLAGS),) | |
7 EXTRA_CFLAGS=-march=core2 | |
8 endif | |
9 | |
10 | |
11 ### | |
12 ### Form additional compilation defines based on settings | |
13 ### | |
14 | |
15 # If C routines are not explicitly disabled, we enable them | |
16 ifeq ($(DM_USE_C),) | |
17 DM_USE_C=yes | |
18 endif | |
19 | |
20 ifeq ($(DM_USE_C),yes) | |
21 DM_CFLAGS+=-DDM_USE_C | |
22 endif | |
23 | |
24 # Enable SIMD routines, if requested | |
25 ifeq ($(DM_USE_SIMD),yes) | |
26 DM_CFLAGS+=-DDM_USE_SIMD | |
27 endif | |
28 | |
29 | |
30 ### | |
31 ### Filesystem | |
32 ### | |
33 ifeq ($(DMRES_PACKFS),yes) | |
34 DM_CFLAGS += -DDMRES_PACKFS | |
35 DMLIB_OBJS += dmpack.o dmpackutil.o | |
36 DM_LDFLAGS += -lz | |
37 BINARIES += packed | |
38 endif | |
39 | |
40 ifeq ($(DMRES_STDIO),yes) | |
41 DM_CFLAGS += -DDMRES_STDIO | |
42 endif | |
43 | |
44 | |
45 ### | |
46 ### Graphics support | |
47 ### | |
48 | |
49 ifeq ($(DM_GFX_MISC),yes) | |
50 DM_CFLAGS += -DDM_GFX_MISC | |
51 DMLIB_OBJS += dmgfx.o | |
52 endif | |
53 | |
54 ifeq ($(DM_GFX_LINES),yes) | |
55 DM_CFLAGS += -DDM_GFX_LINES | |
56 DMLIB_OBJS += dmline.o | |
57 endif | |
58 | |
59 ifeq ($(DM_GFX_BLITS),yes) | |
60 DM_CFLAGS += -DDM_GFX_BLITS | |
61 DMLIB_OBJS += dmblit.o | |
62 endif | |
63 | |
64 ifeq ($(DM_GFX_TTF_TEXT),yes) | |
65 DM_CFLAGS += -DDM_GFX_TTF_TEXT | |
66 DMLIB_OBJS += dmtext.o | |
67 | |
68 ifeq ($(DM_GFX_BLITS),yes) | |
69 BINARIES += blittest vview vptest efu | |
70 endif | |
71 endif | |
72 | |
73 ifeq ($(DM_GFX_8BIT),yes) | |
74 DM_CFLAGS += -DDM_GFX_8BIT | |
75 endif | |
76 | |
77 ifeq ($(DM_GFX_15BIT),yes) | |
78 DM_CFLAGS += -DDM_GFX_15BIT | |
79 endif | |
80 | |
81 ifeq ($(DM_GFX_16BIT),yes) | |
82 DM_CFLAGS += -DDM_GFX_15BIT | |
83 endif | |
84 | |
85 ifeq ($(DM_GFX_32BIT),yes) | |
86 DM_CFLAGS += -DDM_GFX_15BIT | |
87 endif | |
88 | |
89 | |
90 ### | |
91 ### miniJSS | |
92 ### | |
93 ifeq ($(JSS),yes) | |
94 | |
95 ifeq ($(JSS_LIGHT),yes) | |
96 DM_CFLAGS+=-DJSS_LIGHT -Os | |
97 else | |
98 ifeq ($(JSS_USE_ASSERTS),yes) | |
99 DM_CFLAGS+=-DJSS_USE_ASSERTS | |
100 endif | |
101 ifeq ($(JSS_DEBUG),yes) | |
102 DM_CFLAGS+=-DJSS_DEBUG | |
103 endif | |
104 endif | |
105 | |
106 ifeq ($(JSS_SUP_THREADS),yes) | |
107 DM_CFLAGS+=-DJSS_SUP_THREADS | |
108 endif | |
109 | |
110 DMLIB_OBJS += jss.o jssmix.o jssmod.o jssplr.o | |
111 | |
112 SUP_MODLOAD=no | |
113 ifeq ($(JSS_SUP_XM),yes) | |
114 SUP_MODLOAD=yes | |
115 DMLIB_OBJS+= jloadxm.o | |
116 DM_CFLAGS+=-DJSS_SUP_XM | |
117 endif | |
118 | |
119 ifeq ($(JSS_SUP_JSSMOD),yes) | |
120 SUP_MODLOAD=yes | |
121 DMLIB_OBJS+= jloadjss.o | |
122 DM_CFLAGS+=-DJSS_SUP_JSSMOD $(JSSMOD_FLAGS) | |
123 endif | |
124 | |
125 ifeq ($(DM_USE_C),yes) | |
1
6e169d87d963
Improve buildsystem to support more flexible builds.
Matti Hamalainen <ccr@tnsp.org>
parents:
0
diff
changeset
|
126 TARGETS += jmix_c.c |
0 | 127 DMLIB_OBJS+=jmix_c.o |
1
6e169d87d963
Improve buildsystem to support more flexible builds.
Matti Hamalainen <ccr@tnsp.org>
parents:
0
diff
changeset
|
128 |
0 | 129 endif |
130 | |
131 #ifeq ($(DM_USE_SIMD),yes) | |
132 #DMLIB_OBJS+=jmix_simd.o | |
133 #endif | |
134 | |
135 | |
136 ### Dependancies | |
137 ifeq ($(SUP_MODLOAD),yes) | |
138 BINARIES+= viewmod mod2wav testpl | |
139 endif | |
140 | |
141 | |
142 ifeq ($(JSS_SUP_JSSMOD),yes) | |
143 ifeq ($(JSS_SUP_XM),yes) | |
144 BINARIES+= xm2jss | |
145 endif | |
146 endif | |
147 | |
148 endif | |
149 | |
150 ### | |
151 ### Rest of the rules | |
152 ### | |
153 CFLAGS += -g -W -Wall -DHAVE_STRING_H -O3 $(EXTRA_CFLAGS) | |
154 CXXFLAGS=$(CFLAGS) | |
155 | |
156 DM_CFLAGS += $(SDL_CFLAGS) | |
157 DM_LDFLAGS += $(LDFLAGS) $(SDL_LDFLAGS) | |
158 | |
159 | |
160 DMLIB_A=$(OBJPATH)dmlib.a | |
161 DMLIB_OBJS += dmfile.o dmlib.o dmlerp.o dmstring.o \ | |
162 dmargs.o dmvecmat.o dmperlin.o dmimage.o dmres.o | |
163 | |
164 BINARIES += vecmattest fptest | |
165 | |
1
6e169d87d963
Improve buildsystem to support more flexible builds.
Matti Hamalainen <ccr@tnsp.org>
parents:
0
diff
changeset
|
166 TARGETS += $(DMLIB_A) $(addprefix $(BINPATH),$(addsuffix $(EXEEXT),$(BINARIES))) |
0 | 167 |
168 all: $(TARGETS) | |
169 | |
170 ### | |
171 ### Generic rules | |
172 ### | |
173 | |
1
6e169d87d963
Improve buildsystem to support more flexible builds.
Matti Hamalainen <ccr@tnsp.org>
parents:
0
diff
changeset
|
174 $(OBJPATH)%.o: $(DMLIB)%.c $(DMLIB)%.h |
0 | 175 @echo " CC $<" |
176 @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) | |
177 | |
1
6e169d87d963
Improve buildsystem to support more flexible builds.
Matti Hamalainen <ccr@tnsp.org>
parents:
0
diff
changeset
|
178 $(OBJPATH)%.o: $(DMLIB)%.c |
0 | 179 @echo " CC $<" |
180 @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) | |
181 | |
182 | |
183 ### | |
184 ### dmlib rules | |
185 ### | |
186 | |
1
6e169d87d963
Improve buildsystem to support more flexible builds.
Matti Hamalainen <ccr@tnsp.org>
parents:
0
diff
changeset
|
187 $(DMLIB)jmix_c.c: $(DMLIB)jmix_c.in.c $(DMLIB)jmix_c.h $(DMLIB)jmix_post.h |
0 | 188 (echo "#include \"jssmix.h\"" && cpp $<) | sed "s/^# .*//g" > $@ |
189 | |
190 | |
1
6e169d87d963
Improve buildsystem to support more flexible builds.
Matti Hamalainen <ccr@tnsp.org>
parents:
0
diff
changeset
|
191 $(OBJPATH)dmimage.o: $(DMLIB)dmimage.c $(DMLIB)stb_image.c |
0 | 192 @echo " CC $+" |
193 @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) | |
194 | |
1
6e169d87d963
Improve buildsystem to support more flexible builds.
Matti Hamalainen <ccr@tnsp.org>
parents:
0
diff
changeset
|
195 $(OBJPATH)dmblit.o: $(DMLIB)dmblit.c $(DMLIB)dmscaledblit.h $(DMLIB)dmblitfunc.h |
0 | 196 @echo " CC $+" |
197 @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) | |
198 | |
1
6e169d87d963
Improve buildsystem to support more flexible builds.
Matti Hamalainen <ccr@tnsp.org>
parents:
0
diff
changeset
|
199 $(OBJPATH)dmline.o: $(DMLIB)dmline.c $(DMLIB)dmdrawline.h $(DMLIB)dmlinefunc.h |
0 | 200 @echo " CC $+" |
201 @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) | |
202 | |
1
6e169d87d963
Improve buildsystem to support more flexible builds.
Matti Hamalainen <ccr@tnsp.org>
parents:
0
diff
changeset
|
203 $(OBJPATH)dmargs.o: $(DMLIB)dmargs.c $(DMLIB)dmargs.h $(DMLIB)dmargs_int.c |
0 | 204 @echo " CC $+" |
205 @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) | |
206 | |
207 | |
208 $(DMLIB_A): $(addprefix $(OBJPATH),$(DMLIB_OBJS)) Makefile.gen config.mak | |
209 @echo " AR $@ $(addprefix $(OBJPATH),$(DMLIB_OBJS))" | |
210 @$(AR) cru $@ $+ $(addprefix $(OBJPATH),$(DMLIB_OBJS)) | |
211 @$(RANLIB) $@ | |
212 | |
213 | |
214 ### | |
215 ### Tests and binaries | |
216 ### | |
217 $(BINPATH)vview$(EXEEXT): $(OBJPATH)vview.o $(DMLIB_A) | |
218 @echo " LINK $+" | |
219 @$(CC) -o $@ $+ $(DM_LDFLAGS) -lSDL_ttf | |
220 | |
221 $(BINPATH)blittest$(EXEEXT): $(OBJPATH)blittest.o $(DMLIB_A) | |
222 @echo " LINK $+" | |
223 @$(CC) -o $@ $+ $(DM_LDFLAGS) -lSDL_ttf | |
224 | |
225 $(BINPATH)efu$(EXEEXT): $(OBJPATH)efu.o $(DMLIB_A) | |
226 @echo " LINK $+" | |
227 @$(CC) -o $@ $+ $(DM_LDFLAGS) -lSDL_ttf -lSDL_image | |
228 | |
229 $(BINPATH)vptest$(EXEEXT): $(OBJPATH)vptest.o $(DMLIB_A) | |
230 @echo " LINK $+" | |
231 @$(CC) -o $@ $+ $(DM_LDFLAGS) -lSDL_ttf | |
232 | |
233 $(BINPATH)%test$(EXEEXT): $(OBJPATH)%test.o $(DMLIB_A) | |
234 @echo " LINK $+" | |
235 @$(CC) -o $@ $+ $(DM_LDFLAGS) | |
236 | |
237 $(BINPATH)packed$(EXEEXT): $(OBJPATH)packed.o $(DMLIB_A) | |
238 @echo " LINK $+" | |
239 @$(CC) -o $@ $+ $(DM_LDFLAGS) | |
240 | |
241 $(BINPATH)mod2wav$(EXEEXT): $(OBJPATH)mod2wav.o $(DMLIB_A) | |
242 @echo " LINK $+" | |
243 @$(CC) -o $@ $+ $(DM_LDFLAGS) | |
244 | |
245 $(BINPATH)xm2jss$(EXEEXT): $(OBJPATH)xm2jss.o $(DMLIB_A) | |
246 @echo " LINK $+" | |
247 @$(CC) -o $@ $+ $(DM_LDFLAGS) | |
248 | |
249 $(BINPATH)viewmod$(EXEEXT): $(OBJPATH)viewmod.o $(DMLIB_A) | |
250 @echo " LINK $+" | |
251 @$(CC) -o $@ $+ $(DM_LDFLAGS) | |
252 | |
253 $(BINPATH)testpl$(EXEEXT): $(OBJPATH)testpl.o $(DMLIB_A) | |
254 @echo " LINK $+" | |
255 @$(CC) -o $@ $+ $(DM_LDFLAGS) | |
256 | |
257 | |
258 ### | |
259 ### Special targets | |
260 ### | |
261 clean: | |
262 $(RM) $(TARGETS) $(OBJPATH)*.o | |
263 |