hotspot/make/windows/makefiles/compile.make
author erikj
Wed, 22 Feb 2012 09:24:35 +0100
changeset 11955 aeca8151886e
parent 11721 dcd1f62c9caf
child 12503 9df71f999005
permissions -rw-r--r--
7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable Reviewed-by: dholmes, ohrstrom, ohair, jcoomes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
     1
#
8303
81a0b8663748 7017824: Add support for creating 64-bit Visual Studio projects
sla
parents: 7698
diff changeset
     2
# Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
     3
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
489c9b5090e2 Initial load
duke
parents:
diff changeset
     4
#
489c9b5090e2 Initial load
duke
parents:
diff changeset
     5
# This code is free software; you can redistribute it and/or modify it
489c9b5090e2 Initial load
duke
parents:
diff changeset
     6
# under the terms of the GNU General Public License version 2 only, as
489c9b5090e2 Initial load
duke
parents:
diff changeset
     7
# published by the Free Software Foundation.
489c9b5090e2 Initial load
duke
parents:
diff changeset
     8
#
489c9b5090e2 Initial load
duke
parents:
diff changeset
     9
# This code is distributed in the hope that it will be useful, but WITHOUT
489c9b5090e2 Initial load
duke
parents:
diff changeset
    10
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
489c9b5090e2 Initial load
duke
parents:
diff changeset
    11
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
489c9b5090e2 Initial load
duke
parents:
diff changeset
    12
# version 2 for more details (a copy is included in the LICENSE file that
489c9b5090e2 Initial load
duke
parents:
diff changeset
    13
# accompanied this code).
489c9b5090e2 Initial load
duke
parents:
diff changeset
    14
#
489c9b5090e2 Initial load
duke
parents:
diff changeset
    15
# You should have received a copy of the GNU General Public License version
489c9b5090e2 Initial load
duke
parents:
diff changeset
    16
# 2 along with this work; if not, write to the Free Software Foundation,
489c9b5090e2 Initial load
duke
parents:
diff changeset
    17
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    18
#
5547
f4b087cbb361 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 5377
diff changeset
    19
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
f4b087cbb361 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 5377
diff changeset
    20
# or visit www.oracle.com if you need additional information or have any
f4b087cbb361 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 5377
diff changeset
    21
# questions.
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    22
#  
489c9b5090e2 Initial load
duke
parents:
diff changeset
    23
#
489c9b5090e2 Initial load
duke
parents:
diff changeset
    24
489c9b5090e2 Initial load
duke
parents:
diff changeset
    25
# Generic compiler settings
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
    26
!if "x$(CXX)" == "x"
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    27
CXX=cl.exe
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
    28
!endif
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    29
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    30
# CXX Flags: (these vary slightly from VC6->VS2003->VS2005 compilers)
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    31
#   /nologo   Supress copyright message at every cl.exe startup
489c9b5090e2 Initial load
duke
parents:
diff changeset
    32
#   /W3       Warning level 3
489c9b5090e2 Initial load
duke
parents:
diff changeset
    33
#   /Zi       Include debugging information
489c9b5090e2 Initial load
duke
parents:
diff changeset
    34
#   /WX       Treat any warning error as a fatal error
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
    35
#   /MD       Use dynamic multi-threaded runtime (msvcrt.dll or msvc*NN.dll)
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    36
#   /MTd      Use static multi-threaded runtime debug versions
489c9b5090e2 Initial load
duke
parents:
diff changeset
    37
#   /O1       Optimize for size (/Os), skips /Oi
489c9b5090e2 Initial load
duke
parents:
diff changeset
    38
#   /O2       Optimize for speed (/Ot), adds /Oi to /O1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    39
#   /Ox       Old "all optimizations flag" for VC6 (in /O1)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    40
#   /Oy       Use frame pointer register as GP reg (in /Ox and /O1)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    41
#   /GF       Merge string constants and put in read-only memory (in /O1)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    42
#   /Gy       Func level link (in /O1, allows for link-time func ordering)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    43
#   /Gs       Inserts stack probes (in /O1)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    44
#   /GS       Inserts security stack checks in some functions (VS2005 default)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    45
#   /Oi       Use intrinsics (in /O2)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    46
#   /Od       Disable all optimizations
489c9b5090e2 Initial load
duke
parents:
diff changeset
    47
#
489c9b5090e2 Initial load
duke
parents:
diff changeset
    48
# NOTE: Normally following any of the above with a '-' will turn off that flag
230
b4ebad8ef528 6655385: Disable frame pointer omission in jvm.dll on Windows for better crash logs
sbohne
parents: 1
diff changeset
    49
