One VS Makefile for Nethack that works with VS2010-VS2015
This commit is contained in:
@@ -1,13 +1,17 @@
|
|||||||
# NetHack 3.5 Makefile.msc $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$
|
# NetHack 3.5 Makefile.msc $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */
|
||||||
# NetHack 3.5 Makefile.msc $Date: 2012/04/14 00:38:09 $ $Revision: 1.54 $
|
# Copyright (c) NetHack PC Development Team 1993-2015
|
||||||
# Copyright (c) NetHack PC Development Team 1993-2012
|
|
||||||
#
|
#
|
||||||
# NetHack 3.5.x Makefile for MS Visual Studio Visual C++ compiler
|
#==============================================================================
|
||||||
|
# Build Tools Environment
|
||||||
|
#
|
||||||
|
# NetHack 3.6.x Makefile for MS Visual Studio Visual C++ compiler
|
||||||
#
|
#
|
||||||
# Win32 Compilers Tested:
|
# Visual Studio Compilers Tested:
|
||||||
# - Microsoft Visual Studio 2010 Express
|
|
||||||
# - Microsoft Visual Studio 2010 Express, with the Platform SDK
|
# - Microsoft Visual Studio 2010 Express, with the Platform SDK
|
||||||
|
# - Microsoft Visual Studio 2013 Express
|
||||||
|
# - Microsoft Visual Studio 2015 Express (pre-release)
|
||||||
#
|
#
|
||||||
|
#==============================================================================
|
||||||
# This is used for building two versions of NetHack:
|
# This is used for building two versions of NetHack:
|
||||||
# A tty port utilizing the Win32 Console I/O subsystem, Console
|
# A tty port utilizing the Win32 Console I/O subsystem, Console
|
||||||
# NetHack;
|
# NetHack;
|
||||||
@@ -21,18 +25,71 @@
|
|||||||
# .y yacc (such as bison)
|
# .y yacc (such as bison)
|
||||||
# .l lex (such as flex)
|
# .l lex (such as flex)
|
||||||
#
|
#
|
||||||
#
|
# If you have any questions read the sys/winnt/Install.nt file included
|
||||||
# If you have any questions read the sys/winnt/Install.nt file included
|
# with the distribution.
|
||||||
# with the distribution.
|
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
# Do not delete the following line.
|
#==============================================================================
|
||||||
|
# This section is used to determine the version of Visual Studio we are using.
|
||||||
|
# We set VSVER to 0000 to flag any version that is too old or untested.
|
||||||
|
#
|
||||||
|
!IF "$(_NMAKE_VER)" == "14.00.22310.1"
|
||||||
|
VSVER=2015
|
||||||
|
!ELSEIF "$(_NMAKE_VER)" == "12.00.21005.1"
|
||||||
|
VSVER=2013
|
||||||
|
!ELSEIF "$(_NMAKE_VER)" == "10.00.40219.01"
|
||||||
|
VSVER=2010
|
||||||
|
!ELSE
|
||||||
|
VSVER=0000 #untested version
|
||||||
|
!ENDIF
|
||||||
|
#
|
||||||
|
#==============================================================================
|
||||||
|
# BUILD DECISIONS SECTION
|
||||||
|
#
|
||||||
|
# 1. 32-bit or 64-bit?
|
||||||
|
#
|
||||||
|
!IF ($(VSVER) >= 2013)
|
||||||
|
# Set your desired target to x86 (32-bit) or x64 (64-bit) here by
|
||||||
|
# uncommenting the appropriate target size.
|
||||||
|
#
|
||||||
|
# 64 bit
|
||||||
|
#TARGET_CPU=x64
|
||||||
|
#
|
||||||
|
# 32 bit
|
||||||
|
TARGET_CPU=x86
|
||||||
|
!ELSE
|
||||||
|
# For VS2010 use "setenv /x86" or "setenv /x64" before invoking make process
|
||||||
|
# DO NOT DELETE THE FOLLOWING LINE
|
||||||
!include <win32.mak>
|
!include <win32.mak>
|
||||||
|
!ENDIF
|
||||||
|
#
|
||||||
|
#---------------------------------------------------------------
|
||||||
|
# 2. Graphical version or command line version?
|
||||||
|
#
|
||||||
# Graphical interface
|
# Graphical interface
|
||||||
# Set to Y for a graphical version
|
# Uncomment below to set to Y for a graphical version
|
||||||
|
|
||||||
#GRAPHICAL = Y
|
#GRAPHICAL = Y
|
||||||
|
|
||||||
|
#
|
||||||
|
#---------------------------------------------------------------
|
||||||
|
# 3. Where do you want the game to be built (which folder)?
|
||||||
|
#
|
||||||
|
|
||||||
|
GAMEDIR = ..\binary # Game directory
|
||||||
|
|
||||||
|
# This marks the end of the BUILD DECISIONS section.
|
||||||
|
#==============================================================================
|
||||||
|
#
|
||||||
|
#===============================================
|
||||||
|
#======= End of Modification Section ===========
|
||||||
|
#===============================================
|
||||||
|
#
|
||||||
|
################################################
|
||||||
|
# #
|
||||||
|
# Nothing below here should have to be changed.#
|
||||||
|
# #
|
||||||
|
################################################
|
||||||
|
|
||||||
# Set the gamedir according to your preference.
|
# Set the gamedir according to your preference.
|
||||||
# If not present prior to compilation it gets created.
|
# If not present prior to compilation it gets created.
|
||||||
|
|
||||||
@@ -42,8 +99,6 @@ GAME = NetHackW # Game Name
|
|||||||
GAME = NetHack # Game Name
|
GAME = NetHack # Game Name
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
GAMEDIR = ..\binary # Game directory
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Source directories. Makedefs hardcodes these, don't change them.
|
# Source directories. Makedefs hardcodes these, don't change them.
|
||||||
#
|
#
|
||||||
@@ -65,6 +120,66 @@ WSHR = ..\win\share # Tile support files
|
|||||||
|
|
||||||
OBJ = o
|
OBJ = o
|
||||||
|
|
||||||
|
cc=cl
|
||||||
|
link=link
|
||||||
|
rc=Rc
|
||||||
|
|
||||||
|
#
|
||||||
|
#=============================================
|
||||||
|
# Visual Studio versions >= 2013 specific stuff
|
||||||
|
#=============================================
|
||||||
|
|
||||||
|
!IF "$(TARGET_CPU)" == ""
|
||||||
|
TARGET_CPU=x86
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
|
# Common compiler flags:
|
||||||
|
# -c - compile without linking
|
||||||
|
# -W3 - Set warning level to level 3 (-W4 for 64-bit compilations)
|
||||||
|
# -Zi - generate debugging information
|
||||||
|
# -Od - disable all optimizations
|
||||||
|
# -Ox - use maximum optimizations
|
||||||
|
# -Zd - generate only public symbols and line numbers for debugging
|
||||||
|
# -GS - enable security checks
|
||||||
|
#
|
||||||
|
ccommon=-c -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -GS -c
|
||||||
|
lflags=/INCREMENTAL:NO /NOLOGO
|
||||||
|
|
||||||
|
!IF "$(TARGET_CPU)" == "x86"
|
||||||
|
cflags = $(ccommon) -D_X86_=1 -DWIN32 -D_WIN32 -W3
|
||||||
|
scall = -Gz
|
||||||
|
|
||||||
|
!ELSEIF "$(TARGET_CPU)" == "x64"
|
||||||
|
cflags = $(ccommon) -D_AMD64_=1 -DWIN64 -D_WIN64 -DWIN32 -D_WIN32
|
||||||
|
cflags = $(cflags) -W4
|
||||||
|
scall =
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
|
# declarations for use on Intel x86 systems
|
||||||
|
!IF "$(TARGET_CPU)" == "x86"
|
||||||
|
DLLENTRY = @12
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
|
# declarations for use on AMD64 systems
|
||||||
|
!IF "$(TARGET_CPU)" == "x64"
|
||||||
|
DLLENTRY =
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
|
# for Windows applications
|
||||||
|
conlflags = $(lflags) -subsystem:console,$(EXEVER)
|
||||||
|
guilflags = $(lflags) -subsystem:windows,$(EXEVER)
|
||||||
|
dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll
|
||||||
|
|
||||||
|
# basic subsystem specific libraries, less the C Run-Time
|
||||||
|
baselibs = kernel32.lib $(optlibs) $(winsocklibs) advapi32.lib
|
||||||
|
winlibs = $(baselibs) user32.lib gdi32.lib comdlg32.lib winspool.lib
|
||||||
|
|
||||||
|
# for Windows applications that use the C Run-Time libraries
|
||||||
|
conlibs = $(baselibs)
|
||||||
|
guilibs = $(winlibs)
|
||||||
|
#
|
||||||
|
# End of VS2013 and greater stuff
|
||||||
|
#=============================================
|
||||||
|
|
||||||
#
|
#
|
||||||
#==========================================
|
#==========================================
|
||||||
@@ -134,15 +249,6 @@ PRECOMPHEAD = N # set to Y if you want to use precomp. headers
|
|||||||
|
|
||||||
#ZLIB = zlib.lib
|
#ZLIB = zlib.lib
|
||||||
|
|
||||||
#===============================================
|
|
||||||
#======= End of Modification Section ===========
|
|
||||||
#===============================================
|
|
||||||
################################################
|
|
||||||
# #
|
|
||||||
# Nothing below here should have to be changed.#
|
|
||||||
# #
|
|
||||||
################################################
|
|
||||||
|
|
||||||
!IF "$(GRAPHICAL)" == "Y"
|
!IF "$(GRAPHICAL)" == "Y"
|
||||||
WINPORT = $(O)tile.o $(O)mhaskyn.o $(O)mhdlg.o \
|
WINPORT = $(O)tile.o $(O)mhaskyn.o $(O)mhdlg.o \
|
||||||
$(O)mhfont.o $(O)mhinput.o $(O)mhmain.o $(O)mhmap.o \
|
$(O)mhfont.o $(O)mhinput.o $(O)mhmain.o $(O)mhmap.o \
|
||||||
@@ -420,7 +526,7 @@ OBJS = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \
|
|||||||
$(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) $(VOBJ15) \
|
$(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) $(VOBJ15) \
|
||||||
$(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) \
|
$(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) \
|
||||||
$(VOBJ21) $(VOBJ22) $(VOBJ23) $(VOBJ24) $(VOBJ25) \
|
$(VOBJ21) $(VOBJ22) $(VOBJ23) $(VOBJ24) $(VOBJ25) \
|
||||||
$(VOBJ26) $(VOBJ27)
|
$(VOBJ26) $(VOBJ27) $(VOBJ28) $(VOBJ29)
|
||||||
|
|
||||||
WINPOBJ = $(WINPORT)
|
WINPOBJ = $(WINPORT)
|
||||||
|
|
||||||
@@ -483,10 +589,10 @@ GAMEFILE = $(GAMEDIR)\$(GAME).exe
|
|||||||
#
|
#
|
||||||
# The default make target (so just typing 'nmake' is useful).
|
# The default make target (so just typing 'nmake' is useful).
|
||||||
#
|
#
|
||||||
default : $(GAMEFILE)
|
default : install
|
||||||
|
|
||||||
#
|
#
|
||||||
# The main target.
|
# The game target.
|
||||||
#
|
#
|
||||||
|
|
||||||
$(GAME): $(O)obj.tag $(O)utility.tag envchk $(GAMEFILE)
|
$(GAME): $(O)obj.tag $(O)utility.tag envchk $(GAMEFILE)
|
||||||
@@ -920,10 +1026,12 @@ $(O)obj.tag:
|
|||||||
#==========================================
|
#==========================================
|
||||||
|
|
||||||
envchk:
|
envchk:
|
||||||
|
! IF ($(VSVER) < 2010)
|
||||||
|
@echo Your Visual Studio version is too old or untested ($(_NMAKE_VER))
|
||||||
|
!ERROR Your Visual Studio version is too old or untested ($(_NMAKE_VER))
|
||||||
|
! ENDIF
|
||||||
! IF "$(TARGET_CPU)"=="x64"
|
! IF "$(TARGET_CPU)"=="x64"
|
||||||
@echo Windows x64 64-bit build
|
@echo Windows x64 64-bit build
|
||||||
! ELSEIF "$(TARGET_CPU)"=="IA64"
|
|
||||||
@echo Windows x64 64-bit build
|
|
||||||
! ELSE
|
! ELSE
|
||||||
@echo Windows x86 32-bit build
|
@echo Windows x86 32-bit build
|
||||||
! ENDIF
|
! ENDIF
|
||||||
|
|||||||
Reference in New Issue
Block a user