hotspot/make/windows/makefiles/compile.make
author lana
Mon, 27 Jan 2014 21:01:55 -0800
changeset 22412 81bb5f538220
parent 20670 4f5a54933d4d
child 25052 66e77563d9e7
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
     1
#
18936
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
     2
# Copyright (c) 1997, 2013, 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
20385
eb45334d783c 8007446: Add /MP to cl.exe speeds up windows builds of OpenJDK.
erikj
parents: 18936
diff changeset
    47
#   /MP       Use multiple cores for compilation
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    48
#
489c9b5090e2 Initial load
duke
parents:
diff changeset
    49
# 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
    50
#
b4ebad8ef528 6655385: Disable frame pointer omission in jvm.dll on Windows for better crash logs
sbohne
parents: 1
diff changeset
    51
# 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
    52
# 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
    53
# improving the quality of crash log stack traces involving jvm.dll.
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    54
489c9b5090e2 Initial load
duke
parents:
diff changeset
    55
# These are always used in all compiles
17295
ebf76b993941 8013785: Respect EXTRA_CFLAGS on windows
sla
parents: 16447
diff changeset
    56
CXX_FLAGS=$(EXTRA_CFLAGS) /nologo /W3 /WX
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    57
12501
ea7feae692ae 7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents: 11721
diff changeset
    58
# Let's add debug information when Full Debug Symbols is enabled
ea7feae692ae 7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents: 11721
diff changeset
    59
!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    60
CXX_FLAGS=$(CXX_FLAGS) /Zi
12501
ea7feae692ae 7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents: 11721
diff changeset
    61
!endif
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    62
489c9b5090e2 Initial load
duke
parents:
diff changeset
    63
# Based on BUILDARCH we add some flags and select the default compiler name
489c9b5090e2 Initial load
duke
parents:
diff changeset
    64
!if "$(BUILDARCH)" == "ia64"
489c9b5090e2 Initial load
duke
parents:
diff changeset
    65
MACHINE=IA64
489c9b5090e2 Initial load
duke
parents:
diff changeset
    66
DEFAULT_COMPILER_NAME=VS2003
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    67
CXX_FLAGS=$(CXX_FLAGS) /D "CC_INTERP" /D "_LP64" /D "IA64"
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    68
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
    69
489c9b5090e2 Initial load
duke
parents:
diff changeset
    70
!if "$(BUILDARCH)" == "amd64"
489c9b5090e2 Initial load
duke
parents:
diff changeset
    71
MACHINE=AMD64
489c9b5090e2 Initial load
duke
parents:
diff changeset
    72
DEFAULT_COMPILER_NAME=VS2005
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    73
CXX_FLAGS=$(CXX_FLAGS) /D "_LP64" /D "AMD64"
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    74
LP64=1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    75
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
    76
489c9b5090e2 Initial load
duke
parents:
diff changeset
    77
!if "$(BUILDARCH)" == "i486"
489c9b5090e2 Initial load
duke
parents:
diff changeset
    78
MACHINE=I386
489c9b5090e2 Initial load
duke
parents:
diff changeset
    79
DEFAULT_COMPILER_NAME=VS2003
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    80
CXX_FLAGS=$(CXX_FLAGS) /D "IA32"
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    81
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
    82
489c9b5090e2 Initial load
duke
parents:
diff changeset
    83
# Sanity check, this is the default if not amd64, ia64, or i486
489c9b5090e2 Initial load
duke
parents:
diff changeset
    84
!ifndef DEFAULT_COMPILER_NAME
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    85
CXX=ARCH_ERROR
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    86
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
    87
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    88
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
    89
# Must specify this for sharedRuntimeTrig.cpp
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    90
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
    91
b3fa838286de 7006354: Updates to Visual Studio project creation and development launcher
sla
parents: 5547
diff changeset
    92
# Used for platform dispatching
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
    93
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
    94
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
    95
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
    96
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
    97
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
    98
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
    99
b3fa838286de 7006354: Updates to Visual Studio project creation and development launcher
sla
parents: 5547
diff changeset
   100
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   101
# 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
   102
#    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
   103
#    via the script get_msc_ver.sh
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   104
#
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   105
#    If MSC_VER is set, it overrides the above default setting.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   106
#    But it should be set.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   107
#    Possible values:
489c9b5090e2 Initial load
duke
parents:
diff changeset
   108
#      1200 is for VC6
489c9b5090e2 Initial load
duke
parents:
diff changeset
   109
#      1300 and 1310 is VS2003 or VC7
489c9b5090e2 Initial load
duke
parents:
diff changeset
   110
#      1399 is our fake number for the VS2005 compiler that really isn't 1400
489c9b5090e2 Initial load
duke
parents:
diff changeset
   111
