Bug 249782 Make Mozilla compile with Microsoft Visual Studio 2005

patch by sdwalker@myrealbox.com r=bryner
This commit is contained in:
timeless%mozdev.org 2004-11-23 19:34:02 +00:00
Родитель 8cdbad2127
Коммит d01dd1aa4c
40 изменённых файлов: 76 добавлений и 77 удалений

Просмотреть файл

@ -251,6 +251,7 @@ FILTER = @FILTER@
BIN_FLAGS = @BIN_FLAGS@
MIDL = @MIDL@
MIDL_FLAGS = @MIDL_FLAGS@
_MSC_VER = @_MSC_VER@
DLL_PREFIX = @DLL_PREFIX@
LIB_PREFIX = @LIB_PREFIX@

Просмотреть файл

@ -331,7 +331,7 @@ endif
# if MOZ_COVERAGE is set, we handle pdb files slightly differently
ifdef MOZ_COVERAGE
MOZ_OPTIMIZE_FLAGS=-Zi -O1 -UDEBUG -DNDEBUG
OS_LDFLAGS = /DEBUG /DEBUGTYPE:CV /PDB:NONE /OPT:REF /OPT:nowin98
OS_LDFLAGS = /DEBUG /PDB:NONE /OPT:REF /OPT:nowin98
_ORDERFILE := $(wildcard $(srcdir)/win32.order)
ifneq (,$(_ORDERFILE))
OS_LDFLAGS += /ORDER:@$(srcdir)/win32.order
@ -345,7 +345,7 @@ endif
#
ifdef NS_TRACE_MALLOC
MOZ_OPTIMIZE_FLAGS=-Zi -Od -UDEBUG -DNDEBUG
OS_LDFLAGS = /DEBUG /DEBUGTYPE:CV /PDB:NONE /OPT:REF /OPT:nowin98
OS_LDFLAGS = /DEBUG /PDB:NONE /OPT:REF /OPT:nowin98
endif
# NS_TRACE_MALLOC
@ -646,20 +646,19 @@ ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_)
#//
#//------------------------------------------------------------------------
ifdef USE_STATIC_LIBS
RTL_FLAGS=-MT # Statically linked multithreaded RTL
ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC))
RTL_FLAGS=-MTd # Statically linked multithreaded MSVC4.0 debug RTL
endif # MOZ_DEBUG || NS_TRACE_MALLOC
else # !USE_STATIC_LIBS
ifdef USE_NON_MT_LIBS
ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER)))
RTL_FLAGS=-ML # Statically linked non-multithreaded LIBC RTL
ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC))
RTL_FLAGS=-MLd # Statically linked non-multithreaded LIBC debug RTL
endif # MOZ_DEBUG || NS_TRACE_MALLOC
else
RTL_FLAGS=-MT # Statically linked multithreaded RTL
ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC))
RTL_FLAGS=-MTd # Statically linked multithreaded MSVC4.0 debug RTL
endif # MOZ_DEBUG || NS_TRACE_MALLOC
endif # _MSC_VER
else # ! USE_NON_MT_LIBS
else # !USE_STATIC_LIBS
RTL_FLAGS=-MD # Dynamically linked, multithreaded RTL
ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC))
@ -667,7 +666,6 @@ ifndef MOZ_NO_DEBUG_RTL
RTL_FLAGS=-MDd # Dynamically linked, multithreaded MSVC4.0 debug RTL
endif
endif # MOZ_DEBUG || NS_TRACE_MALLOC
endif # USE_NON_MT_LIBS
endif # USE_STATIC_LIBS
endif # WINNT && !GNU_CC

Просмотреть файл

@ -210,6 +210,18 @@ endif
#endif
endif # !GNU_CC
ifdef ENABLE_CXX_EXCEPTIONS
ifdef GNU_CC
CXXFLAGS += -fexceptions
else
ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER)))
CXXFLAGS += -GX
else
CXXFLAGS += -EHsc
endif # _MSC_VER
endif # GNU_CC
endif # ENABLE_CXX_EXCEPTIONS
endif # WINNT
ifndef TARGETS

