Mon, 19 Mar 2012 10:09:24 +0100
7141246: build-infra merge: Introduce new JVM_VARIANT* to control which kind of jvm gets built
Reviewed-by: dholmes, ohair
1 #
2 # Copyright (c) 2006, 2012, 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 #
25 # The common definitions for hotspot bsd builds.
26 # Include the top level defs.make under make directory instead of this one.
27 # This file is included into make/defs.make.
29 SLASH_JAVA ?= /java
31 # Need PLATFORM (os-arch combo names) for jdk and hotspot, plus libarch name
32 ARCH:=$(shell uname -m)
33 PATH_SEP = :
34 ifeq ($(LP64), 1)
35 ARCH_DATA_MODEL ?= 64
36 else
37 ARCH_DATA_MODEL ?= 32
38 endif
40 # zero
41 ifeq ($(findstring true, $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
42 ifeq ($(ARCH_DATA_MODEL), 64)
43 MAKE_ARGS += LP64=1
44 endif
45 PLATFORM = bsd-zero
46 VM_PLATFORM = bsd_$(subst i386,i486,$(ZERO_LIBARCH))
47 HS_ARCH = zero
48 ARCH = zero
49 endif
51 # ia64
52 ifeq ($(ARCH), ia64)
53 ARCH_DATA_MODEL = 64
54 MAKE_ARGS += LP64=1
55 PLATFORM = bsd-ia64
56 VM_PLATFORM = bsd_ia64
57 HS_ARCH = ia64
58 endif
60 # sparc
61 ifeq ($(ARCH), sparc64)
62 ifeq ($(ARCH_DATA_MODEL), 64)
63 ARCH_DATA_MODEL = 64
64 MAKE_ARGS += LP64=1
65 PLATFORM = bsd-sparcv9
66 VM_PLATFORM = bsd_sparcv9
67 else
68 ARCH_DATA_MODEL = 32
69 PLATFORM = bsd-sparc
70 VM_PLATFORM = bsd_sparc
71 endif
72 HS_ARCH = sparc
73 endif
75 # amd64
76 ifneq (,$(findstring $(ARCH), amd64 x86_64))
77 ifeq ($(ARCH_DATA_MODEL), 64)
78 ARCH_DATA_MODEL = 64
79 MAKE_ARGS += LP64=1
80 PLATFORM = bsd-amd64
81 VM_PLATFORM = bsd_amd64
82 HS_ARCH = x86
83 else
84 ARCH_DATA_MODEL = 32
85 PLATFORM = bsd-i586
86 VM_PLATFORM = bsd_i486
87 HS_ARCH = x86
88 # We have to reset ARCH to i386 since SRCARCH relies on it
89 ARCH = i386
90 endif
91 endif
93 # i386
94 ifeq ($(ARCH), i386)
95 ifeq ($(ARCH_DATA_MODEL), 64)
96 ARCH_DATA_MODEL = 64
97 MAKE_ARGS += LP64=1
98 PLATFORM = bsd-amd64
99 VM_PLATFORM = bsd_amd64
100 HS_ARCH = x86
101 # We have to reset ARCH to amd64 since SRCARCH relies on it
102 ARCH = amd64
103 else
104 ARCH_DATA_MODEL = 32
105 PLATFORM = bsd-i586
106 VM_PLATFORM = bsd_i486
107 HS_ARCH = x86
108 endif
109 endif
111 # ARM
112 ifeq ($(ARCH), arm)
113 ARCH_DATA_MODEL = 32
114 PLATFORM = bsd-arm
115 VM_PLATFORM = bsd_arm
116 HS_ARCH = arm
117 endif
119 # PPC
120 ifeq ($(ARCH), ppc)
121 ARCH_DATA_MODEL = 32
122 PLATFORM = bsd-ppc
123 VM_PLATFORM = bsd_ppc
124 HS_ARCH = ppc
125 endif
127 # On 32 bit bsd we build server and client, on 64 bit just server.
128 ifeq ($(JVM_VARIANTS),)
129 ifeq ($(ARCH_DATA_MODEL), 32)
130 JVM_VARIANTS:=client,server
131 JVM_VARIANT_CLIENT:=true
132 JVM_VARIANT_SERVER:=true
133 else
134 JVM_VARIANTS:=server
135 JVM_VARIANT_SERVER:=true
136 endif
137 endif
139 JDK_INCLUDE_SUBDIR=bsd
141 # Library suffix
142 OS_VENDOR:=$(shell uname -s)
143 ifeq ($(OS_VENDOR),Darwin)
144 LIBRARY_SUFFIX=dylib
145 else
146 LIBRARY_SUFFIX=so
147 endif
149 # FIXUP: The subdirectory for a debug build is NOT the same on all platforms
150 VM_DEBUG=jvmg
152 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
154 # client and server subdirectories have symbolic links to ../libjsig.so
155 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
156 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
157 EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
159 EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar
161 ifeq ($(findstring true, $(JVM_VARIANT_SERVER) $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
162 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
163 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
164 endif
166 ifeq ($(JVM_VARIANT_CLIENT),true)
167 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
168 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
169 endif
171 # Serviceability Binaries
172 # No SA Support for PPC, IA64, ARM or zero
173 ADD_SA_BINARIES/x86 = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
174 $(EXPORT_LIB_DIR)/sa-jdi.jar
175 ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
176 $(EXPORT_LIB_DIR)/sa-jdi.jar
177 ADD_SA_BINARIES/universal = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
178 $(EXPORT_LIB_DIR)/sa-jdi.jar
179 ADD_SA_BINARIES/ppc =
180 ADD_SA_BINARIES/ia64 =
181 ADD_SA_BINARIES/arm =
182 ADD_SA_BINARIES/zero =
184 EXPORT_LIST += $(ADD_SA_BINARIES/$(HS_ARCH))
186 # Universal build settings
187 ifeq ($(OS_VENDOR), Darwin)
188 # Build universal binaries by default on Mac OS X
189 MACOSX_UNIVERSAL = true
190 ifneq ($(ALT_MACOSX_UNIVERSAL),)
191 MACOSX_UNIVERSAL = $(ALT_MACOSX_UNIVERSAL)
192 endif
193 MAKE_ARGS += MACOSX_UNIVERSAL=$(MACOSX_UNIVERSAL)
195 # Universal settings
196 ifeq ($(MACOSX_UNIVERSAL), true)
198 # Set universal export path but avoid using ARCH or PLATFORM subdirs
199 EXPORT_PATH=$(OUTPUTDIR)/export-universal$(EXPORT_SUBDIR)
200 ifneq ($(ALT_EXPORT_PATH),)
201 EXPORT_PATH=$(ALT_EXPORT_PATH)
202 endif
204 # Set universal image dir
205 JDK_IMAGE_DIR=$(OUTPUTDIR)/jdk-universal$(EXPORT_SUBDIR)
206 ifneq ($(ALT_JDK_IMAGE_DIR),)
207 JDK_IMAGE_DIR=$(ALT_JDK_IMAGE_DIR)
208 endif
210 # Binaries to 'universalize' if built
211 UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/libjsig.$(LIBRARY_SUFFIX)
212 UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/libsaproc.$(LIBRARY_SUFFIX)
213 UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/server/libjvm.$(LIBRARY_SUFFIX)
214 UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/client/libjvm.$(LIBRARY_SUFFIX)
216 # Files to simply copy in place
217 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/server/Xusage.txt
218 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/client/Xusage.txt
220 endif
221 endif