#
b4ebad8ef528 6655385: Disable frame pointer omission in jvm.dll on Windows for better crash logs
sbohne
parents: 1
diff changeset
    50
# 6655385: For VS2003/2005 we now specify /Oy- (disable frame pointer
b4ebad8ef528 6655385: Disable frame pointer omission in jvm.dll on Windows for better crash logs
sbohne
parents: 1
diff changeset
    51
# omission.)  This has little to no effect on performance while vastly
b4ebad8ef528 6655385: Disable frame pointer omission in jvm.dll on Windows for better crash logs
sbohne
parents: 1
diff changeset
    52
# improving the quality of crash log stack traces involving jvm.dll.
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    53
489c9b5090e2 Initial load
duke
parents:
diff changeset
    54
# These are always used in all compiles
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    55
CXX_FLAGS=/nologo /W3 /WX
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    56
489c9b5090e2 Initial load
duke
parents:
diff changeset
    57
# Let's add debug information always too.
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    58
CXX_FLAGS=$(CXX_FLAGS) /Zi
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    59
489c9b5090e2 Initial load
duke
parents:
diff changeset
    60
# Based on BUILDARCH we add some flags and select the default compiler name
489c9b5090e2 Initial load
duke
parents:
diff changeset
    61
!if "$(BUILDARCH)" == "ia64"
489c9b5090e2 Initial load
duke
parents:
diff changeset
    62
MACHINE=IA64
489c9b5090e2 Initial load
duke
parents:
diff changeset
    63
DEFAULT_COMPILER_NAME=VS2003
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    64
CXX_FLAGS=$(CXX_FLAGS) /D "CC_INTERP" /D "_LP64" /D "IA64"
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    65
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
    66
489c9b5090e2 Initial load
duke
parents:
diff changeset
    67
!if "$(BUILDARCH)" == "amd64"
489c9b5090e2 Initial load
duke
parents:
diff changeset
    68
MACHINE=AMD64
489c9b5090e2 Initial load
duke
parents:
diff changeset
    69
DEFAULT_COMPILER_NAME=VS2005
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    70
CXX_FLAGS=$(CXX_FLAGS) /D "_LP64" /D "AMD64"
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    71
LP64=1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    72
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
    73
489c9b5090e2 Initial load
duke
parents:
diff changeset
    74
!if "$(BUILDARCH)" == "i486"
489c9b5090e2 Initial load
duke
parents:
diff changeset
    75
MACHINE=I386
489c9b5090e2 Initial load
duke
parents:
diff changeset
    76
DEFAULT_COMPILER_NAME=VS2003
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    77
CXX_FLAGS=$(CXX_FLAGS) /D "IA32"
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    78
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
    79
489c9b5090e2 Initial load
duke
parents:
diff changeset
    80
# Sanity check, this is the default if not amd64, ia64, or i486
489c9b5090e2 Initial load
duke
parents:
diff changeset
    81
!ifndef DEFAULT_COMPILER_NAME
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    82
CXX=ARCH_ERROR
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    83
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
    84
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    85
CXX_FLAGS=$(CXX_FLAGS) /D "WIN32" /D "_WINDOWS"
7452
b3fa838286de 7006354: Updates to Visual Studio project creation and development launcher
sla
parents: 5547
diff changeset
    86
# Must specify this for sharedRuntimeTrig.cpp
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    87
CXX_FLAGS=$(CXX_FLAGS) /D "VM_LITTLE_ENDIAN"
7452
b3fa838286de 7006354: Updates to Visual Studio project creation and development launcher
sla
parents: 5547
diff changeset
    88
b3fa838286de 7006354: Updates to Visual Studio project creation and development launcher
sla
parents: 5547
diff changeset
    89
# Used for platform dispatching
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    90
CXX_FLAGS=$(CXX_FLAGS) /D TARGET_OS_FAMILY_windows
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    91
CXX_FLAGS=$(CXX_FLAGS) /D TARGET_ARCH_$(Platform_arch)
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    92
CXX_FLAGS=$(CXX_FLAGS) /D TARGET_ARCH_MODEL_$(Platform_arch_model)
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    93
CXX_FLAGS=$(CXX_FLAGS) /D TARGET_OS_ARCH_windows_$(Platform_arch)
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    94
CXX_FLAGS=$(CXX_FLAGS) /D TARGET_OS_ARCH_MODEL_windows_$(Platform_arch_model)
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    95
CXX_FLAGS=$(CXX_FLAGS) /D TARGET_COMPILER_visCPP
7452
b3fa838286de 7006354: Updates to Visual Studio project creation and development launcher
sla
parents: 5547
diff changeset
    96
