MS build config updates, suppress warning C4344

This commit is contained in:
Andrew Johnson
2016-08-17 11:19:15 -05:00
parent b3ac81923a
commit e5d0915b51
18 changed files with 103 additions and 98 deletions

View File

@ -3,9 +3,8 @@
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
# EPICS BASE is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# Cross compiler default definitions
@ -27,6 +26,6 @@ CROSS_LDFLAGS = $(addprefix -L,$(GNU_TARGET_LIB_DIR))
CMPLR_PREFIX_CROSS=$(addsuffix -,$(GNU_TARGET))
CMPLR_PREFIX=$(CMPLR_PREFIX_$(BUILD_CLASS))
# All cross builds use the gnu compiler
# Cross builds usually use the gnu compiler
include $(CONFIG)/CONFIG.gnuCommon

View File

@ -1,7 +1,7 @@
# CONFIG.win32-x86-debug.Common
#
# Definitions for win32-x86 debug with debug compiler flags
# Sites may override these definitions in CONFIG_SITE.win32-x86-debug.Common
# Definitions for win32-x86-debug host arch
# Override these definitions in CONFIG_SITE.win32-x86-debug.Common
#-------------------------------------------------------
#Include definitions common to win32-x86 hosts

View File

@ -1,9 +1,12 @@
# CONFIG.win32-x86-debug.win32-x86-debug
#
# Definitions for win32-x86 debug compiler host - win32-x86 debug compiler target builds
# Sites may override these definitions in CONFIG_SITE.win32-x86-debug.win32-x86-debug
# Definitions for win32-x86-debug host - win32-x86-debug target build
# Override these definitions in CONFIG_SITE.win32-x86-debug.win32-x86-debug
#-------------------------------------------------------
#Include definitions common to win32-x86 builds
include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
-include $(CONFIG)/os/CONFIG_SITE.win32-x86.win32-x86
# Override CONFIG_SITE settings:
HOST_OPT=NO

View File

@ -1,10 +1,13 @@
# CONFIG.win32-x86-static.win32-x86.static
#
# Definitions for win32-x86-static target archs when host arch is win32-x86-static
# Sites may override these definitions in CONFIG_SITE.win32-x86-static.win32-x86-static
# Definitions for win32-x86-static host - win32-x86-static target build
# Override these definitions in CONFIG_SITE.win32-x86-static.win32-x86-static
#-------------------------------------------------------
#Include definitions common to win32-x86 builds
include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
-include $(CONFIG)/os/CONFIG_SITE.win32-x86.win32-x86
# Override CONFIG_SITE settings:
SHARED_LIBRARIES = NO
STATIC_BUILD = YES

View File

@ -1,7 +1,7 @@
# CONFIG.win32-x86.Common
#
# Definitions for win32-x86 host archs
# Sites may override these definitions in CONFIG_SITE.win32-x86.Common
# Override these definitions in CONFIG_SITE.win32-x86.Common
#-------------------------------------------------------
CP = $(PERL) -MExtUtils::Command -e cp

View File

@ -1,7 +1,7 @@
# CONFIG.win32-x86.win32-x86
#
# Definitions for win32-x86 target archs when host arch is win32-x86
# Sites may override these definitions in CONFIG_SITE.win32-x86.win32-x86
# Definitions for win32-x86 host - win32-x86 target build
# Override these definitions in CONFIG_SITE.win32-x86.win32-x86
#-------------------------------------------------------
# Win32 valid build types and include directory suffixes
@ -28,16 +28,21 @@ BAFCMD = bscmake /nologo /o $@
# Configure OS vendor C compiler
CC = cl
# Override CONFIG.gnuCommon for cross builds.
# Override CONFIG.gnuCommon settings for cross builds.
GNU = NO
HDEPENDS_METHOD = CMD
# Compiler flags for C files (C++ is below)
#
# /W<N> use warning level N
# (maximum (lint type) warnings at level 4)
# /w44355 set "'this' used in the base initializer list" to be level 4
WARN_CFLAGS_YES = /W3 /w44355
WARN_CFLAGS_NO = /W1
# /W<d> display warnings at level d
# /W4 is for maximum (lint type) warnings
# /W3 is for production quality warnings
# /W2 displays significant warnings
# /W1 is the default and shows severe warnings only
# /w<d><n> Set warning C<n> to be shown at level <d>
WARN_CFLAGS_YES = /W3
WARN_CFLAGS_NO = /W1
#
# /Ox maximum optimizations
@ -78,9 +83,7 @@ STATIC_CFLAGS_YES= /MT$(VISC_STATIC_CFLAGS_DEBUG) $(VISC_DLL)
STATIC_CFLAGS_NO= /MD$(VISC_STATIC_CFLAGS_DEBUG) $(VISC_DLL)
# OS vendor c preprocessor
CPP = cl /C /E
#GNU c preprocessor
#CPP = gcc -x c -E
CPP = cl /nologo /C /E
# Configure OS vendor C++ compiler
#
@ -99,12 +102,20 @@ CCC = cl /nologo /EHsc /GR
CODE_CPPFLAGS += /nologo /D__STDC__=0
CODE_CPPFLAGS += /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
# Compiler flags for C++ files
#
# /W<N> use warning level N
# (maximum lint level warnings at level 4)
# /w44355 set "'this' used in the base initializer list" to be level 4
WARN_CXXFLAGS_YES = /W3 /w44355
WARN_CXXFLAGS_NO = /W1
# /W<d> display warnings at level d
# /W4 is for maximum (lint type) warnings
# /W3 is for production quality warnings
# /W2 displays significant warnings
# /W1 is the default and shows severe warnings only
# /w<d><n> Set warning C<n> to be shown at level <d>
# /w44355 "'this' used in the base initializer list"
# /w44344 "behavior change: use of explicit template arguments results in ..."
WARN_CXXFLAGS_YES = /W3 /w44355 /w44344
WARN_CXXFLAGS_NO = /W1
#
# /Ox maximum optimizations