Просмотреть файл

@ -318,6 +318,8 @@ case "$target" in
# Determine compiler version
CC_VERSION=`"${CC}" -v 2>&1 | grep Version | sed -e 's|.* Version ||' -e 's| .*||'`
_CC_MAJOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $1 }'`
_CC_MINOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $2 }'`
_MSC_VER=${_CC_MAJOR_VERSION}${_CC_MINOR_VERSION}
CXX_VERSION=`"${CXX}" -v 2>&1 | grep Version | sed -e 's|.* Version ||' -e 's| .*||'`
_CXX_MAJOR_VERSION=`echo ${CXX_VERSION} | $AWK -F\. '{ print $1 }'`
@ -329,6 +331,8 @@ case "$target" in
_CC_SUITE=6
elif test "$_CC_MAJOR_VERSION" = "13"; then
_CC_SUITE=7
elif test "$_CC_MAJOR_VERSION" = "14"; then
_CC_SUITE=8
else
AC_MSG_ERROR([This version of the MSVC compiler, $CC_VERSION , is unsupported.])
fi
@ -346,8 +350,8 @@ case "$target" in
_MIDL_MAJOR_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
_MIDL_MINOR_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $2 }'`
_MIDL_REV_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $3 }'`
if test "$_MIDL_MAJOR_VERSION" != "5" -a "$_MIDL_FULL_VERSION" != "6.00.0347" -a "$_MIDL_FULL_VERSION" != "6.00.0361"; then
AC_MSG_ERROR([Midl version $_MIDL_FULL_VERSION was found. Midl version must be 5.x.x (VC6*) or 6.00.0347 (VC7) or 6.00.0361 (VC.net 2003).])
if test "$_MIDL_MAJOR_VERSION" != "5" -a "$_MIDL_FULL_VERSION" != "6.00.0347" -a "$_MIDL_FULL_VERSION" != "6.00.0361" -a "$_MIDL_FULL_VERSION" != "6.00.0364"; then
AC_MSG_ERROR([Midl version $_MIDL_FULL_VERSION was found. Midl version must be 5.x.x (VC6*) or 6.00.0347 (VC7) or 6.00.0361 (VC.net 2003) or 6.00.0364 (VC 2005).])
fi
# Add flags if necessary
@ -405,6 +409,7 @@ case "$target" in
esac
AC_SUBST(MIDL_FLAGS)
AC_SUBST(_MSC_VER)
if test -n "$_WIN32_MSVC"; then
SKIP_PATH_CHECKS=1

Просмотреть файл

@ -94,6 +94,6 @@ EXPORTS = \
# static lib.
FORCE_STATIC_LIB = 1
include $(topsrcdir)/config/rules.mk
ENABLE_CXX_EXCEPTIONS = 1
CXXFLAGS += -GX
include $(topsrcdir)/config/rules.mk

Просмотреть файл

@ -114,9 +114,11 @@ OS_LIBS += \
MIDL_GENERATED_FILES = MozillaControl_i.c MozillaControl.h
GARBAGE += $(DEFFILE) $(MIDL_GENERATED_FILES) done_gen
ENABLE_CXX_EXCEPTIONS = 1
include $(topsrcdir)/config/rules.mk
CXXFLAGS += /D "WIN32" /GX /U "ClientWallet"
CXXFLAGS += /D "WIN32" /U "ClientWallet"
LDFLAGS += -SUBSYSTEM:windows /DLL
ifdef MOZ_NO_DEBUG_RTL

Просмотреть файл

@ -61,10 +61,12 @@ OS_LIBS += \
uuid.lib \
shell32.lib \
$(NULL)
ENABLE_CXX_EXCEPTIONS = 1
include $(topsrcdir)/config/rules.mk
CXXFLAGS += /D "WIN32" /GX /GF /MT /O1
CXXFLAGS += /D "WIN32" /GF /MT /O1
libs::
ifdef MOZ_ACTIVEX_REGISTRATION

