Fri, 12 Oct 2012 10:49:39 -0700
Merge
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
158 EXPORT_MINIMAL_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/minimal
160 EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar
162 ifeq ($(findstring true, $(JVM_VARIANT_SERVER) $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
163 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
164 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
165 endif
167 ifeq ($(JVM_VARIANT_CLIENT),true)
168 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
169 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
170 endif
172 ifeq ($(JVM_VARIANT_MINIMAL1),true)
173 EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/Xusage.txt
174 EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/libjvm.$(LIBRARY_SUFFIX)
176 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
177 ifeq ($(ZIP_DEBUGINFO_FILES),1)
178 EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/libjvm.diz
179 else
180 EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/libjvm.debuginfo
181 endif
182 endif
183 endif
185 # Serviceability Binaries
186 # No SA Support for PPC, IA64, ARM or zero
187 ADD_SA_BINARIES/x86 = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
188 $(EXPORT_LIB_DIR)/sa-jdi.jar
189 ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
190 $(EXPORT_LIB_DIR)/sa-jdi.jar
191 ADD_SA_BINARIES/universal = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
192 $(EXPORT_LIB_DIR)/sa-jdi.jar
193 ADD_SA_BINARIES/ppc =
194 ADD_SA_BINARIES/ia64 =
195 ADD_SA_BINARIES/arm =
196 ADD_SA_BINARIES/zero =
198 EXPORT_LIST += $(ADD_SA_BINARIES/$(HS_ARCH))
200 # Universal build settings
201 ifeq ($(OS_VENDOR), Darwin)
202 # Build universal binaries by default on Mac OS X
203 MACOSX_UNIVERSAL = true
204 ifneq ($(ALT_MACOSX_UNIVERSAL),)
205 MACOSX_UNIVERSAL = $(ALT_MACOSX_UNIVERSAL)
206 endif
207 MAKE_ARGS += MACOSX_UNIVERSAL=$(MACOSX_UNIVERSAL)
209 # Universal settings
210 ifeq ($(MACOSX_UNIVERSAL), true)
212 # Set universal export path but avoid using ARCH or PLATFORM subdirs
213 EXPORT_PATH=$(OUTPUTDIR)/export-universal$(EXPORT_SUBDIR)
214 ifneq ($(ALT_EXPORT_PATH),)
215 EXPORT_PATH=$(ALT_EXPORT_PATH)
216 endif
218 # Set universal image dir
219 JDK_IMAGE_DIR=$(OUTPUTDIR)/jdk-universal$(EXPORT_SUBDIR)
220 ifneq ($(ALT_JDK_IMAGE_DIR),)
221 JDK_IMAGE_DIR=$(ALT_JDK_IMAGE_DIR)
222 endif
224 # Binaries to 'universalize' if built
225 UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/libjsig.$(LIBRARY_SUFFIX)
226 UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/libsaproc.$(LIBRARY_SUFFIX)
227 UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/server/libjvm.$(LIBRARY_SUFFIX)
228 UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/client/libjvm.$(LIBRARY_SUFFIX)
230 # Files to simply copy in place
231 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/server/Xusage.txt
232 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/client/Xusage.txt
234 endif
235 endif