From 3119bc1ec291ffae25e92426a67139aa05191bd1 Mon Sep 17 00:00:00 2001 From: nhmall Date: Sat, 10 Feb 2024 20:20:14 -0500 Subject: [PATCH] more Windows Makefile updates Default to INTERNET_AVAILABLE=Y. If the build computer is not online with the internet available, an explicit INTERNET_AVAILABLE=N will be required for the build, if pdcurses and Lua are not already staged in the lib folder. That can be done by editing the appropriate line in the Makefile, or by altering the command line: nmake INTERNET_AVAILABLE=N install With Makefile.nmake: Store pdcurses wingui and pdcurses wincon object files in separate directories. Rename the two pdcurses static libraries. Because of the static library changes, the following will be required prior to the next build: nmake spotless --- sys/windows/Install.windows | 21 +++--- sys/windows/Makefile.mingw32 | 4 +- sys/windows/Makefile.nmake | 131 +++++++++++++++++------------------ 3 files changed, 75 insertions(+), 81 deletions(-) diff --git a/sys/windows/Install.windows b/sys/windows/Install.windows index fa7dccb6f..bfa057860 100644 --- a/sys/windows/Install.windows +++ b/sys/windows/Install.windows @@ -36,7 +36,7 @@ You can use one of the following build environments: There are a few packaged distributions of MinGW-w64. We've tried out these ones, but there are likely others that will work: - MSYS2 + MSYS2 - https://www.msys2.org/ - Download the installer, and start the appropriate bash shell. @@ -177,8 +177,9 @@ Setting Up cd sys\windows .\nhsetup.bat -3. From the sys\windows subfolder, change your current directory to the - src subfolder of the nethack source tree: +3. Change your current directory to the src subfolder of the nethack + source tree. This assumes you are still in the sys\windows folder + from step #2: cd ..\..\src 4. Edit your Makefile if you wish, but it is not required unless @@ -191,19 +192,19 @@ Compiling Change your current directory to the NetHack src directory. For the Visual Studio compiler, issue these commands: - nmake INTERNET_AVAILABLE=Y install + nmake install - For GCC: + For mingw GCC: Issue these commands: - make -f Makefile.mingw32 INTERNET_AVAILABLE=Y clean - make -f Makefile.mingw32 INTERNET_AVAILABLE=Y depend - make -f Makefile.mingw32 INTERNET_AVAILABLE=Y + make -f Makefile.mingw32 clean + make -f Makefile.mingw32 depend + make -f Makefile.mingw32 (some older versions of mingw may require mingw32-make in place of plain make in the commands above) If you get any errors along the way then something has not been set - up correctly or you mistyped the commands shown above. + up correctly or perhaps you mistyped the commands shown above. The time it takes to compile depends on your particular machine of course. On a slower machine, you might take the opportunity to grab a beverage. @@ -247,7 +248,7 @@ Notes: which should run on any 64-bit Windows O/S. **Note**: saved games and bones files are NOT compatible between the - 32-bit and the 64-bit versions at this time. + 32-bit and the 64-bit versions at this time. /--------------------------------------------------------------\ diff --git a/sys/windows/Makefile.mingw32 b/sys/windows/Makefile.mingw32 index 4a9214b80..290894216 100644 --- a/sys/windows/Makefile.mingw32 +++ b/sys/windows/Makefile.mingw32 @@ -60,9 +60,9 @@ DEBUGINFO = N #--------------------------------------------------------------- # Do you have a connection to the internet available that you want # to utilize for obtaining prerequisite Lua source code and pdcurses source code -# +# Default to Y. -INTERNET_AVAILABLE = N +INTERNET_AVAILABLE = Y # #--------------------------------------------------------------- diff --git a/sys/windows/Makefile.nmake b/sys/windows/Makefile.nmake index db2361b77..84c40792e 100644 --- a/sys/windows/Makefile.nmake +++ b/sys/windows/Makefile.nmake @@ -78,13 +78,12 @@ DEBUGINFO = Y #WANT_ASAN = Y #------------------------------------------------------------------------------ -# -# # Do you have a connection to the internet available that you want -# to utilize for obtaining prerequisite Lua source code and pdcurses source code? -# +# to utilize for obtaining prerequisite Lua source code and +# pdcursesmod source code? +# Default is now Y. Set it to N if that won't work for you. -INTERNET_AVAILABLE = N +INTERNET_AVAILABLE = Y #------------------------------------------------------------------------------ # @@ -174,7 +173,7 @@ SUBM = ..\submodules # NetHack git submodules SndWavDir = ..\sound\wav # sound files that get integrated #============================================================================== -# Sanity checks for prerequisite Lua and pdcurses +# Sanity checks for prerequisite Lua and pdcursesmod # LUA_MAY_PROCEED=N ADD_CURSES=N @@ -223,7 +222,7 @@ LUA_MAY_PROCEED=Y !ERROR Stopping because NetHack 3.7 requires Lua for its build. !ENDIF # LUA_MAY_PROCEED -# Now, pdcurses +# Now, pdcursesmod !IF "$(CURSES_CONSOLE)" == "Y" WANT_CURSES=Y !ENDIF @@ -231,7 +230,7 @@ WANT_CURSES=Y WANT_CURSES=Y !ENDIF -# Now, pdcurses +# Now, pdcursesmod !IF "$(WANT_CURSES)" == "Y" PDCDIST=pdcursesmod !IF "$(INTERNET_AVAILABLE)" == "Y" @@ -254,10 +253,10 @@ ADD_CURSES=Y !ELSEIF EXIST("$(LIBDIR)\$(PDCDIST)\curses.h") PDCURSES_TOP=$(LIBDIR)\$(PDCDIST) ADD_CURSES=Y -!ENDIF # pdcurses sources available somewhere +!ENDIF # pdcursesmod sources available somewhere !IF "$(ADD_CURSES)" == "Y" !MESSAGE Your Makefile settings do not allow $(PDCDIST) to be -!MESSAGE obtained by git or by download, but a copy of pdcurses was +!MESSAGE obtained by git or by download, but a copy of pdcursesmod was !MESSAGE found in $(PDCURSES_TOP), !MESSAGE so that will be used. !ENDIF # ADD_CURSES == Y @@ -344,12 +343,16 @@ OBJGUI_B = objgui OBJUTIL_B = objutil OBJLUA_B = objlua OBJPDC_B = objpdc +OBJPDCC_B = objpdcc +OBJPDCG_B = objpdcg OBJTTY = $(OBJTTY_B)\$(TARGET_CPU) OBJGUI = $(OBJGUI_B)\$(TARGET_CPU) OBJUTIL = $(OBJUTIL_B)\$(TARGET_CPU) OBJLUA = $(OBJLUA_B)\$(TARGET_CPU) OBJPDC = $(OBJPDC_B)\$(TARGET_CPU) +OBJPDCC = $(OBJPDCC_B)\$(TARGET_CPU) +OBJPDCG = $(OBJPDCG_B)\$(TARGET_CPU) # # Shorten up the location for some files @@ -360,6 +363,8 @@ OGUI = $(OBJGUI)^\ OUTL = $(OBJUTIL)^\ OLUA = $(OBJLUA)^\ OPDC = $(OBJPDC)^\ +OPDCC = $(OBJPDCC)^\ +OPDCG = $(OBJPDCG)^\ U = $(UTIL)^\ @@ -435,12 +440,13 @@ LUAOBJFILES = $(LUAOBJFILES) $(OLUA)lbitlib.o # and removes lbitlib.c !ENDIF #===============-================================================= -# PDCurses build macros +# PDCursesmod build macros +# Source for the NetHack repository submodule in +# ../submodules/pdcursesmod +# is https://github.com/Bill-Gray/PDCursesMod # Source for the NetHack repository submodule in # ../submodules/pdcurses # is https://github.com/wmcbrine/PDCurses.git -# ../submodules/pdcursesmod -# is https://github.com/Bill-Gray/PDCursesMod #================================================================= !IF "$(ADD_CURSES)" == "Y" @@ -463,26 +469,16 @@ PDCCOMMONOBJS = $(OPDC)addch.o $(OPDC)addchstr.o $(OPDC)addstr.o $(OPDC)attr.o $ $(OPDC)scroll.o $(OPDC)slk.o $(OPDC)termattr.o $(OPDC)touch.o \ $(OPDC)util.o $(OPDC)window.o -#PDCOBJS = $(OPDC)pdcclip.o $(OPDC)pdcdisp.o $(OPDC)pdcgetsc.o $(OPDC)pdckbd.o $(OPDC)pdcscrn.o \ -# $(OPDC)pdcsetsc.o $(OPDC)pdcutil.o +PDCWINCONOBJS = $(OPDCC)pdcclip.o $(OPDCC)pdcdisp.o $(OPDCC)pdcgetsc.o \ + $(OPDCC)pdckbd.o $(OPDCC)pdcscrn.o $(OPDCC)pdcsetsc.o $(OPDCC)pdcutil.o -PDCWINCONOBJS = $(OPDC)pdcclip_wincon.o $(OPDC)pdcdisp_wincon.o \ - $(OPDC)pdcgetsc_wincon.o $(OPDC)pdckbd_wincon.o \ - $(OPDC)pdcscrn_wincon.o $(OPDC)pdcsetsc_wincon.o \ - $(OPDC)pdcutil_wincon.o - -PDCWINGUIOBJS = $(OPDC)pdcclip_wingui.o $(OPDC)pdcdisp_wingui.o \ - $(OPDC)pdcgetsc_wingui.o $(OPDC)pdckbd_wingui.o \ - $(OPDC)pdcscrn_wingui.o $(OPDC)pdcsetsc_wingui.o \ - $(OPDC)pdcutil_wingui.o - -PDCLIB = $(LIBDIR)\$(PDCDIST)-$(TARGET_CPU).lib +PDCWINGUIOBJS = $(OPDCG)pdcclip.o $(OPDCG)pdcdisp.o $(OPDCG)pdcgetsc.o \ + $(OPDCG)pdckbd.o $(OPDCG)pdcscrn.o $(OPDCG)pdcsetsc.o $(OPDCG)pdcutil.o PDCINCL = /I$(PDCURSES_TOP) /I$(PDCSRC) PDCINCLGUI = /I$(PDCWINCON) PDCINCLCON = /I$(PDCWINGUI) !ELSE -PDCLIB = PDCDEP = !ENDIF @@ -612,14 +608,14 @@ CURSESOBJ= $(OTTY)cursdial.o $(OTTY)cursinit.o $(OTTY)cursinvt.o \ $(OTTY)cursstat.o $(OTTY)curswins.o !IF "$(CURSES_CONSOLE)" == "Y" CURSESWINCONOBJS = $(CURSESOBJ) -PDCWINCONLIB = $(PDCLIB) +PDCWINCONLIB = $(LIBDIR)\$(PDCDIST)-wincon-$(TARGET_CPU)-static.lib CURSESDEF1=-D"CURSES_GRAPHICS" -DPDC_NCMOUSE #CURSESDEF2=-D"CURSES_BRIEF_INCLUDE" -DCHTYPE_32 CURSESDEF2=-DCURSES_UNICODE $(PDCURSESFLAGS) !ENDIF !IF "$(CURSES_GRAPHICAL)" == "Y" CURSESWINGUIOBJS = $(CURSESOBJ) $(OGUI)guitty.o -PDCWINGUILIB = $(PDCLIB) +PDCWINGUILIB = $(LIBDIR)\$(PDCDIST)-wingui-$(TARGET_CPU)-static.lib CURSESDEF1=-D"CURSES_GRAPHICS" -DPDC_NCMOUSE #CURSESDEF2=-D"CURSES_BRIEF_INCLUDE" -DCHTYPE_32 CURSESDEF2=-DCURSES_UNICODE $(PDCURSESFLAGS) @@ -1312,10 +1308,10 @@ DLB = {$(PDCSRC)}.c{$(OBJPDC)}.o: $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(CFLAGS:-w44774= ) $(CURSESDEF2) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $< -{$(PDCWINCON)}.c{$(OBJPDC)}.o: +{$(PDCWINCON)}.c{$(OBJPDCC)}.o: $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(PDCINCLCON) $(CFLAGS) $(CURSESDEF2) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $< -{$(PDCWINGUI)}.c{$(OBJPDC)}.o: +{$(PDCWINGUI)}.c{$(OBJPDCG)}.o: $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(PDCINCLGUI) $(CFLAGS) $(CURSESDEF2) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) -Fo$@ $< #========================================== @@ -1369,6 +1365,7 @@ all : install install: envchk.tag libdir.tag ottydir$(TARGET_CPU).tag \ outldir$(TARGET_CPU).tag oguidir$(TARGET_CPU).tag \ oluadir$(TARGET_CPU).tag opdcdir$(TARGET_CPU).tag \ + opdccdir$(TARGET_CPU).tag opdcgdir$(TARGET_CPU).tag \ $(LUASRC)\lua.h $(PDCDEP) \ $(INCL)\nhlua.h $(OUTL)utility.tag \ $(DAT)\data $(DAT)\rumors $(DAT)\oracles $(DAT)\engrave \ @@ -1395,14 +1392,16 @@ CURLLUADST=lua-5.4.6.tar.gz #CURLPDCSRC=https://github.com/wmcbrine/PDCurses/archive/refs/tags/3.9.zip CURLPDCSRC=https://github.com/Bill-Gray/PDCursesMod/archive/refs/tags/v4.4.0.zip -CURLPDCDST=pdcurses.zip +CURLPDCDST=$(PDCDIST).zip $(LUASRC)\lua.h: + @if not exist $(LIBDIR)\*.* mkdir $(LIBDIR) cd $(LIBDIR) curl -L $(CURLLUASRC) -o $(CURLLUADST) tar -xvf $(CURLLUADST) cd ..\src $(PDCURSES_TOP)\curses.h: + @if not exist $(LIBDIR)\*.* mkdir $(LIBDIR) cd $(LIBDIR) curl -L $(CURLPDCSRC) -o $(CURLPDCDST) if not exist $(PDCDIST)\*.* mkdir $(PDCDIST) @@ -1725,6 +1724,16 @@ opdcdir$(TARGET_CPU).tag: @if not exist $(OBJPDC)\*.* mkdir $(OBJPDC) @echo directory created >$@ +opdccdir$(TARGET_CPU).tag: + @if not exist $(OBJPDCC)\*.* echo creating directory $(OBJPDCC:\=/) + @if not exist $(OBJPDCC)\*.* mkdir $(OBJPDCC) + @echo directory created >$@ + +opdcgdir$(TARGET_CPU).tag: + @if not exist $(OBJPDCG)\*.* echo creating directory $(OBJPDCG:\=/) + @if not exist $(OBJPDCG)\*.* mkdir $(OBJPDCG) + @echo directory created >$@ + libdir.tag: @if not exist $(LIBDIR)\*.* echo creating directory $(LIB:\=/) @if not exist $(LIBDIR)\*.* mkdir $(LIBDIR) @@ -1991,46 +2000,15 @@ $(SRC)\x11tiles: $(U)tile2x11.exe $(WSHR)\monsters.txt $(WSHR)\objects.txt \ # PDCurses #=============================================================================== -$(LIBDIR)\$(PDCDIST)-$(TARGET_CPU).lib : $(PDCCOMMONOBJS) +$(PDCWINCONLIB) : $(PDCCOMMONOBJS) $(PDCWINCONOBJS) @echo Building library $@ from $** - @$(librarian) -nologo /out:$@ $(PDCCOMMONOBJS) - -$(OPDC)pdcclip_wincon.o: $(PDCWINCON)\pdcclip.c - $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(CFLAGS) $(CURSESDEF2) -Fo$@ $(PDCWINCON)\pdcclip.c -$(OPDC)pdcdisp_wincon.o: $(PDCWINCON)\pdcdisp.c - $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(CFLAGS) $(CURSESDEF2) -Fo$@ $(PDCWINCON)\pdcdisp.c -$(OPDC)pdcgetsc_wincon.o: $(PDCWINCON)\pdcgetsc.c - $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(CFLAGS) $(CURSESDEF2) -Fo$@ $(PDCWINCON)\pdcgetsc.c -$(OPDC)pdckbd_wincon.o: $(PDCWINCON)\pdckbd.c - $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(CFLAGS) $(CURSESDEF2) -Fo$@ $(PDCWINCON)\pdckbd.c -$(OPDC)pdcscrn_wincon.o: $(PDCWINCON)\pdcscrn.c - $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(CFLAGS) $(CURSESDEF2) -Fo$@ $(PDCWINCON)\pdcscrn.c -$(OPDC)pdcsetsc_wincon.o: $(PDCWINCON)\pdcsetsc.c - $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(CFLAGS) $(CURSESDEF2) -Fo$@ $(PDCWINCON)\pdcsetsc.c -$(OPDC)pdcutil_wincon.o: $(PDCWINCON)\pdcutil.c - $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(CFLAGS) $(CURSESDEF2) -Fo$@ $(PDCWINCON)\pdcutil.c - -$(OPDC)pdcclip_wingui.o: $(PDCWINGUI)\pdcclip.c - $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(CFLAGS) $(CURSESDEF2) -Fo$@ $(PDCWINGUI)\pdcclip.c -$(OPDC)pdcdisp_wingui.o: $(PDCWINGUI)\pdcdisp.c - $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(CFLAGS) $(CURSESDEF2) -Fo$@ $(PDCWINGUI)\pdcdisp.c -$(OPDC)pdcgetsc_wingui.o: $(PDCWINGUI)\pdcgetsc.c - $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(CFLAGS) $(CURSESDEF2) -Fo$@ $(PDCWINGUI)\pdcgetsc.c -$(OPDC)pdckbd_wingui.o: $(PDCWINGUI)\pdckbd.c - $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(CFLAGS) $(CURSESDEF2) -Fo$@ $(PDCWINGUI)\pdckbd.c -$(OPDC)pdcscrn_wingui.o: $(PDCWINGUI)\pdcscrn.c - $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(CFLAGS) $(CURSESDEF2) -Fo$@ $(PDCWINGUI)\pdcscrn.c -$(OPDC)pdcsetsc_wingui.o: $(PDCWINGUI)\pdcsetsc.c - $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(CFLAGS) $(CURSESDEF2) -Fo$@ $(PDCWINGUI)\pdcsetsc.c -$(OPDC)pdcutil_wingui.o: $(PDCWINGUI)\pdcutil.c - $(Q)$(CC) /wd4244 /wd4267 /wd4774 $(PDCINCL) $(CFLAGS) $(CURSESDEF2) -Fo$@ $(PDCWINGUI)\pdcutil.c + @$(librarian) -nologo /out:$@ $(PDCCOMMONOBJS) $(PDCWINCONOBJS) +$(PDCWINGUILIB) : $(PDCCOMMONOBJS) $(PDCWINGUIOBJS) + @echo Building library $@ from $** + @$(librarian) -nologo /out:$@ $(PDCCOMMONOBJS) $(PDCWINGUIOBJS) $(OGUI)guitty.o: $(MSWSYS)\guitty.c $(WINDHDR) $(HACK_H) $(TILE_H) -#$(OPDC)pdcscrn.o : $(PDCURSES_HEADERS) $(PDCWINCON)\pdcscrn.c -# $(Q)$(CC) $(PDCINCL) $(CFLAGS) $(CURSESDEF2) -wd4996 $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) \ -# -Fo$@ $(PDCWINCON)\pdcscrn.c - #=============================================================================== # LUA #=============================================================================== @@ -2318,6 +2296,8 @@ spotless: clean if exist oguidirx86.tag del oguidirx86.tag if exist oluadirx86.tag del oluadirx86.tag if exist opdcdirx86.tag del opdcdirx86.tag + if exist opdccdirx86.tag del opdccdirx86.tag + if exist opdcgdirx86.tag del opdcgdirx86.tag if exist outldirx64.tag del outldirx64.tag if exist ottydirx64.tag del ottydirx64.tag if exist oguidirx64.tag del oguidirx64.tag @@ -2340,7 +2320,8 @@ spotless: clean if exist $(U)uudecode.exe del $(U)uudecode.exe if exist $(U)dlb.exe del $(U)dlb.exe !IF "$(ADD_CURSES)" == "Y" - if exist $(PDCLIB) del $(PDCLIB) + if exist $(LIBDIR)\$(PDCDIST)-wincon-$(TARGET_CPU)-static.lib del $(LIBDIR)\$(PDCDIST)-wincon-$(TARGET_CPU)-static.lib + if exist $(LIBDIR)\$(PDCDIST)-wingui-$(TARGET_CPU)-static.lib del $(LIBDIR)\$(PDCDIST)-wingui-$(TARGET_CPU)-static.lib !ENDIF if exist $(LUALIB) del $(LUALIB) if exist $(DAT)\oracles del $(DAT)\oracles @@ -2356,11 +2337,15 @@ spotless: clean if exist $(OBJUTIL)\* rmdir $(OBJUTIL) /s /Q if exist $(OBJLUA)\* rmdir $(OBJLUA) /s /Q if exist $(OBJPDC)\* rmdir $(OBJPDC) /s /Q + if exist $(OBJPDCC)\* rmdir $(OBJPDCC) /s /Q + if exist $(OBJPDCG)\* rmdir $(OBJPDCG) /s /Q if exist $(OBJTTY_B)\* rmdir $(OBJTTY_B) /s /Q if exist $(OBJGUI_B)\* rmdir $(OBJGUI_B) /s /Q if exist $(OBJUTIL_B)\* rmdir $(OBJUTIL_B) /s /Q if exist $(OBJLUA_B)\* rmdir $(OBJLUA_B) /s /Q if exist $(OBJPDC_B)\* rmdir $(OBJPDC_B) /s /Q + if exist $(OBJPDCC_B)\* rmdir $(OBJPDCC_B) /s /Q + if exist $(OBJPDCG_B)\* rmdir $(OBJPDCG_B) /s /Q clean: if exist install.tag del install.tag @@ -2384,11 +2369,15 @@ clean: if exist $(OGUI)*.o del $(OGUI)*.o if exist $(OLUA)*.o del $(OLUA)*.o if exist $(OPDC)*.o del $(OPDC)*.o + if exist $(OPDCC)*.o del $(OPDCC)*.o + if exist $(OPDCG)*.o del $(OPDCG)*.o if exist $(OUTL)*.PDB del $(OUTL)*.PDB if exist $(OTTY)*.PDB del $(OTTY)*.PDB if exist $(OGUI)*.PDB del $(OGUI)*.PDB if exist $(OLUA)*.PDB del $(OLUA)*.PDB if exist $(OPDC)*.PDB del $(OPDC)*.PDB + if exist $(OPDCC)*.PDB del $(OPDCC)*.PDB + if exist $(OPDCG)*.PDB del $(OPDCG)*.PDB if exist $(OUTL)*.MAP del $(OUTL)*.MAP if exist $(OTTY)*.MAP del $(OTTY)*.MAP if exist $(OGUI)*.MAP del $(OGUI)*.MAP @@ -2399,11 +2388,15 @@ clean: if exist $(OGUI)*.LIB del $(OGUI)*.LIB if exist $(OLUA)*.LIB del $(OLUA)*.LIB if exist $(OPDC)*.LIB del $(OPDC)*.LIB + if exist $(OPDCC)*.LIB del $(OPDCC)*.LIB + if exist $(OPDCG)*.LIB del $(OPDCG)*.LIB if exist $(OUTL)*.EXP del $(OUTL)*.EXP if exist $(OTTY)*.EXP del $(OTTY)*.EXP if exist $(OGUI)*.EXP del $(OGUI)*.EXP if exist $(OLUA)*.EXP del $(OLUA)*.EXP if exist $(OPDC)*.EXP del $(OPDC)*.EXP + if exist $(OPDCC)*.EXP del $(OPDCC)*.EXP + if exist $(OPDCG)*.EXP del $(OPDCG)*.EXP if exist $(SRC)\tiles.bmp del $(SRC)\tiles.bmp if exist $(OTTY)console.res del $(OTTY)console.res if exist $(OTTY)NetHack.res del $(OTTY)NetHack.res