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)
|
|
126 DMLIB_OBJS+=jmix_c.o
|
|
127 endif
|
|
128
|
|
129 #ifeq ($(DM_USE_SIMD),yes)
|
|
130 #DMLIB_OBJS+=jmix_simd.o
|
|
131 #endif
|
|
132
|
|
133
|
|
134 ### Dependancies
|
|
135 ifeq ($(SUP_MODLOAD),yes)
|
|
136 BINARIES+= viewmod mod2wav testpl
|
|
137 endif
|
|
138
|
|
139
|
|
140 ifeq ($(JSS_SUP_JSSMOD),yes)
|
|
141 ifeq ($(JSS_SUP_XM),yes)
|
|
142 BINARIES+= xm2jss
|
|
143 endif
|
|
144 endif
|
|
145
|
|
146 endif
|
|
147
|
|
148 ###
|
|
149 ### Rest of the rules
|
|
150 ###
|
|
151 CFLAGS += -g -W -Wall -DHAVE_STRING_H -O3 $(EXTRA_CFLAGS)
|
|
152 CXXFLAGS=$(CFLAGS)
|
|
153
|
|
154 DM_CFLAGS += $(SDL_CFLAGS)
|
|
155 DM_LDFLAGS += $(LDFLAGS) $(SDL_LDFLAGS)
|
|
156
|
|
157
|
|
158 DMLIB_A=$(OBJPATH)dmlib.a
|
|
159 DMLIB_OBJS += dmfile.o dmlib.o dmlerp.o dmstring.o \
|
|
160 dmargs.o dmvecmat.o dmperlin.o dmimage.o dmres.o
|
|
161
|
|
162 BINARIES += vecmattest fptest
|
|
163
|
|
164 TARGETS=$(DMLIB_A) $(addprefix $(BINPATH),$(addsuffix $(EXEEXT),$(BINARIES)))
|
|
165
|
|
166 all: $(TARGETS)
|
|
167
|
|
168 ###
|
|
169 ### Generic rules
|
|
170 ###
|
|
171
|
|
172 $(OBJPATH)%.o: %.c %.h
|
|
173 @echo " CC $<"
|
|
174 @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)
|
|
175
|
|
176 $(OBJPATH)%.o: %.c
|
|
177 @echo " CC $<"
|
|
178 @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)
|
|
179
|
|
180
|
|
181 ###
|
|
182 ### dmlib rules
|
|
183 ###
|
|
184
|
|
185 jmix_c.c: jmix_c.in.c jmix_c.h jmix_post.h
|
|
186 (echo "#include \"jssmix.h\"" && cpp $<) | sed "s/^# .*//g" > $@
|
|
187
|
|
188
|
|
189 $(OBJPATH)dmimage.o: dmimage.c stb_image.c
|
|
190 @echo " CC $+"
|
|
191 @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)
|
|
192
|
|
193 $(OBJPATH)dmblit.o: dmblit.c dmscaledblit.h dmblitfunc.h
|
|
194 @echo " CC $+"
|
|
195 @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)
|
|
196
|
|
197 $(OBJPATH)dmline.o: dmline.c dmdrawline.h dmlinefunc.h
|
|
198 @echo " CC $+"
|
|
199 @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)
|
|
200
|
|
201 $(OBJPATH)dmargs.o: dmargs.c dmargs.h dmargs_int.c
|
|
202 @echo " CC $+"
|
|
203 @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)
|
|
204
|
|
205
|
|
206 $(DMLIB_A): $(addprefix $(OBJPATH),$(DMLIB_OBJS)) Makefile.gen config.mak
|
|
207 @echo " AR $@ $(addprefix $(OBJPATH),$(DMLIB_OBJS))"
|
|
208 @$(AR) cru $@ $+ $(addprefix $(OBJPATH),$(DMLIB_OBJS))
|
|
209 @$(RANLIB) $@
|
|
210
|
|
211
|
|
212 ###
|
|
213 ### Tests and binaries
|
|
214 ###
|
|
215 $(BINPATH)vview$(EXEEXT): $(OBJPATH)vview.o $(DMLIB_A)
|
|
216 @echo " LINK $+"
|
|
217 @$(CC) -o $@ $+ $(DM_LDFLAGS) -lSDL_ttf
|
|
218
|
|
219 $(BINPATH)blittest$(EXEEXT): $(OBJPATH)blittest.o $(DMLIB_A)
|
|
220 @echo " LINK $+"
|
|
221 @$(CC) -o $@ $+ $(DM_LDFLAGS) -lSDL_ttf
|
|
222
|
|
223 $(BINPATH)efu$(EXEEXT): $(OBJPATH)efu.o $(DMLIB_A)
|
|
224 @echo " LINK $+"
|
|
225 @$(CC) -o $@ $+ $(DM_LDFLAGS) -lSDL_ttf -lSDL_image
|
|
226
|
|
227 $(BINPATH)vptest$(EXEEXT): $(OBJPATH)vptest.o $(DMLIB_A)
|
|
228 @echo " LINK $+"
|
|
229 @$(CC) -o $@ $+ $(DM_LDFLAGS) -lSDL_ttf
|
|
230
|
|
231 $(BINPATH)%test$(EXEEXT): $(OBJPATH)%test.o $(DMLIB_A)
|
|
232 @echo " LINK $+"
|
|
233 @$(CC) -o $@ $+ $(DM_LDFLAGS)
|
|
234
|
|
235 $(BINPATH)packed$(EXEEXT): $(OBJPATH)packed.o $(DMLIB_A)
|
|
236 @echo " LINK $+"
|
|
237 @$(CC) -o $@ $+ $(DM_LDFLAGS)
|
|
238
|
|
239 $(BINPATH)mod2wav$(EXEEXT): $(OBJPATH)mod2wav.o $(DMLIB_A)
|
|
240 @echo " LINK $+"
|
|
241 @$(CC) -o $@ $+ $(DM_LDFLAGS)
|
|
242
|
|
243 $(BINPATH)xm2jss$(EXEEXT): $(OBJPATH)xm2jss.o $(DMLIB_A)
|
|
244 @echo " LINK $+"
|
|
245 @$(CC) -o $@ $+ $(DM_LDFLAGS)
|
|
246
|
|
247 $(BINPATH)viewmod$(EXEEXT): $(OBJPATH)viewmod.o $(DMLIB_A)
|
|
248 @echo " LINK $+"
|
|
249 @$(CC) -o $@ $+ $(DM_LDFLAGS)
|
|
250
|
|
251 $(BINPATH)testpl$(EXEEXT): $(OBJPATH)testpl.o $(DMLIB_A)
|
|
252 @echo " LINK $+"
|
|
253 @$(CC) -o $@ $+ $(DM_LDFLAGS)
|
|
254
|
|
255
|
|
256 ###
|
|
257 ### Special targets
|
|
258 ###
|
|
259 clean:
|
|
260 $(RM) $(TARGETS) $(OBJPATH)*.o
|
|
261
|