Просмотреть файл

@ -228,9 +228,9 @@ endif
SRCS_IN_OBJDIR = 1
include $(topsrcdir)/config/rules.mk
ENABLE_CXX_EXCEPTIONS = 1
CXXFLAGS += -GX
include $(topsrcdir)/config/rules.mk
ifdef MOZ_ACTIVEX_PLUGIN_LIVCONNECT
copy-sources: $(addprefix $(MOZCTLSRC)/,$(_CONTROL_CPPSRCS))

Просмотреть файл

@ -65,10 +65,7 @@ LIBS = \
$(XPCOM_LIBS) \
$(NSPR_LIBS) \
$(NULL)
ENABLE_CXX_EXCEPTIONS = 1
include $(topsrcdir)/config/rules.mk
ifeq ($(OS_ARCH),WINNT)
CXXFLAGS += -GX
endif

Просмотреть файл

@ -246,7 +246,11 @@ endif
# Prevent floating point errors caused by VC++ optimizations
ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_)
ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER)))
CFLAGS += /Op
else
CFLAGS += /fp:precise
endif
endif # WINNT
ifeq ($(OS_ARCH),FreeBSD)

Просмотреть файл

@ -142,6 +142,7 @@ endif
ifeq ($(OS_ARCH),WINNT)
ifndef GNU_CXX
ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER)))
# whole program optimization and precompiled headers are incompatible
ifeq (,$(findstring GL,$(CXXFLAGS)))
# use pre-compiled headers
@ -151,4 +152,5 @@ CXXFLAGS += -YX -Fp$(LIBRARY_NAME).pch
endif
endif
endif
endif

Просмотреть файл

@ -55,12 +55,10 @@ endif
ifeq ($(OS_ARCH),WINNT)
DIRS += eudora
ifneq ($(_MSC_VER),1100)
ifndef GNU_CC
DIRS += oexpress outlook
endif
endif
endif
ifdef MOZ_STATIC_MAIL_BUILD
DIRS += build

Просмотреть файл

@ -75,12 +75,10 @@ endif
ifeq ($(OS_ARCH),WINNT)
REQUIRES += impEudra
ifneq ($(_MSC_VER),1100)
ifndef GNU_CC
REQUIRES += importOE impOutlk
endif
endif
endif
@ -102,12 +100,10 @@ endif
ifeq ($(OS_ARCH),WINNT)
SHARED_LIBRARY_LIBS += $(DIST)/lib/$(LIB_PREFIX)impEudra_s.$(LIB_SUFFIX)
ifneq ($(_MSC_VER),1100)
ifndef GNU_CC
SHARED_LIBRARY_LIBS += $(DIST)/lib/$(LIB_PREFIX)importOE_s.$(LIB_SUFFIX)
SHARED_LIBRARY_LIBS += $(DIST)/lib/$(LIB_PREFIX)impOutlk_s.$(LIB_SUFFIX)
endif
endif
endif

Просмотреть файл

@ -66,7 +66,7 @@ endif
GARBAGE += $(MODULES_STANDALONE_LCPPSRCS) $(wildcard *.$(OBJ_SUFFIX))
ifeq ($(OS_ARCH),WINNT)
USE_NON_MT_LIBS=1
USE_STATIC_LIBS=1
GARBAGE += $(addprefix $(srcdir)/,$(MODULES_STANDALONE_LCPPSRCS))
endif

Просмотреть файл

@ -53,7 +53,7 @@ REQUIRES = macmorefiles
endif
ifeq ($(OS_ARCH),WINNT)
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
endif
CSRCS = $(MODULES_LIBREG_SRC_LCSRCS)

Просмотреть файл

