1# libmikmod Makefile for targetting Darwin (i.e. Mac OS X) 2# Edit the compiler/linker flags, etc. to meet your needs 3 4ifeq ($(CROSS),) 5CC=gcc 6AS=as 7AR=ar 8RANLIB=ranlib 9LIPO=lipo 10else 11CC=$(CROSS)-gcc 12AS=$(CROSS)-as 13AR=$(CROSS)-ar 14RANLIB=$(CROSS)-ranlib 15LIPO=$(CROSS)-lipo 16endif 17 18ARFLAGS = cr 19CPPFLAGS=-DMIKMOD_BUILD 20LDLIBS= 21 22# SSE2 support (for x86 builds. for x86_64 it doesn't hurt.) 23# SIMD code is unstable at present: *not* recommended... 24SSE2FLAGS=-msse2 25 26# altivec support (for ppc builds) 27#VECFLAGS=-maltivec 28# use -faltivec or -mpim-altivec instead. (see Apple gcc man page.) 29# SIMD code is unstable at present: *not* recommended... 30VECFLAGS=-faltivec 31 32# support for CoreAudio sound output: 33LDLIBS+=-Wl,-framework,CoreAudio 34CPPFLAGS+=-DDRV_OSX 35 36# support for output through OpenAL (requires 10.4 or newer) 37#LDLIBS+=-Wl,-framework,OpenAL 38#CPPFLAGS+=-DDRV_OPENAL 39 40# support for output through SDL: 41# SDL_FRAMEWORK define is for including SDL.h as <SDL/SDL.h> from SDL.framework. 42#LDLIBS+=-Wl,-framework,SDL 43#CPPFLAGS+=-DDRV_SDL -DSDL_FRAMEWORK 44 45# support for output via a pipe to another command: 46CPPFLAGS+=-DDRV_PIPE 47# support for output to stdout: 48CPPFLAGS+=-DDRV_STDOUT 49 50# support for aiff file output: 51CPPFLAGS+=-DDRV_AIFF 52# support for wav file output: 53CPPFLAGS+=-DDRV_WAV 54# support for output raw data to a file: 55CPPFLAGS+=-DDRV_RAW 56 57# disable the high quality mixer (build only with the standart mixer) 58#CPPFLAGS+=-DNO_HQMIXER 59 60CPPFLAGS+=-DHAVE_FCNTL_H -DHAVE_LIMITS_H -DHAVE_UNISTD_H -DHAVE_SNPRINTF -DHAVE_PTHREAD -DHAVE_SRANDOM 61 62# compiler flags 63CFLAGS=-O2 -Wall 64CFLAGS+=-ffast-math -fno-common 65CFLAGS+=-fvisibility=hidden -DSYM_VISIBILITY 66#CFLAGS+=-g 67LDFLAGS =-Wl,-single_module 68LDFLAGS+=-Wl,-install_name,"@executable_path/$(LIBSHARED)" 69LDFLAGS+=-Wl,-compatibility_version,4.0 -Wl,-current_version,6.0 70 71# specifically for 10.5 and newer: 72#CFLAGS+=-mmacosx-version-min=10.5 73#LDFLAGS+=-mmacosx-version-min=10.5 74# specifically for 10.6 and newer: 75#CFLAGS+=-mmacosx-version-min=10.6 76#CPPFLAGS+=-DHAVE_POSIX_MEMALIGN 77#LDFLAGS+=-mmacosx-version-min=10.6 -Wl,-lbundle1.o 78 79COMPILE=$(CC) -c $(CFLAGS) $(CPPFLAGS) -I../macosx -I../include 80 81.SUFFIXES: 82.SUFFIXES: .o .c 83 84DYLIB_VER=3 85#LIBSHARED=libmikmod.$(DYLIB_VER).dylib 86LIBSHARED=libmikmod.dylib 87LIBSTATIC=libmikmod.a 88 89LIBS=$(LIBSHARED) 90 91OBJ=drv_osx.o drv_openal.o drv_sdl.o \ 92 drv_raw.o drv_aiff.o drv_wav.o \ 93 drv_nos.o drv_pipe.o drv_stdout.o \ 94 load_669.o load_amf.o load_asy.o load_dsm.o load_far.o load_gdm.o load_gt2.o \ 95 load_it.o load_imf.o load_m15.o load_med.o load_mod.o load_mtm.o load_okt.o \ 96 load_s3m.o load_stm.o load_stx.o load_ult.o load_umx.o load_uni.o load_xm.o \ 97 mmalloc.o mmerror.o mmio.o mdriver.o mdreg.o \ 98 mmcmp.o pp20.o s404.o xpk.o strcasecmp.o \ 99 mloader.o mlreg.o mlutil.o mplayer.o munitrk.o mwav.o \ 100 npertab.o sloader.o virtch.o virtch2.o virtch_common.o 101# mdulaw.o 102 103help: 104 @echo "" 105 @echo "Valid targets:" 106 @echo "" 107 @echo " $(MAKE) dylib : build libmikmod.dylib shared lib" 108 @echo " $(MAKE) static : build libmikmod.a static library" 109 @echo "" 110 @echo "Same as above, but with SIMD (AltiVec/SSE2) mixer optimizations:" 111 @echo "(SIMD code is unstable at present: *not* recommended...)" 112 @echo "" 113 @echo " $(MAKE) dylib-altivec : build libmikmod.dylib with altivec support (ppc)" 114 @echo " $(MAKE) dylib-sse2 : build libmikmod.dylib with sse2 support (x86/x86_64)" 115 @echo " $(MAKE) static-altivec: build libmikmod.a with altivec support (ppc)" 116 @echo " $(MAKE) static-sse2 : build libmikmod.a with sse2 support (x86/x86_64)" 117 @echo "" 118 119clean: 120 rm -f $(LIBSHARED) $(LIBSTATIC) *.o 121 122dylib-sse2: CFLAGS+=$(SSE2FLAGS) 123dylib-sse2: CPPFLAGS+=-DMIKMOD_SIMD 124dylib-sse2: dylib 125 126dylib-altivec: CFLAGS+=$(VECFLAGS) 127dylib-altivec: CPPFLAGS+=-DMIKMOD_SIMD 128dylib-altivec: dylib 129 130static-sse2: CFLAGS+=$(SSE2FLAGS) 131static-sse2: CPPFLAGS+=-DMIKMOD_SIMD 132static-sse2: static 133 134static-altivec: CFLAGS+=$(VECFLAGS) 135static-altivec: CPPFLAGS+=-DMIKMOD_SIMD 136static-altivec: static 137 138dylib: $(LIBSHARED) 139static: $(LIBSTATIC) 140 141$(LIBSHARED): $(OBJ) 142 $(CC) -dynamiclib -o $(LIBSHARED) $(OBJ) $(LDFLAGS) $(LDLIBS) 143 144$(LIBSTATIC): $(OBJ) 145 $(AR) $(ARFLAGS) $@ $(OBJ) 146 $(RANLIB) $@ 147 148HEADER_DEPS=../include/mikmod.h ../include/mikmod_internals.h ../include/mikmod_ctype.h 149drv_osx.o: ../drivers/drv_osx.c $(HEADER_DEPS) 150 $(COMPILE) ../drivers/drv_osx.c -o drv_osx.o 151drv_openal.o: ../drivers/drv_openal.c $(HEADER_DEPS) 152 $(COMPILE) ../drivers/drv_openal.c -o drv_openal.o 153drv_sdl.o: ../drivers/drv_sdl.c $(HEADER_DEPS) 154 $(COMPILE) ../drivers/drv_sdl.c -o drv_sdl.o 155drv_nos.o: ../drivers/drv_nos.c $(HEADER_DEPS) 156 $(COMPILE) ../drivers/drv_nos.c -o drv_nos.o 157drv_raw.o: ../drivers/drv_raw.c $(HEADER_DEPS) 158 $(COMPILE) ../drivers/drv_raw.c -o drv_raw.o 159drv_stdout.o: ../drivers/drv_stdout.c $(HEADER_DEPS) 160 $(COMPILE) ../drivers/drv_stdout.c -o drv_stdout.o 161drv_aiff.o: ../drivers/drv_aiff.c $(HEADER_DEPS) 162 $(COMPILE) ../drivers/drv_aiff.c -o drv_aiff.o 163drv_wav.o: ../drivers/drv_wav.c $(HEADER_DEPS) 164 $(COMPILE) ../drivers/drv_wav.c -o drv_wav.o 165drv_pipe.o: ../drivers/drv_pipe.c $(HEADER_DEPS) 166 $(COMPILE) ../drivers/drv_pipe.c -o drv_pipe.o 167load_669.o: ../loaders/load_669.c $(HEADER_DEPS) 168 $(COMPILE) ../loaders/load_669.c -o load_669.o 169load_amf.o: ../loaders/load_amf.c $(HEADER_DEPS) 170 $(COMPILE) ../loaders/load_amf.c -o load_amf.o 171load_asy.o: ../loaders/load_asy.c $(HEADER_DEPS) 172 $(COMPILE) ../loaders/load_asy.c -o load_asy.o 173load_dsm.o: ../loaders/load_dsm.c $(HEADER_DEPS) 174 $(COMPILE) ../loaders/load_dsm.c -o load_dsm.o 175load_far.o: ../loaders/load_far.c $(HEADER_DEPS) 176 $(COMPILE) ../loaders/load_far.c -o load_far.o 177load_gdm.o: ../loaders/load_gdm.c $(HEADER_DEPS) 178 $(COMPILE) ../loaders/load_gdm.c -o load_gdm.o 179load_gt2.o: ../loaders/load_gt2.c $(HEADER_DEPS) 180 $(COMPILE) ../loaders/load_gt2.c -o load_gt2.o 181load_it.o: ../loaders/load_it.c $(HEADER_DEPS) 182 $(COMPILE) ../loaders/load_it.c -o load_it.o 183load_imf.o: ../loaders/load_imf.c $(HEADER_DEPS) 184 $(COMPILE) ../loaders/load_imf.c -o load_imf.o 185load_m15.o: ../loaders/load_m15.c $(HEADER_DEPS) 186 $(COMPILE) ../loaders/load_m15.c -o load_m15.o 187load_med.o: ../loaders/load_med.c $(HEADER_DEPS) 188 $(COMPILE) ../loaders/load_med.c -o load_med.o 189load_mod.o: ../loaders/load_mod.c $(HEADER_DEPS) 190 $(COMPILE) ../loaders/load_mod.c -o load_mod.o 191load_mtm.o: ../loaders/load_mtm.c $(HEADER_DEPS) 192 $(COMPILE) ../loaders/load_mtm.c -o load_mtm.o 193load_okt.o: ../loaders/load_okt.c $(HEADER_DEPS) 194 $(COMPILE) ../loaders/load_okt.c -o load_okt.o 195load_s3m.o: ../loaders/load_s3m.c $(HEADER_DEPS) 196 $(COMPILE) ../loaders/load_s3m.c -o load_s3m.o 197load_stm.o: ../loaders/load_stm.c $(HEADER_DEPS) 198 $(COMPILE) ../loaders/load_stm.c -o load_stm.o 199load_stx.o: ../loaders/load_stx.c $(HEADER_DEPS) 200 $(COMPILE) ../loaders/load_stx.c -o load_stx.o 201load_ult.o: ../loaders/load_ult.c $(HEADER_DEPS) 202 $(COMPILE) ../loaders/load_ult.c -o load_ult.o 203load_umx.o: ../loaders/load_umx.c $(HEADER_DEPS) 204 $(COMPILE) ../loaders/load_umx.c -o load_umx.o 205load_uni.o: ../loaders/load_uni.c $(HEADER_DEPS) 206 $(COMPILE) ../loaders/load_uni.c -o load_uni.o 207load_xm.o: ../loaders/load_xm.c $(HEADER_DEPS) 208 $(COMPILE) ../loaders/load_xm.c -o load_xm.o 209mmalloc.o: ../mmio/mmalloc.c $(HEADER_DEPS) 210 $(COMPILE) ../mmio/mmalloc.c -o mmalloc.o 211mmerror.o: ../mmio/mmerror.c $(HEADER_DEPS) 212 $(COMPILE) ../mmio/mmerror.c -o mmerror.o 213mmio.o: ../mmio/mmio.c $(HEADER_DEPS) 214 $(COMPILE) ../mmio/mmio.c -o mmio.o 215mmcmp.o: ../depackers/mmcmp.c $(HEADER_DEPS) 216 $(COMPILE) ../depackers/mmcmp.c -o mmcmp.o 217pp20.o: ../depackers/pp20.c $(HEADER_DEPS) 218 $(COMPILE) ../depackers/pp20.c -o pp20.o 219s404.o: ../depackers/s404.c $(HEADER_DEPS) 220 $(COMPILE) ../depackers/s404.c -o s404.o 221xpk.o: ../depackers/xpk.c $(HEADER_DEPS) 222 $(COMPILE) ../depackers/xpk.c -o xpk.o 223mdriver.o: ../playercode/mdriver.c $(HEADER_DEPS) 224 $(COMPILE) ../playercode/mdriver.c -o mdriver.o 225mdreg.o: ../playercode/mdreg.c $(HEADER_DEPS) 226 $(COMPILE) ../playercode/mdreg.c -o mdreg.o 227mdulaw.o: ../playercode/mdulaw.c $(HEADER_DEPS) 228 $(COMPILE) ../playercode/mdulaw.c -o mdulaw.o 229mloader.o: ../playercode/mloader.c $(HEADER_DEPS) 230 $(COMPILE) ../playercode/mloader.c -o mloader.o 231mlreg.o: ../playercode/mlreg.c $(HEADER_DEPS) 232 $(COMPILE) ../playercode/mlreg.c -o mlreg.o 233mlutil.o: ../playercode/mlutil.c $(HEADER_DEPS) 234 $(COMPILE) ../playercode/mlutil.c -o mlutil.o 235mplayer.o: ../playercode/mplayer.c $(HEADER_DEPS) 236 $(COMPILE) ../playercode/mplayer.c -o mplayer.o 237munitrk.o: ../playercode/munitrk.c $(HEADER_DEPS) 238 $(COMPILE) ../playercode/munitrk.c -o munitrk.o 239mwav.o: ../playercode/mwav.c $(HEADER_DEPS) 240 $(COMPILE) ../playercode/mwav.c -o mwav.o 241npertab.o: ../playercode/npertab.c $(HEADER_DEPS) 242 $(COMPILE) ../playercode/npertab.c -o npertab.o 243sloader.o: ../playercode/sloader.c $(HEADER_DEPS) 244 $(COMPILE) ../playercode/sloader.c -o sloader.o 245virtch.o: ../playercode/virtch.c ../playercode/virtch_common.c $(HEADER_DEPS) 246 $(COMPILE) ../playercode/virtch.c -o virtch.o 247virtch2.o: ../playercode/virtch2.c ../playercode/virtch_common.c $(HEADER_DEPS) 248 $(COMPILE) ../playercode/virtch2.c -o virtch2.o 249virtch_common.o: ../playercode/virtch_common.c $(HEADER_DEPS) 250 $(COMPILE) ../playercode/virtch_common.c -o virtch_common.o 251strcasecmp.o: ../posix/strcasecmp.c $(HEADER_DEPS) 252 $(COMPILE) ../posix/strcasecmp.c -o strcasecmp.o 253