2007-01-12 22:42:19 +00:00
|
|
|
# OpenAL
|
|
|
|
# http://www.openal.org/
|
|
|
|
USEAL=1
|
|
|
|
LINKAL=0
|
|
|
|
ALCFLAGS=
|
|
|
|
ALLIBS=openal32.lib
|
|
|
|
ALDL=openal32.dll
|
|
|
|
|
|
|
|
# DirectX SDK Location (Win32)
|
|
|
|
# http://www.microsoft.com/downloads/details.aspx?FamilyID=edb98ffa-a59c-4c23-9b92-ba304f188314&DisplayLang=en
|
|
|
|
DIRECTXCFLAGS=
|
|
|
|
DIRECTXLIBS=dxguid.lib
|
|
|
|
|
|
|
|
# OggVorbis
|
|
|
|
# http://www.vorbis.com/
|
|
|
|
USEVORBIS=1
|
|
|
|
LINKVORBIS=0
|
|
|
|
VORBISCFLAGS=
|
|
|
|
VORBISLIBS=vorbisfile.lib vorbis.lib ogg.lib
|
|
|
|
VORBISDL=vorbisfile.dll
|
|
|
|
|
|
|
|
# FLAC
|
|
|
|
# http://flac.sf.net/
|
2007-01-14 07:00:29 +00:00
|
|
|
USEFLAC=0
|
2007-01-12 22:42:19 +00:00
|
|
|
LINKFLAC=0
|
|
|
|
FLACCFLAGS=
|
|
|
|
FLACLIBS=libflac.lib
|
|
|
|
FLACDL=libflac.dll
|
|
|
|
|
|
|
|
# MPEG Audio via mpadec
|
|
|
|
# http://mpadec.sf.net/
|
|
|
|
USEMPADEC=1
|
2007-01-14 07:00:29 +00:00
|
|
|
LINKMPADEC=1
|
2007-01-12 22:42:19 +00:00
|
|
|
MPADECCFLAGS=/Impadec
|
|
|
|
MPADECLIBS=mpadec\mpadec.lib
|
|
|
|
MPADECDL=mpadec.dll
|
|
|
|
|
|
|
|
# libSDL 1.2 or better (used just for the test app on Win32)
|
|
|
|
# http://www.libsdl.org/
|
|
|
|
SDLCFLAGS=/IC:\sdks\SDL-msvc\include
|
|
|
|
SDLLIBS=/LIBPATH:C:\sdks\SDL-msvc\lib SDL.lib
|
|
|
|
|
|
|
|
# Directories for library SDKs on Windows
|
|
|
|
# I keep my third-party libraries each in a directory on their own.
|
2007-01-14 07:00:29 +00:00
|
|
|
SDKDIRECTX=c:\sdks\dx6
|
2007-01-12 22:42:19 +00:00
|
|
|
SDKOPENAL=c:\sdks\OpenAL
|
2007-01-14 07:00:29 +00:00
|
|
|
SDKVORBIS=c:\sdks\oggvorbis
|
2007-01-12 22:42:19 +00:00
|
|
|
SDKFLAC=c:\sdks\flac
|
|
|
|
|
|
|
|
obj=obj
|
|
|
|
src=src
|
|
|
|
inc=inc
|
|
|
|
o=obj
|
|
|
|
libfile=jfaud.lib
|
|
|
|
|
|
|
|
exe=.exe
|
|
|
|
platformcflags=/I$(SDKDIRECTX)\include $(DIRECTXCFLAGS)
|
|
|
|
platformobjs=$(obj)\cda_win32.$o $(obj)\midisynth_win32.$o $(obj)\waveout_dsound.$o
|
|
|
|
platformlibs=winmm.lib /LIBPATH:$(SDKDIRECTX)\lib $(DIRECTXLIBS) $(SDLLIBS)
|
|
|
|
|
|
|
|
ALCFLAGS=/I$(SDKOPENAL)\Include $(ALCFLAGS) /DALDL=\"$(ALDL)\"
|
|
|
|
ALLIBS=/LIBPATH:$(SDKOPENAL)\libs $(ALLIBS)
|
|
|
|
|
|
|
|
VORBISCFLAGS=/I$(SDKVORBIS)\include $(VORBISCFLAGS) /DVORBISDL=\"$(VORBISDL)\"
|
|
|
|
VORBISLIBS=/LIBPATH:$(SDKVORBIS)\lib $(VORBISLIBS)
|
|
|
|
|
|
|
|
FLACCFLAGS=/I$(SDKFLAC)\include $(FLACCFLAGS) /DFLACDL=\"$(FLACDL)\"
|
|
|
|
FLACLIBS=/LIBPATH:$(SDKFLAC)\bin $(FLACLIBS)
|
|
|
|
|
|
|
|
MPADECCFLAGS=$(MPADECCFLAGS) /DMPADECDL=\"$(MPADECDL)\"
|
|
|
|
|
2007-01-14 07:00:29 +00:00
|
|
|
CFLAGS=/O2 /Ox /MD /DDEBUG /nologo /D "_CRT_SECURE_NO_DEPRECATE" -W0 /I$(inc) $(platformcflags)
|
2007-01-12 22:42:19 +00:00
|
|
|
LIBS=$(platformlibs)
|
|
|
|
dependencies=
|
|
|
|
|
|
|
|
CFLAGS=$(CFLAGS) /DUSEAL=$(USEAL)
|
|
|
|
!if $(USEAL)
|
|
|
|
CFLAGS=$(CFLAGS) /DLINKAL=$(LINKAL)
|
|
|
|
!if $(LINKAL)
|
|
|
|
LIBS=$(LIBS) $(ALLIBS)
|
|
|
|
!endif
|
|
|
|
!endif
|
|
|
|
|
|
|
|
CFLAGS=$(CFLAGS) /DUSEVORBIS=$(USEVORBIS)
|
|
|
|
!if $(USEVORBIS)
|
|
|
|
CFLAGS=$(CFLAGS) /DLINKVORBIS=$(LINKVORBIS)
|
|
|
|
!if $(LINKVORBIS)
|
|
|
|
LIBS=$(LIBS) $(VORBISLIBS)
|
|
|
|
!endif
|
|
|
|
!endif
|
|
|
|
|
|
|
|
CFLAGS=$(CFLAGS) /DUSEFLAC=$(USEFLAC)
|
|
|
|
!if $(USEFLAC)
|
|
|
|
CFLAGS=$(CFLAGS) /DLINKFLAC=$(LINKFLAC)
|
|
|
|
!if $(LINKFLAC)
|
|
|
|
LIBS=$(LIBS) $(FLACLIBS)
|
|
|
|
!else
|
|
|
|
LIBS=$(LIBS) /NODEFAULTLIB:libFLAC.lib
|
|
|
|
!endif
|
|
|
|
!endif
|
|
|
|
|
|
|
|
CFLAGS=$(CFLAGS) /DUSEMPADEC=$(USEMPADEC)
|
|
|
|
!if $(USEMPADEC)
|
|
|
|
CFLAGS=$(CFLAGS) /DLINKMPADEC=$(LINKMPADEC)
|
|
|
|
!if $(LINKMPADEC)
|
|
|
|
LIBS=$(LIBS) $(MPADECLIBS)
|
|
|
|
dependencies=$(dependencies) $(MPADECLIBS)
|
|
|
|
!endif
|
|
|
|
!endif
|
|
|
|
|
|
|
|
CXXFLAGS=$(CFLAGS)
|
|
|
|
|
|
|
|
libraryobjs=$(obj)\jfaud.$o $(obj)\soundcache.$o \
|
|
|
|
$(obj)\mixer.$o $(obj)\nullmixer.$o $(obj)\almixer.$o $(obj)\softwaremixer.$o \
|
|
|
|
$(obj)\file.$o $(obj)\stdfile.$o \
|
|
|
|
$(obj)\pcmbuffer.$o $(obj)\midibuffer.$o \
|
|
|
|
$(obj)\soundfile.$o $(obj)\waveformfile.$o $(obj)\midifile.$o \
|
|
|
|
$(obj)\waveformfile_raw.$o $(obj)\waveformfile_riffwave.$o $(obj)\waveformfile_aiff.$o \
|
|
|
|
$(obj)\waveformfile_voc.$o $(obj)\waveformfile_au.$o $(obj)\waveformfile_oggvorbis.$o \
|
|
|
|
$(obj)\waveformfile_flac.$o $(obj)\waveformfile_mpeg.$o \
|
|
|
|
$(obj)\midifile_smf.$o $(obj)\midiseq.$o $(obj)\midisynth.$o\
|
|
|
|
$(obj)\cda_null.$o $(obj)\waveout.$o $(obj)\dynlib.$o $(obj)\crc32.$o $(platformobjs)
|
|
|
|
testprogobjs=$(obj)\jfaudtest.$o $(libfile)
|
|
|
|
|
|
|
|
# module-specific CFLAGS declaration variables
|
|
|
|
almixer_cpp_CFLAGS=$(ALCFLAGS)
|
|
|
|
jfaud_cpp_CFLAGS=$(ALCFLAGS)
|
|
|
|
waveformfile_oggvorbis_cpp_CFLAGS=$(VORBISCFLAGS)
|
|
|
|
waveformfile_flac_cpp_CFLAGS=$(FLACCFLAGS)
|
|
|
|
waveformfile_mpeg_cpp_CFLAGS=$(MPADECCFLAGS)
|
|
|
|
waveformfile_cpp_CFLAGS=$(VORBISCFLAGS) $(FLACCFLAGS) $(MPADECCFLAGS)
|
|
|
|
|
|
|
|
|
|
|
|
all: $(libfile)
|
|
|
|
test: jfaudtest$(exe)
|
|
|
|
|
|
|
|
jfaudtest$(exe): $(testprogobjs) $(dependencies)
|
|
|
|
link /opt:nowin98 /opt:ref /nologo /OUT:$@ /SUBSYSTEM:WINDOWS $(testprogobjs) $(SDLLIBS) $(LIBS) msvcrt.lib user32.lib sdlmain.lib
|
|
|
|
|
|
|
|
$(libfile): $(libraryobjs)
|
|
|
|
lib /nologo /out:$@ $**
|
|
|
|
|
|
|
|
!include Makefile.deps
|
|
|
|
|
|
|
|
$(obj)\jfaudtest.$o: $(src)\jfaudtest.cpp $(inc)\jfaud.hpp $(inc)\file.hpp $(inc)\mixer.hpp $(inc)\waveformfile.hpp $(inc)\soundfile.hpp $(inc)\pcmbuffer.hpp $(inc)\buffer.hpp $(inc)\cda.hpp $(inc)\sysdefs.h
|
|
|
|
cl /c $(CXXFLAGS) $(SDLCFLAGS) /Fo$@ $(src)\jfaudtest.cpp
|
|
|
|
|
|
|
|
{$(src)}.cpp{$(obj)}.$o: ; cl /c $(CXXFLAGS) /Fo$@ $<
|
|
|
|
$(obj)\almixer.$o: ; cl /c $(CXXFLAGS) $(almixer_cpp_CFLAGS) /Fo$@ $(src)\almixer.cpp
|
|
|
|
$(obj)\jfaud.$o: ; cl /c $(CXXFLAGS) $(jfaud_cpp_CFLAGS) /Fo$@ $(src)\jfaud.cpp
|
|
|
|
$(obj)\waveformfile_oggvorbis.$o: ; cl /c $(CXXFLAGS) $(waveformfile_oggvorbis_cpp_CFLAGS) /Fo$@ $(src)\waveformfile_oggvorbis.cpp
|
|
|
|
$(obj)\waveformfile_flac.$o: ; cl /c $(CXXFLAGS) $(waveformfile_flac_cpp_CFLAGS) /Fo$@ $(src)\waveformfile_flac.cpp
|
|
|
|
$(obj)\waveformfile_mpeg.$o: ; cl /c $(CXXFLAGS) $(waveformfile_mpeg_cpp_CFLAGS) /Fo$@ $(src)\waveformfile_mpeg.cpp
|
|
|
|
$(obj)\waveformfile.$o: ; cl /c $(CXXFLAGS) $(waveformfile_cpp_CFLAGS) /Fo$@ $(src)\waveformfile.cpp
|
|
|
|
|
|
|
|
# housekeeping
|
|
|
|
clean:
|
|
|
|
-del $(libraryobjs) jfaudtest$(exe) $(obj)\jfaudtest.$o
|
|
|
|
-cd mpadec && $(MAKE) /nologo /f Makefile.msvc clean
|
|
|
|
veryclean: clean
|
|
|
|
-del $(libfile)
|
|
|
|
|
|
|
|
# for building libmpadec
|
|
|
|
$(MPADECLIBS): libmpadec
|
|
|
|
libmpadec:
|
|
|
|
cd mpadec && $(MAKE) /nologo /f Makefile.msvc mpadec.lib mpadec.dll
|