@ -140,14 +140,11 @@ ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
EXTRA_DSO_LDOPTS += $(TK_LIBS)
endif
ENABLE_CXX_EXCEPTIONS = 1
include $(topsrcdir)/config/rules.mk
ifeq ($(OS_ARCH),WINNT)
ifdef GNU_CC
CXXFLAGS += -fexceptions
else
CXXFLAGS += -GX
endif
OS_LIBS += $(call EXPAND_LIBNAME,version)
endif

Просмотреть файл

@ -76,14 +76,13 @@ FORCE_USE_PIC = 1
NO_DIST_INSTALL = 1
NO_INSTALL = 1
ENABLE_CXX_EXCEPTIONS = 1
include $(topsrcdir)/config/rules.mk
_OS_LIBS = version
ifdef GNU_CC
CXXFLAGS += -fexceptions
_OS_LIBS += gdi32
else
CXXFLAGS += -GX
endif
OS_LIBS += $(call EXPAND_LIBNAME,$(_OS_LIBS))

Просмотреть файл

@ -38,7 +38,7 @@ FORCE_STATIC_LIB = 1
SRCS_IN_OBJDIR = 1
ifeq ($(OS_ARCH),WINNT)
USE_NON_MT_LIBS=1
USE_STATIC_LIBS=1
endif
ifeq ($(OS_ARCH),OS2)

Просмотреть файл

@ -40,7 +40,7 @@ EXTRA_DSO_LIBS = \
xpnet_s \
$(NULL)
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
CSRCS = \
dialogs.c \

Просмотреть файл

@ -30,7 +30,7 @@ MODULE = setuprsc
LIBRARY_NAME = setuprsc
RESFILE = setuprsc.res
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
NO_DIST_INSTALL = 1

Просмотреть файл

@ -31,7 +31,7 @@ PROGRAM = uninstall$(BIN_SUFFIX)
RESFILE = uninstall.res
REQUIRES = $(ZLIB_REQUIRES)
EXTRA_DSO_LIBS = mozz_s
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
EXPORTS = logkeys.h

Просмотреть файл

@ -103,13 +103,9 @@ GARBAGE += L_Ienumfe.cpp $(srcdir)/L_Ienumfe.cpp
SRCS_IN_OBJDIR = 1
include $(topsrcdir)/config/rules.mk
ENABLE_CXX_EXCEPTIONS = 1
ifdef GNU_CC
CXXFLAGS += -fexceptions
else
CXXFLAGS += -GX
endif
include $(topsrcdir)/config/rules.mk
# Silly case-insensitive fs
export:: IENUMFE.CPP

Просмотреть файл

@ -146,8 +146,8 @@ class nsIFileSpec;
// Unix currently does not support iostreams at all. Their compilers do not support
// ANSI C++, or even ARM C++.
//
// Windows supports them, but only if you turn on the -GX compile flag, to support
// exceptions.
// Windows supports them, but only if you turn on the -GX (VC5-VC7.x) or -EHsc (VC8+)
// compile flag, to support exceptions.
// Catch 22.
#define NS_USE_PR_STDIO

Просмотреть файл

@ -94,6 +94,8 @@ ifeq ($(OS_ARCH)$(OS_RELEASE),FreeBSD2)
LIBS += -lpcap
endif
ENABLE_CXX_EXCEPTIONS = 1
include $(topsrcdir)/config/rules.mk
LOCAL_INCLUDES = \
@ -101,14 +103,6 @@ LOCAL_INCLUDES = \
-I$(srcdir)/services \
$(NULL)
ifeq ($(OS_ARCH),WINNT)
ifdef GNU_CXX
CXXFLAGS += -fexceptions
else
CXXFLAGS += -GX
endif
endif
libs::
$(INSTALL) $(srcdir)/test.properties $(DIST)/bin/res

Просмотреть файл

@ -63,7 +63,7 @@ else
ifeq ($(OS_ARCH),WINNT)
CPPSRCS += InstallCleanupWin.cpp
MOZ_WINCONSOLE = 0
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
else
CPPSRCS += InstallCleanupUnix.cpp
endif

