summaryrefslogtreecommitdiff
path: root/win32/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'win32/Makefile')
-rw-r--r--win32/Makefile27
1 files changed, 25 insertions, 2 deletions
diff --git a/win32/Makefile b/win32/Makefile
index bc13bd280c..2086a3fc4b 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -138,10 +138,22 @@ CCTYPE = MSVC60
#USE_CPLUSPLUS = define
#
-# uncomment next line if you want debug version of perl (big,slow)
+# uncomment next line if you want debug version of perl (big/slow)
# If not enabled, we automatically try to use maximum optimization
# with all compilers that are known to have a working optimizer.
#
+# You can also set CFG = DebugSymbols for a slightly smaller/faster
+# debug build without the special debugging code in perl which is
+# enabled via -DDEBUGGING;
+#
+# or you can set CFG = DebugFull for an even fuller (bigger/slower)
+# debug build using the debug version of the CRT, and enabling VC++
+# debug features such as extra assertions and invalid parameter warnings
+# in perl and CRT code via -D_DEBUG. (Note that the invalid parameter
+# handler does get triggered from time to time in this configuration,
+# which causes warnings to be printed on STDERR, which in turn causes a
+# few tests to fail.)
+#
#CFG = Debug
#
@@ -432,12 +444,21 @@ LOCDEFS = -DPERLDLL -DPERL_CORE
SUBSYS = console
CXX_FLAG = -TP -EHsc
-LIBC = msvcrt.lib
+LIBC = msvcrt.lib
!IF "$(CFG)" == "Debug"
OPTIMIZE = -Od -MD -Zi -DDEBUGGING
LINK_DBG = -debug
!ELSE
+!IF "$(CFG)" == "DebugSymbols"
+OPTIMIZE = -Od -MD -Zi
+LINK_DBG = -debug
+!ELSE
+!IF "$(CFG)" == "DebugFull"
+LIBC = msvcrtd.lib
+OPTIMIZE = -Od -MDd -Zi -D_DEBUG -DDEBUGGING
+LINK_DBG = -debug
+!ELSE
# -O1 yields smaller code, which turns out to be faster than -O2 on x86 and x64
OPTIMIZE = -O1 -MD -Zi -DNDEBUG
# we enable debug symbols in release builds also
@@ -455,6 +476,8 @@ LINK_DBG = $(LINK_DBG) -ltcg
LIB_FLAGS = -ltcg
! ENDIF
!ENDIF
+!ENDIF
+!ENDIF
!IF "$(WIN64)" == "define"
DEFINES = $(DEFINES) -DWIN64 -DCONSERVATIVE