b3fa838286de 7006354: Updates to Visual Studio project creation and development launcher
sla
parents: 5547
diff changeset
    97
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
    98
# MSC_VER is a 4 digit number that tells us what compiler is being used
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
    99
#    and is generated when the local.make file is created by build.make
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   100
#    via the script get_msc_ver.sh
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   101
#
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   102
#    If MSC_VER is set, it overrides the above default setting.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   103
#    But it should be set.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   104
#    Possible values:
489c9b5090e2 Initial load
duke
parents:
diff changeset
   105
#      1200 is for VC6
489c9b5090e2 Initial load
duke
parents:
diff changeset
   106
#      1300 and 1310 is VS2003 or VC7
489c9b5090e2 Initial load
duke
parents:
diff changeset
   107
#      1399 is our fake number for the VS2005 compiler that really isn't 1400
489c9b5090e2 Initial load
duke
parents:
diff changeset
   108
#      1400 is for VS2005
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   109
#      1500 is for VS2008
5377
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   110
#      1600 is for VS2010
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   111
#    Do not confuse this MSC_VER with the predefined macro _MSC_VER that the
489c9b5090e2 Initial load
duke
parents:
diff changeset
   112
#    compiler provides, when MSC_VER==1399, _MSC_VER will be 1400.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   113
#    Normally they are the same, but a pre-release of the VS2005 compilers
489c9b5090e2 Initial load
duke
parents:
diff changeset
   114
#    in the Windows 64bit Platform SDK said it was 1400 when it was really
489c9b5090e2 Initial load
duke
parents:
diff changeset
   115
#    closer to VS2003 in terms of option spellings, so we use 1399 for that
489c9b5090e2 Initial load
duke
parents:
diff changeset
   116
#    1400 version that really isn't 1400.
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   117
#    See the file get_msc_ver.sh for more info.
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   118
!if "x$(MSC_VER)" == "x"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   119
COMPILER_NAME=$(DEFAULT_COMPILER_NAME)
489c9b5090e2 Initial load
duke
parents:
diff changeset
   120
!else
489c9b5090e2 Initial load
duke
parents:
diff changeset
   121
!if "$(MSC_VER)" == "1200"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   122
COMPILER_NAME=VC6
489c9b5090e2 Initial load
duke
parents:
diff changeset
   123
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   124
!if "$(MSC_VER)" == "1300"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   125
COMPILER_NAME=VS2003
489c9b5090e2 Initial load
duke
parents:
diff changeset
   126
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   127
!if "$(MSC_VER)" == "1310"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   128
COMPILER_NAME=VS2003
489c9b5090e2 Initial load
duke
parents:
diff changeset
   129
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   130
!if "$(MSC_VER)" == "1399"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   131
# Compiler might say 1400, but if it's 14.00.30701, it isn't really VS2005
489c9b5090e2 Initial load
duke
parents:
diff changeset
   132
COMPILER_NAME=VS2003
489c9b5090e2 Initial load
duke
parents:
diff changeset
   133
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   134
!if "$(MSC_VER)" == "1400"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   135
COMPILER_NAME=VS2005
489c9b5090e2 Initial load
duke
parents:
diff changeset
   136
!endif
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   137
!if "$(MSC_VER)" == "1500"
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   138
COMPILER_NAME=VS2008
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   139
!endif
5377
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   140
!if "$(MSC_VER)" == "1600"
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   141
COMPILER_NAME=VS2010
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   142
!endif
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   143
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   144
489c9b5090e2 Initial load
duke
parents:
diff changeset
   145
# By default, we do not want to use the debug version of the msvcrt.dll file
489c9b5090e2 Initial load
duke
parents:
diff changeset
   146
#   but if MFC_DEBUG is defined in the environment it will be used.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   147
MS_RUNTIME_OPTION = /MD
489c9b5090e2 Initial load
duke
parents:
diff changeset
   148
!if "$(MFC_DEBUG)" == "true"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   149
MS_RUNTIME_OPTION = /MTd /D "_DEBUG"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   150
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   151
489c9b5090e2 Initial load
duke
parents:
diff changeset
   152
# Always add the _STATIC_CPPLIB flag
7697
7c49699784f0 6975480: VS2010 says _STATIC_CPPLIB is deprecated, may need to change this usage
zgu
parents: 5547
diff changeset
   153
STATIC_CPPLIB_OPTION = /D _STATIC_CPPLIB /D _DISABLE_DEPRECATE_STATIC_CPPLIB
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   154
MS_RUNTIME_OPTION = $(MS_RUNTIME_OPTION) $(STATIC_CPPLIB_OPTION)
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   155
CXX_FLAGS=$(CXX_FLAGS) $(MS_RUNTIME_OPTION)
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   156
489c9b5090e2 Initial load
duke
parents:
diff changeset
   157