View File

@ -1,17 +1,15 @@
# CONFIG.win32-x86.win32-x86-debug
#
# Definitions for win32-x86 host - win32-x86-debug target build
# Sites may override these definitions in CONFIG_SITE.win32-x86.win32-x86-debug
# Override these definitions in CONFIG_SITE.win32-x86.win32-x86-debug
#-------------------------------------------------------
-include $(CONFIG)/os/CONFIG.Common.win32-x86
-include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
-include $(CONFIG)/os/CONFIG_SITE.Common.win32-x86
#Include definitions common to win32-x86 builds
include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
-include $(CONFIG)/os/CONFIG_SITE.win32-x86.win32-x86
GNU = NO
HDEPENDS_METHOD = CMD
# Override CONFIG.CrossCommon settings:
BUILD_CLASS = HOST
# Override CONFIG_SITE settings:
HOST_OPT = NO

View File

@ -1,11 +1,16 @@
# CONFIG.win32-x86.win32-x86-static
#
# Definitions for win32-x86-static target archs when host arch is win32-x86
# Sites may override these definitions in CONFIG_SITE.win32-x86.win32-x86-static
# Definitions for win32-x86 host - win32-x86-static target build
# Override these definitions in CONFIG_SITE.win32-x86.win32-x86-static
#-------------------------------------------------------
#Include definitions common to win32-x86 builds
include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
-include $(CONFIG)/os/CONFIG_SITE.win32-x86.win32-x86
# Override CONFIG.CrossCommon settings:
BUILD_CLASS = HOST
# Override CONFIG_SITE settings:
SHARED_LIBRARIES = NO
STATIC_BUILD = YES

View File

@ -1,25 +0,0 @@
# CONFIG.win-x86.windows-x64
#
# Definitions for windows-x64 target archs when host arch is win32-x86
# Sites may override these definitions in CONFIG_SITE.win32-x86.windows-x64
#-------------------------------------------------------
-include $(CONFIG)/os/CONFIG.Common.win32-x86
-include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
ARCH_DEP_CPPFLAGS += /favor:blend
#ARCH_DEP_CPPFLAGS += /Wp64
# /favor:blend both AMD64 and INTEL64 This is the default
# /favor:AMD64
# /favor:INTEL64 (new value)
# /favor:EN64T (old value)
OPT_LDFLAGS += /MACHINE:X64
# /MACHINE:X64
# /MACHINE:IA64 (Itanium)
# /MACHINE:X86
#The following option does not work
#ARCH_DEP_CPPFLAGS += /env x64

View File

@ -1,7 +1,7 @@
# CONFIG.windows-x64-debug.Common
#
# Definitions for windows-x64 debug with debug compiler flags
# Sites may override these definitions in CONFIG_SITE.windows-x64-debug.Common
# Definitions for windows-x64-debug host arch
# Override these definitions in CONFIG_SITE.windows-x64-debug.Common
#-------------------------------------------------------
#Include definitions common to windows-x64 hosts

View File

@ -1,8 +1,9 @@
# CONFIG.windows-x64-static.Common
#
# Definitions for windows-x64-static host archs
# Sites may override these definitions in CONFIG_SITE.windows-x64-static.Common
# Override these definitions in CONFIG_SITE.windows-x64-static.Common
#-------------------------------------------------------
#Include definitions common to windows-x64 hosts
include $(CONFIG)/os/CONFIG.windows-x64.Common

View File

@ -1,10 +1,12 @@
# CONFIG.windows-x64-static.windows-x64-static
#
# Definitions for windows-x64-static target archs when host arch is windows-x64-static
# Sites may override these definitions in CONFIG_SITE.windows-x64-static.windows-x64-static
# Definitions for windows-x64-static host - windows-x64-static target build
# Override these definitions in CONFIG_SITE.windows-x64-static.windows-x64-static
#-------------------------------------------------------
#Include definitions common to windows-x64 builds
include $(CONFIG)/os/CONFIG.windows-x64.windows-x64
# Override CONFIG_SITE settings:
SHARED_LIBRARIES = NO
STATIC_BUILD= YES

View File

