make/windows/makefiles/defs.make

Tue, 26 Jul 2016 11:15:09 +0800

author
fujie
date
Tue, 26 Jul 2016 11:15:09 +0800
changeset 38
f0e26f502a50
parent 0
f90c822e73f8
child 6876
710a3c8b516e
permissions
-rw-r--r--

Instruction decoding support: add movn and movz in MIPS disassembler.

aoqi@0 1 #
aoqi@0 2 # Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
aoqi@0 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
aoqi@0 4 #
aoqi@0 5 # This code is free software; you can redistribute it and/or modify it
aoqi@0 6 # under the terms of the GNU General Public License version 2 only, as
aoqi@0 7 # published by the Free Software Foundation.
aoqi@0 8 #
aoqi@0 9 # This code is distributed in the hope that it will be useful, but WITHOUT
aoqi@0 10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
aoqi@0 11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
aoqi@0 12 # version 2 for more details (a copy is included in the LICENSE file that
aoqi@0 13 # accompanied this code).
aoqi@0 14 #
aoqi@0 15 # You should have received a copy of the GNU General Public License version
aoqi@0 16 # 2 along with this work; if not, write to the Free Software Foundation,
aoqi@0 17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
aoqi@0 18 #
aoqi@0 19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
aoqi@0 20 # or visit www.oracle.com if you need additional information or have any
aoqi@0 21 # questions.
aoqi@0 22 #
aoqi@0 23 #
aoqi@0 24
aoqi@0 25 # The common definitions for hotspot windows builds.
aoqi@0 26 # Include the top level defs.make under make directory instead of this one.
aoqi@0 27 # This file is included into make/defs.make.
aoqi@0 28 # On windows it is only used to construct parameters for
aoqi@0 29 # make/windows/build.make when make/Makefile is used to build VM.
aoqi@0 30
aoqi@0 31 SLASH_JAVA ?= J:
aoqi@0 32 PATH_SEP = ;
aoqi@0 33
aoqi@0 34 # Need PLATFORM (os-arch combo names) for jdk and hotspot, plus libarch name
aoqi@0 35 ifeq ($(ARCH_DATA_MODEL),32)
aoqi@0 36 ARCH_DATA_MODEL=32
aoqi@0 37 PLATFORM=windows-i586
aoqi@0 38 VM_PLATFORM=windows_i486
aoqi@0 39 HS_ARCH=x86
aoqi@0 40 MAKE_ARGS += ARCH=x86
aoqi@0 41 MAKE_ARGS += BUILDARCH=i486
aoqi@0 42 MAKE_ARGS += Platform_arch=x86
aoqi@0 43 MAKE_ARGS += Platform_arch_model=x86_32
aoqi@0 44 endif
aoqi@0 45
aoqi@0 46 ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) x86),)
aoqi@0 47 ARCH_DATA_MODEL=32
aoqi@0 48 PLATFORM=windows-i586
aoqi@0 49 VM_PLATFORM=windows_i486
aoqi@0 50 HS_ARCH=x86
aoqi@0 51 MAKE_ARGS += ARCH=x86
aoqi@0 52 MAKE_ARGS += BUILDARCH=i486
aoqi@0 53 MAKE_ARGS += Platform_arch=x86
aoqi@0 54 MAKE_ARGS += Platform_arch_model=x86_32
aoqi@0 55 endif
aoqi@0 56
aoqi@0 57 ifneq ($(ARCH_DATA_MODEL),32)
aoqi@0 58 ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) ia64),)
aoqi@0 59 ARCH_DATA_MODEL=64
aoqi@0 60 PLATFORM=windows-ia64
aoqi@0 61 VM_PLATFORM=windows_ia64
aoqi@0 62 HS_ARCH=ia64
aoqi@0 63 MAKE_ARGS += LP64=1
aoqi@0 64 MAKE_ARGS += ARCH=ia64
aoqi@0 65 MAKE_ARGS += BUILDARCH=ia64
aoqi@0 66 MAKE_ARGS += Platform_arch=ia64
aoqi@0 67 MAKE_ARGS += Platform_arch_model=ia64
aoqi@0 68 endif
aoqi@0 69
aoqi@0 70 # http://support.microsoft.com/kb/888731 : this can be either
aoqi@0 71 # AMD64 for AMD, or EM64T for Intel chips.
aoqi@0 72 ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) AMD64),)
aoqi@0 73 ARCH_DATA_MODEL=64
aoqi@0 74 PLATFORM=windows-amd64
aoqi@0 75 VM_PLATFORM=windows_amd64
aoqi@0 76 HS_ARCH=x86
aoqi@0 77 MAKE_ARGS += LP64=1
aoqi@0 78 MAKE_ARGS += ARCH=x86
aoqi@0 79 MAKE_ARGS += BUILDARCH=amd64
aoqi@0 80 MAKE_ARGS += Platform_arch=x86
aoqi@0 81 MAKE_ARGS += Platform_arch_model=x86_64
aoqi@0 82 endif
aoqi@0 83
aoqi@0 84 ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) EM64T),)
aoqi@0 85 ARCH_DATA_MODEL=64
aoqi@0 86 PLATFORM=windows-amd64
aoqi@0 87 VM_PLATFORM=windows_amd64
aoqi@0 88 HS_ARCH=x86
aoqi@0 89 MAKE_ARGS += LP64=1
aoqi@0 90 MAKE_ARGS += ARCH=x86
aoqi@0 91 MAKE_ARGS += BUILDARCH=amd64
aoqi@0 92 MAKE_ARGS += Platform_arch=x86
aoqi@0 93 MAKE_ARGS += Platform_arch_model=x86_64
aoqi@0 94 endif
aoqi@0 95
aoqi@0 96 # NB later OS versions than 2003 may report "Intel64"
aoqi@0 97 ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) Intel64),)
aoqi@0 98 ARCH_DATA_MODEL=64
aoqi@0 99 PLATFORM=windows-amd64
aoqi@0 100 VM_PLATFORM=windows_amd64
aoqi@0 101 HS_ARCH=x86
aoqi@0 102 MAKE_ARGS += LP64=1
aoqi@0 103 MAKE_ARGS += ARCH=x86
aoqi@0 104 MAKE_ARGS += BUILDARCH=amd64
aoqi@0 105 MAKE_ARGS += Platform_arch=x86
aoqi@0 106 MAKE_ARGS += Platform_arch_model=x86_64
aoqi@0 107 endif
aoqi@0 108 endif
aoqi@0 109
aoqi@0 110 # Full Debug Symbols has been enabled on Windows since JDK1.4.1 so
aoqi@0 111 # there is no need for an "earlier than JDK7 check".
aoqi@0 112 # The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product
aoqi@0 113 # builds is enabled with debug info files ZIP'ed to save space. For
aoqi@0 114 # BUILD_FLAVOR != product builds, FDS is always enabled, after all a
aoqi@0 115 # debug build without debug info isn't very useful.
aoqi@0 116 # The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled.
aoqi@0 117 #
aoqi@0 118 # If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
aoqi@0 119 # disabled for a BUILD_FLAVOR == product build.
aoqi@0 120 #
aoqi@0 121 # Note: Use of a different variable name for the FDS override option
aoqi@0 122 # versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
aoqi@0 123 # versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
aoqi@0 124 # in options via environment variables, use of distinct variables
aoqi@0 125 # prevents strange behaviours. For example, in a BUILD_FLAVOR !=
aoqi@0 126 # product build, the FULL_DEBUG_SYMBOLS environment variable will be
aoqi@0 127 # 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If
aoqi@0 128 # the same variable name is used, then different values can be picked
aoqi@0 129 # up by different parts of the build. Just to be clear, we only need
aoqi@0 130 # two variable names because the incoming option value can be
aoqi@0 131 # overridden in some situations, e.g., a BUILD_FLAVOR != product
aoqi@0 132 # build.
aoqi@0 133
aoqi@0 134 # Due to the multiple sub-make processes that occur this logic gets
aoqi@0 135 # executed multiple times. We reduce the noise by at least checking that
aoqi@0 136 # BUILD_FLAVOR has been set.
aoqi@0 137 ifneq ($(BUILD_FLAVOR),)
aoqi@0 138 ifeq ($(BUILD_FLAVOR), product)
aoqi@0 139 FULL_DEBUG_SYMBOLS ?= 1
aoqi@0 140 ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
aoqi@0 141 else
aoqi@0 142 # debug variants always get Full Debug Symbols (if available)
aoqi@0 143 ENABLE_FULL_DEBUG_SYMBOLS = 1
aoqi@0 144 endif
aoqi@0 145 _JUNK_ := $(shell \
aoqi@0 146 echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
aoqi@0 147 MAKE_ARGS += ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)
aoqi@0 148
aoqi@0 149 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
aoqi@0 150 ZIP_DEBUGINFO_FILES ?= 1
aoqi@0 151 else
aoqi@0 152 ZIP_DEBUGINFO_FILES=0
aoqi@0 153 endif
aoqi@0 154 MAKE_ARGS += ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)
aoqi@0 155 endif
aoqi@0 156
aoqi@0 157 MAKE_ARGS += RM="$(RM)"
aoqi@0 158 MAKE_ARGS += ZIPEXE=$(ZIPEXE)
aoqi@0 159
aoqi@0 160 # On 32 bit windows we build server and client, on 64 bit just server.
aoqi@0 161 ifeq ($(JVM_VARIANTS),)
aoqi@0 162 ifeq ($(ARCH_DATA_MODEL), 32)
aoqi@0 163 JVM_VARIANTS:=client,server
aoqi@0 164 JVM_VARIANT_CLIENT:=true
aoqi@0 165 JVM_VARIANT_SERVER:=true
aoqi@0 166 else
aoqi@0 167 JVM_VARIANTS:=server
aoqi@0 168 JVM_VARIANT_SERVER:=true
aoqi@0 169 endif
aoqi@0 170 endif
aoqi@0 171
aoqi@0 172 JDK_INCLUDE_SUBDIR=win32
aoqi@0 173
aoqi@0 174 # Library suffix
aoqi@0 175 LIBRARY_SUFFIX=dll
aoqi@0 176
aoqi@0 177 # HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined
aoqi@0 178 # and added to MAKE_ARGS list in $(GAMMADIR)/make/defs.make.
aoqi@0 179
aoqi@0 180 # next parameters are defined in $(GAMMADIR)/make/defs.make.
aoqi@0 181 MAKE_ARGS += JDK_MKTG_VERSION=$(JDK_MKTG_VERSION)
aoqi@0 182 MAKE_ARGS += JDK_MAJOR_VER=$(JDK_MAJOR_VERSION)
aoqi@0 183 MAKE_ARGS += JDK_MINOR_VER=$(JDK_MINOR_VERSION)
aoqi@0 184 MAKE_ARGS += JDK_MICRO_VER=$(JDK_MICRO_VERSION)
aoqi@0 185
aoqi@0 186 ifdef COOKED_JDK_UPDATE_VERSION
aoqi@0 187 MAKE_ARGS += JDK_UPDATE_VER=$(COOKED_JDK_UPDATE_VERSION)
aoqi@0 188 endif
aoqi@0 189
aoqi@0 190 # COOKED_BUILD_NUMBER should only be set if we have a numeric
aoqi@0 191 # build number. It must not be zero padded.
aoqi@0 192 ifdef COOKED_BUILD_NUMBER
aoqi@0 193 MAKE_ARGS += JDK_BUILD_NUMBER=$(COOKED_BUILD_NUMBER)
aoqi@0 194 endif
aoqi@0 195
aoqi@0 196 NMAKE= MAKEFLAGS= MFLAGS= EXTRA_CFLAGS="$(EXTRA_CFLAGS)" nmake -NOLOGO
aoqi@0 197 ifndef SYSTEM_UNAME
aoqi@0 198 SYSTEM_UNAME := $(shell uname)
aoqi@0 199 export SYSTEM_UNAME
aoqi@0 200 endif
aoqi@0 201
aoqi@0 202 # Check for CYGWIN
aoqi@0 203 ifneq (,$(findstring CYGWIN,$(SYSTEM_UNAME)))
aoqi@0 204 USING_CYGWIN=true
aoqi@0 205 else
aoqi@0 206 USING_CYGWIN=false
aoqi@0 207 endif
aoqi@0 208 # Check for MinGW
aoqi@0 209 ifneq (,$(findstring MINGW,$(SYSTEM_UNAME)))
aoqi@0 210 USING_MINGW=true
aoqi@0 211 endif
aoqi@0 212
aoqi@0 213 # Windows wants particular paths due to nmake (must be after macros defined)
aoqi@0 214 # It is important that gnumake invokes nmake with C:\\...\\ formated
aoqi@0 215 # strings so that nmake gets C:\...\ style strings.
aoqi@0 216 # Check for CYGWIN
aoqi@0 217 ifeq ($(USING_CYGWIN), true)
aoqi@0 218 ABS_OUTPUTDIR := $(subst /,\\,$(shell /bin/cygpath -m -a "$(OUTPUTDIR)"))
aoqi@0 219 ABS_BOOTDIR := $(subst /,\\,$(shell /bin/cygpath -m -a "$(BOOTDIR)"))
aoqi@0 220 ABS_GAMMADIR := $(subst /,\\,$(shell /bin/cygpath -m -a "$(GAMMADIR)"))
aoqi@0 221 ABS_OS_MAKEFILE := $(shell /bin/cygpath -m -a "$(HS_MAKE_DIR)/$(OSNAME)")/build.make
aoqi@0 222 else ifeq ($(USING_MINGW), true)
aoqi@0 223 ABS_OUTPUTDIR := $(shell $(CD) $(OUTPUTDIR);$(PWD))
aoqi@0 224 ABS_BOOTDIR := $(shell $(CD) $(BOOTDIR);$(PWD))
aoqi@0 225 ABS_GAMMADIR := $(shell $(CD) $(GAMMADIR);$(PWD))
aoqi@0 226 ABS_OS_MAKEFILE := $(shell $(CD) $(HS_MAKE_DIR)/$(OSNAME);$(PWD))/build.make
aoqi@0 227 else
aoqi@0 228 ABS_OUTPUTDIR := $(subst /,\\,$(shell $(CD) $(OUTPUTDIR);$(PWD)))
aoqi@0 229 ABS_BOOTDIR := $(subst /,\\,$(shell $(CD) $(BOOTDIR);$(PWD)))
aoqi@0 230 ABS_GAMMADIR := $(subst /,\\,$(shell $(CD) $(GAMMADIR);$(PWD)))
aoqi@0 231 ABS_OS_MAKEFILE := $(subst /,\\,$(shell $(CD) $(HS_MAKE_DIR)/$(OSNAME);$(PWD))/build.make)
aoqi@0 232 endif
aoqi@0 233
aoqi@0 234 # Disable building SA on windows until we are sure
aoqi@0 235 # we want to release it. If we build it here,
aoqi@0 236 # the SDK makefiles will copy it over and put it into
aoqi@0 237 # the created image.
aoqi@0 238 BUILD_WIN_SA = 1
aoqi@0 239 ifneq ($(ALT_BUILD_WIN_SA),)
aoqi@0 240 BUILD_WIN_SA = $(ALT_BUILD_WIN_SA)
aoqi@0 241 endif
aoqi@0 242
aoqi@0 243 ifeq ($(BUILD_WIN_SA), 1)
aoqi@0 244 ifeq ($(ARCH),ia64)
aoqi@0 245 BUILD_WIN_SA = 0
aoqi@0 246 endif
aoqi@0 247 endif
aoqi@0 248
aoqi@0 249 EXPORT_SERVER_DIR = $(EXPORT_JRE_BIN_DIR)/server
aoqi@0 250 EXPORT_CLIENT_DIR = $(EXPORT_JRE_BIN_DIR)/client
aoqi@0 251
aoqi@0 252 ifeq ($(JVM_VARIANT_SERVER),true)
aoqi@0 253 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
aoqi@0 254 EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.$(LIBRARY_SUFFIX)
aoqi@0 255 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
aoqi@0 256 ifeq ($(ZIP_DEBUGINFO_FILES),1)
aoqi@0 257 EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.diz
aoqi@0 258 else
aoqi@0 259 EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.pdb
aoqi@0 260 EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.map
aoqi@0 261 endif
aoqi@0 262 endif
aoqi@0 263 endif
aoqi@0 264 ifeq ($(JVM_VARIANT_CLIENT),true)
aoqi@0 265 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
aoqi@0 266 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.$(LIBRARY_SUFFIX)
aoqi@0 267 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
aoqi@0 268 ifeq ($(ZIP_DEBUGINFO_FILES),1)
aoqi@0 269 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.diz
aoqi@0 270 else
aoqi@0 271 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.pdb
aoqi@0 272 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.map
aoqi@0 273 endif
aoqi@0 274 endif
aoqi@0 275 endif
aoqi@0 276
aoqi@0 277 EXPORT_LIST += $(EXPORT_LIB_DIR)/jvm.lib
aoqi@0 278
aoqi@0 279 ifeq ($(BUILD_WIN_SA), 1)
aoqi@0 280 EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.$(LIBRARY_SUFFIX)
aoqi@0 281 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
aoqi@0 282 ifeq ($(ZIP_DEBUGINFO_FILES),1)
aoqi@0 283 EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.diz
aoqi@0 284 else
aoqi@0 285 EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.pdb
aoqi@0 286 EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.map
aoqi@0 287 endif
aoqi@0 288 endif
aoqi@0 289 EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar
aoqi@0 290 # Must pass this down to nmake.
aoqi@0 291 MAKE_ARGS += BUILD_WIN_SA=1
aoqi@0 292 endif
aoqi@0 293
aoqi@0 294 # Propagate compiler and tools paths from configure to nmake.
aoqi@0 295 # Need to make sure they contain \\ and not /.
aoqi@0 296 ifneq ($(SPEC),)
aoqi@0 297 ifeq ($(USING_CYGWIN), true)
aoqi@0 298 MAKE_ARGS += CXX="$(subst /,\\,$(shell /bin/cygpath -s -m -a $(CXX)))"
aoqi@0 299 MAKE_ARGS += LD="$(subst /,\\,$(shell /bin/cygpath -s -m -a $(LD)))"
aoqi@0 300 MAKE_ARGS += RC="$(subst /,\\,$(shell /bin/cygpath -s -m -a $(RC)))"
aoqi@0 301 MAKE_ARGS += MT="$(subst /,\\,$(shell /bin/cygpath -s -m -a $(MT)))"
aoqi@0 302 else
aoqi@0 303 MAKE_ARGS += CXX="$(subst /,\\,$(CXX))"
aoqi@0 304 MAKE_ARGS += LD="$(subst /,\\,$(LD))"
aoqi@0 305 MAKE_ARGS += RC="$(subst /,\\,$(RC))"
aoqi@0 306 MAKE_ARGS += MT="$(subst /,\\,$(MT))"
aoqi@0 307 endif
aoqi@0 308 endif

mercurial