1# Makefile for targeting AmigaOS variants using GCC. 2# You must specify a target OS on the make command line: 3# make amigaos : build for m68k-amigaos 4# make amigaos4 : build for ppc-amigaos4 5# make aros : build for i386-aros 6# make morphos : build for ppc-morphos 7 8ifeq ($(CROSS),) 9CC=gcc 10AS=as 11AR=ar 12RANLIB=ranlib 13else 14CC=$(CROSS)-gcc 15AS=$(CROSS)-as 16AR=$(CROSS)-ar 17RANLIB=$(CROSS)-ranlib 18endif 19 20# compiler flags 21CFLAGS =-O2 -Wall 22CFLAGS +=-ffast-math -fno-common 23#CFLAGS +=-g 24CPPFLAGS =-DHAVE_LIMITS_H -DHAVE_SNPRINTF -DHAVE_UNISTD_H 25INCLUDE =-I../amiga -I../include 26ARFLAGS = cr 27LDFLAGS = 28LDLIBS =-L. -lmikmod 29CPPFLAGS_LIB =-DMIKMOD_BUILD 30 31ifeq ($(AROS),1) 32include gcc_aros.mk 33endif 34ifeq ($(MORPHOS),1) 35include gcc_morphos.mk 36endif 37ifeq ($(AOS3),1) 38include gcc_aos3.mk 39endif 40ifeq ($(AOS4),1) 41include gcc_aos4.mk 42endif 43 44# disable the high quality mixer (build only with the standart mixer) 45#CPPFLAGS_LIB+=-DNO_HQMIXER 46 47# support for AHI output: 48CPPFLAGS_LIB+=-DDRV_AHI 49# support for wav file output: 50CPPFLAGS_LIB+=-DDRV_WAV 51# support for aiff file output: 52CPPFLAGS_LIB+=-DDRV_AIFF 53# support for output raw data to a file: 54CPPFLAGS_LIB+=-DDRV_RAW 55 56COMPILE_LIB=$(CC) -c $(CFLAGS) $(INCLUDE) $(CPPFLAGS) $(CPPFLAGS_LIB) 57COMPILE_APP=$(CC) -c $(CFLAGS) $(INCLUDE) $(CPPFLAGS) 58 59.SUFFIXES: 60.SUFFIXES: .o .c 61 62LIB=libmikmod.a 63APP=splay splayFP splayMEM splayMEM2 soundeffects 64 65OBJ=objs/drv_ahi.o \ 66 objs/drv_raw.o \ 67 objs/drv_aiff.o \ 68 objs/drv_wav.o \ 69 objs/drv_nos.o \ 70 objs/strcasecmp.o \ 71 objs/load_669.o \ 72 objs/load_amf.o \ 73 objs/load_asy.o \ 74 objs/load_dsm.o \ 75 objs/load_far.o \ 76 objs/load_gdm.o \ 77 objs/load_gt2.o \ 78 objs/load_it.o \ 79 objs/load_imf.o \ 80 objs/load_m15.o \ 81 objs/load_med.o \ 82 objs/load_mod.o \ 83 objs/load_mtm.o \ 84 objs/load_okt.o \ 85 objs/load_s3m.o \ 86 objs/load_stm.o \ 87 objs/load_stx.o \ 88 objs/load_ult.o \ 89 objs/load_umx.o \ 90 objs/load_uni.o \ 91 objs/load_xm.o \ 92 objs/mmalloc.o \ 93 objs/mmerror.o \ 94 objs/mmio.o \ 95 objs/mdriver.o \ 96 objs/mdreg.o \ 97 objs/mmcmp.o \ 98 objs/pp20.o \ 99 objs/s404.o \ 100 objs/xpk.o \ 101 objs/mloader.o \ 102 objs/mlreg.o \ 103 objs/mlutil.o \ 104 objs/mplayer.o \ 105 objs/munitrk.o \ 106 objs/mwav.o \ 107 objs/npertab.o \ 108 objs/sloader.o \ 109 objs/virtch.o \ 110 objs/virtch2.o \ 111 objs/virtch_common.o 112# objs/mdulaw.o 113 114all: $(LIB) $(APP) 115 116aros: 117 @echo Building for i386-aros 118 $(MAKE) AROS=1 119morphos: 120 @echo Building for ppc-morphos 121 $(MAKE) MORPHOS=1 122amigaos: 123 @echo Building for m68k-amigaos 124 $(MAKE) AOS3=1 125amigaos4: 126 @echo Building for ppc-amigaos4 127 $(MAKE) AOS4=1 128 129clean: 130 rm -f $(APP) $(LIB) *.lib objs/*.o 131 132$(LIB): $(OBJ) 133 $(AR) $(ARFLAGS) $@ $(OBJ) 134 $(RANLIB) $@ 135 136splay: $(LIB) objs/amiga.o objs/splay.o 137 $(CC) objs/amiga.o objs/splay.o $(LDFLAGS) $(LDLIBS) -o splay 138splayFP: $(LIB) objs/amiga.o objs/splayFP.o 139 $(CC) objs/amiga.o objs/splayFP.o $(LDFLAGS) $(LDLIBS) -o splayFP 140splayMEM: $(LIB) objs/amiga.o objs/myloader.o objs/splayMEM.o 141 $(CC) objs/amiga.o objs/myloader.o objs/splayMEM.o $(LDFLAGS) $(LDLIBS) -o splayMEM 142splayMEM2: $(LIB) objs/amiga.o objs/splayMEM2.o 143 $(CC) objs/amiga.o objs/splayMEM2.o $(LDFLAGS) $(LDLIBS) -o splayMEM2 144soundeffects: $(LIB) objs/amiga.o objs/soundeffects.o 145 $(CC) objs/amiga.o objs/soundeffects.o $(LDFLAGS) $(LDLIBS) -o soundeffects 146 147HEADER_DEPS=../include/mikmod.h ../include/mikmod_internals.h ../include/mikmod_ctype.h 148objs/drv_ahi.o: ../drivers/drv_ahi.c $(HEADER_DEPS) 149 $(COMPILE_LIB) ../drivers/drv_ahi.c -o objs/drv_ahi.o 150objs/drv_nos.o: ../drivers/drv_nos.c $(HEADER_DEPS) 151 $(COMPILE_LIB) ../drivers/drv_nos.c -o objs/drv_nos.o 152objs/drv_raw.o: ../drivers/drv_raw.c $(HEADER_DEPS) 153 $(COMPILE_LIB) ../drivers/drv_raw.c -o objs/drv_raw.o 154objs/drv_aiff.o: ../drivers/drv_aiff.c $(HEADER_DEPS) 155 $(COMPILE_LIB) ../drivers/drv_aiff.c -o objs/drv_aiff.o 156objs/drv_wav.o: ../drivers/drv_wav.c $(HEADER_DEPS) 157 $(COMPILE_LIB) ../drivers/drv_wav.c -o objs/drv_wav.o 158objs/load_669.o: ../loaders/load_669.c $(HEADER_DEPS) 159 $(COMPILE_LIB) ../loaders/load_669.c -o objs/load_669.o 160objs/load_amf.o: ../loaders/load_amf.c $(HEADER_DEPS) 161 $(COMPILE_LIB) ../loaders/load_amf.c -o objs/load_amf.o 162objs/load_asy.o: ../loaders/load_asy.c $(HEADER_DEPS) 163 $(COMPILE_LIB) ../loaders/load_asy.c -o objs/load_asy.o 164objs/load_dsm.o: ../loaders/load_dsm.c $(HEADER_DEPS) 165 $(COMPILE_LIB) ../loaders/load_dsm.c -o objs/load_dsm.o 166objs/load_far.o: ../loaders/load_far.c $(HEADER_DEPS) 167 $(COMPILE_LIB) ../loaders/load_far.c -o objs/load_far.o 168objs/load_gdm.o: ../loaders/load_gdm.c $(HEADER_DEPS) 169 $(COMPILE_LIB) ../loaders/load_gdm.c -o objs/load_gdm.o 170objs/load_gt2.o: ../loaders/load_gt2.c $(HEADER_DEPS) 171 $(COMPILE_LIB) ../loaders/load_gt2.c -o objs/load_gt2.o 172objs/load_it.o: ../loaders/load_it.c $(HEADER_DEPS) 173 $(COMPILE_LIB) ../loaders/load_it.c -o objs/load_it.o 174objs/load_imf.o: ../loaders/load_imf.c $(HEADER_DEPS) 175 $(COMPILE_LIB) ../loaders/load_imf.c -o objs/load_imf.o 176objs/load_m15.o: ../loaders/load_m15.c $(HEADER_DEPS) 177 $(COMPILE_LIB) ../loaders/load_m15.c -o objs/load_m15.o 178objs/load_med.o: ../loaders/load_med.c $(HEADER_DEPS) 179 $(COMPILE_LIB) ../loaders/load_med.c -o objs/load_med.o 180objs/load_mod.o: ../loaders/load_mod.c $(HEADER_DEPS) 181 $(COMPILE_LIB) ../loaders/load_mod.c -o objs/load_mod.o 182objs/load_mtm.o: ../loaders/load_mtm.c $(HEADER_DEPS) 183 $(COMPILE_LIB) ../loaders/load_mtm.c -o objs/load_mtm.o 184objs/load_okt.o: ../loaders/load_okt.c $(HEADER_DEPS) 185 $(COMPILE_LIB) ../loaders/load_okt.c -o objs/load_okt.o 186objs/load_s3m.o: ../loaders/load_s3m.c $(HEADER_DEPS) 187 $(COMPILE_LIB) ../loaders/load_s3m.c -o objs/load_s3m.o 188objs/load_stm.o: ../loaders/load_stm.c $(HEADER_DEPS) 189 $(COMPILE_LIB) ../loaders/load_stm.c -o objs/load_stm.o 190objs/load_stx.o: ../loaders/load_stx.c $(HEADER_DEPS) 191 $(COMPILE_LIB) ../loaders/load_stx.c -o objs/load_stx.o 192objs/load_ult.o: ../loaders/load_ult.c $(HEADER_DEPS) 193 $(COMPILE_LIB) ../loaders/load_ult.c -o objs/load_ult.o 194objs/load_umx.o: ../loaders/load_umx.c $(HEADER_DEPS) 195 $(COMPILE_LIB) ../loaders/load_umx.c -o objs/load_umx.o 196objs/load_uni.o: ../loaders/load_uni.c $(HEADER_DEPS) 197 $(COMPILE_LIB) ../loaders/load_uni.c -o objs/load_uni.o 198objs/load_xm.o: ../loaders/load_xm.c $(HEADER_DEPS) 199 $(COMPILE_LIB) ../loaders/load_xm.c -o objs/load_xm.o 200objs/mmalloc.o: ../mmio/mmalloc.c $(HEADER_DEPS) 201 $(COMPILE_LIB) ../mmio/mmalloc.c -o objs/mmalloc.o 202objs/mmerror.o: ../mmio/mmerror.c $(HEADER_DEPS) 203 $(COMPILE_LIB) ../mmio/mmerror.c -o objs/mmerror.o 204objs/mmio.o: ../mmio/mmio.c $(HEADER_DEPS) 205 $(COMPILE_LIB) ../mmio/mmio.c -o objs/mmio.o 206objs/mmcmp.o: ../depackers/mmcmp.c $(HEADER_DEPS) 207 $(COMPILE_LIB) ../depackers/mmcmp.c -o objs/mmcmp.o 208objs/pp20.o: ../depackers/pp20.c $(HEADER_DEPS) 209 $(COMPILE_LIB) ../depackers/pp20.c -o objs/pp20.o 210objs/s404.o: ../depackers/s404.c $(HEADER_DEPS) 211 $(COMPILE_LIB) ../depackers/s404.c -o objs/s404.o 212objs/xpk.o: ../depackers/xpk.c $(HEADER_DEPS) 213 $(COMPILE_LIB) ../depackers/xpk.c -o objs/xpk.o 214objs/mdriver.o: ../playercode/mdriver.c $(HEADER_DEPS) 215 $(COMPILE_LIB) ../playercode/mdriver.c -o objs/mdriver.o 216objs/mdreg.o: ../playercode/mdreg.c $(HEADER_DEPS) 217 $(COMPILE_LIB) ../playercode/mdreg.c -o objs/mdreg.o 218objs/mdulaw.o: ../playercode/mdulaw.c $(HEADER_DEPS) 219 $(COMPILE_LIB) ../playercode/mdulaw.c -o objs/mdulaw.o 220objs/mloader.o: ../playercode/mloader.c $(HEADER_DEPS) 221 $(COMPILE_LIB) ../playercode/mloader.c -o objs/mloader.o 222objs/mlreg.o: ../playercode/mlreg.c $(HEADER_DEPS) 223 $(COMPILE_LIB) ../playercode/mlreg.c -o objs/mlreg.o 224objs/mlutil.o: ../playercode/mlutil.c $(HEADER_DEPS) 225 $(COMPILE_LIB) ../playercode/mlutil.c -o objs/mlutil.o 226objs/mplayer.o: ../playercode/mplayer.c $(HEADER_DEPS) 227 $(COMPILE_LIB) ../playercode/mplayer.c -o objs/mplayer.o 228objs/munitrk.o: ../playercode/munitrk.c $(HEADER_DEPS) 229 $(COMPILE_LIB) ../playercode/munitrk.c -o objs/munitrk.o 230objs/mwav.o: ../playercode/mwav.c $(HEADER_DEPS) 231 $(COMPILE_LIB) ../playercode/mwav.c -o objs/mwav.o 232objs/npertab.o: ../playercode/npertab.c $(HEADER_DEPS) 233 $(COMPILE_LIB) ../playercode/npertab.c -o objs/npertab.o 234objs/sloader.o: ../playercode/sloader.c $(HEADER_DEPS) 235 $(COMPILE_LIB) ../playercode/sloader.c -o objs/sloader.o 236objs/virtch.o: ../playercode/virtch.c ../playercode/virtch_common.c $(HEADER_DEPS) 237 $(COMPILE_LIB) ../playercode/virtch.c -o objs/virtch.o 238objs/virtch2.o: ../playercode/virtch2.c ../playercode/virtch_common.c $(HEADER_DEPS) 239 $(COMPILE_LIB) ../playercode/virtch2.c -o objs/virtch2.o 240objs/virtch_common.o: ../playercode/virtch_common.c $(HEADER_DEPS) 241 $(COMPILE_LIB) ../playercode/virtch_common.c -o objs/virtch_common.o 242objs/strcasecmp.o: ../posix/strcasecmp.c $(HEADER_DEPS) 243 $(COMPILE_LIB) ../posix/strcasecmp.c -o objs/strcasecmp.o 244 245objs/amiga.o: ../examples/amiga.c 246 $(COMPILE_APP) ../examples/amiga.c -o objs/amiga.o 247objs/splay.o: ../examples/simpleplay/splay.c $(HEADER_DEPS) 248 $(COMPILE_APP) ../examples/simpleplay/splay.c -o objs/splay.o 249objs/splayFP.o: ../examples/simpleplayFP/splayFP.c $(HEADER_DEPS) 250 $(COMPILE_APP) ../examples/simpleplayFP/splayFP.c -o objs/splayFP.o 251objs/myloader.o: ../examples/simpleplayMEM/myloader.c ../examples/simpleplayMEM/myloader.h $(HEADER_DEPS) 252 $(COMPILE_APP) -I../examples/simpleplayMEM ../examples/simpleplayMEM/myloader.c -o objs/myloader.o 253objs/splayMEM.o: ../examples/simpleplayMEM/splayMEM.c ../examples/simpleplayMEM/myloader.h $(HEADER_DEPS) 254 $(COMPILE_APP) -I../examples/simpleplayMEM ../examples/simpleplayMEM/splayMEM.c -o objs/splayMEM.o 255objs/splayMEM2.o: ../examples/simpleplayMEM2/splayMEM2.c $(HEADER_DEPS) 256 $(COMPILE_APP) ../examples/simpleplayMEM2/splayMEM2.c -o objs/splayMEM2.o 257objs/soundeffects.o: ../examples/soundeffects/soundeffects.c $(HEADER_DEPS) 258 $(COMPILE_APP) ../examples/soundeffects/soundeffects.c -o objs/soundeffects.o 259 260