# How /GX option is spelled
489c9b5090e2 Initial load
duke
parents:
diff changeset
   158
GX_OPTION = /GX
489c9b5090e2 Initial load
duke
parents:
diff changeset
   159
489c9b5090e2 Initial load
duke
parents:
diff changeset
   160
# Optimization settings for various versions of the compilers and types of
489c9b5090e2 Initial load
duke
parents:
diff changeset
   161
#    builds. Three basic sets of settings: product, fastdebug, and debug.
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   162
#    These get added into CXX_FLAGS as needed by other makefiles.
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   163
!if "$(COMPILER_NAME)" == "VC6"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   164
PRODUCT_OPT_OPTION   = /Ox /Os /Gy /GF
489c9b5090e2 Initial load
duke
parents:
diff changeset
   165
FASTDEBUG_OPT_OPTION = /Ox /Os /Gy /GF
489c9b5090e2 Initial load
duke
parents:
diff changeset
   166
DEBUG_OPT_OPTION     = /Od
489c9b5090e2 Initial load
duke
parents:
diff changeset
   167
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   168
489c9b5090e2 Initial load
duke
parents:
diff changeset
   169
!if "$(COMPILER_NAME)" == "VS2003"
230
b4ebad8ef528 6655385: Disable frame pointer omission in jvm.dll on Windows for better crash logs
sbohne
parents: 1
diff changeset
   170
PRODUCT_OPT_OPTION   = /O2 /Oy-
b4ebad8ef528 6655385: Disable frame pointer omission in jvm.dll on Windows for better crash logs
sbohne
parents: 1
diff changeset
   171
FASTDEBUG_OPT_OPTION = /O2 /Oy-
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   172
DEBUG_OPT_OPTION     = /Od
489c9b5090e2 Initial load
duke
parents:
diff changeset
   173
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   174
489c9b5090e2 Initial load
duke
parents:
diff changeset
   175
!if "$(COMPILER_NAME)" == "VS2005"
230
b4ebad8ef528 6655385: Disable frame pointer omission in jvm.dll on Windows for better crash logs
sbohne
parents: 1
diff changeset
   176
PRODUCT_OPT_OPTION   = /O2 /Oy-
b4ebad8ef528 6655385: Disable frame pointer omission in jvm.dll on Windows for better crash logs
sbohne
parents: 1
diff changeset
   177
FASTDEBUG_OPT_OPTION = /O2 /Oy-
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   178
DEBUG_OPT_OPTION     = /Od
489c9b5090e2 Initial load
duke
parents:
diff changeset
   179
GX_OPTION = /EHsc
489c9b5090e2 Initial load
duke
parents:
diff changeset
   180
# This VS2005 compiler has /GS as a default and requires bufferoverflowU.lib 
489c9b5090e2 Initial load
duke
parents:
diff changeset
   181
#    on the link command line, otherwise we get missing __security_check_cookie
489c9b5090e2 Initial load
duke
parents:
diff changeset
   182
#    externals at link time. Even with /GS-, you need bufferoverflowU.lib.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   183
#    NOTE: Currently we decided to not use /GS-
489c9b5090e2 Initial load
duke
parents:
diff changeset
   184
BUFFEROVERFLOWLIB = bufferoverflowU.lib
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   185
LD_FLAGS = /manifest $(LD_FLAGS) $(BUFFEROVERFLOWLIB)
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   186
# Manifest Tool - used in VS2005 and later to adjust manifests stored
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   187
# as resources inside build artifacts.
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   188
!if "x$(MT)" == "x"
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   189
MT=mt.exe
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   190
!endif
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   191
!endif
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   192
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   193
!if "$(COMPILER_NAME)" == "VS2008"
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   194
PRODUCT_OPT_OPTION   = /O2 /Oy-
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   195
FASTDEBUG_OPT_OPTION = /O2 /Oy-
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   196
DEBUG_OPT_OPTION     = /Od
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   197
GX_OPTION = /EHsc
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   198
LD_FLAGS = /manifest $(LD_FLAGS)
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   199
# Manifest Tool - used in VS2005 and later to adjust manifests stored
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   200
# as resources inside build artifacts.
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   201
!if "x$(MT)" == "x"
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   202
MT=mt.exe
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   203
!endif
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   204
!endif
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   205
5377
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   206
!if "$(COMPILER_NAME)" == "VS2010"
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   207
PRODUCT_OPT_OPTION   = /O2 /Oy-
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   208
FASTDEBUG_OPT_OPTION = /O2 /Oy-
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   209
DEBUG_OPT_OPTION     = /Od
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   210
GX_OPTION = /EHsc
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   211
LD_FLAGS = /manifest $(LD_FLAGS)
5377
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   212
# Manifest Tool - used in VS2005 and later to adjust manifests stored
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   213
# as resources inside build artifacts.
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   214
!if "x$(MT)" == "x"
5377
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   215
MT=mt.exe
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   216
!endif
8482
2c8eb211176d 7017110: Add /SAFESEH to links on windows 32bit to verify safe exceptions
zgu
parents: 8303
diff changeset
   217