#      1400 is for VS2005
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   112
#      1500 is for VS2008
5377
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   113
#      1600 is for VS2010
18936
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   114
#      1700 is for VS2012
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   115
#    Do not confuse this MSC_VER with the predefined macro _MSC_VER that the
489c9b5090e2 Initial load
duke
parents:
diff changeset
   116
#    compiler provides, when MSC_VER==1399, _MSC_VER will be 1400.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   117
#    Normally they are the same, but a pre-release of the VS2005 compilers
489c9b5090e2 Initial load
duke
parents:
diff changeset
   118
#    in the Windows 64bit Platform SDK said it was 1400 when it was really
489c9b5090e2 Initial load
duke
parents:
diff changeset
   119
#    closer to VS2003 in terms of option spellings, so we use 1399 for that
489c9b5090e2 Initial load
duke
parents:
diff changeset
   120
#    1400 version that really isn't 1400.
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   121
#    See the file get_msc_ver.sh for more info.
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   122
!if "x$(MSC_VER)" == "x"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   123
COMPILER_NAME=$(DEFAULT_COMPILER_NAME)
489c9b5090e2 Initial load
duke
parents:
diff changeset
   124
!else
489c9b5090e2 Initial load
duke
parents:
diff changeset
   125
!if "$(MSC_VER)" == "1200"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   126
COMPILER_NAME=VC6
489c9b5090e2 Initial load
duke
parents:
diff changeset
   127
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   128
!if "$(MSC_VER)" == "1300"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   129
COMPILER_NAME=VS2003
489c9b5090e2 Initial load
duke
parents:
diff changeset
   130
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   131
!if "$(MSC_VER)" == "1310"
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)" == "1399"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   135
# Compiler might say 1400, but if it's 14.00.30701, it isn't really VS2005
489c9b5090e2 Initial load
duke
parents:
diff changeset
   136
COMPILER_NAME=VS2003
489c9b5090e2 Initial load
duke
parents:
diff changeset
   137
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   138
!if "$(MSC_VER)" == "1400"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   139
COMPILER_NAME=VS2005
489c9b5090e2 Initial load
duke
parents:
diff changeset
   140
!endif
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   141
!if "$(MSC_VER)" == "1500"
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   142
COMPILER_NAME=VS2008
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   143
!endif
5377
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   144
!if "$(MSC_VER)" == "1600"
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   145
COMPILER_NAME=VS2010
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   146
!endif
18936
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   147
!if "$(MSC_VER)" == "1700"
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   148
COMPILER_NAME=VS2012
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   149
!endif
1
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
# By default, we do not want to use the debug version of the msvcrt.dll file
489c9b5090e2 Initial load
duke
parents:
diff changeset
   153
#   but if MFC_DEBUG is defined in the environment it will be used.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   154
MS_RUNTIME_OPTION = /MD
489c9b5090e2 Initial load
duke
parents:
diff changeset
   155
!if "$(MFC_DEBUG)" == "true"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   156
MS_RUNTIME_OPTION = /MTd /D "_DEBUG"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   157
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   158
18936
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   159
# VS2012 and later won't work with:
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   160
#     /D _STATIC_CPPLIB /D _DISABLE_DEPRECATE_STATIC_CPPLIB
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   161
!if "$(MSC_VER)" < "1700"
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   162
# 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
   163
STATIC_CPPLIB_OPTION = /D _STATIC_CPPLIB /D _DISABLE_DEPRECATE_STATIC_CPPLIB
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   164
MS_RUNTIME_OPTION = $(MS_RUNTIME_OPTION) $(STATIC_CPPLIB_OPTION)
18936
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   165
!endif
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   166
CXX_FLAGS=$(CXX_FLAGS) $(MS_RUNTIME_OPTION)
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   167
489c9b5090e2 Initial load
duke
parents:
diff changeset
   168
# How /GX option is spelled
489c9b5090e2 Initial load
duke
parents:
diff changeset
   169
GX_OPTION = /GX
489c9b5090e2 Initial load
duke
parents:
diff changeset
   170
489c9b5090e2 Initial load
duke
parents:
diff changeset
   171
# Optimization settings for various versions of the compilers and types of
489c9b5090e2 Initial load
duke
parents:
diff changeset
   172
#    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
   173
#    These get added into CXX_FLAGS as needed by other makefiles.
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   174
!if "$(COMPILER_NAME)" == "VC6"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   175
PRODUCT_OPT_OPTION   = /Ox /Os /Gy /GF
489c9b5090e2 Initial load
duke
parents:
diff changeset
   176
FASTDEBUG_OPT_OPTION = /Ox /Os /Gy /GF
489c9b5090e2 Initial load
duke
parents:
diff changeset
   177
DEBUG_OPT_OPTION     = /Od
489c9b5090e2 Initial load
duke
parents:
diff changeset
   178
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   179
489c9b5090e2 Initial load
duke
parents:
diff changeset
   180
