1!ifeq USE_PROWIZARD 0 2CFLAGS += -DLIBXMP_NO_PROWIZARD 3!endif 4!ifeq USE_DEPACKERS 0 5CFLAGS += -DLIBXMP_NO_DEPACKERS 6!endif 7CFLAGS += -DHAVE_ALLOCA_H -DHAVE_FNMATCH -DHAVE_MKSTEMP -DHAVE_UMASK 8#CFLAGS += -DDEBUG 9CFLAGS += -Iinclude -Isrc 10 11DLLFLAGS=-bd -DBUILDING_DLL 12STATICFLAGS=-DBUILDING_STATIC 13 14DLLNAME=libxmp.dll 15EXPNAME=libxmp.exp 16LIBNAME=libxmp.lib 17LIBSTATIC=xmp_static.lib 18TESTNAME=libxmp-test.exe 19 20!ifeq target static 21CFLAGS += $(STATICFLAGS) 22LIBFLAGS=$(CFLAGS) 23BLD_TARGET=$(LIBSTATIC) 24BLD_LIB=$(LIBSTATIC) 25!else 26LIBFLAGS=$(CFLAGS) $(DLLFLAGS) 27BLD_TARGET=$(DLLNAME) 28BLD_LIB=$(LIBNAME) 29!endif 30 31OBJS=src/virtual.obj src/format.obj src/period.obj src/player.obj src/read_event.obj src/dataio.obj src/misc.obj src/mkstemp.obj src/md5.obj src/lfo.obj src/scan.obj src/control.obj src/med_extras.obj src/filter.obj src/effects.obj src/mixer.obj src/mix_all.obj src/load_helpers.obj src/load.obj src/hio.obj src/hmn_extras.obj src/extras.obj src/smix.obj src/memio.obj src/tempfile.obj src/mix_paula.obj src/win32.obj src/loaders/common.obj src/loaders/iff.obj src/loaders/itsex.obj src/loaders/asif.obj src/loaders/voltable.obj src/loaders/sample.obj src/loaders/xm_load.obj src/loaders/mod_load.obj src/loaders/s3m_load.obj src/loaders/stm_load.obj src/loaders/669_load.obj src/loaders/far_load.obj src/loaders/mtm_load.obj src/loaders/ptm_load.obj src/loaders/okt_load.obj src/loaders/ult_load.obj src/loaders/mdl_load.obj src/loaders/it_load.obj src/loaders/stx_load.obj src/loaders/pt3_load.obj src/loaders/sfx_load.obj src/loaders/flt_load.obj src/loaders/st_load.obj src/loaders/emod_load.obj src/loaders/imf_load.obj src/loaders/digi_load.obj src/loaders/fnk_load.obj src/loaders/ice_load.obj src/loaders/liq_load.obj src/loaders/ims_load.obj src/loaders/masi_load.obj src/loaders/amf_load.obj src/loaders/psm_load.obj src/loaders/stim_load.obj src/loaders/mmd_common.obj src/loaders/mmd1_load.obj src/loaders/mmd3_load.obj src/loaders/rtm_load.obj src/loaders/dt_load.obj src/loaders/no_load.obj src/loaders/arch_load.obj src/loaders/sym_load.obj src/loaders/med2_load.obj src/loaders/med3_load.obj src/loaders/med4_load.obj src/loaders/dbm_load.obj src/loaders/umx_load.obj src/loaders/gdm_load.obj src/loaders/pw_load.obj src/loaders/gal5_load.obj src/loaders/gal4_load.obj src/loaders/mfp_load.obj src/loaders/asylum_load.obj src/loaders/hmn_load.obj src/loaders/mgt_load.obj src/loaders/chip_load.obj src/loaders/abk_load.obj src/loaders/coco_load.obj 32PROWIZ_OBJS=src/loaders/prowizard/prowiz.obj src/loaders/prowizard/ptktable.obj src/loaders/prowizard/tuning.obj src/loaders/prowizard/ac1d.obj src/loaders/prowizard/di.obj src/loaders/prowizard/eureka.obj src/loaders/prowizard/fc-m.obj src/loaders/prowizard/fuchs.obj src/loaders/prowizard/fuzzac.obj src/loaders/prowizard/gmc.obj src/loaders/prowizard/heatseek.obj src/loaders/prowizard/ksm.obj src/loaders/prowizard/mp.obj src/loaders/prowizard/np1.obj src/loaders/prowizard/np2.obj src/loaders/prowizard/np3.obj src/loaders/prowizard/p61a.obj src/loaders/prowizard/pm10c.obj src/loaders/prowizard/pm18a.obj src/loaders/prowizard/pha.obj src/loaders/prowizard/prun1.obj src/loaders/prowizard/prun2.obj src/loaders/prowizard/tdd.obj src/loaders/prowizard/unic.obj src/loaders/prowizard/unic2.obj src/loaders/prowizard/wn.obj src/loaders/prowizard/zen.obj src/loaders/prowizard/tp1.obj src/loaders/prowizard/tp3.obj src/loaders/prowizard/p40.obj src/loaders/prowizard/xann.obj src/loaders/prowizard/theplayer.obj src/loaders/prowizard/pp10.obj src/loaders/prowizard/pp21.obj src/loaders/prowizard/starpack.obj src/loaders/prowizard/titanics.obj src/loaders/prowizard/skyt.obj src/loaders/prowizard/novotrade.obj src/loaders/prowizard/hrt.obj src/loaders/prowizard/noiserun.obj 33DEPACKER_OBJS=src/depackers/depacker.obj src/depackers/ppdepack.obj src/depackers/unsqsh.obj src/depackers/mmcmp.obj src/depackers/readrle.obj src/depackers/readlzw.obj src/depackers/unarc.obj src/depackers/arcfs.obj src/depackers/xfd.obj src/depackers/inflate.obj src/depackers/muse.obj src/depackers/unlzx.obj src/depackers/s404_dec.obj src/depackers/unzip.obj src/depackers/gunzip.obj src/depackers/uncompress.obj src/depackers/unxz.obj src/depackers/bunzip2.obj src/depackers/unlha.obj src/depackers/xz_dec_lzma2.obj src/depackers/xz_dec_stream.obj src/depackers/oxm.obj src/depackers/vorbis.obj src/depackers/crc32.obj src/depackers/xfd_link.obj src/depackers/xfnmatch.obj 34ALL_OBJS=$(OBJS) $(OS_OBJS) 35!ifeq USE_PROWIZARD 1 36ALL_OBJS+= $(PROWIZ_OBJS) 37!endif 38!ifeq USE_DEPACKERS 1 39ALL_OBJS+= $(DEPACKER_OBJS) 40!endif 41TEST_OBJS=test/md5.obj test/test.obj 42 43all: $(BLD_TARGET) 44 45#.SUFFIXES: .obj .c 46 47.c: src;src/depackers;src/loaders;src/loaders/prowizard;test 48.c.obj: 49 $(CC) $(LIBFLAGS) -fo=$^@ $< 50 51test/md5.obj: src/md5.c 52 $(CC) $(CFLAGS) -fo=$^@ $< 53 54test/test.obj: test/test.c 55 $(CC) $(CFLAGS) -fo=$^@ $< 56 57# rely on symbol name, not ordinal: -irn switch of wlib is default, but -inn is not. 58$(DLLNAME) $(LIBNAME) $(EXPNAME): $(ALL_OBJS) 59 wlink NAM $(DLLNAME) SYSTEM $(SYSTEM_DLL) INITINSTANCE TERMINSTANCE OP QUIET FIL {$(ALL_OBJS)} OPTION IMPF=$(EXPNAME) 60 wlib -q -b -n -c -pa -s -t -zld -ii -io -inn $(LIBNAME) +$(DLLNAME) 61 62$(LIBSTATIC): $(ALL_OBJS) 63 wlib -q -b -n -c -pa -s -t -zld -ii -io $@ $(ALL_OBJS) 64 65test/$(TESTNAME): $(BLD_LIB) $(TEST_OBJS) 66 wlink NAM test/$(TESTNAME) SYSTEM $(SYSTEM) OP QUIET LIBR {$(BLD_LIB)} FIL {$(TEST_OBJS)} 67 68check-build: test/$(TESTNAME) .symbolic 69!ifneq target static 70 $(CMD_CP) $(DLLNAME) test 71!endif 72 73check: check-build .symbolic 74 cd test & $(TESTNAME) 75 76clean: .symbolic 77 rm -f $(OBJS) 78 rm -f $(DEPACKER_OBJS) 79 rm -f $(PROWIZ_OBJS) 80 rm -f $(TEST_OBJS) 81 82distclean: clean .symbolic 83 rm -f $(DLLNAME) $(EXPNAME) $(LIBNAME) $(LIBSTATIC) test/$(DLLNAME) test/$(TESTNAME) 84 85!ifdef __UNIX__ 86CMD_CP=cp 87!else 88CMD_CP=copy 89!endif 90