1# GNU Makefile for building libMikMod using GCC / DJGPP environment
2#
3# Edit config.h to disable/enable certain drivers, etc, if necessary.
4#
5# Targets:
6# - all (default): make libmikmod.a, static MikMod sound library
7# - clean: clean up (remove all generated files)
8
9# Set to 1 for debug build
10DEBUG = 0
11
12# The tools
13ifeq ($(CROSS),)
14CC=gcc
15AS=as
16AR=ar
17RANLIB=ranlib
18else
19CC=$(CROSS)-gcc
20AS=$(CROSS)-as
21AR=$(CROSS)-ar
22RANLIB=$(CROSS)-ranlib
23endif
24CFLAGS = -DMIKMOD_BUILD -DHAVE_CONFIG_H $(INCLUDE)
25INCLUDE = -I../dos -I../drivers/dos -I../include
26ARFLAGS = cr
27
28ifeq ($(DEBUG),1)
29CFLAGS += -g -Wall
30else
31CFLAGS += -O2 -Wall -fomit-frame-pointer -ffast-math
32endif
33
34.SUFFIXES:
35.SUFFIXES: .o .c
36
37COMPILE=$(CC) -c $(CFLAGS)
38
39OBJ=out/dosdma.o \
40    out/dosirq.o \
41    out/dosgus.o \
42    out/drv_ultra.o \
43    out/dossb.o \
44    out/drv_sb.o \
45    out/doswss.o \
46    out/drv_wss.o \
47    out/drv_wav.o \
48    out/drv_aiff.o \
49    out/drv_raw.o \
50    out/drv_stdout.o \
51    out/drv_pipe.o \
52    out/drv_nos.o \
53    out/strcasecmp.o \
54    out/load_669.o \
55    out/load_amf.o \
56    out/load_asy.o \
57    out/load_dsm.o \
58    out/load_far.o \
59    out/load_gdm.o \
60    out/load_gt2.o \
61    out/load_it.o \
62    out/load_imf.o \
63    out/load_m15.o \
64    out/load_med.o \
65    out/load_mod.o \
66    out/load_mtm.o \
67    out/load_okt.o \
68    out/load_s3m.o \
69    out/load_stm.o \
70    out/load_stx.o \
71    out/load_ult.o \
72    out/load_umx.o \
73    out/load_uni.o \
74    out/load_xm.o \
75    out/mmalloc.o \
76    out/mmerror.o \
77    out/mmio.o \
78    out/mdriver.o \
79    out/mdreg.o \
80    out/mmcmp.o \
81    out/pp20.o \
82    out/s404.o \
83    out/xpk.o \
84    out/mloader.o \
85    out/mlreg.o \
86    out/mlutil.o \
87    out/mplayer.o \
88    out/munitrk.o \
89    out/mwav.o \
90    out/npertab.o \
91    out/sloader.o \
92    out/virtch.o \
93    out/virtch2.o \
94    out/virtch_common.o
95#   out/mdulaw.o
96
97.PHONY: clean
98
99# The build targets
100TARGETS = libmikmod.a
101
102all: $(TARGETS)
103
104clean:
105	rm -rf out/*.o $(TARGETS)
106
107libmikmod.a: $(OBJ)
108	$(AR) $(ARFLAGS) $@ $^
109	$(RANLIB) $@
110
111HEADER_DEPS=../dos/config.h ../include/mikmod.h ../include/mikmod_internals.h ../include/mikmod_ctype.h
112out/drv_ultra.o: ../drivers/drv_ultra.c $(HEADER_DEPS) ../drivers/dos/libgus.h
113	$(COMPILE) ../drivers/drv_ultra.c -o out/drv_ultra.o
114out/drv_sb.o: ../drivers/drv_sb.c $(HEADER_DEPS) ../drivers/dos/dossb.h
115	$(COMPILE) ../drivers/drv_sb.c -o out/drv_sb.o
116out/drv_wss.o: ../drivers/drv_wss.c $(HEADER_DEPS) ../drivers/dos/doswss.h
117	$(COMPILE) ../drivers/drv_wss.c -o out/drv_wss.o
118out/dosgus.o: ../drivers/dos/dosgus.c $(HEADER_DEPS) ../drivers/dos/libgus.h
119	$(COMPILE) ../drivers/dos/dosgus.c -o out/dosgus.o
120out/dossb.o: ../drivers/dos/dossb.c $(HEADER_DEPS) ../drivers/dos/dossb.h
121	$(COMPILE) ../drivers/dos/dossb.c -o out/dossb.o
122out/doswss.o: ../drivers/dos/doswss.c $(HEADER_DEPS) ../drivers/dos/doswss.h
123	$(COMPILE) ../drivers/dos/doswss.c -o out/doswss.o
124out/dosdma.o: ../drivers/dos/dosdma.c $(HEADER_DEPS) ../drivers/dos/dosdma.h
125	$(COMPILE) ../drivers/dos/dosdma.c -o out/dosdma.o
126out/dosirq.o: ../drivers/dos/dosirq.c $(HEADER_DEPS) ../drivers/dos/dosirq.h
127	$(COMPILE) ../drivers/dos/dosirq.c -o out/dosirq.o
128out/drv_nos.o: ../drivers/drv_nos.c $(HEADER_DEPS)
129	$(COMPILE) ../drivers/drv_nos.c -o out/drv_nos.o
130out/drv_raw.o: ../drivers/drv_raw.c $(HEADER_DEPS)
131	$(COMPILE) ../drivers/drv_raw.c -o out/drv_raw.o
132out/drv_aiff.o: ../drivers/drv_aiff.c $(HEADER_DEPS)
133	$(COMPILE) ../drivers/drv_aiff.c -o out/drv_aiff.o
134out/drv_wav.o: ../drivers/drv_wav.c $(HEADER_DEPS)
135	$(COMPILE) ../drivers/drv_wav.c -o out/drv_wav.o
136out/drv_stdout.o: ../drivers/drv_stdout.c $(HEADER_DEPS)
137	$(COMPILE) ../drivers/drv_stdout.c -o out/drv_stdout.o
138out/drv_pipe.o: ../drivers/drv_pipe.c $(HEADER_DEPS)
139	$(COMPILE) ../drivers/drv_pipe.c -o out/drv_pipe.o
140out/load_669.o: ../loaders/load_669.c $(HEADER_DEPS)
141	$(COMPILE) ../loaders/load_669.c -o out/load_669.o
142out/load_amf.o: ../loaders/load_amf.c $(HEADER_DEPS)
143	$(COMPILE) ../loaders/load_amf.c -o out/load_amf.o
144out/load_asy.o: ../loaders/load_asy.c $(HEADER_DEPS)
145	$(COMPILE) ../loaders/load_asy.c -o out/load_asy.o
146out/load_dsm.o: ../loaders/load_dsm.c $(HEADER_DEPS)
147	$(COMPILE) ../loaders/load_dsm.c -o out/load_dsm.o
148out/load_far.o: ../loaders/load_far.c $(HEADER_DEPS)
149	$(COMPILE) ../loaders/load_far.c -o out/load_far.o
150out/load_gdm.o: ../loaders/load_gdm.c $(HEADER_DEPS)
151	$(COMPILE) ../loaders/load_gdm.c -o out/load_gdm.o
152out/load_gt2.o: ../loaders/load_gt2.c $(HEADER_DEPS)
153	$(COMPILE) ../loaders/load_gt2.c -o out/load_gt2.o
154out/load_it.o: ../loaders/load_it.c $(HEADER_DEPS)
155	$(COMPILE) ../loaders/load_it.c -o out/load_it.o
156out/load_imf.o: ../loaders/load_imf.c $(HEADER_DEPS)
157	$(COMPILE) ../loaders/load_imf.c -o out/load_imf.o
158out/load_m15.o: ../loaders/load_m15.c $(HEADER_DEPS)
159	$(COMPILE) ../loaders/load_m15.c -o out/load_m15.o
160out/load_med.o: ../loaders/load_med.c $(HEADER_DEPS)
161	$(COMPILE) ../loaders/load_med.c -o out/load_med.o
162out/load_mod.o: ../loaders/load_mod.c $(HEADER_DEPS)
163	$(COMPILE) ../loaders/load_mod.c -o out/load_mod.o
164out/load_mtm.o: ../loaders/load_mtm.c $(HEADER_DEPS)
165	$(COMPILE) ../loaders/load_mtm.c -o out/load_mtm.o
166out/load_okt.o: ../loaders/load_okt.c $(HEADER_DEPS)
167	$(COMPILE) ../loaders/load_okt.c -o out/load_okt.o
168out/load_s3m.o: ../loaders/load_s3m.c $(HEADER_DEPS)
169	$(COMPILE) ../loaders/load_s3m.c -o out/load_s3m.o
170out/load_stm.o: ../loaders/load_stm.c $(HEADER_DEPS)
171	$(COMPILE) ../loaders/load_stm.c -o out/load_stm.o
172out/load_stx.o: ../loaders/load_stx.c $(HEADER_DEPS)
173	$(COMPILE) ../loaders/load_stx.c -o out/load_stx.o
174out/load_ult.o: ../loaders/load_ult.c $(HEADER_DEPS)
175	$(COMPILE) ../loaders/load_ult.c -o out/load_ult.o
176out/load_umx.o: ../loaders/load_umx.c $(HEADER_DEPS)
177	$(COMPILE) ../loaders/load_umx.c -o out/load_umx.o
178out/load_uni.o: ../loaders/load_uni.c $(HEADER_DEPS)
179	$(COMPILE) ../loaders/load_uni.c -o out/load_uni.o
180out/load_xm.o: ../loaders/load_xm.c $(HEADER_DEPS)
181	$(COMPILE) ../loaders/load_xm.c -o out/load_xm.o
182out/mmalloc.o: ../mmio/mmalloc.c $(HEADER_DEPS)
183	$(COMPILE) ../mmio/mmalloc.c -o out/mmalloc.o
184out/mmerror.o: ../mmio/mmerror.c $(HEADER_DEPS)
185	$(COMPILE) ../mmio/mmerror.c -o out/mmerror.o
186out/mmio.o: ../mmio/mmio.c $(HEADER_DEPS)
187	$(COMPILE) ../mmio/mmio.c -o out/mmio.o
188out/mmcmp.o: ../depackers/mmcmp.c $(HEADER_DEPS)
189	$(COMPILE) ../depackers/mmcmp.c -o out/mmcmp.o
190out/pp20.o: ../depackers/pp20.c $(HEADER_DEPS)
191	$(COMPILE) ../depackers/pp20.c -o out/pp20.o
192out/s404.o: ../depackers/s404.c $(HEADER_DEPS)
193	$(COMPILE) ../depackers/s404.c -o out/s404.o
194out/xpk.o: ../depackers/xpk.c $(HEADER_DEPS)
195	$(COMPILE) ../depackers/xpk.c -o out/xpk.o
196out/mdriver.o: ../playercode/mdriver.c $(HEADER_DEPS)
197	$(COMPILE) ../playercode/mdriver.c -o out/mdriver.o
198out/mdreg.o: ../playercode/mdreg.c $(HEADER_DEPS)
199	$(COMPILE) ../playercode/mdreg.c -o out/mdreg.o
200out/mdulaw.o: ../playercode/mdulaw.c $(HEADER_DEPS)
201	$(COMPILE) ../playercode/mdulaw.c -o out/mdulaw.o
202out/mloader.o: ../playercode/mloader.c $(HEADER_DEPS)
203	$(COMPILE) ../playercode/mloader.c -o out/mloader.o
204out/mlreg.o: ../playercode/mlreg.c $(HEADER_DEPS)
205	$(COMPILE) ../playercode/mlreg.c -o out/mlreg.o
206out/mlutil.o: ../playercode/mlutil.c $(HEADER_DEPS)
207	$(COMPILE) ../playercode/mlutil.c -o out/mlutil.o
208out/mplayer.o: ../playercode/mplayer.c $(HEADER_DEPS)
209	$(COMPILE) ../playercode/mplayer.c -o out/mplayer.o
210out/munitrk.o: ../playercode/munitrk.c $(HEADER_DEPS)
211	$(COMPILE) ../playercode/munitrk.c -o out/munitrk.o
212out/mwav.o: ../playercode/mwav.c $(HEADER_DEPS)
213	$(COMPILE) ../playercode/mwav.c -o out/mwav.o
214out/npertab.o: ../playercode/npertab.c $(HEADER_DEPS)
215	$(COMPILE) ../playercode/npertab.c -o out/npertab.o
216out/sloader.o: ../playercode/sloader.c $(HEADER_DEPS)
217	$(COMPILE) ../playercode/sloader.c -o out/sloader.o
218out/virtch.o: ../playercode/virtch.c ../playercode/virtch_common.c $(HEADER_DEPS)
219	$(COMPILE) ../playercode/virtch.c -o out/virtch.o
220out/virtch2.o: ../playercode/virtch2.c ../playercode/virtch_common.c $(HEADER_DEPS)
221	$(COMPILE) ../playercode/virtch2.c -o out/virtch2.o
222out/virtch_common.o: ../playercode/virtch_common.c $(HEADER_DEPS)
223	$(COMPILE) ../playercode/virtch_common.c -o out/virtch_common.o
224out/strcasecmp.o: ../posix/strcasecmp.c $(HEADER_DEPS)
225	$(COMPILE) ../posix/strcasecmp.c -o out/strcasecmp.o
226