Просмотреть файл

@ -62,7 +62,7 @@ CPPSRCS = \
FORCE_STATIC_LIB = 1
ifeq ($(OS_ARCH),WINNT)
USE_NON_MT_LIBS=1
USE_STATIC_LIBS=1
endif
include $(topsrcdir)/config/rules.mk

Просмотреть файл

@ -52,7 +52,7 @@ LIBS = -lxpnet_s
ifeq ($(OS_ARCH),WINNT)
MAPFILE = TestLibxpnet.map
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
endif
include $(topsrcdir)/config/rules.mk

Просмотреть файл

@ -44,7 +44,6 @@ include $(DEPTH)/config/autoconf.mk
PROGRAM = stubinstall$(BIN_SUFFIX)
RESFILE = stubinstall.res
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
CPPSRCS = \

Просмотреть файл

@ -56,7 +56,6 @@ EXTRA_DSO_LIBS = \
xpnet_s \
$(NULL)
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
CSRCS = \

Просмотреть файл

@ -46,7 +46,6 @@ MODULE = setuprsc
LIBRARY_NAME = setuprsc
RESFILE = setuprsc.res
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
NO_DIST_INSTALL = 1

Просмотреть файл

@ -47,7 +47,6 @@ PROGRAM = uninstall$(BIN_SUFFIX)
RESFILE = uninstall.res
REQUIRES = $(ZLIB_REQUIRES)
EXTRA_DSO_LIBS = mozz_s
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
EXPORTS = logkeys.h

Просмотреть файл

@ -44,7 +44,7 @@ include $(DEPTH)/config/autoconf.mk
PROGRAM = GetShortPathName$(BIN_SUFFIX)
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
CSRCS = GetShortPathName.c

Просмотреть файл

@ -44,7 +44,7 @@ include $(DEPTH)/config/autoconf.mk
PROGRAM = ds32$(BIN_SUFFIX)
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
CPPSRCS = ds32.cpp

Просмотреть файл

@ -46,7 +46,7 @@ PROGRAM = nsinstall$(BIN_SUFFIX)
RESFILE = nsinstall.res
REQUIRES = $(ZLIB_REQUIRES)
EXTRA_DSO_LIBS = mozz_s
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
CPPSRCS = nsinstall.cpp

Просмотреть файл

@ -45,7 +45,7 @@ include $(DEPTH)/config/autoconf.mk
PROGRAM = nsztool$(BIN_SUFFIX)
REQUIRES = $(ZLIB_REQUIRES)
EXTRA_DSO_LIBS = mozz_s
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
CSRCS = nsztool.c

Просмотреть файл

@ -46,7 +46,7 @@ include $(DEPTH)/config/autoconf.mk
PROGRAM = PalmSyncInstall$(BIN_SUFFIX)
RESFILE = PalmSyncInstall.res
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
LOCAL_INCLUDES += -I$(PALM_CDK_INC) \
$(NULL)

Просмотреть файл

@ -44,7 +44,7 @@ include $(DEPTH)/config/autoconf.mk
PROGRAM = ren8dot3$(BIN_SUFFIX)
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
CSRCS = ren8dot3.c

Просмотреть файл

@ -56,7 +56,7 @@ EXTRA_DSO_LIBS = \
xpnet_s \
$(NULL)
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
CSRCS = \
dialogs.c \

Просмотреть файл

@ -46,7 +46,7 @@ MODULE = setuprsc
LIBRARY_NAME = setuprsc
RESFILE = setuprsc.res
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
NO_DIST_INSTALL = 1

Просмотреть файл

@ -47,7 +47,7 @@ PROGRAM = uninstall$(BIN_SUFFIX)
RESFILE = uninstall.res
REQUIRES = $(ZLIB_REQUIRES)
EXTRA_DSO_LIBS = mozz_s
USE_NON_MT_LIBS = 1
USE_STATIC_LIBS = 1
EXPORTS = logkeys.h