229 lines
5.4 KiB
Text
229 lines
5.4 KiB
Text
# Open Watcom makefile to build SDL2mix.dll for OS/2
|
|
# wmake -f Makefile.os2
|
|
#
|
|
# Remember to edit DEPS_INC and DEPS_LIB below to meet
|
|
# your own environment!.
|
|
|
|
LIBNAME = SDL2mix
|
|
MAJOR_VERSION = 2
|
|
MINOR_VERSION = 7
|
|
MICRO_VERSION = 0
|
|
VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)
|
|
|
|
TITLENAME = $(LIBNAME) $(VERSION)
|
|
|
|
# change DEPS_INC in order to point to the dependency headers.
|
|
DEPS_INC=-IC:\SDL2DEV\h\SDL2 -IC:\SDL2DEV\h
|
|
# change DEPS_LIB in order to point to the dependency libraries.
|
|
DEPS_LIB=C:\SDL2DEV\lib
|
|
|
|
# wav music support
|
|
USE_WAV=yes
|
|
# ogg/vorbis music support
|
|
USE_OGG=yes
|
|
# use integer-only Tremor (libvorbisidec) instead of libvorbis?
|
|
USE_TREMOR=no
|
|
# use stb_vorbis instead of libvorbis?
|
|
USE_STBVORBIS=no
|
|
# flac music support (using libflac)
|
|
USE_FLAC=yes
|
|
# flac music support (using dr_flac)
|
|
USE_DRFLAC=no
|
|
# opus music support
|
|
USE_OPUS=yes
|
|
# mp3 music support (using mpg123)
|
|
USE_MPG123=yes
|
|
# mp3 music support (using dr_mp3)
|
|
USE_DRMP3=no
|
|
# wavpack music support
|
|
USE_WAVPACK=yes
|
|
# wavpack DSD music support
|
|
USE_WAVPACK_DSD= no
|
|
# midi music support (using timidity)
|
|
USE_TIMIDITY=yes
|
|
# midi music support (using fluidsynth)
|
|
USE_FLUIDSYNTH=no
|
|
# tracker music support (using libxmp)
|
|
USE_XMP=yes
|
|
# tracker music support (using libmodplug)
|
|
USE_MODPLUG=no
|
|
# game-music-emu support (using libgme)
|
|
USE_GME=no
|
|
|
|
LIBFILE = $(LIBNAME).lib
|
|
DLLFILE = $(LIBNAME).dll
|
|
LNKFILE = $(LIBNAME).lnk
|
|
TIMILIB = timidity.lib
|
|
|
|
SRCS = utils.c effect_position.c effects_internal.c effect_stereoreverse.c mixer.c music.c
|
|
# codec sources:
|
|
SRCS+= load_aiff.c load_voc.c music_wav.c &
|
|
music_ogg.c music_ogg_stb.c music_opus.c &
|
|
music_flac.c music_drflac.c music_wavpack.c &
|
|
mp3utils.c music_mpg123.c music_drmp3.c &
|
|
music_xmp.c music_modplug.c music_gme.c &
|
|
music_fluidsynth.c music_timidity.c
|
|
# timidity sources:
|
|
TIMISRCS = common.c instrum.c mix.c output.c playmidi.c readmidi.c resample.c tables.c timidity.c
|
|
|
|
OBJS = $(SRCS:.c=.obj)
|
|
TIMIOBJS = $(TIMISRCS:.c=.obj)
|
|
|
|
LIBS = SDL2.lib
|
|
|
|
CFLAGS_BASE = -bt=os2 -d0 -q -bm -5s -fp5 -fpi87 -sg -oeatxh -ei -j
|
|
# warnings:
|
|
CFLAGS_BASE+= -wx
|
|
# newer OpenWatcom versions enable W303 by default
|
|
CFLAGS_BASE+= -wcd=303
|
|
# include paths:
|
|
CFLAGS_BASE+= -Iinclude -Isrc -I"src/codecs" -I"src/codecs/timidity" $(DEPS_INC)
|
|
CFLAGS_BASE+= -I"$(%WATCOM)/h/os2" -I"$(%WATCOM)/h"
|
|
CFLAGS = $(CFLAGS_BASE)
|
|
# to build a dll:
|
|
CFLAGS+= -bd
|
|
# for DECLSPEC:
|
|
CFLAGS+= -DBUILD_SDL
|
|
|
|
!ifeq USE_TIMIDITY yes
|
|
CFLAGS+= -DMUSIC_MID_TIMIDITY
|
|
LIBS+= $(TIMILIB)
|
|
!endif
|
|
!ifeq USE_FLUIDSYNTH yes
|
|
CFLAGS+= -DMUSIC_MID_FLUIDSYNTH
|
|
LIBS+= fluidsyn.lib
|
|
!endif
|
|
|
|
!ifeq USE_WAV yes
|
|
CFLAGS+= -DMUSIC_WAV
|
|
!endif
|
|
|
|
!ifeq USE_TREMOR yes
|
|
VORBIS_LIBS=vorbisidec.lib
|
|
!else
|
|
VORBIS_LIBS=vorbisfile.lib vorbis.lib
|
|
!endif
|
|
!ifeq USE_OGG yes
|
|
CFLAGS+= -DMUSIC_OGG
|
|
!ifeq USE_STBVORBIS yes
|
|
CFLAGS+= -DOGG_USE_STB
|
|
!else
|
|
!ifeq USE_TREMOR yes
|
|
CFLAGS+= -DOGG_USE_TREMOR
|
|
!endif
|
|
LIBS+= $(VORBIS_LIBS)
|
|
NEED_LIBOGG=yes
|
|
!endif
|
|
!endif
|
|
|
|
!ifeq USE_FLAC yes
|
|
CFLAGS+= -DMUSIC_FLAC_LIBFLAC
|
|
LIBS+= FLAC.lib
|
|
!endif
|
|
!ifeq USE_DRFLAC yes
|
|
CFLAGS+= -DMUSIC_FLAC_DRFLAC
|
|
!endif
|
|
|
|
!ifeq USE_WAVPACK yes
|
|
CFLAGS+= -DMUSIC_WAVPACK
|
|
!ifeq USE_WAVPACK_DSD yes
|
|
CFLAGS+= -DMUSIC_WAVPACK_DSD
|
|
!endif
|
|
LIBS+= wavpack.lib
|
|
!endif
|
|
|
|
!ifeq USE_OPUS yes
|
|
CFLAGS+= -DMUSIC_OPUS
|
|
LIBS+= opusfile.lib opus.lib
|
|
NEED_LIBOGG=yes
|
|
!endif
|
|
|
|
!ifeq USE_MPG123 yes
|
|
CFLAGS+= -DMUSIC_MP3_MPG123
|
|
LIBS+= mpg123.lib
|
|
!endif
|
|
!ifeq USE_DRMP3 yes
|
|
CFLAGS+= -DMUSIC_MP3_DRMP3
|
|
!endif
|
|
|
|
!ifeq USE_XMP yes
|
|
CFLAGS+= -DMUSIC_MOD_XMP
|
|
LIBS+= libxmp.lib
|
|
!endif
|
|
!ifeq USE_MODPLUG yes
|
|
CFLAGS+= -DMUSIC_MOD_MODPLUG
|
|
LIBS+= modplug.lib
|
|
!endif
|
|
|
|
!ifeq USE_GME yes
|
|
CFLAGS+= -DMUSIC_GME
|
|
LIBS+= gme.lib
|
|
!endif
|
|
|
|
!ifeq NEED_LIBOGG yes
|
|
LIBS+= ogg.lib
|
|
!endif
|
|
|
|
# For the static assertions in mixer.c
|
|
CFLAGS+= -DSDL_BUILD_MAJOR_VERSION=$(MAJOR_VERSION)
|
|
CFLAGS+= -DSDL_BUILD_MINOR_VERSION=$(MINOR_VERSION)
|
|
CFLAGS+= -DSDL_BUILD_MICRO_VERSION=$(MICRO_VERSION)
|
|
|
|
all: $(DLLFILE) playwave.exe playmus.exe
|
|
|
|
$(LIBFILE): $(DLLFILE)
|
|
@echo * Create library: $@...
|
|
wlib -b -n -q -c -pa -s -t -zld -ii -io $@ $(DLLFILE)
|
|
|
|
$(DLLFILE): $(OBJS) $(TIMILIB) $(LNKFILE)
|
|
@echo * Link: $@
|
|
wlink @$(LNKFILE)
|
|
|
|
$(LNKFILE):
|
|
@%create $@
|
|
@%append $@ SYSTEM os2v2_dll INITINSTANCE TERMINSTANCE
|
|
@%append $@ NAME $(LIBNAME)
|
|
@for %i in ($(OBJS)) do @%append $@ FILE %i
|
|
@%append $@ OPTION QUIET
|
|
@%append $@ OPTION DESCRIPTION '@$#libsdl org:$(VERSION)$#@Simple DirectMedia Layer Mixer Library'
|
|
@%append $@ LIBPATH $(DEPS_LIB)
|
|
@for %i in ($(LIBS)) do @%append $@ LIB %i
|
|
@%append $@ OPTION MAP=$*
|
|
@%append $@ OPTION ELIMINATE
|
|
@%append $@ OPTION MANYAUTODATA
|
|
@%append $@ OPTION OSNAME='OS/2 and eComStation'
|
|
@%append $@ OPTION SHOWDEAD
|
|
|
|
.c: ./src;./src/codecs;
|
|
|
|
.c.obj:
|
|
wcc386 $(CFLAGS) -fo=$^@ $<
|
|
|
|
playmus.obj: playmus.c
|
|
wcc386 $(CFLAGS_BASE) -fo=$^@ $<
|
|
|
|
playwave.obj: playwave.c
|
|
wcc386 $(CFLAGS_BASE) -fo=$^@ $<
|
|
|
|
playmus.exe: $(LIBFILE) playmus.obj
|
|
wlink SYS os2v2 OP q LIBPATH $(DEPS_LIB) LIBR {$(LIBFILE) SDL2.lib} F {playmus.obj} N playmus.exe
|
|
|
|
playwave.exe: $(LIBFILE) playwave.obj
|
|
wlink SYS os2v2 OP q LIBPATH $(DEPS_LIB) LIBR {$(LIBFILE) SDL2.lib} F {playwave.obj} N playwave.exe
|
|
|
|
.c: ./src/codecs/timidity;
|
|
timidity.lib: $(TIMIOBJS)
|
|
wlib -b -n -q -c -pa -s -t -zld -ii -io $@ $(TIMIOBJS)
|
|
|
|
clean: .SYMBOLIC
|
|
@echo * Clean: $(TITLENAME)
|
|
@if exist *.obj rm *.obj
|
|
@if exist *.err rm *.err
|
|
@if exist $(TIMILIB) rm $(TIMILIB)
|
|
@if exist $(LNKFILE) rm $(LNKFILE)
|
|
|
|
distclean: .SYMBOLIC clean
|
|
@if exist $(DLLFILE) rm $(DLLFILE)
|
|
@if exist $(LIBFILE) rm $(LIBFILE)
|
|
@if exist *.map rm *.map
|
|
@if exist *.exe rm *.exe
|