From: nhmall Date: Thu, 26 Jan 2023 04:05:36 +0000 (-0500) Subject: smooth use of soundlib(s) in Makefile.nmake X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8e0ed1e69db1228ba01c037e0f09d7efc99bc6bf;p=nethack smooth use of soundlib(s) in Makefile.nmake Related: also add a preprocesor #if defined(SND_LIB_WINDSOUND) around the assign_soundlib() call in sys/windows/windmain.c --- diff --git a/sys/windows/Makefile.nmake b/sys/windows/Makefile.nmake index f27515544..e95a0a3ac 100644 --- a/sys/windows/Makefile.nmake +++ b/sys/windows/Makefile.nmake @@ -1,5 +1,5 @@ # NetHack 3.7 Makefile.nmake -# Copyright (c) NetHack Development Team 1993-2022 +# Copyright (c) NetHack Development Team 1993-2023 # #============================================================================== # Build Tools Environment @@ -38,6 +38,16 @@ default : install GAMEDIR = ..\binary # Default game build directory +# +# +#------------------------------------------------------------------------------ +# Add any sound libraries the you wish to integrate with NetHack, with spaces +# between them. +# +# soundwind uses built-in Microsoft API's, no 3rd party download is required. + +SOUND_LIBRARIES = windsound + # #------------------------------------------------------------------------------ # Do you want debug information available to the executable? @@ -524,11 +534,10 @@ MDLIBTTY = $(OTTY)mdlib.o DLBOBJTTY = $(OTTY)dlb.o REGEXTTY = $(OTTY)cppregex.o LUAOBJTTY = $(OTTY)nhlua.o $(OTTY)nhlsel.o $(OTTY)nhlobj.o -SOUNDTTY = $(OTTY)windsound.o #$(OTTY)sample.o VVOBJTTY = $(OTTY)version.o SOBJTTY = $(OTTY)windmain.o $(OTTY)windsys.o $(OTTY)win10.o \ - $(OTTY)safeproc.o $(SOUNDTTY) + $(OTTY)safeproc.o TTYOBJ = $(OTTY)topl.o $(OTTY)getline.o $(OTTY)wintty.o @@ -589,11 +598,10 @@ MDLIBGUI = $(OGUI)mdlib.o DLBOBJGUI = $(OGUI)dlb.o REGEXGUI = $(OGUI)cppregex.o LUAOBJGUI = $(OGUI)nhlua.o $(OGUI)nhlsel.o $(OGUI)nhlobj.o -SOUNDGUI = $(OGUI)windsound.o VVOBJGUI = $(OGUI)version.o SOBJGUI = $(OGUI)windmain.o $(OGUI)windsys.o $(OGUI)win10.o \ - $(OGUI)safeproc.o $(SOUNDGUI) + $(OGUI)safeproc.o GUIOBJ = $(OGUI)mhaskyn.o $(OGUI)mhdlg.o \ $(OGUI)mhfont.o $(OGUI)mhinput.o $(OGUI)mhmain.o $(OGUI)mhmap.o \ @@ -651,7 +659,36 @@ OPTIONS_FILE = $(DAT)\options DLBOBJ_HOST = $(OTTY)dlb$(HOST).o !ENDIF -SOUNDLIBDEFS = -DSND_LIB_WINDSOUND -DUSER_SOUNDS +#===============-================================================= +# SOUND_LIBRARIES +#================================================================= + +# +-------------------------------+ +# | windsound (uses built-in api) | +# +-------------------------------+ +# +SNDTEMP = $(SOUND_LIBRARIES:windsound=) +!IF "$(SOUND_LIBRARIES)" != "$(SNDTEMP)" +# SOUND_LIBRARIES included windsound +SOUND_WINDSOUND=Y +!MESSAGE Including windsound support +SOUNDLIBINCL = $(SOUNDLIBINCL) +SOUNDLIBDEFS = $(SOUNDLIBDEFS) -DSND_LIB_WINDSOUND +TTYSOUNDOBJS = $(TTYSOUNDOBJS) $(OTTY)windsound.o +GUISOUNDOBJS = $(GUISOUNDOBJS) $(OGUI)windsound.o +TTYSOUNDLIBS = $(TTYSOUNDLIBS) +GUISOUNDLIBS = $(GUIDSOUNDLIBS) +WINDSOUNDDIR = ..\sound\windsound +!ENDIF +SNDTEMP= + +#===============-================================================= +# SOUND Support +#================================================================= + +!IF "$(SOUNDLIBDEFS)" != "" +SOUNDLIBDEFS = $(SOUNDLIBDEFS) -DUSER_SOUNDS +!ENDIF SNDWAVFILES = $(SndWavDir)\se_squeak_A.wav $(SndWavDir)\se_squeak_B.wav \ $(SndWavDir)\se_squeak_B_flat.wav $(SndWavDir)\se_squeak_C.wav \ @@ -928,7 +965,7 @@ conlibs = $(baselibs) guilibs = $(winlibs) # -INCLDIR= /I..\include /I..\sys\windows $(LUAINCL) +INCLDIR= /I..\include /I..\sys\windows $(LUAINCL) $(SOUNDLIBINCL) #========================================== # Util and console builds @@ -1101,6 +1138,17 @@ DLB = ..\..\util\uudecode.exe $(@B).uu cd ..\..\src +#========================================== +# Rules for files in sound\windsound +#========================================== + +{$(WINDSOUNDDIR)}.c{$(OBJTTY)}.o: + $(Q)$(CC) $(CFLAGS) -I$(WSHR) $(TTYDEF) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $< + +{$(WINDSOUNDDIR)}.c{$(OBJGUI)}.o: + $(Q)$(CC) $(CFLAGS) -I$(WSHR) $(GUIDEF) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $< + + #========================================== #=============== TARGETS ================== #========================================== @@ -1198,17 +1246,18 @@ GAMEOBJ=$(GAMEOBJ:^ =^ # NetHack #-------- # + $(GAMEDIR)\NetHack.exe : gamedir.tag $(OTTY)consoletty.o \ - $(ALLOBJTTY) $(CURSESOBJ) $(OTTY)date.o $(OTTY)console.res \ + $(ALLOBJTTY) $(CURSESOBJ) $(TTYSOUNDOBJS) $(OTTY)date.o $(OTTY)console.res \ $(LUALIB) $(PDCLIB) $(TTYOBJ) @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR) @echo Linking $(@:\=/) $(link) $(LFLAGS) $(conlflags) /STACK:2048 /PDB:$(GAMEDIR)\$(@B).PDB /MAP:$(OTTY)$(@B).MAP \ - $(LIBS) $(PDCLIB) $(LUALIB) \ + $(LIBS) $(PDCLIB) $(LUALIB) $(TTYSOUNDLIBS) \ $(conlibs) $(BCRYPT) -out:$@ @<<$(@B).lnk $(GAMEOBJTTY) $(ALLOBJTTY) - $(TTYOBJ) + $(TTYOBJ) $(TTYSOUNDOBJS) $(CURSESOBJ) $(OTTY)consoletty.o $(OTTY)date.o @@ -1221,17 +1270,18 @@ $(GAMEDIR)\NetHack.exe : gamedir.tag $(OTTY)consoletty.o \ #--------- # $(GAMEDIR)\NetHackW.exe : gamedir.tag $(OGUI)tile.o \ - $(ALLOBJGUI) $(GAMEOBJGUI) $(GUIOBJ) $(OGUI)date.o \ + $(ALLOBJGUI) $(GAMEOBJGUI) $(GUIOBJ) $(GUISOUNDOBJS) \ + $(OGUI)date.o \ $(OGUI)NetHackW.res \ $(LUALIB) @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR) @echo Linking $(@:\=/) $(link) $(LFLAGS) $(guilflags) /STACK:2048 /PDB:$(GAMEDIR)\$(@B).PDB \ - /MAP:$(OGUI)$(@B).MAP $(LIBS) $(LUALIB) \ + /MAP:$(OGUI)$(@B).MAP $(LIBS) $(LUALIB) $(GUISOUNDLIBS) \ $(guilibs) $(COMCTRL) $(BCRYPT) -out:$@ @<<$(@B).lnk $(GAMEOBJGUI) $(ALLOBJGUI) - $(GUIOBJ) + $(GUIOBJ) $(GUISOUNDOBJS) $(OGUI)tile.o $(OGUI)date.o $(OGUI)NetHackW.res @@ -1793,6 +1843,12 @@ $(OLUA)lua.o: $(LUASRC)\lua.c $(OLUA)lapi.o: $(LUASRC)\lapi.c $(Q)$(CC) $(CFLAGS) $(TTYDEF) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -wd4244 -wd4701 -wd4702 -Fo$@ $(LUASRC)\lapi.c +#=================================================================== +# windsound dependencies +#=================================================================== + +$(OTTY)windsound.o: ..\sound\windsound\windsound.c $(HACK_H) + #=================================================================== # sys/windows dependencies #=================================================================== diff --git a/sys/windows/windmain.c b/sys/windows/windmain.c index b1e689d8d..6361ca11d 100644 --- a/sys/windows/windmain.c +++ b/sys/windows/windmain.c @@ -590,7 +590,10 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/ windowtype = gc.chosen_windowtype; } choose_windows(windowtype); + +#if defined(SND_LIB_WINDSOUND) assign_soundlib(soundlib_windsound); +#endif u.uhp = 1; /* prevent RIP on early quits */ u.ux = 0; /* prevent flush_screen() */