!if "$(BUILDARCH)" == "i486"
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   218
LD_FLAGS = /SAFESEH $(LD_FLAGS)
8482
2c8eb211176d 7017110: Add /SAFESEH to links on windows 32bit to verify safe exceptions
zgu
parents: 8303
diff changeset
   219
!endif
5377
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   220
!endif
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   221
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   222
# Compile for space above time.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   223
!if "$(Variant)" == "kernel"
230
b4ebad8ef528 6655385: Disable frame pointer omission in jvm.dll on Windows for better crash logs
sbohne
parents: 1
diff changeset
   224
PRODUCT_OPT_OPTION   = /O1 /Oy-
b4ebad8ef528 6655385: Disable frame pointer omission in jvm.dll on Windows for better crash logs
sbohne
parents: 1
diff changeset
   225
FASTDEBUG_OPT_OPTION = /O1 /Oy-
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   226
DEBUG_OPT_OPTION     = /Od
489c9b5090e2 Initial load
duke
parents:
diff changeset
   227
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   228
489c9b5090e2 Initial load
duke
parents:
diff changeset
   229
# If NO_OPTIMIZATIONS is defined in the environment, turn everything off
489c9b5090e2 Initial load
duke
parents:
diff changeset
   230
!ifdef NO_OPTIMIZATIONS
489c9b5090e2 Initial load
duke
parents:
diff changeset
   231
PRODUCT_OPT_OPTION   = $(DEBUG_OPT_OPTION)
489c9b5090e2 Initial load
duke
parents:
diff changeset
   232
FASTDEBUG_OPT_OPTION = $(DEBUG_OPT_OPTION)
489c9b5090e2 Initial load
duke
parents:
diff changeset
   233
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   234
489c9b5090e2 Initial load
duke
parents:
diff changeset
   235
# Generic linker settings
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   236
!if "x$(LD)" == "x"
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   237
LD=link.exe
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   238
!endif
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   239
LD_FLAGS= $(LD_FLAGS) kernel32.lib user32.lib gdi32.lib winspool.lib \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   240
 comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   241
 uuid.lib Wsock32.lib winmm.lib /nologo /machine:$(MACHINE) /opt:REF \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   242
 /opt:ICF,8 /map /debug
489c9b5090e2 Initial load
duke
parents:
diff changeset
   243
10246
adee0cf4c981 7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents: 8482
diff changeset
   244
adee0cf4c981 7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents: 8482
diff changeset
   245
!if $(MSC_VER) >= 1600 
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   246
LD_FLAGS= $(LD_FLAGS) psapi.lib
10246
adee0cf4c981 7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents: 8482
diff changeset
   247
!endif
adee0cf4c981 7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents: 8482
diff changeset
   248
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   249
# Resource compiler settings
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   250
!if "x$(RC)" == "x"
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   251
RC=rc.exe
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   252
!endif
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   253
RC_FLAGS=/D "HS_VER=$(HS_VER)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   254
	 /D "HS_DOTVER=$(HS_DOTVER)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   255
	 /D "HS_BUILD_ID=$(HS_BUILD_ID)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   256
	 /D "JDK_VER=$(JDK_VER)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   257
	 /D "JDK_DOTVER=$(JDK_DOTVER)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   258
	 /D "HS_COMPANY=$(HS_COMPANY)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   259
	 /D "HS_FILEDESC=$(HS_FILEDESC)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   260
	 /D "HS_COPYRIGHT=$(HS_COPYRIGHT)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   261
	 /D "HS_FNAME=$(HS_FNAME)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   262
	 /D "HS_INTERNAL_NAME=$(HS_INTERNAL_NAME)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   263
	 /D "HS_NAME=$(HS_NAME)"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   264
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   265
# Need this to match the CXX_FLAGS settings
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   266
!if "$(MFC_DEBUG)" == "true"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   267
RC_FLAGS = $(RC_FLAGS) /D "_DEBUG"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   268
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   269