!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
   181
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
   182
FASTDEBUG_OPT_OPTION = /O2 /Oy-
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   183
DEBUG_OPT_OPTION     = /Od
20665
40ea0f8f6ff7 8015614: Update build settings
erikj
parents: 18936
diff changeset
   184
SAFESEH_FLAG = /SAFESEH
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   185
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   186
489c9b5090e2 Initial load
duke
parents:
diff changeset
   187
!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
   188
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
   189
FASTDEBUG_OPT_OPTION = /O2 /Oy-
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   190
DEBUG_OPT_OPTION     = /Od
489c9b5090e2 Initial load
duke
parents:
diff changeset
   191
GX_OPTION = /EHsc
489c9b5090e2 Initial load
duke
parents:
diff changeset
   192
# This VS2005 compiler has /GS as a default and requires bufferoverflowU.lib 
489c9b5090e2 Initial load
duke
parents:
diff changeset
   193
#    on the link command line, otherwise we get missing __security_check_cookie
489c9b5090e2 Initial load
duke
parents:
diff changeset
   194
#    externals at link time. Even with /GS-, you need bufferoverflowU.lib.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   195
#    NOTE: Currently we decided to not use /GS-
489c9b5090e2 Initial load
duke
parents:
diff changeset
   196
BUFFEROVERFLOWLIB = bufferoverflowU.lib
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   197
LD_FLAGS = /manifest $(LD_FLAGS) $(BUFFEROVERFLOWLIB)
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   198
# 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
   199
# as resources inside build artifacts.
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   200
!if "x$(MT)" == "x"
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   201
MT=mt.exe
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   202
!endif
20665
40ea0f8f6ff7 8015614: Update build settings
erikj
parents: 18936
diff changeset
   203
SAFESEH_FLAG = /SAFESEH
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   204
!endif
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   205
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   206
!if "$(COMPILER_NAME)" == "VS2008"
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   207
PRODUCT_OPT_OPTION   = /O2 /Oy-
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   208
FASTDEBUG_OPT_OPTION = /O2 /Oy-
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   209
DEBUG_OPT_OPTION     = /Od
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
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)
20385
eb45334d783c 8007446: Add /MP to cl.exe speeds up windows builds of OpenJDK.
erikj
parents: 18936
diff changeset
   212
MP_FLAG = /MP
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   213
# 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
   214
# as resources inside build artifacts.
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   215
!if "x$(MT)" == "x"
1546
a02228c60567 6764892: VS2008 changes required to compile hotspot sources
tbell
parents: 670
diff changeset
   216
MT=mt.exe
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   217
!endif
20665
40ea0f8f6ff7 8015614: Update build settings
erikj
parents: 18936
diff changeset
   218
SAFESEH_FLAG = /SAFESEH
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   219
!endif
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   220
5377
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   221
!if "$(COMPILER_NAME)" == "VS2010"
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   222
PRODUCT_OPT_OPTION   = /O2 /Oy-
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   223
FASTDEBUG_OPT_OPTION = /O2 /Oy-
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   224
DEBUG_OPT_OPTION     = /Od
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   225
GX_OPTION = /EHsc
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   226
LD_FLAGS = /manifest $(LD_FLAGS)
20385
eb45334d783c 8007446: Add /MP to cl.exe speeds up windows builds of OpenJDK.
erikj
parents: 18936
diff changeset
   227
MP_FLAG = /MP
5377
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   228
# 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
   229
# as resources inside build artifacts.
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   230
!if "x$(MT)" == "x"
5377
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   231
MT=mt.exe
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   232
!endif
8482
2c8eb211176d 7017110: Add /SAFESEH to links on windows 32bit to verify safe exceptions
zgu
parents: 8303
diff changeset
   233
!if "$(BUILDARCH)" == "i486"
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   234
LD_FLAGS = /SAFESEH $(LD_FLAGS)
8482
2c8eb211176d 7017110: Add /SAFESEH to links on windows 32bit to verify safe exceptions
zgu
parents: 8303
diff changeset
   235
!endif
5377
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   236
!endif
bcf55c5acf4e 6931180: Migration to recent versions of MS Platform SDK
prr
parents: 3261
diff changeset
   237
18936
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   238
!if "$(COMPILER_NAME)" == "VS2012"
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   239
PRODUCT_OPT_OPTION   = /O2 /Oy-
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   240
FASTDEBUG_OPT_OPTION = /O2 /Oy-
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   241
DEBUG_OPT_OPTION     = /Od
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   242
GX_OPTION = /EHsc
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   243
LD_FLAGS = /manifest $(LD_FLAGS)
20385
eb45334d783c 8007446: Add /MP to cl.exe speeds up windows builds of OpenJDK.
erikj
parents: 18936
diff changeset
   244
