!ifeq USE_PROWIZARD 0 CFLAGS += -DLIBXMP_NO_PROWIZARD !endif !ifeq USE_DEPACKERS 0 CFLAGS += -DLIBXMP_NO_DEPACKERS !endif CFLAGS += -DHAVE_FNMATCH -DHAVE_MKSTEMP -DHAVE_UMASK #CFLAGS += -DDEBUG CFLAGS += -Iinclude DLLFLAGS=-bd -DBUILDING_DLL STATICFLAGS=-DLIBXMP_STATIC DLLNAME=libxmp.dll EXPNAME=libxmp.exp # Note: not libxmp.map... MAPNAME=xmp.map LNKFILE=libxmp.lnk LIBNAME=libxmp.lib LIBSTATIC=xmp_static.lib LBCFILE=libxmp.lbc TESTNAME=libxmp-test.exe ## the lite version : !ifeq TARGET_OS2 yes DLLNAME_LITE=libxmplt.dll LIBNAME_LITE=libxmplt.lib !else DLLNAME_LITE=libxmp-lite.dll LIBNAME_LITE=libxmp-lite.lib !endif LNKLITE=libxmplt.lnk EXPNAME_LITE=xmp-lite.exp # Note: not libxmp.map... MAPNAME_LITE=xmp-lite.map LIBSTATIC_LITE=xmplite_static.lib TESTNAME_LITE=libxmp-lite-test.exe LBCLITE=libxmplt.lbc !ifeq target static CFLAGS += $(STATICFLAGS) LIBFLAGS=$(CFLAGS) BLD_TARGET=$(LIBSTATIC) BLD_LIB=$(LIBSTATIC) LITE_TARGET=$(LIBSTATIC_LITE) LITE_LIB=$(LIBSTATIC_LITE) !else LIBFLAGS=$(CFLAGS) $(DLLFLAGS) BLD_TARGET=$(DLLNAME) BLD_LIB=$(LIBNAME) LITE_TARGET=$(DLLNAME_LITE) LITE_LIB=$(LIBNAME_LITE) !endif OBJS= & 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/far_extras.obj & src/med_extras.obj & src/filter.obj & src/effects.obj & src/flow.obj & src/mixer.obj & src/mix_all.obj & src/rng.obj & src/load_helpers.obj & src/load.obj & src/hio.obj & src/hmn_extras.obj & src/extras.obj & src/smix.obj & src/path.obj & src/filetype.obj & src/memio.obj & src/tempfile.obj & src/mix_paula.obj & src/miniz_tinfl.obj & src/win32.obj & src/loaders/common.obj & src/loaders/iff.obj & src/loaders/itsex.obj & src/loaders/lzw.obj & src/loaders/voltable.obj & src/loaders/sample.obj & src/loaders/vorbis.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/masi16_load.obj & src/loaders/amf_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/muse_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 & src/loaders/xmf_load.obj & PROWIZ_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 & DEPACKER_OBJS= & src/depackers/depacker.obj & src/depackers/ppdepack.obj & src/depackers/unsqsh.obj & src/depackers/mmcmp.obj & src/depackers/s404_dec.obj & src/depackers/arc.obj & src/depackers/arcfs.obj & src/depackers/arc_unpack.obj & src/depackers/lzx.obj & src/depackers/lzx_unpack.obj & src/depackers/ice.obj & src/depackers/ice_unpack.obj & src/depackers/miniz_zip.obj & src/depackers/unzip.obj & src/depackers/gunzip.obj & src/depackers/uncompress.obj & src/depackers/bunzip2.obj & src/depackers/unlha.obj & src/depackers/unxz.obj & src/depackers/xz_dec_lzma2.obj & src/depackers/xz_dec_stream.obj & src/depackers/crc32.obj & src/depackers/xfnmatch.obj & src/depackers/ptpopen.obj & src/depackers/xfd.obj & src/depackers/xfd_link.obj & src/depackers/lhasa/ext_header.obj & src/depackers/lhasa/lha_file_header.obj & src/depackers/lhasa/lha_input_stream.obj & src/depackers/lhasa/lha_decoder.obj & src/depackers/lhasa/lha_reader.obj & src/depackers/lhasa/lha_basic_reader.obj & src/depackers/lhasa/lh1_decoder.obj & src/depackers/lhasa/lh5_decoder.obj & src/depackers/lhasa/lh6_decoder.obj & src/depackers/lhasa/lh7_decoder.obj & src/depackers/lhasa/lhx_decoder.obj & src/depackers/lhasa/lk7_decoder.obj & src/depackers/lhasa/lz5_decoder.obj & src/depackers/lhasa/lzs_decoder.obj & src/depackers/lhasa/null_decoder.obj & src/depackers/lhasa/pm1_decoder.obj & src/depackers/lhasa/pm2_decoder.obj & src/depackers/lhasa/macbinary.obj & LITE_OBJS= & src/lite/lite-virtual.obj & src/lite/lite-format.obj & src/lite/lite-period.obj & src/lite/lite-player.obj & src/lite/lite-read_event.obj & src/lite/lite-misc.obj & src/lite/lite-dataio.obj & src/lite/lite-lfo.obj & src/lite/lite-scan.obj & src/lite/lite-control.obj & src/lite/lite-filter.obj & src/lite/lite-effects.obj & src/lite/lite-mixer.obj & src/lite/lite-mix_all.obj & src/lite/lite-load_helpers.obj & src/lite/lite-load.obj & src/lite/lite-filetype.obj & src/lite/lite-hio.obj & src/lite/lite-smix.obj & src/lite/lite-memio.obj & src/lite/lite-rng.obj & src/lite/lite-win32.obj & src/lite/lite-flow.obj & src/lite/lite-common.obj & src/lite/lite-itsex.obj & src/lite/lite-sample.obj & src/lite/lite-xm_load.obj & src/lite/lite-mod_load.obj & src/lite/lite-s3m_load.obj & src/lite/lite-it_load.obj & ALL_OBJS=$(OBJS) !ifeq USE_PROWIZARD 1 ALL_OBJS+= $(PROWIZ_OBJS) !endif !ifeq USE_DEPACKERS 1 ALL_OBJS+= $(DEPACKER_OBJS) !endif TEST_OBJS=test/md5.obj test/test.obj TESTLITE_OBJS=test/md5.obj test/testlite.obj all: $(BLD_TARGET) dll: $(DLLNAME) dll-lite: $(DLLNAME_LITE) static: $(LIBSTATIC) static-lite: $(LIBSTATIC_LITE) lite: $(LITE_TARGET) #.SUFFIXES: .obj .c .c: src;src/depackers;src/depackers/lhasa;src/loaders;src/loaders/prowizard;src/lite;test .c.obj: $(CC) $(LIBFLAGS) -fo=$^@ $< test/md5.obj: src/md5.c $(CC) $(CFLAGS) -fo=$^@ $< test/test.obj: test/test.c $(CC) $(CFLAGS) -fo=$^@ $< test/testlite.obj: test/testlite.c $(CC) $(CFLAGS) -fo=$^@ $< # rely on symbol name, not ordinal: -irn switch of wlib is default, but -inn is not. $(DLLNAME) $(LIBNAME) $(EXPNAME): $(ALL_OBJS) $(LNKFILE) wlink @$(LNKFILE) wlib -q -b -n -c -pa -s -t -zld -ii -io -inn $(LIBNAME) +$(DLLNAME) $(DLLNAME_LITE) $(LIBNAME_LITE) $(EXPNAME_LITE): $(LITE_OBJS) $(LNKLITE) wlink @$(LNKLITE) wlib -q -b -n -c -pa -s -t -zld -ii -io -inn $(LIBNAME_LITE) +$(DLLNAME_LITE) $(LIBSTATIC): $(ALL_OBJS) $(LBCFILE) wlib -q -b -n -c -pa -s -t -zld -ii -io $@ @$(LBCFILE) $(LIBSTATIC_LITE): $(LITE_OBJS) $(LBCLITE) wlib -q -b -n -c -pa -s -t -zld -ii -io $@ @$(LBCLITE) test/$(TESTNAME): $(BLD_LIB) $(TEST_OBJS) wlink NAM test/$(TESTNAME) SYSTEM $(SYSTEM) OP QUIET LIBR {$(BLD_LIB)} FIL {$(TEST_OBJS)} test/$(TESTNAME_LITE): $(LITE_LIB) $(TESTLITE_OBJS) wlink NAM test/$(TESTNAME_LITE) SYSTEM $(SYSTEM) OP QUIET LIBR {$(LITE_LIB)} FIL {$(TESTLITE_OBJS)} check-build: test/$(TESTNAME) .symbolic !ifneq target static $(CMD_CP) $(DLLNAME) test !endif !ifdef __UNIX__ check: check-build .symbolic cd test && ./$(TESTNAME) !else check: check-build .symbolic cd test & $(TESTNAME) !endif checklite-build: test/$(TESTNAME_LITE) .symbolic !ifneq target static $(CMD_CP) $(DLLNAME_LITE) test !endif !ifdef __UNIX__ check-lite: checklite-build .symbolic cd test && ./$(TESTNAME_LITE) !else check-lite: checklite-build .symbolic cd test & $(TESTNAME_LITE) !endif clean: .symbolic rm -f src/*.obj rm -f src/loaders/*.obj src/loaders/prowizard/*.obj rm -f src/depackers/*.obj src/depackers/lhasa/*.obj rm -f src/lite/*.obj rm -f test/*.obj distclean: clean .symbolic rm -f *.err *.lnk *.lbc rm -f $(DLLNAME) $(EXPNAME) $(MAPNAME) $(LIBNAME) $(LIBSTATIC) test/$(DLLNAME) test/$(TESTNAME) rm -f $(DLLNAME_LITE) $(EXPNAME_LITE) $(MAPNAME_LITE) $(LIBNAME_LITE) $(LIBSTATIC_LITE) test/$(DLLNAME_LITE) test/$(TESTNAME_LITE) !ifdef __UNIX__ CMD_CP=cp !else CMD_CP=copy !endif $(LBCFILE): @echo Creating wlib commands file: $@ @%create $@ @for %i in ($(ALL_OBJS)) do @%append $@ +%i $(LBCLITE): @echo Creating wlib commands file: $@ @%create $@ @for %i in ($(LITE_OBJS)) do @%append $@ +%i