--- old/make/common/Defs-windows.gmk Fri Mar 30 09:12:49 2012 +++ new/make/common/Defs-windows.gmk Fri Mar 30 09:12:49 2012 @@ -76,9 +76,36 @@ EXTRA_LFLAGS += /LIBPATH:$(DXSDK_LIB_PATH) # Full Debug Symbols has been enabled on Windows since JDK1.4.1. -# Default is enabled with debug info files ZIP'ed to save space. +# The Full Debug Symbols (FDS) default for VARIANT == OPT builds is +# enabled with debug info files ZIP'ed to save space. For VARIANT != +# OPT builds, FDS is always enabled, after all a debug build without +# debug info isn't very useful. The ZIP_DEBUGINFO_FILES option only has +# meaning when FDS is enabled. +# +# If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be +# disabled for a VARIANT == OPT build. +# +# Note: Use of a different variable name for the FDS override option +# versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS +# versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass +# in options via environment variables, use of distinct variables +# prevents strange behaviours. For example, in a VARIANT != OPT build, +# the FULL_DEBUG_SYMBOLS environment variable will be 0, but the +# ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If the same +# variable name is used, then different values can be picked up by +# different parts of the build. Just to be clear, we only need two +# variable names because the incoming option value can be overridden +# in some situations, e.g., a VARIANT != OPT build. -ENABLE_FULL_DEBUG_SYMBOLS ?= 1 +ifeq ($(VARIANT), OPT) + FULL_DEBUG_SYMBOLS ?= 1 + ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS) +else + # debug variants always get Full Debug Symbols (if available) + ENABLE_FULL_DEBUG_SYMBOLS = 1 +endif +_JUNK_ := $(shell \ + echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) ZIP_DEBUGINFO_FILES ?= 1 @@ -85,6 +112,7 @@ else ZIP_DEBUGINFO_FILES=0 endif +_JUNK_ := $(shell echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)") # C Compiler flag definitions @@ -224,7 +252,9 @@ # All builds get the same runtime setting CFLAGS_COMMON += $(MS_RUNTIME_OPTION) $(CFLAGS_$(COMPILER_VERSION)) - LDEBUG = /debug + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + LDEBUG = /debug + endif ifeq ($(VTUNE_SUPPORT), true) OTHER_CFLAGS = -Z7 -Ox @@ -258,7 +288,9 @@ # # Output options (use specific filenames to avoid parallel compile errors) # -CFLAGS_COMMON += -Fd$(OBJDIR)/$(basename $(@F)).pdb -Fm$(OBJDIR)/$(basename $(@F)).map +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + CFLAGS_COMMON += -Fd$(OBJDIR)/$(basename $(@F)).pdb -Fm$(OBJDIR)/$(basename $(@F)).map +endif # # Use -wdNNNN to disable warning NNNN.