Windows Makefiles easier soundlib opt-in or opt-out
This commit is contained in:
@@ -93,10 +93,6 @@
|
|||||||
extern void interject_assistance(int, int, genericptr_t, genericptr_t);
|
extern void interject_assistance(int, int, genericptr_t, genericptr_t);
|
||||||
extern void interject(int);
|
extern void interject(int);
|
||||||
|
|
||||||
#if defined(SND_LIB_WINDSOUND)
|
|
||||||
#define SND_SOUNDEFFECTS_AUTOMAP
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*===============================================
|
*===============================================
|
||||||
* Compiler-specific adjustments
|
* Compiler-specific adjustments
|
||||||
|
|||||||
@@ -39,12 +39,15 @@ GAMEDIR = ../binary
|
|||||||
|
|
||||||
#
|
#
|
||||||
#---------------------------------------------------------------
|
#---------------------------------------------------------------
|
||||||
# Do you want to include any sound libraries? If so leave the
|
# Do you want to include integration with any sound libraries that work with
|
||||||
# appropriate compile macro below uncommented, or add others
|
# this Makefile? Add the list below. If you change the list do 'nmake clean'.
|
||||||
# that are available.
|
|
||||||
#
|
#
|
||||||
|
# There is glue in here for the following: windsound fmod
|
||||||
|
# Obtaining the 3rd party library, including its .h files, is up to you.
|
||||||
|
#
|
||||||
|
# windsound uses built-in Microsoft API's, no 3rd party download is required.
|
||||||
|
|
||||||
SOUNDLIBDEFS = -DSND_LIB_WINDSOUND -DUSER_SOUNDS
|
SOUND_LIBRARIES = windsound
|
||||||
|
|
||||||
#
|
#
|
||||||
#---------------------------------------------------------------
|
#---------------------------------------------------------------
|
||||||
@@ -290,6 +293,12 @@ else # MINGW64
|
|||||||
rc = windres --target=pe-x86-64
|
rc = windres --target=pe-x86-64
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq "$(MSYSTEM)" "MINGW32"
|
||||||
|
arch = x86
|
||||||
|
else # MINGW64
|
||||||
|
arch = x64
|
||||||
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# Handle user settings
|
# Handle user settings
|
||||||
#
|
#
|
||||||
@@ -744,32 +753,106 @@ endif # GIT_AVAILABLE
|
|||||||
endif # INTERNET_AVAILABLE
|
endif # INTERNET_AVAILABLE
|
||||||
|
|
||||||
#==========================================
|
#==========================================
|
||||||
# nethackw
|
# Soundlib Choices
|
||||||
#==========================================
|
#==========================================
|
||||||
COREOBJS = $(addsuffix .o, allmain alloc apply artifact attrib ball bones botl cmd cppregex \
|
|
||||||
dbridge decl detect dig display dlb do do_name do_wear \
|
|
||||||
dog dogmove dokick dothrow drawing dungeon \
|
|
||||||
eat end engrave exper explode extralev files fountain \
|
|
||||||
hack hacklib insight invent isaac64 light lock \
|
|
||||||
mail makemon mcastu mdlib mhitm mhitu minion mklev mkmap mkmaze mkobj mkroom \
|
|
||||||
mon mondata monmove monst mplayer mthrowu muse music \
|
|
||||||
nhlobj nhlsel nhlua windsound o_init objects objnam options \
|
|
||||||
pager pickup pline polyself potion pray priest quest questpgr \
|
|
||||||
random read rect region restore rip rnd role rumors \
|
|
||||||
safeproc save sfstruct shk shknam sit sounds sp_lev spell steal steed symbols sys \
|
|
||||||
teleport timeout topten track trap u_init uhitm utf8map vault version vision \
|
|
||||||
weapon were wield windmain windows windsys wizard worm worn write zap)
|
|
||||||
|
|
||||||
CFLAGSW = $(CFLAGS) $(CFLAGSXTRA) $(COMMONDEF) $(DLBFLG) -DTILES -D_WINDOWS -DMSWIN_GRAPHICS -DSAFEPROCS -DNOTTYGRAPHICS $(SOUNDLIBDEFS)
|
SNDLIBCHOICES = $(strip $(SOUND_LIBRARIES))
|
||||||
CPPFLAGSW = $(CFLAGS) $(CPPFLAGSXTRA) $(COMMONDEF) $(DLBFLG) -DTILES -D_WINDOWS -DMSWIN_GRAPHICS -DSAFEPROCS -DNOTTYGRAPHICS $(SOUNDLIBDEFS)
|
|
||||||
|
|
||||||
ONHW = $(O)nethackw
|
#
|
||||||
NHWONLY = $(addsuffix .o, mhaskyn mhdlg mhfont mhinput mhmain mhmap mhmenu \
|
# windsound
|
||||||
mhmsgwnd mhrip mhsplash mhstatus mhtext mswproc tile NetHackW win10)
|
#
|
||||||
NHWOBJS = $(addprefix $(ONHW)/, $(COREOBJS) $(NHWONLY))
|
WINDSOUND = $(findstring windsound, $(SNDLIBCHOICES))
|
||||||
DATEW_O = $(addsuffix .o, $(addprefix $(ONHW)/, date))
|
ifeq "$(WINDSOUND)" "windsound"
|
||||||
TILEFILES = $(addprefix $(WSHR)/, monsters.txt objects.txt other.txt)
|
$(info Including windsound integration)
|
||||||
BMPS = $(addprefix $(MSWIN)/, $(addsuffix .bmp, mnsel mnselcnt mnunsel petmark pilemark rip splash tiles))
|
SOUND_WINDSOUND=Y
|
||||||
|
HAVE_SOUNDLIB=Y
|
||||||
|
NEED_USERSOUNDS=Y
|
||||||
|
NEED_SEAUTOMAP=Y
|
||||||
|
NEED_WAV=Y
|
||||||
|
#SOUNDLIBINCL +=
|
||||||
|
SOUNDLIBDEFS += -DSND_LIB_WINDSOUND
|
||||||
|
SOUNDLIBOBJS += windsound
|
||||||
|
#WINDSOUNDLIBDIR =
|
||||||
|
#SOUNDLIBLIBS +=
|
||||||
|
#WINDSOUNDLIBDLL =
|
||||||
|
#GAMEDIRDLLS +=
|
||||||
|
endif
|
||||||
|
|
||||||
|
#
|
||||||
|
# fmod
|
||||||
|
#
|
||||||
|
FMOD = $(findstring fmod, $(SNDLIBCHOICES))
|
||||||
|
ifeq "$(FMOD)" "fmod"
|
||||||
|
$(info Including fmod integration)
|
||||||
|
SOUND_FMOD=Y
|
||||||
|
HAVE_SOUNDLIB=Y
|
||||||
|
NEED_USERSOUNDS=Y
|
||||||
|
NEED_SEAUTOMAP=Y
|
||||||
|
NEED_WAV=Y
|
||||||
|
FMODROOT = ../lib/fmod/api/core
|
||||||
|
SOUNDLIBINCL += -I$(FMODROOT)/inc
|
||||||
|
SOUNDLIBDEFS += -DSND_LIB_FMOD
|
||||||
|
SOUNDLIBOBJS += fmod
|
||||||
|
FMODLIBDIR = $(FMODROOT)/lib/$(arch)
|
||||||
|
ifeq "$(arch)" "x86"
|
||||||
|
SOUNDLIBLIBS += -L $(FMODLIBDIR)
|
||||||
|
FMODLIBDLL = fmod_vc.dll
|
||||||
|
SOUNDLIBLIBS += -lfmod
|
||||||
|
else
|
||||||
|
SOUNDLIBLIBS += -L $(FMODLIBDIR)
|
||||||
|
FMODLIBDLL = fmod_vc.dll
|
||||||
|
SOUNDLIBLIBS += $(FMODLIBDIR)/$(FMODLIBDLL)
|
||||||
|
endif
|
||||||
|
FMODDIR = ../sound/fmod
|
||||||
|
GAMEDIRDLLS += $(GAMEDIR)/$(FMODLIBDLL)
|
||||||
|
ifeq "$(arch)" "x86"
|
||||||
|
FMODLINKLIB = $(FMODLIBDIR)/fmod_vc.lib
|
||||||
|
else
|
||||||
|
#x64 mingw32-x64 builds supposedly can link right with the DLL, no import lib
|
||||||
|
FMODLINKLIB = $(FMODLIBDIR)/$(FMODLIBDLL)
|
||||||
|
endif
|
||||||
|
$(info ---------------------------------------------------------------------)
|
||||||
|
$(info ** NOTES for fmod sound library integration **)
|
||||||
|
$(info For fmod integration, this Makefile expects:)
|
||||||
|
$(info fmod include directory : $(FMODROOT)/inc)
|
||||||
|
$(info fmod library directory : $(FMODLIBDIR))
|
||||||
|
$(info fmod library to link with : $(FMODLINKLIB))
|
||||||
|
$(info fmod library dll : $(FMODLIBDIR)/$(FMODLIBDLL))
|
||||||
|
$(info ---------------------------------------------------------------------)
|
||||||
|
FMOD_MISSING=
|
||||||
|
ifeq (,$(wildcard $(FMODROOT)/inc))
|
||||||
|
FMOD_MISSING += $(FMODROOT)\inc
|
||||||
|
$(info Error: missing $(FMODROOT)/inc)
|
||||||
|
endif
|
||||||
|
ifeq (,$(wildcard $(FMODLIBDIR)))
|
||||||
|
FMOD_MISSING += $(FMODLIBDIR)
|
||||||
|
$(info Error: missing $(FMODLIBDIR))
|
||||||
|
endif
|
||||||
|
ifeq (,$(wildcard $(FMODLINKLIB)))
|
||||||
|
FMOD_MISSING += $(FMODLINKLIB)
|
||||||
|
$(info Error: missing $(FMODLINKLIB))
|
||||||
|
endif
|
||||||
|
ifeq (,$(wildcard $(FMODLIBDIR)/$(FMODLIBDLL)))
|
||||||
|
FMOD_MISSING += $(FMODLIBDIR)/$(FMODLIBDLL)
|
||||||
|
$(info Error: missing $(FMODLIBDIR)/$(FMODLIBDLL))
|
||||||
|
endif
|
||||||
|
ifneq "$(FMOD_MISSING)" ""
|
||||||
|
$(error Error: Cannot proceed with fmod integration included)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
#==========================================
|
||||||
|
# Soundlib Support
|
||||||
|
#==========================================
|
||||||
|
|
||||||
|
ifeq "$(HAVE_SOUNDLIB)" "Y"
|
||||||
|
ifeq "$(NEED_USERSOUNDS)" "Y"
|
||||||
|
SOUNDLIBDEFS += -DUSER_SOUNDS
|
||||||
|
endif
|
||||||
|
ifeq "$(NEED_SEAUTOMAP)" "Y"
|
||||||
|
SOUNDLIBDEFS += -DSND_SOUNDEFFECTS_AUTOMAP
|
||||||
|
endif
|
||||||
|
ifeq "$(NEED_WAV)" "Y"
|
||||||
WAVLIST = se_squeak_A se_squeak_B se_squeak_B_flat se_squeak_C \
|
WAVLIST = se_squeak_A se_squeak_B se_squeak_B_flat se_squeak_C \
|
||||||
se_squeak_D se_squeak_D_flat se_squeak_E \
|
se_squeak_D se_squeak_D_flat se_squeak_E \
|
||||||
se_squeak_E_flat se_squeak_F se_squeak_F_sharp \
|
se_squeak_E_flat se_squeak_F se_squeak_F_sharp \
|
||||||
@@ -792,13 +875,44 @@ WAVLIST = se_squeak_A se_squeak_B se_squeak_B_flat se_squeak_C \
|
|||||||
sound_Wooden_Harp_E sound_Wooden_Harp_F \
|
sound_Wooden_Harp_E sound_Wooden_Harp_F \
|
||||||
sound_Wooden_Harp_G
|
sound_Wooden_Harp_G
|
||||||
WAVS = $(addprefix $(SNDWAVDIR)/, $(addsuffix .wav, $(WAVLIST)))
|
WAVS = $(addprefix $(SNDWAVDIR)/, $(addsuffix .wav, $(WAVLIST)))
|
||||||
|
endif # NEED_WAV
|
||||||
|
endif # HAVE_SOUNDLIB
|
||||||
|
|
||||||
|
#==========================================
|
||||||
|
# nethackw
|
||||||
|
#==========================================
|
||||||
|
COREOBJS = $(addsuffix .o, allmain alloc apply artifact attrib ball bones botl cmd cppregex \
|
||||||
|
dbridge decl detect dig display dlb do do_name do_wear \
|
||||||
|
dog dogmove dokick dothrow drawing dungeon \
|
||||||
|
eat end engrave exper explode extralev files fountain \
|
||||||
|
hack hacklib insight invent isaac64 light lock \
|
||||||
|
mail makemon mcastu mdlib mhitm mhitu minion mklev mkmap mkmaze mkobj mkroom \
|
||||||
|
mon mondata monmove monst mplayer mthrowu muse music \
|
||||||
|
nhlobj nhlsel nhlua windsound o_init objects objnam options \
|
||||||
|
pager pickup pline polyself potion pray priest quest questpgr \
|
||||||
|
random read rect region restore rip rnd role rumors \
|
||||||
|
safeproc save sfstruct shk shknam sit sounds sp_lev spell steal steed \
|
||||||
|
symbols sys teleport timeout topten track trap u_init uhitm utf8map \
|
||||||
|
vault version vision weapon were wield windmain windows windsys wizard \
|
||||||
|
worm worn write zap $(SOUNDLIBOBJS))
|
||||||
|
|
||||||
|
CFLAGSW = $(CFLAGS) $(CFLAGSXTRA) $(SOUNDLIBINCL) $(COMMONDEF) $(DLBFLG) -DTILES -D_WINDOWS -DMSWIN_GRAPHICS -DSAFEPROCS -DNOTTYGRAPHICS $(SOUNDLIBDEFS)
|
||||||
|
CPPFLAGSW = $(CFLAGS) $(CPPFLAGSXTRA) $(COMMONDEF) $(DLBFLG) -DTILES -D_WINDOWS -DMSWIN_GRAPHICS -DSAFEPROCS -DNOTTYGRAPHICS $(SOUNDLIBDEFS)
|
||||||
|
|
||||||
|
ONHW = $(O)nethackw
|
||||||
|
NHWONLY = $(addsuffix .o, mhaskyn mhdlg mhfont mhinput mhmain mhmap mhmenu \
|
||||||
|
mhmsgwnd mhrip mhsplash mhstatus mhtext mswproc tile NetHackW win10)
|
||||||
|
NHWOBJS = $(addprefix $(ONHW)/, $(COREOBJS) $(NHWONLY))
|
||||||
|
DATEW_O = $(addsuffix .o, $(addprefix $(ONHW)/, date))
|
||||||
|
TILEFILES = $(addprefix $(WSHR)/, monsters.txt objects.txt other.txt)
|
||||||
|
BMPS = $(addprefix $(MSWIN)/, $(addsuffix .bmp, mnsel mnselcnt mnunsel petmark pilemark rip splash tiles))
|
||||||
NHWRES = $(ONHW)/winres.o
|
NHWRES = $(ONHW)/winres.o
|
||||||
NHWTARGETS = $(GAMEDIR)/NetHackW.exe
|
NHWTARGETS = $(GAMEDIR)/NetHackW.exe
|
||||||
|
|
||||||
nethackw: $(NHWTARGETS)
|
nethackw: $(NHWTARGETS)
|
||||||
|
|
||||||
$(GAMEDIR)/NetHackW.exe: $(NHWOBJS) $(NHWRES) $(DATEW_O) $(LUALIB) | $(GAMEDIR)
|
$(GAMEDIR)/NetHackW.exe: $(NHWOBJS) $(NHWRES) $(DATEW_O) $(LUALIB) | $(GAMEDIR)
|
||||||
$(ld) $(LDFLAGS) -mwindows $^ $(LIBS) -static -lstdc++ -o$@
|
$(ld) $(LDFLAGS) -mwindows $^ $(LIBS) -static -lstdc++ $(SOUNDLIBLIBS) -o$@
|
||||||
|
|
||||||
$(ONHW)/%.o: $(SRC)/%.c $(NHLUAH) | $(ONHW)
|
$(ONHW)/%.o: $(SRC)/%.c $(NHLUAH) | $(ONHW)
|
||||||
$(cc) $(CFLAGSW) $< -o$@
|
$(cc) $(CFLAGSW) $< -o$@
|
||||||
@@ -820,8 +934,15 @@ $(ONHW)/cppregex.o: $(SSYS)/cppregex.cpp $(NHLUAH) | $(ONHW)
|
|||||||
$(ONHW)/%.o: $(SSYS)/%.c $(NHLUAH) | $(ONHW)
|
$(ONHW)/%.o: $(SSYS)/%.c $(NHLUAH) | $(ONHW)
|
||||||
$(cc) $(CFLAGSW) $< -o$@
|
$(cc) $(CFLAGSW) $< -o$@
|
||||||
|
|
||||||
$(ONHW)/%.o: $(SNDSYS)/%.c $(NHLUAH) | $(ONHW)
|
ifeq "$(SOUND_WINDSOUND)" "Y"
|
||||||
|
$(ONHW)/%.o: ../sound/windsound/%.c $(NHLUAH) | $(ONHW)
|
||||||
$(cc) $(CFLAGSW) $< -o$@
|
$(cc) $(CFLAGSW) $< -o$@
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq "$(SOUND_FMOD)" "Y"
|
||||||
|
$(ONHW)/%.o: ../sound/fmod/%.c $(NHLUAH) | $(ONHW)
|
||||||
|
$(cc) $(CFLAGSW) $< -o$@
|
||||||
|
endif
|
||||||
|
|
||||||
$(ONHW)/%.o: $(MSWSYS)/%.c $(NHLUAH) | $(ONHW)
|
$(ONHW)/%.o: $(MSWSYS)/%.c $(NHLUAH) | $(ONHW)
|
||||||
$(cc) $(CFLAGSW) $< -o$@
|
$(cc) $(CFLAGSW) $< -o$@
|
||||||
@@ -855,7 +976,7 @@ CLEAN_FILE += $(NHWTARGETS) $(NHWOBJS) $(NHWRES) $(BMPS) $(WAVS)
|
|||||||
#==========================================
|
#==========================================
|
||||||
# nethack
|
# nethack
|
||||||
#==========================================
|
#==========================================
|
||||||
CFLAGSNH = $(CFLAGSU) $(CFLAGSXTRA) -DNO_TILE_C -DSAFEPROCS -D_LIB -DWIN32CON $(SOUNDLIBDEFS)
|
CFLAGSNH = $(CFLAGSU) $(CFLAGSXTRA) $(SOUNDLIBINCL) -DNO_TILE_C -DSAFEPROCS -D_LIB -DWIN32CON $(SOUNDLIBDEFS)
|
||||||
CPPFLAGSNH = $(CFLAGSU) $(CPPFLAGSXTRA) -DNO_TILE_C -DSAFEPROCS -D_LIB -DWIN32CON $(SOUNDLIBDEFS)
|
CPPFLAGSNH = $(CFLAGSU) $(CPPFLAGSXTRA) -DNO_TILE_C -DSAFEPROCS -D_LIB -DWIN32CON $(SOUNDLIBDEFS)
|
||||||
|
|
||||||
ONH = $(O)nethack
|
ONH = $(O)nethack
|
||||||
@@ -873,7 +994,7 @@ NHTARGET = $(GAMEDIR)/NetHack.exe
|
|||||||
|
|
||||||
nethack: $(NHTARGET)
|
nethack: $(NHTARGET)
|
||||||
|
|
||||||
$(GAMEDIR)/NetHack.exe: $(NHOBJS) $(NHRES) $(DATE_O) $(LUALIB) $(PDCLIB) | $(GAMEDIR)
|
$(GAMEDIR)/NetHack.exe: $(NHOBJS) $(NHRES) $(DATE_O) $(LUALIB) $(PDCLIB) $(SOUNDLIBLIBS) | $(GAMEDIR)
|
||||||
$(ld) $(LDFLAGS) -mconsole $^ $(LIBS) -static -lstdc++ -o$@
|
$(ld) $(LDFLAGS) -mconsole $^ $(LIBS) -static -lstdc++ -o$@
|
||||||
|
|
||||||
$(ONH)/%.o: $(SRC)/%.c $(NHLUAH) | $(ONH)
|
$(ONH)/%.o: $(SRC)/%.c $(NHLUAH) | $(ONH)
|
||||||
@@ -896,8 +1017,15 @@ $(ONH)/cppregex.o: $(SSYS)/cppregex.cpp $(NHLUAH) | $(ONH)
|
|||||||
$(ONH)/%.o: $(SSYS)/%.c $(NHLUAH) | $(ONH)
|
$(ONH)/%.o: $(SSYS)/%.c $(NHLUAH) | $(ONH)
|
||||||
$(cc) $(CFLAGSNH) $< -o$@
|
$(cc) $(CFLAGSNH) $< -o$@
|
||||||
|
|
||||||
$(ONH)/%.o: $(SNDSYS)/%.c $(NHLUAH) | $(ONH)
|
ifeq "$(SOUND_WINDSOUND)" "Y"
|
||||||
|
$(ONH)/%.o: ../sound/windsound/%.c $(NHLUAH) | $(ONH)
|
||||||
$(cc) $(CFLAGSNH) $< -o$@
|
$(cc) $(CFLAGSNH) $< -o$@
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq "$(SOUND_FMOD)" "Y"
|
||||||
|
$(ONH)/%.o: ../sound/fmod/%.c $(NHLUAH) | $(ONH)
|
||||||
|
$(cc) $(CFLAGSNH) $< -o$@
|
||||||
|
endif
|
||||||
|
|
||||||
$(ONH)/%.o: $(MSWSYS)/%.c $(NHLUAH) | $(ONH)
|
$(ONH)/%.o: $(MSWSYS)/%.c $(NHLUAH) | $(ONH)
|
||||||
$(cc) $(CFLAGSNH) $< -o$@
|
$(cc) $(CFLAGSNH) $< -o$@
|
||||||
@@ -937,7 +1065,7 @@ CLEAN_FILE += $(NHTARGET) $(NHOBJS) $(NHRES)
|
|||||||
|
|
||||||
all: install
|
all: install
|
||||||
|
|
||||||
TO_INSTALL = $(GAMEDIR)/NetHack.exe $(RTARGETS) \
|
TO_INSTALL = $(GAMEDIR)/NetHack.exe $(RTARGETS) $(GAMEDIRDLLS) \
|
||||||
$(addprefix $(GAMEDIR)/, $(addsuffix .template, sysconf .nethackrc) \
|
$(addprefix $(GAMEDIR)/, $(addsuffix .template, sysconf .nethackrc) \
|
||||||
Guidebook.txt NetHack.txt license opthelp record symbols)
|
Guidebook.txt NetHack.txt license opthelp record symbols)
|
||||||
|
|
||||||
@@ -964,6 +1092,11 @@ ifneq "$(USE_DLB)" "Y"
|
|||||||
endif
|
endif
|
||||||
@echo NetHack is up to date.
|
@echo NetHack is up to date.
|
||||||
|
|
||||||
|
ifdef SOUND_FMOD
|
||||||
|
$(GAMEDIR)/$(FMODLIBDLL): $(FMODLIBDIR)/$(FMODLIBDLL)
|
||||||
|
cp $< $@
|
||||||
|
endif
|
||||||
|
|
||||||
$(GAMEDIR)/symbols: $(DAT)/symbols
|
$(GAMEDIR)/symbols: $(DAT)/symbols
|
||||||
cp $< $@
|
cp $< $@
|
||||||
|
|
||||||
|
|||||||
@@ -41,12 +41,15 @@ GAMEDIR = ..\binary # Default game build directory
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Add any sound libraries the you wish to integrate with NetHack, with spaces
|
# Do you want to include integration with any sound libraries that work with
|
||||||
# between them.
|
# this Makefile? Add the list below. If you change the list do 'nmake clean'.
|
||||||
|
#
|
||||||
|
# There is glue in here for the following: windsound fmod
|
||||||
|
# Obtaining the 3rd party library, including its .h files, is up to you.
|
||||||
#
|
#
|
||||||
# windsound uses built-in Microsoft API's, no 3rd party download is required.
|
# windsound uses built-in Microsoft API's, no 3rd party download is required.
|
||||||
|
|
||||||
SOUND_LIBRARIES = windsound
|
SOUND_LIBRARIES = windsound fmod
|
||||||
|
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
@@ -669,16 +672,85 @@ DLBOBJ_HOST = $(OTTY)dlb$(HOST).o
|
|||||||
#
|
#
|
||||||
SNDTEMP = $(SOUND_LIBRARIES:windsound=)
|
SNDTEMP = $(SOUND_LIBRARIES:windsound=)
|
||||||
!IF "$(SOUND_LIBRARIES)" != "$(SNDTEMP)"
|
!IF "$(SOUND_LIBRARIES)" != "$(SNDTEMP)"
|
||||||
# SOUND_LIBRARIES included windsound
|
!MESSAGE Including windsound integration
|
||||||
SOUND_WINDSOUND=Y
|
SOUND_WINDSOUND=Y
|
||||||
!MESSAGE Including windsound support
|
HAVE_SOUNDLIB=Y
|
||||||
|
NEED_USERSOUNDS=Y
|
||||||
|
NEED_SEAUTOMAP=Y
|
||||||
|
NEED_WAV=Y
|
||||||
SOUNDLIBINCL = $(SOUNDLIBINCL)
|
SOUNDLIBINCL = $(SOUNDLIBINCL)
|
||||||
SOUNDLIBDEFS = $(SOUNDLIBDEFS) -DSND_LIB_WINDSOUND
|
SOUNDLIBDEFS = $(SOUNDLIBDEFS) -DSND_LIB_WINDSOUND
|
||||||
TTYSOUNDOBJS = $(TTYSOUNDOBJS) $(OTTY)windsound.o
|
TTYSOUNDOBJS = $(TTYSOUNDOBJS) $(OTTY)windsound.o
|
||||||
GUISOUNDOBJS = $(GUISOUNDOBJS) $(OGUI)windsound.o
|
GUISOUNDOBJS = $(GUISOUNDOBJS) $(OGUI)windsound.o
|
||||||
TTYSOUNDLIBS = $(TTYSOUNDLIBS)
|
#WINDSOUNDLIBDIR =
|
||||||
GUISOUNDLIBS = $(GUIDSOUNDLIBS)
|
#TTYSOUNDLIBS = $(TTYSOUNDLIBS)
|
||||||
|
#GUISOUNDLIBS = $(GUISOUNDLIBS)
|
||||||
|
#WINDSOUNDLIBDIR =
|
||||||
|
#WINDSOUNDLIBDLL =
|
||||||
WINDSOUNDDIR = ..\sound\windsound
|
WINDSOUNDDIR = ..\sound\windsound
|
||||||
|
SOUNDSRCS = $(SOUNDSRCS) $(WINDSOUNDDIR)\windsound.c
|
||||||
|
#GAMEDIRDLLS = $(GAMEDIRDLLS) $(GAMEDIR\$(WINDSOUNDLIBDLL)
|
||||||
|
!ENDIF
|
||||||
|
SNDTEMP=
|
||||||
|
|
||||||
|
# +--------------------------------+
|
||||||
|
# | fmod? (requires 3rd party lib) |
|
||||||
|
# +--------------------------------+
|
||||||
|
#
|
||||||
|
|
||||||
|
SNDTEMP = $(SOUND_LIBRARIES:fmod=)
|
||||||
|
!IF "$(SOUND_LIBRARIES)" != "$(SNDTEMP)"
|
||||||
|
!MESSAGE Including fmod integration
|
||||||
|
SOUND_FMOD=Y
|
||||||
|
HAVE_SOUNDLIB=Y
|
||||||
|
NEED_USERSOUNDS=Y
|
||||||
|
NEED_SEAUTOMAP=Y
|
||||||
|
NEED_WAV=Y
|
||||||
|
FMODROOT=..\lib\fmod\api\core
|
||||||
|
SOUNDLIBINCL = $(SOUNDLIBINCL) -I$(FMODLIBROOT)/inc
|
||||||
|
SOUNDLIBDEFS = $(SOUNDLIBDEFS) -DSND_LIB_FMOD
|
||||||
|
TTYSOUNDOBJS = $(TTYSOUNDOBJS) $(OTTY)fmod.o
|
||||||
|
GUISOUNDOBJS = $(GUISOUNDOBJS) $(OGUI)fmod.o
|
||||||
|
FMODLIBDIR = $(FMODROOT)\lib\$(TARGET_CPU)
|
||||||
|
FMODLIBDLL = fmod_vc.dll
|
||||||
|
!IF "$(TARGET_CPU)" == "x86"
|
||||||
|
TTYSOUNDLIBS = $(TTYSOUNDLIBS) $(FMODLIBDIR)\fmod_vc.lib
|
||||||
|
GUISOUNDLIBS = $(GUISOUNDLIBS) $(FMODLIBDIR)\fmod_vc.lib
|
||||||
|
#!ELSE
|
||||||
|
#TTYSOUNDLIBS = $(TTYSOUNDLIBS) $(FMODLIBDIR)\fmod_vc.lib
|
||||||
|
#GUISOUNDLIBS = $(GUISOUNDLIBS) $(FMODLIBDIR)\fmod_vc.lib
|
||||||
|
!ENDIF
|
||||||
|
GAMEDIRDLLS = $(GAMEDIRDLLS) $(GAMEDIR)\$(FMODLIBDLL)
|
||||||
|
FMODDIR = ..\sound\fmod
|
||||||
|
SOUNDSRCS = $(SOUNDSRCS) $(FMODDIR)\fmod.c
|
||||||
|
!MESSAGE ---------------------------------------------------------------------
|
||||||
|
!MESSAGE ** NOTES for fmod sound library integration **
|
||||||
|
!MESSAGE For fmod integration, this Makefile expects:
|
||||||
|
!MESSAGE fmod include directory : $(FMODROOT)\inc
|
||||||
|
!MESSAGE fmod library directory : $(FMODLIBDIR)
|
||||||
|
!MESSAGE fmod library to link with : $(FMODLIBDIR)\fmod_vc.lib
|
||||||
|
!MESSAGE fmod library dll : $(FMODLIBDIR)\$(FMODLIBDLL)
|
||||||
|
!MESSAGE ---------------------------------------------------------------------
|
||||||
|
FMOD_MISSING=
|
||||||
|
!IF !EXIST("$(FMODROOT)\inc")
|
||||||
|
FMOD_MISSING= $(FMOD_MISSING) $(FMODROOT)\inc
|
||||||
|
!MESSAGE Error: missing $(FMODROOT)\inc
|
||||||
|
!ENDIF
|
||||||
|
!IF !EXIST("$(FMODLIBDIR)")
|
||||||
|
FMOD_MISSING= $(FMOD_MISSING) $(FMODLIBDIR)
|
||||||
|
!MESSAGE Error: missing $(FMODLIBDIR)
|
||||||
|
!ENDIF
|
||||||
|
!IF !EXIST("$(FMODLIBDIR)\fmod_vc.lib")
|
||||||
|
FMOD_MISSING= $(FMOD_MISSING) $(FMODLIBDIR)\fmod_vc.lib
|
||||||
|
!MESSAGE Error: missing $(FMODLIBDIR)\fmod_vc.lib
|
||||||
|
!ENDIF
|
||||||
|
!IF !EXIST("$(FMODLIBDIR)\$(FMODLIBDLL)")
|
||||||
|
FMOD_MISSING= $(FMOD_MISSING) $(FMODLIBDIR)\$(FMODLIBDLL)
|
||||||
|
!MESSAGE Error: missing $(FMODLIBDIR)\$(FMODLIBDLL)
|
||||||
|
!ENDIF
|
||||||
|
!IF "$(FMOD_MISSING)" != ""
|
||||||
|
!ERROR Error: Cannot proceed with fmod integration included
|
||||||
|
!ENDIF
|
||||||
!ENDIF
|
!ENDIF
|
||||||
SNDTEMP=
|
SNDTEMP=
|
||||||
|
|
||||||
@@ -686,11 +758,16 @@ SNDTEMP=
|
|||||||
# SOUND Support
|
# SOUND Support
|
||||||
#=================================================================
|
#=================================================================
|
||||||
|
|
||||||
!IF "$(SOUNDLIBDEFS)" != ""
|
!IF "$(HAVE_SOUNDLIB)" == "Y"
|
||||||
|
!IF "$(NEED_USERSOUNDS)" == "Y"
|
||||||
SOUNDLIBDEFS = $(SOUNDLIBDEFS) -DUSER_SOUNDS
|
SOUNDLIBDEFS = $(SOUNDLIBDEFS) -DUSER_SOUNDS
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
!IF "$(NEED_SEAUTOMAP)" == "Y"
|
||||||
|
SOUNDLIBDEFS = $(SOUNDLIBDEFS) -DSND_SOUNDEFFECTS_AUTOMAP
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
SNDWAVFILES = $(SndWavDir)\se_squeak_A.wav $(SndWavDir)\se_squeak_B.wav \
|
!IF "$(NEED_WAV)" == "Y"
|
||||||
|
WAVS = $(SndWavDir)\se_squeak_A.wav $(SndWavDir)\se_squeak_B.wav \
|
||||||
$(SndWavDir)\se_squeak_B_flat.wav $(SndWavDir)\se_squeak_C.wav \
|
$(SndWavDir)\se_squeak_B_flat.wav $(SndWavDir)\se_squeak_C.wav \
|
||||||
$(SndWavDir)\se_squeak_D.wav $(SndWavDir)\se_squeak_D_flat.wav \
|
$(SndWavDir)\se_squeak_D.wav $(SndWavDir)\se_squeak_D_flat.wav \
|
||||||
$(SndWavDir)\se_squeak_E.wav $(SndWavDir)\se_squeak_E_flat.wav \
|
$(SndWavDir)\se_squeak_E.wav $(SndWavDir)\se_squeak_E_flat.wav \
|
||||||
@@ -721,6 +798,8 @@ SNDWAVFILES = $(SndWavDir)\se_squeak_A.wav $(SndWavDir)\se_squeak_B.wav \
|
|||||||
$(SndWavDir)\sound_Wooden_Harp_C.wav $(SndWavDir)\sound_Wooden_Harp_D.wav \
|
$(SndWavDir)\sound_Wooden_Harp_C.wav $(SndWavDir)\sound_Wooden_Harp_D.wav \
|
||||||
$(SndWavDir)\sound_Wooden_Harp_E.wav $(SndWavDir)\sound_Wooden_Harp_F.wav \
|
$(SndWavDir)\sound_Wooden_Harp_E.wav $(SndWavDir)\sound_Wooden_Harp_F.wav \
|
||||||
$(SndWavDir)\sound_Wooden_Harp_G.wav
|
$(SndWavDir)\sound_Wooden_Harp_G.wav
|
||||||
|
!ENDIF
|
||||||
|
!ENDIF #HAVE_SOUNDLIB
|
||||||
|
|
||||||
#==========================================
|
#==========================================
|
||||||
# Header file macros
|
# Header file macros
|
||||||
@@ -1148,6 +1227,15 @@ DLB =
|
|||||||
{$(WINDSOUNDDIR)}.c{$(OBJGUI)}.o:
|
{$(WINDSOUNDDIR)}.c{$(OBJGUI)}.o:
|
||||||
$(Q)$(CC) $(CFLAGS) -I$(WSHR) $(GUIDEF) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $<
|
$(Q)$(CC) $(CFLAGS) -I$(WSHR) $(GUIDEF) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $<
|
||||||
|
|
||||||
|
#==========================================
|
||||||
|
# Rules for files in sound\fmod
|
||||||
|
#==========================================
|
||||||
|
|
||||||
|
{$(FMODDIR)}.c{$(OBJTTY)}.o:
|
||||||
|
$(Q)$(CC) $(CFLAGS) -I$(WSHR) $(TTYDEF) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $<
|
||||||
|
|
||||||
|
{$(FMODDIR)}.c{$(OBJGUI)}.o:
|
||||||
|
$(Q)$(CC) $(CFLAGS) -I$(WSHR) $(GUIDEF) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $<
|
||||||
|
|
||||||
#==========================================
|
#==========================================
|
||||||
#=============== TARGETS ==================
|
#=============== TARGETS ==================
|
||||||
@@ -1168,7 +1256,7 @@ install: envchk.tag libdir.tag ottydir.tag outldir.tag \
|
|||||||
$(INCL)\nhlua.h $(OUTL)utility.tag \
|
$(INCL)\nhlua.h $(OUTL)utility.tag \
|
||||||
$(DAT)\data $(DAT)\rumors $(DAT)\oracles $(DAT)\engrave \
|
$(DAT)\data $(DAT)\rumors $(DAT)\oracles $(DAT)\engrave \
|
||||||
$(DAT)\epitaph $(DAT)\bogusmon $(GAMEDIR)\NetHack.exe \
|
$(DAT)\epitaph $(DAT)\bogusmon $(GAMEDIR)\NetHack.exe \
|
||||||
$(GAMEDIR)\NetHackW.exe install.tag
|
$(GAMEDIR)\NetHackW.exe $(GAMEDIRDLLS) install.tag
|
||||||
@echo Done.
|
@echo Done.
|
||||||
|
|
||||||
!IF "$(INTERNET_AVAILABLE)" == "Y"
|
!IF "$(INTERNET_AVAILABLE)" == "Y"
|
||||||
@@ -1257,7 +1345,8 @@ $(GAMEDIR)\NetHack.exe : gamedir.tag $(OTTY)consoletty.o \
|
|||||||
$(conlibs) $(BCRYPT) -out:$@ @<<$(@B).lnk
|
$(conlibs) $(BCRYPT) -out:$@ @<<$(@B).lnk
|
||||||
$(GAMEOBJTTY)
|
$(GAMEOBJTTY)
|
||||||
$(ALLOBJTTY)
|
$(ALLOBJTTY)
|
||||||
$(TTYOBJ) $(TTYSOUNDOBJS)
|
$(TTYOBJ)
|
||||||
|
$(TTYSOUNDOBJS)
|
||||||
$(CURSESOBJ)
|
$(CURSESOBJ)
|
||||||
$(OTTY)consoletty.o
|
$(OTTY)consoletty.o
|
||||||
$(OTTY)date.o
|
$(OTTY)date.o
|
||||||
@@ -1281,7 +1370,8 @@ $(GAMEDIR)\NetHackW.exe : gamedir.tag $(OGUI)tile.o \
|
|||||||
$(guilibs) $(COMCTRL) $(BCRYPT) -out:$@ @<<$(@B).lnk
|
$(guilibs) $(COMCTRL) $(BCRYPT) -out:$@ @<<$(@B).lnk
|
||||||
$(GAMEOBJGUI)
|
$(GAMEOBJGUI)
|
||||||
$(ALLOBJGUI)
|
$(ALLOBJGUI)
|
||||||
$(GUIOBJ) $(GUISOUNDOBJS)
|
$(GUIOBJ)
|
||||||
|
$(GUISOUNDOBJS)
|
||||||
$(OGUI)tile.o
|
$(OGUI)tile.o
|
||||||
$(OGUI)date.o
|
$(OGUI)date.o
|
||||||
$(OGUI)NetHackW.res
|
$(OGUI)NetHackW.res
|
||||||
@@ -1291,7 +1381,8 @@ $(GAMEDIR)\NetHackW.exe : gamedir.tag $(OGUI)tile.o \
|
|||||||
# install
|
# install
|
||||||
#--------
|
#--------
|
||||||
#
|
#
|
||||||
install.tag: $(DAT)\data $(DAT)\rumors $(DAT)\oracles $(DLB)
|
install.tag: $(DAT)\data $(DAT)\rumors $(DAT)\oracles $(DLB) \
|
||||||
|
$(HACKCSRC) $(SOUNDSRCS)
|
||||||
! IF ("$(USE_DLB)"=="Y")
|
! IF ("$(USE_DLB)"=="Y")
|
||||||
copy nhdat$(NHV) $(GAMEDIR)
|
copy nhdat$(NHV) $(GAMEDIR)
|
||||||
copy $(DAT)\license $(GAMEDIR)
|
copy $(DAT)\license $(GAMEDIR)
|
||||||
@@ -1356,11 +1447,11 @@ $(OGUI)NetHackW.res: $(SRC)\tiles.bmp $(MSWIN)\NetHackW.rc \
|
|||||||
$(MSWIN)\mnsel.bmp \
|
$(MSWIN)\mnsel.bmp \
|
||||||
$(MSWIN)\mnselcnt.bmp $(MSWIN)\mnunsel.bmp \
|
$(MSWIN)\mnselcnt.bmp $(MSWIN)\mnunsel.bmp \
|
||||||
$(MSWIN)\petmark.bmp $(MSWIN)\pilemark.bmp $(MSWIN)\NetHack.ico \
|
$(MSWIN)\petmark.bmp $(MSWIN)\pilemark.bmp $(MSWIN)\NetHack.ico \
|
||||||
$(MSWIN)\rip.bmp $(MSWIN)\splash.bmp $(SNDWAVFILES)
|
$(MSWIN)\rip.bmp $(MSWIN)\splash.bmp $(WAVS)
|
||||||
@echo Building resource file $@ from $**
|
@echo Building resource file $@ from $**
|
||||||
@$(rc) -nologo -r -fo$@ -i$(MSWIN) -dNDEBUG -I..\sound\wav $(MSWIN)\NetHackW.rc
|
@$(rc) -nologo -r -fo$@ -i$(MSWIN) -dNDEBUG -I..\sound\wav $(MSWIN)\NetHackW.rc
|
||||||
|
|
||||||
$(OTTY)console.res: $(MSWSYS)\console.rc $(MSWSYS)\NetHack.ico $(SNDWAVFILES)
|
$(OTTY)console.res: $(MSWSYS)\console.rc $(MSWSYS)\NetHack.ico $(WAVS)
|
||||||
@echo Building resource file $@ from $**
|
@echo Building resource file $@ from $**
|
||||||
@$(rc) -nologo -r -fo$@ -i$(MSWSYS) -dNDEBUG -I..\sound\wav $(MSWSYS)\console.rc
|
@$(rc) -nologo -r -fo$@ -i$(MSWSYS) -dNDEBUG -I..\sound\wav $(MSWSYS)\console.rc
|
||||||
|
|
||||||
@@ -1846,9 +1937,21 @@ $(OLUA)lapi.o: $(LUASRC)\lapi.c
|
|||||||
#===================================================================
|
#===================================================================
|
||||||
# windsound dependencies
|
# windsound dependencies
|
||||||
#===================================================================
|
#===================================================================
|
||||||
|
!IF "$(SOUND_WINDSOUND)" == "Y"
|
||||||
$(OTTY)windsound.o: ..\sound\windsound\windsound.c $(HACK_H)
|
$(OTTY)windsound.o: ..\sound\windsound\windsound.c $(HACK_H)
|
||||||
|
$(OGUI)windsound.o: ..\sound\windsound\windsound.c $(HACK_H)
|
||||||
|
!ENDIF
|
||||||
|
#===================================================================
|
||||||
|
# fmod dependencies
|
||||||
|
#===================================================================
|
||||||
|
!IF "$(SOUND_FMOD)" == "Y"
|
||||||
|
$(OTTY)fmod.o: $(FMODDIR)\fmod.c $(HACK_H)
|
||||||
|
$(OGUI)fmod.o: $(FMODDIR)\fmod.c $(HACK_H)
|
||||||
|
|
||||||
|
# Copy the DLL to GAMEDIR
|
||||||
|
$(GAMEDIR)\FMODLIBDLL: $(FMODLIBDIR)\$(FMODLIBDLL)
|
||||||
|
copy $(FMODLIBDIR)\$(FMODLIBDLL) $@
|
||||||
|
!ENDIF
|
||||||
#===================================================================
|
#===================================================================
|
||||||
# sys/windows dependencies
|
# sys/windows dependencies
|
||||||
#===================================================================
|
#===================================================================
|
||||||
@@ -2118,6 +2221,7 @@ spotless: clean
|
|||||||
if exist $(DAT)\guioptions del $(DAT)\guioptions
|
if exist $(DAT)\guioptions del $(DAT)\guioptions
|
||||||
if exist $(DAT)\data del $(DAT)\data
|
if exist $(DAT)\data del $(DAT)\data
|
||||||
if exist tilemappings.lst del tilemappings.lst
|
if exist tilemappings.lst del tilemappings.lst
|
||||||
|
if exist $(SndWavDir)\*.wav del $(SndWavDir)\*.wav
|
||||||
if exist $(OBJTTY)\* rmdir $(OBJTTY) /s /Q
|
if exist $(OBJTTY)\* rmdir $(OBJTTY) /s /Q
|
||||||
if exist $(OBJGUI)\* rmdir $(OBJGUI) /s /Q
|
if exist $(OBJGUI)\* rmdir $(OBJGUI) /s /Q
|
||||||
if exist $(OBJUTIL)\* rmdir $(OBJUTIL) /s /Q
|
if exist $(OBJUTIL)\* rmdir $(OBJUTIL) /s /Q
|
||||||
|
|||||||
Reference in New Issue
Block a user