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
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
# NetHack 3.7 Makefile.nmake
|
# NetHack 3.7 Makefile.nmake
|
||||||
# Copyright (c) NetHack Development Team 1993-2022
|
# Copyright (c) NetHack Development Team 1993-2023
|
||||||
#
|
#
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
# Build Tools Environment
|
# Build Tools Environment
|
||||||
@@ -38,6 +38,16 @@ default : install
|
|||||||
|
|
||||||
GAMEDIR = ..\binary # Default game build directory
|
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?
|
# Do you want debug information available to the executable?
|
||||||
@@ -524,11 +534,10 @@ MDLIBTTY = $(OTTY)mdlib.o
|
|||||||
DLBOBJTTY = $(OTTY)dlb.o
|
DLBOBJTTY = $(OTTY)dlb.o
|
||||||
REGEXTTY = $(OTTY)cppregex.o
|
REGEXTTY = $(OTTY)cppregex.o
|
||||||
LUAOBJTTY = $(OTTY)nhlua.o $(OTTY)nhlsel.o $(OTTY)nhlobj.o
|
LUAOBJTTY = $(OTTY)nhlua.o $(OTTY)nhlsel.o $(OTTY)nhlobj.o
|
||||||
SOUNDTTY = $(OTTY)windsound.o #$(OTTY)sample.o
|
|
||||||
VVOBJTTY = $(OTTY)version.o
|
VVOBJTTY = $(OTTY)version.o
|
||||||
|
|
||||||
SOBJTTY = $(OTTY)windmain.o $(OTTY)windsys.o $(OTTY)win10.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
|
TTYOBJ = $(OTTY)topl.o $(OTTY)getline.o $(OTTY)wintty.o
|
||||||
|
|
||||||
@@ -589,11 +598,10 @@ MDLIBGUI = $(OGUI)mdlib.o
|
|||||||
DLBOBJGUI = $(OGUI)dlb.o
|
DLBOBJGUI = $(OGUI)dlb.o
|
||||||
REGEXGUI = $(OGUI)cppregex.o
|
REGEXGUI = $(OGUI)cppregex.o
|
||||||
LUAOBJGUI = $(OGUI)nhlua.o $(OGUI)nhlsel.o $(OGUI)nhlobj.o
|
LUAOBJGUI = $(OGUI)nhlua.o $(OGUI)nhlsel.o $(OGUI)nhlobj.o
|
||||||
SOUNDGUI = $(OGUI)windsound.o
|
|
||||||
VVOBJGUI = $(OGUI)version.o
|
VVOBJGUI = $(OGUI)version.o
|
||||||
|
|
||||||
SOBJGUI = $(OGUI)windmain.o $(OGUI)windsys.o $(OGUI)win10.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 \
|
GUIOBJ = $(OGUI)mhaskyn.o $(OGUI)mhdlg.o \
|
||||||
$(OGUI)mhfont.o $(OGUI)mhinput.o $(OGUI)mhmain.o $(OGUI)mhmap.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
|
DLBOBJ_HOST = $(OTTY)dlb$(HOST).o
|
||||||
!ENDIF
|
!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 \
|
SNDWAVFILES = $(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 \
|
||||||
@@ -928,7 +965,7 @@ conlibs = $(baselibs)
|
|||||||
guilibs = $(winlibs)
|
guilibs = $(winlibs)
|
||||||
#
|
#
|
||||||
|
|
||||||
INCLDIR= /I..\include /I..\sys\windows $(LUAINCL)
|
INCLDIR= /I..\include /I..\sys\windows $(LUAINCL) $(SOUNDLIBINCL)
|
||||||
|
|
||||||
#==========================================
|
#==========================================
|
||||||
# Util and console builds
|
# Util and console builds
|
||||||
@@ -1101,6 +1138,17 @@ DLB =
|
|||||||
..\..\util\uudecode.exe $(@B).uu
|
..\..\util\uudecode.exe $(@B).uu
|
||||||
cd ..\..\src
|
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 ==================
|
#=============== TARGETS ==================
|
||||||
#==========================================
|
#==========================================
|
||||||
@@ -1198,17 +1246,18 @@ GAMEOBJ=$(GAMEOBJ:^ =^
|
|||||||
# NetHack
|
# NetHack
|
||||||
#--------
|
#--------
|
||||||
#
|
#
|
||||||
|
|
||||||
$(GAMEDIR)\NetHack.exe : gamedir.tag $(OTTY)consoletty.o \
|
$(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)
|
$(LUALIB) $(PDCLIB) $(TTYOBJ)
|
||||||
@if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
|
@if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
|
||||||
@echo Linking $(@:\=/)
|
@echo Linking $(@:\=/)
|
||||||
$(link) $(LFLAGS) $(conlflags) /STACK:2048 /PDB:$(GAMEDIR)\$(@B).PDB /MAP:$(OTTY)$(@B).MAP \
|
$(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
|
$(conlibs) $(BCRYPT) -out:$@ @<<$(@B).lnk
|
||||||
$(GAMEOBJTTY)
|
$(GAMEOBJTTY)
|
||||||
$(ALLOBJTTY)
|
$(ALLOBJTTY)
|
||||||
$(TTYOBJ)
|
$(TTYOBJ) $(TTYSOUNDOBJS)
|
||||||
$(CURSESOBJ)
|
$(CURSESOBJ)
|
||||||
$(OTTY)consoletty.o
|
$(OTTY)consoletty.o
|
||||||
$(OTTY)date.o
|
$(OTTY)date.o
|
||||||
@@ -1221,17 +1270,18 @@ $(GAMEDIR)\NetHack.exe : gamedir.tag $(OTTY)consoletty.o \
|
|||||||
#---------
|
#---------
|
||||||
#
|
#
|
||||||
$(GAMEDIR)\NetHackW.exe : gamedir.tag $(OGUI)tile.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 \
|
$(OGUI)NetHackW.res \
|
||||||
$(LUALIB)
|
$(LUALIB)
|
||||||
@if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
|
@if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
|
||||||
@echo Linking $(@:\=/)
|
@echo Linking $(@:\=/)
|
||||||
$(link) $(LFLAGS) $(guilflags) /STACK:2048 /PDB:$(GAMEDIR)\$(@B).PDB \
|
$(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
|
$(guilibs) $(COMCTRL) $(BCRYPT) -out:$@ @<<$(@B).lnk
|
||||||
$(GAMEOBJGUI)
|
$(GAMEOBJGUI)
|
||||||
$(ALLOBJGUI)
|
$(ALLOBJGUI)
|
||||||
$(GUIOBJ)
|
$(GUIOBJ) $(GUISOUNDOBJS)
|
||||||
$(OGUI)tile.o
|
$(OGUI)tile.o
|
||||||
$(OGUI)date.o
|
$(OGUI)date.o
|
||||||
$(OGUI)NetHackW.res
|
$(OGUI)NetHackW.res
|
||||||
@@ -1793,6 +1843,12 @@ $(OLUA)lua.o: $(LUASRC)\lua.c
|
|||||||
$(OLUA)lapi.o: $(LUASRC)\lapi.c
|
$(OLUA)lapi.o: $(LUASRC)\lapi.c
|
||||||
$(Q)$(CC) $(CFLAGS) $(TTYDEF) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -wd4244 -wd4701 -wd4702 -Fo$@ $(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
|
# sys/windows dependencies
|
||||||
#===================================================================
|
#===================================================================
|
||||||
|
|||||||
@@ -590,7 +590,10 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
|
|||||||
windowtype = gc.chosen_windowtype;
|
windowtype = gc.chosen_windowtype;
|
||||||
}
|
}
|
||||||
choose_windows(windowtype);
|
choose_windows(windowtype);
|
||||||
|
|
||||||
|
#if defined(SND_LIB_WINDSOUND)
|
||||||
assign_soundlib(soundlib_windsound);
|
assign_soundlib(soundlib_windsound);
|
||||||
|
#endif
|
||||||
|
|
||||||
u.uhp = 1; /* prevent RIP on early quits */
|
u.uhp = 1; /* prevent RIP on early quits */
|
||||||
u.ux = 0; /* prevent flush_screen() */
|
u.ux = 0; /* prevent flush_screen() */
|
||||||
|
|||||||
Reference in New Issue
Block a user