@ -1,10 +1,9 @@
# CONFIG.windows-x64.Common
#
# Definitions for windows-x64 host archs
# Sites may override these definitions in CONFIG_SITE.windows-x64.Common
# Definitions for windows-x64 host arch
# Override these definitions in CONFIG_SITE.windows-x64.Common
#-------------------------------------------------------
-include $(CONFIG)/os/CONFIG.win32-x86.Common
WIND_HOST_TYPE = x86-win32
#Include definitions common to win32-x86 hosts
include $(CONFIG)/os/CONFIG.win32-x86.Common

View File

@ -1,21 +1,21 @@
# CONFIG.windows-x64.windows-x64
#
# Definitions for windows-x64 target archs when host arch is windows-x64
# Sites may override these definitions in CONFIG_SITE.windows-x64.windows-x64
# Definitions for windows-x64 host - windows-x64 target build
# Override these definitions in CONFIG_SITE.windows-x64.windows-x64
#-------------------------------------------------------
-include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
#Include definitions common to win32-x86 builds
include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
-include $(CONFIG)/os/CONFIG_SITE.win32-x86.win32-x86
# Modify CONFIG.win32-x86.win32-x86 settings:
ARCH_DEP_CPPFLAGS += /favor:blend
#ARCH_DEP_CPPFLAGS += /Wp64
# /favor:blend both AMD64 and INTEL64
# /favor:AMD64
# /favor:INTEL64 (new value)
# /favor:EN64T (old value)
OPT_LDFLAGS += /MACHINE:X64
# /MACHINE:X64
# /MACHINE:IA64 (Itanium)
# /MACHINE:X86

View File

@ -1,9 +1,14 @@
# CONFIG.windows-x64.windows-x64-debug
#
# Definitions for windows-x64 compiler host - windows-x64 debug compiler target builds
# Sites may override these definitions in CONFIG_SITE.windows-x64.windows-x64-debug
# Definitions for windows-x64 host - windows-x64-debug target build
# Override these definitions in CONFIG_SITE.windows-x64.windows-x64-debug
#-------------------------------------------------------
#Include definitions common to windows-x64 builds
include $(CONFIG)/os/CONFIG.windows-x64.windows-x64
# Override CONFIG.CrossCommon settings:
BUILD_CLASS = HOST
# Override CONFIG_SITE settings:
HOST_OPT=NO

View File

@ -1,11 +1,15 @@
# CONFIG.windows-x86.windows-x86-static
# CONFIG.windows-x64.windows-x64-static
#
# Definitions for windows-x64-static target archs when host arch is windows-x64
# Sites may override these definitions in CONFIG_SITE.windows-x64.windows-x64-static
# Definitions for windows-x64 host - windows-x64-static target build
# Override these definitions in CONFIG_SITE.windows-x64.windows-x64-static
#-------------------------------------------------------
#Include definitions common to windows-x64 builds
include $(CONFIG)/os/CONFIG.windows-x64.windows-x64
# Override CONFIG.CrossCommon settings:
BUILD_CLASS = HOST
# Override CONFIG_SITE settings:
SHARED_LIBRARIES = NO
STATIC_BUILD = YES

View File

@ -1,16 +0,0 @@
# If you have Visual C++ 6.0, uncomment the following override lines
# This will to eliminate warnings about unknown options /GL, /LTCG, and /w44355.
#OPT_CFLAGS_YES = /Ox
#OPT_CXXFLAGS_YES = /Ox
#OPT_CFLAGS_NO = /Zi
#OPT_CXXFLAGS_NO = /Zi
#LINK_OPT_FLAGS_YES = /incremental:no /opt:ref /release $(PROD_VERSION:%=/version:%)
#WARN_CFLAGS_YES = /W3
#WARN_CXXFLAGS_YES = /W3
# If you have Visual C++ 8.0 or 8.0 express, uncomment the following override.
# This will eliminate warnings about /GX being deprecated.
#CCC = cl /nologo /EHsc /GR

View File

@ -13,6 +13,22 @@
<!-- Insert new items immediately below here ... -->
<h3>Microsoft Visual Studio builds</h3>
<p>The build configuration files for builds using the Microsoft compilers have
been updated, although there should be no noticable difference at most sites.
One extra compiler warning is now being suppressed for C++ code, <tt>C4344:
behavior change: use of explicit template arguments results in ...</tt> which is
gratuitous and was appearing frequently in builds of the EPICS V4 modules.</p>
<p>Cross-builds of the windows-x64 target from a win32-x86 host have been
removed as they don't actually work within the context of a single <tt>make</tt>
run. Significant changes to the build configuration files would be necessary for
these kinds of cross-builds to work properly, which could be done if someone
needs them (email Andrew Johnson before working on this, and see
<a href="http://stackoverflow.com/questions/5807647/how-do-you-compile-32-bit-and-64-bit-applications-at-the-same-time-in-visual-stu">
this stack-overflow answer</a> for a starting point).</p>
<h3>Bazaar keywords such as 'Revision-Id' removed</h3>
<p>In preparation for moving to git in place of the Bazaar revision control