From: nhmall Date: Mon, 30 Jan 2023 03:07:31 +0000 (-0500) Subject: Windows Makefiles easier soundlib opt-in or opt-out X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6ce2994646a6d666e0d2dfcffaaa9c82140ba2a8;p=nethack Windows Makefiles easier soundlib opt-in or opt-out --- diff --git a/include/windconf.h b/include/windconf.h index 5addbfe71..6eb5b2687 100644 --- a/include/windconf.h +++ b/include/windconf.h @@ -93,10 +93,6 @@ extern void interject_assistance(int, int, genericptr_t, genericptr_t); extern void interject(int); -#if defined(SND_LIB_WINDSOUND) -#define SND_SOUNDEFFECTS_AUTOMAP -#endif - /* *=============================================== * Compiler-specific adjustments diff --git a/sys/windows/Makefile.mingw32 b/sys/windows/Makefile.mingw32 index db5321ee7..352072f2c 100644 --- a/sys/windows/Makefile.mingw32 +++ b/sys/windows/Makefile.mingw32 @@ -39,12 +39,15 @@ GAMEDIR = ../binary # #--------------------------------------------------------------- -# Do you want to include any sound libraries? If so leave the -# appropriate compile macro below uncommented, or add others -# that are available. +# Do you want to include integration with any sound libraries that work with +# 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. -SOUNDLIBDEFS = -DSND_LIB_WINDSOUND -DUSER_SOUNDS +SOUND_LIBRARIES = windsound # #--------------------------------------------------------------- @@ -290,6 +293,12 @@ else # MINGW64 rc = windres --target=pe-x86-64 endif +ifeq "$(MSYSTEM)" "MINGW32" +arch = x86 +else # MINGW64 +arch = x64 +endif + # # Handle user settings # @@ -744,32 +753,106 @@ endif # GIT_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) -CPPFLAGSW = $(CFLAGS) $(CPPFLAGSXTRA) $(COMMONDEF) $(DLBFLG) -DTILES -D_WINDOWS -DMSWIN_GRAPHICS -DSAFEPROCS -DNOTTYGRAPHICS $(SOUNDLIBDEFS) +SNDLIBCHOICES = $(strip $(SOUND_LIBRARIES)) -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)) +# +# windsound +# +WINDSOUND = $(findstring windsound, $(SNDLIBCHOICES)) +ifeq "$(WINDSOUND)" "windsound" +$(info Including windsound integration) +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 \ se_squeak_D se_squeak_D_flat se_squeak_E \ 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_G 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 NHWTARGETS = $(GAMEDIR)/NetHackW.exe nethackw: $(NHWTARGETS) $(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) $(cc) $(CFLAGSW) $< -o$@ @@ -820,8 +934,15 @@ $(ONHW)/cppregex.o: $(SSYS)/cppregex.cpp $(NHLUAH) | $(ONHW) $(ONHW)/%.o: $(SSYS)/%.c $(NHLUAH) | $(ONHW) $(cc) $(CFLAGSW) $< -o$@ -$(ONHW)/%.o: $(SNDSYS)/%.c $(NHLUAH) | $(ONHW) +ifeq "$(SOUND_WINDSOUND)" "Y" +$(ONHW)/%.o: ../sound/windsound/%.c $(NHLUAH) | $(ONHW) $(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) $(cc) $(CFLAGSW) $< -o$@ @@ -855,7 +976,7 @@ CLEAN_FILE += $(NHWTARGETS) $(NHWOBJS) $(NHWRES) $(BMPS) $(WAVS) #========================================== # 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) ONH = $(O)nethack @@ -873,7 +994,7 @@ NHTARGET = $(GAMEDIR)/NetHack.exe 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$@ $(ONH)/%.o: $(SRC)/%.c $(NHLUAH) | $(ONH) @@ -896,8 +1017,15 @@ $(ONH)/cppregex.o: $(SSYS)/cppregex.cpp $(NHLUAH) | $(ONH) $(ONH)/%.o: $(SSYS)/%.c $(NHLUAH) | $(ONH) $(cc) $(CFLAGSNH) $< -o$@ -$(ONH)/%.o: $(SNDSYS)/%.c $(NHLUAH) | $(ONH) +ifeq "$(SOUND_WINDSOUND)" "Y" +$(ONH)/%.o: ../sound/windsound/%.c $(NHLUAH) | $(ONH) + $(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) $(cc) $(CFLAGSNH) $< -o$@ @@ -937,7 +1065,7 @@ CLEAN_FILE += $(NHTARGET) $(NHOBJS) $(NHRES) all: install -TO_INSTALL = $(GAMEDIR)/NetHack.exe $(RTARGETS) \ +TO_INSTALL = $(GAMEDIR)/NetHack.exe $(RTARGETS) $(GAMEDIRDLLS) \ $(addprefix $(GAMEDIR)/, $(addsuffix .template, sysconf .nethackrc) \ Guidebook.txt NetHack.txt license opthelp record symbols) @@ -964,6 +1092,11 @@ ifneq "$(USE_DLB)" "Y" endif @echo NetHack is up to date. +ifdef SOUND_FMOD +$(GAMEDIR)/$(FMODLIBDLL): $(FMODLIBDIR)/$(FMODLIBDLL) + cp $< $@ +endif + $(GAMEDIR)/symbols: $(DAT)/symbols cp $< $@ diff --git a/sys/windows/Makefile.nmake b/sys/windows/Makefile.nmake index 91bfe0647..c10632912 100644 --- a/sys/windows/Makefile.nmake +++ b/sys/windows/Makefile.nmake @@ -41,12 +41,15 @@ GAMEDIR = ..\binary # Default game build directory # # #------------------------------------------------------------------------------ -# Add any sound libraries the you wish to integrate with NetHack, with spaces -# between them. +# Do you want to include integration with any sound libraries that work with +# 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. -SOUND_LIBRARIES = windsound +SOUND_LIBRARIES = windsound fmod # #------------------------------------------------------------------------------ @@ -669,16 +672,85 @@ DLBOBJ_HOST = $(OTTY)dlb$(HOST).o # SNDTEMP = $(SOUND_LIBRARIES:windsound=) !IF "$(SOUND_LIBRARIES)" != "$(SNDTEMP)" -# SOUND_LIBRARIES included windsound +!MESSAGE Including windsound integration SOUND_WINDSOUND=Y -!MESSAGE Including windsound support +HAVE_SOUNDLIB=Y +NEED_USERSOUNDS=Y +NEED_SEAUTOMAP=Y +NEED_WAV=Y SOUNDLIBINCL = $(SOUNDLIBINCL) SOUNDLIBDEFS = $(SOUNDLIBDEFS) -DSND_LIB_WINDSOUND TTYSOUNDOBJS = $(TTYSOUNDOBJS) $(OTTY)windsound.o GUISOUNDOBJS = $(GUISOUNDOBJS) $(OGUI)windsound.o -TTYSOUNDLIBS = $(TTYSOUNDLIBS) -GUISOUNDLIBS = $(GUIDSOUNDLIBS) +#WINDSOUNDLIBDIR = +#TTYSOUNDLIBS = $(TTYSOUNDLIBS) +#GUISOUNDLIBS = $(GUISOUNDLIBS) +#WINDSOUNDLIBDIR = +#WINDSOUNDLIBDLL = 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 SNDTEMP= @@ -686,11 +758,16 @@ SNDTEMP= # SOUND Support #================================================================= -!IF "$(SOUNDLIBDEFS)" != "" +!IF "$(HAVE_SOUNDLIB)" == "Y" +!IF "$(NEED_USERSOUNDS)" == "Y" SOUNDLIBDEFS = $(SOUNDLIBDEFS) -DUSER_SOUNDS !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_D.wav $(SndWavDir)\se_squeak_D_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_E.wav $(SndWavDir)\sound_Wooden_Harp_F.wav \ $(SndWavDir)\sound_Wooden_Harp_G.wav +!ENDIF +!ENDIF #HAVE_SOUNDLIB #========================================== # Header file macros @@ -1148,6 +1227,15 @@ DLB = {$(WINDSOUNDDIR)}.c{$(OBJGUI)}.o: $(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 ================== @@ -1168,7 +1256,7 @@ install: envchk.tag libdir.tag ottydir.tag outldir.tag \ $(INCL)\nhlua.h $(OUTL)utility.tag \ $(DAT)\data $(DAT)\rumors $(DAT)\oracles $(DAT)\engrave \ $(DAT)\epitaph $(DAT)\bogusmon $(GAMEDIR)\NetHack.exe \ - $(GAMEDIR)\NetHackW.exe install.tag + $(GAMEDIR)\NetHackW.exe $(GAMEDIRDLLS) install.tag @echo Done. !IF "$(INTERNET_AVAILABLE)" == "Y" @@ -1257,7 +1345,8 @@ $(GAMEDIR)\NetHack.exe : gamedir.tag $(OTTY)consoletty.o \ $(conlibs) $(BCRYPT) -out:$@ @<<$(@B).lnk $(GAMEOBJTTY) $(ALLOBJTTY) - $(TTYOBJ) $(TTYSOUNDOBJS) + $(TTYOBJ) + $(TTYSOUNDOBJS) $(CURSESOBJ) $(OTTY)consoletty.o $(OTTY)date.o @@ -1281,7 +1370,8 @@ $(GAMEDIR)\NetHackW.exe : gamedir.tag $(OGUI)tile.o \ $(guilibs) $(COMCTRL) $(BCRYPT) -out:$@ @<<$(@B).lnk $(GAMEOBJGUI) $(ALLOBJGUI) - $(GUIOBJ) $(GUISOUNDOBJS) + $(GUIOBJ) + $(GUISOUNDOBJS) $(OGUI)tile.o $(OGUI)date.o $(OGUI)NetHackW.res @@ -1291,7 +1381,8 @@ $(GAMEDIR)\NetHackW.exe : gamedir.tag $(OGUI)tile.o \ # 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") copy nhdat$(NHV) $(GAMEDIR) copy $(DAT)\license $(GAMEDIR) @@ -1356,11 +1447,11 @@ $(OGUI)NetHackW.res: $(SRC)\tiles.bmp $(MSWIN)\NetHackW.rc \ $(MSWIN)\mnsel.bmp \ $(MSWIN)\mnselcnt.bmp $(MSWIN)\mnunsel.bmp \ $(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 $** @$(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 $** @$(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 #=================================================================== - +!IF "$(SOUND_WINDSOUND)" == "Y" $(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 #=================================================================== @@ -2118,6 +2221,7 @@ spotless: clean if exist $(DAT)\guioptions del $(DAT)\guioptions if exist $(DAT)\data del $(DAT)\data if exist tilemappings.lst del tilemappings.lst + if exist $(SndWavDir)\*.wav del $(SndWavDir)\*.wav if exist $(OBJTTY)\* rmdir $(OBJTTY) /s /Q if exist $(OBJGUI)\* rmdir $(OBJGUI) /s /Q if exist $(OBJUTIL)\* rmdir $(OBJUTIL) /s /Q