diff --git a/.gitignore b/.gitignore index 2a2491053..0030d75a8 100644 --- a/.gitignore +++ b/.gitignore @@ -35,6 +35,9 @@ Makefile Debug/ Release/ binary/ +package/* +vspackage/ +vsbinary/ build/ ipch/ lib/* diff --git a/sys/windows/vs/NetHack.sln b/sys/windows/vs/NetHack.sln index 39b247dce..732d87c12 100644 --- a/sys/windows/vs/NetHack.sln +++ b/sys/windows/vs/NetHack.sln @@ -85,6 +85,22 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hacklib", "hacklib\hacklib. EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fetchprereq", "FetchPrereq\fetchprereq.vcxproj", "{503AE687-C33A-45ED-93AA-83967E176D67}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{0B53AF9B-E1A4-478B-9246-43A39E8B4027}" + ProjectSection(ProjectDependencies) = postProject + {0303A585-3F83-4BB7-AF6B-1E12C8FB54AC} = {0303A585-3F83-4BB7-AF6B-1E12C8FB54AC} + {096FD6BB-256A-4E68-9B09-2ACA7C606FF3} = {096FD6BB-256A-4E68-9B09-2ACA7C606FF3} + {1693F852-A207-4348-8223-222C2A7FEEEB} = {1693F852-A207-4348-8223-222C2A7FEEEB} + {2F35F228-6733-4FE5-9B46-B3AA10D4BC2E} = {2F35F228-6733-4FE5-9B46-B3AA10D4BC2E} + {503AE687-C33A-45ED-93AA-83967E176D67} = {503AE687-C33A-45ED-93AA-83967E176D67} + {609BC774-C6F8-4B2B-AA7D-5B3D0EA95751} = {609BC774-C6F8-4B2B-AA7D-5B3D0EA95751} + {63F9B82B-F589-4082-ABE5-D4F0682050AB} = {63F9B82B-F589-4082-ABE5-D4F0682050AB} + {642BC75D-ABAF-403E-8224-7C725FD4CB42} = {642BC75D-ABAF-403E-8224-7C725FD4CB42} + {93F10526-209E-41D7-BBEA-775787876895} = {93F10526-209E-41D7-BBEA-775787876895} + {BA3DD34C-04B7-40D0-B373-9329AA9E8945} = {BA3DD34C-04B7-40D0-B373-9329AA9E8945} + {BAA70D0F-3EC7-4D10-91F0-974F1F49308B} = {BAA70D0F-3EC7-4D10-91F0-974F1F49308B} + {CEC5D360-8804-454F-8591-002184C23499} = {CEC5D360-8804-454F-8591-002184C23499} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -189,6 +205,14 @@ Global {503AE687-C33A-45ED-93AA-83967E176D67}.Release|Win32.Build.0 = Release|Win32 {503AE687-C33A-45ED-93AA-83967E176D67}.Release|x64.ActiveCfg = Release|x64 {503AE687-C33A-45ED-93AA-83967E176D67}.Release|x64.Build.0 = Release|x64 + {0B53AF9B-E1A4-478B-9246-43A39E8B4027}.Debug|Win32.ActiveCfg = Debug|Win32 + {0B53AF9B-E1A4-478B-9246-43A39E8B4027}.Debug|Win32.Build.0 = Debug|Win32 + {0B53AF9B-E1A4-478B-9246-43A39E8B4027}.Debug|x64.ActiveCfg = Debug|x64 + {0B53AF9B-E1A4-478B-9246-43A39E8B4027}.Debug|x64.Build.0 = Debug|x64 + {0B53AF9B-E1A4-478B-9246-43A39E8B4027}.Release|Win32.ActiveCfg = Release|Win32 + {0B53AF9B-E1A4-478B-9246-43A39E8B4027}.Release|Win32.Build.0 = Release|Win32 + {0B53AF9B-E1A4-478B-9246-43A39E8B4027}.Release|x64.ActiveCfg = Release|x64 + {0B53AF9B-E1A4-478B-9246-43A39E8B4027}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/sys/windows/vs/NetHackPackage.wapproj b/sys/windows/vs/NetHackPackage.wapproj index 3bdcf8ce3..35fcd2217 100644 --- a/sys/windows/vs/NetHackPackage.wapproj +++ b/sys/windows/vs/NetHackPackage.wapproj @@ -112,25 +112,25 @@ - + NetHackW\nethackrc.template - + NetHackW\Guidebook.txt - + NetHackW\license - + NetHackW\nhdat$(VERSION_MAJOR)$(VERSION_MINOR)$(PATCHLEVEL) - + NetHackW\opthelp - + NetHackW\symbols.template - + NetHackW\sysconf.template diff --git a/sys/windows/vs/dlb/afterdlb.proj b/sys/windows/vs/dlb/afterdlb.proj index 967c181fb..515473a3a 100644 --- a/sys/windows/vs/dlb/afterdlb.proj +++ b/sys/windows/vs/dlb/afterdlb.proj @@ -7,10 +7,9 @@ - + - - + diff --git a/sys/windows/vs/package/package.nmake b/sys/windows/vs/package/package.nmake new file mode 100644 index 000000000..cfd363516 --- /dev/null +++ b/sys/windows/vs/package/package.nmake @@ -0,0 +1,129 @@ +# NetHack 3.7 package.nmake +#============================================================================== +# +# The version of the game this Makefile was designed for +NETHACK_VERSION="3.7.0" + +# A brief variation for use in macros +NHV=$(NETHACK_VERSION:.=) +NHV=$(NHV:"=) + +# +# relative directories from root of NetHack tree. +# + +#LIBSDIR=lib # libraries and external bits +#SUBMSDIR=submodules # NetHack git submodules +PACKAGESDIR=vspackage # put in vspackage to distinguish +ROOTDIR=..\..\..\.. # root of NetHack tree relative to project file + +# Directories we might have to collect things from +# +INCL = $(ROOTDIR)\include # NetHack include files +DAT = $(ROOTDIR)\dat # NetHack data files +DOC = $(ROOTDIR)\doc # NetHack documentation files +UTIL = $(ROOTDIR)\util # Utility source +SRC = $(ROOTDIR)\src # Main source +SSYS = $(ROOTDIR)\sys\share # Shared system files +MSWSYS = $(ROOTDIR)\sys\windows # MS windows specific files +TTY = $(ROOTDIR)\win\tty # window port files (tty) +MSWIN = $(ROOTDIR)\win\win32 # window port files (win32) +WCURSES = $(ROOTDIR)\win\curses # window port files (curses) +WSHR = $(ROOTDIR)\win\share # Tile support files +QT = $(ROOTDIR)\win\Qt # QT support files +X11 = $(ROOTDIR)\win\X11 # X11 support files +LIBDIR = $(ROOTDIR)\lib # libraries and external bits +SUBMDIR = $(ROOTDIR)\submodules # NetHack git submodules +SndWavDir = $(ROOTDIR)\sound\wav # sound files that get integrated + +# Directories we might place collected things +# +VSBINDIR=$(ROOTDIR)\vsbinary +VSPACKAGEDIR = $(ROOTDIR)\vspackage + + + +default: packageall + +#=============================================================================== +# makefile rules +#=============================================================================== + +# Rules for files in dat +{$(DAT)}.dat{$(VSBINDIR)}.dat: + copy /Y $< $@ + +#=============================================================================== +# packaging +#=============================================================================== + +PKGFILES=Guidebook.txt license NetHack.exe NetHack.txt \ + NetHackW.exe opthelp nhdat370 record symbols.template sysconf.template \ + nethackrc.template +FILESTOZIP=$(VSBINDIR)\Guidebook.txt $(VSBINDIR)\license \ + $(VSBINDIR)\NetHack.exe $(VSBINDIR)\NetHack.txt $(VSBINDIR)\NetHackW.exe \ + $(VSBINDIR)\opthelp $(VSBINDIR)\nhdat370 $(VSBINDIR)\record \ + $(VSBINDIR)\symbols.template $(VSBINDIR)\sysconf.template $(VSBINDIR)\nethackrc.template +DBGSYMS = NetHack.PDB NetHackW.PDB +PDBTOZIP = ..\NetHack\symbols\$(Configuration)\$(Platform)\NetHack.PDB \ + ..\NetHackW\symbols\$(Configuration)\$(Platform)\NetHackW.PDB +MAINZIP = $(VSPACKAGEDIR)\nethack-$(NHV)-win-$(PlatformShortName).zip +DBGSYMZIP = $(VSPACKAGEDIR)\nethack-$(NHV)-win-$(PlatformShortName)-debugsymbols.zip + +packageall: packagezip + +packagezip: showvar vsbindir vspackagedir $(FILESTOZIP) $(MAINZIP) $(DBGSYMZIP) + @echo NetHack Windows package created: $(MAINZIP) + +$(MAINZIP): $(FILESTOZIP) +# if not exist $(VSPACKAGEDIR)\*.* mkdir $(VSPACKAGEDIR) + tar -a -cf $(MAINZIP) -C $(VSBINDIR) $(PKGFILES) + +$(DBGSYMZIP): $(PDBTOZIP) + tar -a -cf $(DBGSYMZIP) $(PDBTOZIP) + +$(VSBINDIR)\license: $(BinDir)\license + copy /Y $(BinDir)\license $@ +$(VSBINDIR)\Guidebook.txt: $(BinDir)\Guidebook.txt + copy /Y $(BinDir)\Guidebook.txt $@ +$(VSBINDIR)\NetHack.exe: $(BinDir)\NetHack.exe + copy /Y $(BinDir)\NetHack.exe $@ +$(VSBINDIR)\NetHack.txt: $(BinDir)\NetHack.txt + copy /Y $(BinDir)\NetHack.txt $@ +$(VSBINDIR)\NetHackW.exe: $(BinDir)\NetHackW.exe + copy /Y $(BinDir)\NetHackW.exe $@ +$(VSBINDIR)\opthelp: $(BinDir)\opthelp + copy /Y $(BinDir)\opthelp $@ +$(VSBINDIR)\nhdat$(NHV): $(BinDir)\nhdat$(NHV) + copy /Y $(BinDir)\nhdat$(NHV) $@ +$(VSBINDIR)\symbols.template: $(BinDir)\symbols.template + copy /Y $(BinDir)\symbols.template $@ +$(VSBINDIR)\nethackrc.template: $(BinDir)\nethackrc.template + copy /Y $(BinDir)\nethackrc.template $@ +$(VSBINDIR)\sysconf.template: $(BinDir)\sysconf.template + copy /Y $(BinDir)\sysconf.template $@ +$(VSBINDIR)\record: + -if not exist $(VSBINDIR)\record. goto>$(VSBINDIR)\record. + +showvar: + @echo BinDir=[$(BinDir)] + @echo Platform=[$(Platform)] + @echo PlatformShortName=[$(PlatformShortName)] + @echo Configuration=[$(Configuration)] + +vspackagedir: + @if not exist $(VSPACKAGEDIR)\*.* echo creating directory $(VSPACKAGEDIR:\=/) + @if not exist $(VSPACKAGEDIR)\*.* mkdir $(VSPACKAGEDIR) + +vsbindir: + @if not exist $(VSBINDIR)\*.* echo creating directory $(VSBINDIR:\=/) + @if not exist $(VSBINDIR)\*.* mkdir $(VSBINDIR) + +clean: +# @if exist $(LIBDIR)\$(PDCDIST) rmdir /Q $(LIBDIR)\$(PDCDIST) /s +# @if exist $(LIBDIR)\lua-$(LUA_VERSION) rmdir /Q $(LIBDIR)\lua-$(LUA_VERSION) /s +# @if exist ..\..\..\..\include\nhlua.h del /Q ..\..\..\..\include\nhlua.h + +rebuild: +# @if exist $(LIBDIR)\$(PDCDIST) echo nothing to do for lib\$(PDCDIST) +# @if exist $(LIBDIR)\lua-$(LUA_VERSION) echo nothing to do for lib\lua-$(LUA_VERSION) diff --git a/sys/windows/vs/package/package.vcxproj b/sys/windows/vs/package/package.vcxproj new file mode 100644 index 000000000..716dd1699 --- /dev/null +++ b/sys/windows/vs/package/package.vcxproj @@ -0,0 +1,63 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + 17.0 + {0B53AF9B-E1A4-478B-9246-43A39E8B4027} + Win32Proj + 10.0.22621.0 + + + + Makefile + true + + + Makefile + false + + + Makefile + true + + + Makefile + false + + + + + + + + + + + + pushd $(vsDir)package %26%26 nmake -F package.nmake BinDir="$(BinDir)\" Platform="$(Platform)" PlatformShortName="$(PlatformShortName)" Configuration="$(Configuration)" %26%26 popd + pushd $(vsDir)package %26%26 nmake -F package.nmake clean %26%26 popd + pushd $(vsDir)package %26%26 nmake -F package.nmake rebuild %26%26 popd + + + + +