MP_FLAG = /MP
18936
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   245
# Manifest Tool - used in VS2005 and later to adjust manifests stored
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   246
# as resources inside build artifacts.
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   247
!if "x$(MT)" == "x"
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   248
MT=mt.exe
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   249
!endif
20665
40ea0f8f6ff7 8015614: Update build settings
erikj
parents: 18936
diff changeset
   250
SAFESEH_FLAG = /SAFESEH
40ea0f8f6ff7 8015614: Update build settings
erikj
parents: 18936
diff changeset
   251
!endif
40ea0f8f6ff7 8015614: Update build settings
erikj
parents: 18936
diff changeset
   252
18936
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   253
!if "$(BUILDARCH)" == "i486"
20665
40ea0f8f6ff7 8015614: Update build settings
erikj
parents: 18936
diff changeset
   254
LD_FLAGS = $(SAFESEH_FLAG) $(LD_FLAGS)
18936
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   255
!endif
5e18fd279f7d 8015759: hotspot changes needed to compile with Visual Studio 2012
dholmes
parents: 17295
diff changeset
   256
20385
eb45334d783c 8007446: Add /MP to cl.exe speeds up windows builds of OpenJDK.
erikj
parents: 18936
diff changeset
   257
CXX_FLAGS = $(CXX_FLAGS) $(MP_FLAG)
eb45334d783c 8007446: Add /MP to cl.exe speeds up windows builds of OpenJDK.
erikj
parents: 18936
diff changeset
   258
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   259
# If NO_OPTIMIZATIONS is defined in the environment, turn everything off
489c9b5090e2 Initial load
duke
parents:
diff changeset
   260
!ifdef NO_OPTIMIZATIONS
489c9b5090e2 Initial load
duke
parents:
diff changeset
   261
PRODUCT_OPT_OPTION   = $(DEBUG_OPT_OPTION)
489c9b5090e2 Initial load
duke
parents:
diff changeset
   262
FASTDEBUG_OPT_OPTION = $(DEBUG_OPT_OPTION)
489c9b5090e2 Initial load
duke
parents:
diff changeset
   263
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   264
489c9b5090e2 Initial load
duke
parents:
diff changeset
   265
# Generic linker settings
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   266
!if "x$(LD)" == "x"
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   267
LD=link.exe
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   268
!endif
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   269
LD_FLAGS= $(LD_FLAGS) kernel32.lib user32.lib gdi32.lib winspool.lib \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   270
 comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   271
 uuid.lib Wsock32.lib winmm.lib /nologo /machine:$(MACHINE) /opt:REF \
12501
ea7feae692ae 7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents: 11721
diff changeset
   272
 /opt:ICF,8
ea7feae692ae 7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents: 11721
diff changeset
   273
!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
ea7feae692ae 7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents: 11721
diff changeset
   274
LD_FLAGS= $(LD_FLAGS) /map /debug
ea7feae692ae 7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents: 11721
diff changeset
   275
!endif
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   276
10246
adee0cf4c981 7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents: 8482
diff changeset
   277
adee0cf4c981 7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents: 8482
diff changeset
   278
!if $(MSC_VER) >= 1600 
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   279
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
   280
!endif
adee0cf4c981 7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents: 8482
diff changeset
   281
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   282
# Resource compiler settings
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   283
!if "x$(RC)" == "x"
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   284
RC=rc.exe
11955
aeca8151886e 7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents: 11721
diff changeset
   285
!endif
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   286
RC_FLAGS=/D "HS_VER=$(HS_VER)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   287
	 /D "HS_DOTVER=$(HS_DOTVER)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   288
	 /D "HS_BUILD_ID=$(HS_BUILD_ID)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   289
	 /D "JDK_VER=$(JDK_VER)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   290
	 /D "JDK_DOTVER=$(JDK_DOTVER)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   291
	 /D "HS_COMPANY=$(HS_COMPANY)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   292
	 /D "HS_FILEDESC=$(HS_FILEDESC)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   293
	 /D "HS_COPYRIGHT=$(HS_COPYRIGHT)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   294
	 /D "HS_FNAME=$(HS_FNAME)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   295
	 /D "HS_INTERNAL_NAME=$(HS_INTERNAL_NAME)" \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   296
	 /D "HS_NAME=$(HS_NAME)"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   297
11721
dcd1f62c9caf 7141242: build-infra merge: Rename CPP->CXX and LINK->LD
erikj
parents: 10246
diff changeset
   298
# Need this to match the CXX_FLAGS settings
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   299
!if "$(MFC_DEBUG)" == "true"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   300
RC_FLAGS = $(RC_FLAGS) /D "_DEBUG"
489c9b5090e2 Initial load
duke
parents:
diff changeset
   301
!endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   302