Place built libraries for Lua and pdcurses into lib instead of the
more transient src/o subfolder.
Remove a kludge involving sys/windows/stub-pdcscrn.c.
Don't link pdcurses into NetHackW.exe (required a couple of stubs
since NetHack.exe and NetHackW.exe currently share object files
under the visual studio nmake build.
(Note: This may require a couple of follow-on minor modifications
to the mingw build. If so, the CI will flag that for us after this
commit)
NetHack 3.7 stores timestamp information, as well as github
commit hashs information if available, internally by compiling
date.c. It is important to ensure that date.c is always
recompiled after any other NetHack source files are compiled.
As usual for the visual studio nmake Makefile.msc, steal the generated
dependencies from the tail of sys/unix/Makefile.src, and adjust the text
to suit the Windows build.
If the one provided in the zip/distribution is newer, replace
the one used by the game after renaming the current one to
symbols.save.
If the one used by the game is newer, do nothing with it.
The mingw-w64 version on the CI platform is older and
is missing a sought copy of winres.h.
This attempts to work around that by having the Makefile
create a temporary copy of winres.h in the win/win32 directory
which that windres.exe is already search in. The file is
then immediately removed after windres uses it.
The contents of the temporary winres.h match the contents
of that file that is distributed with the more up-to-date msys2
distribution of mingw-w64.
It won't be known if this workaround solves all the CI issues
with the mingw build until after it is committed and observed.
Builds for:
sys/msdos/Makefile.GCC - for local build on msdos itself (untested)
sys/unix/NetHack.xcodeproj/project.pbxproj - for Xcode build
sys/windows/Makefile.gcc - for Windows build via Ming-w64 (untested)
sys/windows/Makefile.msc - for visual studio nmake build
sys/windows/vs/files.props for visual studio solution/project build