Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/hotspot/make/defs.make
32278 views
1
#
2
# Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
3
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
#
5
# This code is free software; you can redistribute it and/or modify it
6
# under the terms of the GNU General Public License version 2 only, as
7
# published by the Free Software Foundation.
8
#
9
# This code is distributed in the hope that it will be useful, but WITHOUT
10
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
# version 2 for more details (a copy is included in the LICENSE file that
13
# accompanied this code).
14
#
15
# You should have received a copy of the GNU General Public License version
16
# 2 along with this work; if not, write to the Free Software Foundation,
17
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
#
19
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
# or visit www.oracle.com if you need additional information or have any
21
# questions.
22
#
23
#
24
25
# The common definitions for hotspot builds.
26
27
# Optionally include SPEC file generated by configure.
28
ifneq ($(SPEC),)
29
include $(SPEC)
30
endif
31
32
# Directory paths and user name
33
# Unless GAMMADIR is set on the command line, search upward from
34
# the current directory for a parent directory containing "src/share/vm".
35
# If that fails, look for $GAMMADIR in the environment.
36
# When the tree of subdirs is built, this setting is stored in each flags.make.
37
GAMMADIR := $(shell until ([ -d dev ]&&echo $${GAMMADIR:-/GAMMADIR/}) || ([ -d src/share/vm ]&&pwd); do cd ..; done)
38
HS_SRC_DIR=$(GAMMADIR)/src
39
HS_MAKE_DIR=$(GAMMADIR)/make
40
HS_BUILD_DIR=$(GAMMADIR)/build
41
42
ifeq ($(USER),)
43
USER=$(USERNAME)
44
endif
45
46
ifeq ($(HS_ALT_MAKE),)
47
ifneq ($(OPENJDK),true)
48
HS_ALT_MAKE=$(GAMMADIR)/make/closed
49
else
50
HS_ALT_MAKE=NO_SUCH_PATH
51
endif
52
endif
53
54
#
55
# Include alternate defs.make if it exists
56
#
57
-include $(HS_ALT_MAKE)/defs.make
58
59
# Default to verbose build logs (show all compile lines):
60
MAKE_VERBOSE=y
61
62
# Make macros for install files or preparing targets
63
CD=cd
64
CP=cp
65
ECHO=echo
66
GREP=grep
67
MKDIR=mkdir
68
MV=mv
69
PWD=pwd
70
RM=rm -f
71
SED=sed
72
TAR=tar
73
ZIPEXE=zip
74
75
define install-file
76
@$(MKDIR) -p $(@D)
77
@$(RM) $@
78
$(CP) $< $@
79
endef
80
81
# MacOS X strongly discourages 'cp -r' and provides 'cp -R' instead.
82
# May need to have a MacOS X specific definition of install-dir
83
# sometime in the future.
84
define install-dir
85
@$(MKDIR) -p $(@D)
86
@$(RM) -r $@
87
$(CP) -r $< $@
88
endef
89
90
define prep-target
91
@$(MKDIR) -p $(@D)
92
@$(RM) $@
93
endef
94
95
# Default values for JVM_VARIANT* variables if configure hasn't set
96
# it already.
97
ifeq ($(JVM_VARIANTS),)
98
ifeq ($(ZERO_BUILD), true)
99
ifeq ($(SHARK_BUILD), true)
100
JVM_VARIANTS:=zeroshark
101
JVM_VARIANT_ZEROSHARK:=true
102
else
103
JVM_VARIANTS:=zero
104
JVM_VARIANT_ZERO:=true
105
endif
106
else
107
# A default is needed
108
ifeq ($(BUILD_CLIENT_ONLY), true)
109
JVM_VARIANTS:=client
110
JVM_VARIANT_CLIENT:=true
111
endif
112
# Further defaults are platform and arch specific
113
endif
114
endif
115
116
# hotspot version definitions
117
include $(GAMMADIR)/make/hotspot_version
118
119
# When config parameter --with-update-version is defined,
120
# Hotspot minor version should be set to that
121
ifneq ($(JDK_UPDATE_VERSION),)
122
HS_MINOR_VER=$(JDK_UPDATE_VERSION)
123
endif
124
125
# When config parameter --with-build-number is defined,
126
# Hotspot build number should be set to that
127
ifneq ($(JDK_BUILD_NUMBER),)
128
HS_BUILD_NUMBER=$(subst b,,$(JDK_BUILD_NUMBER))
129
endif
130
131
# Java versions needed
132
ifeq ($(PREVIOUS_JDK_VERSION),)
133
PREVIOUS_JDK_VERSION=$(JDK_PREVIOUS_VERSION)
134
endif
135
ifeq ($(JDK_MAJOR_VERSION),)
136
JDK_MAJOR_VERSION=$(JDK_MAJOR_VER)
137
endif
138
ifeq ($(JDK_MINOR_VERSION),)
139
JDK_MINOR_VERSION=$(JDK_MINOR_VER)
140
endif
141
ifeq ($(JDK_MICRO_VERSION),)
142
JDK_MICRO_VERSION=$(JDK_MICRO_VER)
143
endif
144
ifeq ($(JDK_MKTG_VERSION),)
145
JDK_MKTG_VERSION=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)
146
endif
147
ifeq ($(JDK_VERSION),)
148
JDK_VERSION=$(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)
149
endif
150
ifeq ($(FULL_VERSION),)
151
FULL_VERSION="$(JDK_VERSION)"
152
endif
153
154
# FULL_VERSION is only used to define JRE_RELEASE_VERSION which is used
155
# as JRE version in VM -Xinternalversion output.
156
ifndef JRE_RELEASE_VERSION
157
JRE_RELEASE_VERSION=$(FULL_VERSION)
158
endif
159
160
ifndef HOTSPOT_RELEASE_VERSION
161
HOTSPOT_RELEASE_VERSION=$(HS_MAJOR_VER).$(HS_MINOR_VER)-b$(HS_BUILD_NUMBER)
162
endif
163
164
ifdef HOTSPOT_BUILD_VERSION
165
# specified in command line
166
else
167
ifdef COOKED_BUILD_NUMBER
168
# JRE build
169
HOTSPOT_BUILD_VERSION=
170
else
171
ifdef USER_RELEASE_SUFFIX
172
HOTSPOT_BUILD_VERSION=internal-$(USER_RELEASE_SUFFIX)
173
else
174
HOTSPOT_BUILD_VERSION=internal
175
endif
176
endif
177
endif
178
179
# Windows should have OS predefined
180
ifeq ($(OS),)
181
OS := $(shell uname -s)
182
ifneq ($(findstring BSD,$(OS)),)
183
OS=bsd
184
endif
185
ifeq ($(OS), Darwin)
186
OS=bsd
187
endif
188
HOST := $(shell uname -n)
189
endif
190
191
# If not SunOS, not Linux not BSD and not AIX, assume Windows
192
ifneq ($(OS), Linux)
193
ifneq ($(OS), SunOS)
194
ifneq ($(OS), bsd)
195
ifneq ($(OS), AIX)
196
OSNAME=windows
197
else
198
OSNAME=aix
199
endif
200
else
201
OSNAME=bsd
202
endif
203
else
204
OSNAME=solaris
205
endif
206
else
207
OSNAME=linux
208
endif
209
210
# Determinations of default make arguments and platform specific settings
211
MAKE_ARGS=
212
213
# ARCH_DATA_MODEL==64 is equivalent to LP64=1
214
ifeq ($(ARCH_DATA_MODEL), 64)
215
ifndef LP64
216
LP64 := 1
217
endif
218
endif
219
220
# Defaults set for product build
221
EXPORT_SUBDIR=
222
223
# Change default /java path if requested
224
ifneq ($(ALT_SLASH_JAVA),)
225
SLASH_JAVA=$(ALT_SLASH_JAVA)
226
endif
227
228
# Default OUTPUTDIR
229
OUTPUTDIR=$(HS_BUILD_DIR)/$(OSNAME)
230
ifneq ($(ALT_OUTPUTDIR),)
231
OUTPUTDIR=$(ALT_OUTPUTDIR)
232
endif
233
234
# Find latest promoted JDK area
235
JDK_IMPORT_PATH=$(SLASH_JAVA)/re/j2se/$(JDK_VERSION)/promoted/latest/binaries/$(PLATFORM)
236
ifneq ($(ALT_JDK_IMPORT_PATH),)
237
JDK_IMPORT_PATH=$(ALT_JDK_IMPORT_PATH)
238
endif
239
240
# Other parts of JDK build may require an import JDK that can be executed
241
# on the build host. For cross-compile builds we also need an import JDK
242
# that matches the target arch, so for that we set ALT_JDK_TARGET_IMPORT_PATH
243
ifneq ($(ALT_JDK_TARGET_IMPORT_PATH),)
244
JDK_IMPORT_PATH=$(ALT_JDK_TARGET_IMPORT_PATH)
245
endif
246
247
# Find JDK used for javac compiles
248
BOOTDIR=$(SLASH_JAVA)/re/j2se/$(PREVIOUS_JDK_VERSION)/latest/binaries/$(PLATFORM)
249
ifneq ($(ALT_BOOTDIR),)
250
BOOTDIR=$(ALT_BOOTDIR)
251
endif
252
253
# Select name of the export directory and honor ALT overrides
254
EXPORT_PATH=$(OUTPUTDIR)/export-$(PLATFORM)$(EXPORT_SUBDIR)
255
ifneq ($(ALT_EXPORT_PATH),)
256
EXPORT_PATH=$(ALT_EXPORT_PATH)
257
endif
258
259
# Default jdk image if one is created for you with create_jdk
260
JDK_IMAGE_DIR=$(OUTPUTDIR)/jdk-$(PLATFORM)
261
ifneq ($(ALT_JDK_IMAGE_DIR),)
262
JDK_IMAGE_DIR=$(ALT_JDK_IMAGE_DIR)
263
endif
264
265
# The platform dependent defs.make defines platform specific variable such
266
# as ARCH, EXPORT_LIST etc. We must place the include here after BOOTDIR is defined.
267
include $(GAMMADIR)/make/$(OSNAME)/makefiles/defs.make
268
269
# We are trying to put platform specific defintions
270
# files to make/$(OSNAME)/makefiles dictory. However
271
# some definitions are common for both linux and solaris,
272
# so we put them here.
273
ifneq ($(OSNAME),windows)
274
ABS_OUTPUTDIR := $(shell mkdir -p $(OUTPUTDIR); $(CD) $(OUTPUTDIR); $(PWD))
275
ABS_BOOTDIR := $(shell $(CD) $(BOOTDIR); $(PWD))
276
ABS_GAMMADIR := $(shell $(CD) $(GAMMADIR); $(PWD))
277
ABS_OS_MAKEFILE := $(shell $(CD) $(HS_MAKE_DIR)/$(OSNAME); $(PWD))/Makefile
278
279
# uname, HotSpot source directory, build directory and JDK use different names
280
# for CPU architectures.
281
# ARCH - uname output
282
# SRCARCH - where to find HotSpot cpu and os_cpu source files
283
# BUILDARCH - build directory
284
# LIBARCH - directory name in JDK/JRE
285
286
# Use uname output for SRCARCH, but deal with platform differences. If ARCH
287
# is not explicitly listed below, it is treated as x86.
288
SRCARCH ?= $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 ppc ppc64 ppc64le zero aarch32 aarch64,$(ARCH)))
289
ARCH/ = x86
290
ARCH/sparc = sparc
291
ARCH/sparc64= sparc
292
ARCH/ia64 = ia64
293
ARCH/amd64 = x86
294
ARCH/x86_64 = x86
295
ARCH/ppc64 = ppc
296
ARCH/ppc64le= ppc
297
ARCH/ppc = ppc
298
ARCH/zero = zero
299
ARCH/aarch32 = aarch32
300
ARCH/aarch64 = aarch64
301
302
# BUILDARCH is usually the same as SRCARCH, except for sparcv9
303
BUILDARCH ?= $(SRCARCH)
304
ifeq ($(BUILDARCH), x86)
305
ifdef LP64
306
BUILDARCH = amd64
307
else
308
BUILDARCH = i486
309
endif
310
endif
311
ifeq ($(BUILDARCH), sparc)
312
ifdef LP64
313
BUILDARCH = sparcv9
314
endif
315
endif
316
ifeq ($(BUILDARCH), ppc)
317
ifdef LP64
318
BUILDARCH = ppc64
319
endif
320
endif
321
322
# LIBARCH is 1:1 mapping from BUILDARCH, except for ARCH=ppc64le
323
ifeq ($(ARCH),ppc64le)
324
LIBARCH ?= ppc64le
325
else
326
LIBARCH ?= $(LIBARCH/$(BUILDARCH))
327
endif
328
LIBARCH ?= $(LIBARCH/$(BUILDARCH))
329
LIBARCH/i486 = i386
330
LIBARCH/amd64 = amd64
331
LIBARCH/aarch32 = aarch32
332
LIBARCH/aarch64 = aarch64
333
LIBARCH/sparc = sparc
334
LIBARCH/sparcv9 = sparcv9
335
LIBARCH/ia64 = ia64
336
LIBARCH/ppc64 = ppc64
337
LIBARCH/zero = $(ZERO_LIBARCH)
338
339
LP64_ARCH += sparcv9 amd64 ia64 ppc64 aarch64 zero
340
endif
341
342
# Required make macro settings for all platforms
343
MAKE_ARGS += BOOTDIR=$(ABS_BOOTDIR)
344
MAKE_ARGS += OUTPUTDIR=$(ABS_OUTPUTDIR)
345
MAKE_ARGS += GAMMADIR=$(ABS_GAMMADIR)
346
MAKE_ARGS += MAKE_VERBOSE=$(MAKE_VERBOSE)
347
MAKE_ARGS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION)
348
MAKE_ARGS += JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION)
349
350
# Pass HOTSPOT_BUILD_VERSION as argument to OS specific Makefile
351
# to overwrite the default definition since OS specific Makefile also
352
# includes this make/defs.make file.
353
MAKE_ARGS += HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION)
354
355
# Various export sub directories
356
EXPORT_INCLUDE_DIR = $(EXPORT_PATH)/include
357
EXPORT_DOCS_DIR = $(EXPORT_PATH)/docs
358
EXPORT_LIB_DIR = $(EXPORT_PATH)/lib
359
EXPORT_JRE_DIR = $(EXPORT_PATH)/jre
360
EXPORT_JRE_BIN_DIR = $(EXPORT_JRE_DIR)/bin
361
EXPORT_JRE_LIB_DIR = $(EXPORT_JRE_DIR)/lib
362
EXPORT_JRE_LIB_ARCH_DIR = $(EXPORT_JRE_LIB_DIR)/$(LIBARCH)
363
364
# non-universal macosx builds need to appear universal
365
ifeq ($(OS_VENDOR), Darwin)
366
ifneq ($(MACOSX_UNIVERSAL), true)
367
EXPORT_JRE_LIB_ARCH_DIR = $(EXPORT_JRE_LIB_DIR)
368
endif
369
endif
370
371
# Common export list of files
372
EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jvmti.h
373
EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jvmticmlr.h
374
EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jni.h
375
EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/$(JDK_INCLUDE_SUBDIR)/jni_md.h
376
EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jmm.h
377
378
ifeq ($(ENABLE_JFR), true)
379
EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/jdk/jfr/internal/types/metadata.xml
380
endif
381
382
.PHONY: $(HS_ALT_MAKE)/defs.make
383
384
385