Fri, 24 Dec 2010 11:16:02 -0800
Merge
1 #
2 # Copyright (c) 1995, 2009, 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. Oracle designates this
8 # particular file as subject to the "Classpath" exception as provided
9 # by Oracle in the LICENSE file that accompanied this code.
10 #
11 # This code is distributed in the hope that it will be useful, but WITHOUT
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 # version 2 for more details (a copy is included in the LICENSE file that
15 # accompanied this code).
16 #
17 # You should have received a copy of the GNU General Public License version
18 # 2 along with this work; if not, write to the Free Software Foundation,
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 #
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 # or visit www.oracle.com if you need additional information or have any
23 # questions.
24 #
26 #
27 # Common variables used by all the Java makefiles. This file should
28 # not contain rules.
29 #
31 # Indicate that we are visiting a separate repo or component
32 define MakeStart
33 $(PRINTF) "\n\n%s\n%s\n##### %-60.60s #####\n%s\n" \
34 "########################################################################" \
35 "########################################################################" \
36 "Entering $1 for target $2" \
37 "########################################################################"
38 endef
40 define MakeFinish
41 $(PRINTF) "%s\n##### %-60.60s #####\n%s\n%s\n\n" \
42 "########################################################################" \
43 "Leaving $1 for target $2" \
44 "########################################################################" \
45 "########################################################################"
46 endef
48 ifdef OPENJDK
49 ifneq ($(OPENJDK),true)
50 x:=$(error "OPENJDK (if defined) can only be set to true")
51 endif
52 endif
54 # Define absolute paths to TOPDIRs
55 ABS_LANGTOOLS_TOPDIR:=$(call OptFullPath,"$(LANGTOOLS_TOPDIR)")
56 ABS_CORBA_TOPDIR:=$(call OptFullPath,"$(CORBA_TOPDIR)")
57 ABS_JAXP_TOPDIR:=$(call OptFullPath,"$(JAXP_TOPDIR)")
58 ABS_JAXWS_TOPDIR:=$(call OptFullPath,"$(JAXWS_TOPDIR)")
59 ABS_JDK_TOPDIR:=$(call OptFullPath,"$(JDK_TOPDIR)")
60 ABS_HOTSPOT_TOPDIR:=$(call OptFullPath,"$(HOTSPOT_TOPDIR)")
61 ABS_INSTALL_TOPDIR:=$(call OptFullPath,"$(INSTALL_TOPDIR)")
62 ABS_SPONSORS_TOPDIR:=$(call OptFullPath,"$(SPONSORS_TOPDIR)")
63 ABS_DEPLOY_TOPDIR:=$(call OptFullPath,"$(DEPLOY_TOPDIR)")
65 # Macro to return true or false if a file exists and is readable
66 define MkExists
67 $(shell if [ -r $1 ]; then $(ECHO) true; else $(ECHO) false; fi)
68 endef
70 HOTSPOT_SRC_AVAILABLE := $(call MkExists,$(HOTSPOT_TOPDIR)/make/Makefile)
71 ifndef BUILD_HOTSPOT
72 ifdef ALT_HOTSPOT_IMPORT_PATH
73 BUILD_HOTSPOT := false
74 else
75 BUILD_HOTSPOT := $(HOTSPOT_SRC_AVAILABLE)
76 endif
77 endif
79 LANGTOOLS_SRC_AVAILABLE := $(call MkExists,$(LANGTOOLS_TOPDIR)/make/Makefile)
80 ifndef BUILD_LANGTOOLS
81 ifdef ALT_LANGTOOLS_DIST
82 BUILD_LANGTOOLS := false
83 else
84 BUILD_LANGTOOLS := $(LANGTOOLS_SRC_AVAILABLE)
85 endif
86 endif
88 CORBA_SRC_AVAILABLE := $(call MkExists,$(CORBA_TOPDIR)/make/Makefile)
89 ifndef BUILD_CORBA
90 ifdef ALT_CORBA_DIST
91 BUILD_CORBA := false
92 else
93 BUILD_CORBA := $(CORBA_SRC_AVAILABLE)
94 endif
95 endif
97 JAXP_SRC_AVAILABLE := $(call MkExists,$(JAXP_TOPDIR)/make/Makefile)
98 ifndef BUILD_JAXP
99 ifdef ALT_JAXP_DIST
100 BUILD_JAXP := false
101 else
102 BUILD_JAXP := $(JAXP_SRC_AVAILABLE)
103 endif
104 endif
106 JAXWS_SRC_AVAILABLE := $(call MkExists,$(JAXWS_TOPDIR)/make/Makefile)
107 ifndef BUILD_JAXWS
108 ifdef ALT_JAXWS_DIST
109 BUILD_JAXWS := false
110 else
111 BUILD_JAXWS := $(JAXWS_SRC_AVAILABLE)
112 endif
113 endif
115 JDK_SRC_AVAILABLE := $(call MkExists,$(JDK_TOPDIR)/make/Makefile)
116 ifndef BUILD_JDK
117 BUILD_JDK := $(JDK_SRC_AVAILABLE)
118 endif
119 ifeq ($(JDK_SRC_AVAILABLE),true)
120 JDK_CLOSED_SRC_AVAILABLE := $(call MkExists,$(JDK_TOPDIR)/src/closed)
121 ifeq ($(JDK_CLOSED_SRC_AVAILABLE),false)
122 OPENJDK = true
123 endif
124 endif
126 DEPLOY_SRC_AVAILABLE := $(call MkExists,$(DEPLOY_TOPDIR)/make/Makefile)
127 ifndef BUILD_DEPLOY
128 BUILD_DEPLOY := $(DEPLOY_SRC_AVAILABLE)
129 endif
131 INSTALL_SRC_AVAILABLE := $(call MkExists,$(INSTALL_TOPDIR)/make/Makefile)
132 ifndef BUILD_INSTALL
133 ifdef DEV_ONLY
134 BUILD_INSTALL := false
135 else
136 BUILD_INSTALL := $(INSTALL_SRC_AVAILABLE)
137 endif
138 endif
140 SPONSORS_SRC_AVAILABLE := $(call MkExists,$(SPONSORS_TOPDIR)/make/Makefile)
141 ifndef BUILD_SPONSORS
142 ifdef DEV_ONLY
143 BUILD_SPONSORS := false
144 else
145 BUILD_SPONSORS := $(SPONSORS_SRC_AVAILABLE)
146 endif
147 endif
150 # Do we build the source and openjdk binary plug bundles?
151 BUNDLE_RULES = $(JDK_TOPDIR)/make/closed/bundles.gmk
152 ifeq ($(SKIP_BUNDLES_BUILD), true)
153 BUNDLE_RULES_AVAILABLE := false
154 else
155 BUNDLE_RULES_AVAILABLE := $(call MkExists,$(BUNDLE_RULES))
156 endif
158 # Current things we do NOT build for OPENJDK
159 ifdef OPENJDK
160 BUILD_DEPLOY = false
161 BUILD_INSTALL = false
162 BUILD_SPONSORS = false
163 BUNDLE_RULES_AVAILABLE := false
164 # These could be over-ridden on the command line or in environment
165 ifndef SKIP_FASTDEBUG_BUILD
166 SKIP_FASTDEBUG_BUILD = true
167 endif
168 ifndef SKIP_DEBUG_BUILD
169 SKIP_DEBUG_BUILD = true
170 endif
171 ifndef SKIP_COMPARE_IMAGES
172 SKIP_COMPARE_IMAGES = true
173 endif
174 SKIP_OPENJDK_BUILD = true
175 else
177 # Various non-OPENJDK reasons to NOT build the deploy repository
178 ifeq ($(ARCH), ia64)
179 BUILD_DEPLOY=false
180 endif
181 ifeq ($(ARCH), sparcv9)
182 BUILD_DEPLOY=false
183 endif
184 ifeq ($(ARCH), amd64)
185 ifeq ($(PLATFORM), solaris)
186 BUILD_DEPLOY=false
187 endif
188 endif
190 ifndef SKIP_OPENJDK_BUILD
191 #SKIP_OPENJDK_BUILD = false
192 # Until 6675289 is resolved, or this feature is removed.
193 SKIP_OPENJDK_BUILD = true
194 endif
195 endif
196 ifndef SKIP_PRODUCT_BUILD
197 SKIP_PRODUCT_BUILD = false
198 endif
200 # Solaris 64 bit builds are not complete enough to ever do this
201 ifeq ($(PLATFORM)$(ARCH_DATA_MODEL),solaris64)
202 SKIP_OPENJDK_BUILD = true
203 endif
205 # Many reasons why we would want to skip the comparison to previous jdk
206 ifndef SKIP_COMPARE_IMAGES
207 ifeq ($(BUILD_JDK), false)
208 SKIP_COMPARE_IMAGES = true
209 endif
210 ifeq ($(BUILD_DEPLOY), false)
211 SKIP_COMPARE_IMAGES = true
212 endif
213 ifeq ($(BUILD_INSTALL), false)
214 SKIP_COMPARE_IMAGES = true
215 endif
216 ifdef DEV_ONLY
217 SKIP_COMPARE_IMAGES = true
218 endif
219 endif
221 # Select defaults if these are not set to true or false
222 ifndef SKIP_DEBUG_BUILD
223 SKIP_DEBUG_BUILD=true
224 endif
225 ifndef SKIP_FASTDEBUG_BUILD
226 SKIP_FASTDEBUG_BUILD=false
227 endif
229 # Select javadoc setting GENERATE_DOCS
230 ifndef NO_DOCS
231 # Default value (we want javadoc run)
232 GENERATE_DOCS=true
233 # No DOCS build when JDK_UPDATE_VERSION set on non-OPENJDK builds
234 ifndef OPENJDK
235 ifdef JDK_UPDATE_VERSION
236 GENERATE_DOCS=false
237 endif
238 endif
239 # If langtools, corba, jaxp, and jaxws are not being built,
240 # a full jdk javadoc is not possible
241 ifneq ($(BUILD_LANGTOOLS), true)
242 GENERATE_DOCS=false
243 endif
244 ifneq ($(BUILD_CORBA), true)
245 GENERATE_DOCS=false
246 endif
247 ifneq ($(BUILD_JAXP), true)
248 GENERATE_DOCS=false
249 endif
250 ifneq ($(BUILD_JAXWS), true)
251 GENERATE_DOCS=false
252 endif
253 ifeq ($(GENERATE_DOCS),false)
254 NO_DOCS=true
255 endif
256 else
257 GENERATE_DOCS=false
258 endif
260 # Output directory for hotspot build
261 HOTSPOT_DIR = $(ABS_OUTPUTDIR)/hotspot
263 # If we are building components
264 ifndef ALT_LANGTOOLS_DIST
265 LANGTOOLS_OUTPUTDIR = $(ABS_OUTPUTDIR)/langtools
266 ABS_LANGTOOLS_DIST = $(LANGTOOLS_OUTPUTDIR)/dist
267 endif
268 ifndef ALT_CORBA_DIST
269 CORBA_OUTPUTDIR = $(ABS_OUTPUTDIR)/corba
270 ABS_CORBA_DIST = $(CORBA_OUTPUTDIR)/dist
271 endif
272 ifndef ALT_JAXP_DIST
273 JAXP_OUTPUTDIR = $(ABS_OUTPUTDIR)/jaxp
274 ABS_JAXP_DIST = $(JAXP_OUTPUTDIR)/dist
275 endif
276 ifndef ALT_JAXWS_DIST
277 JAXWS_OUTPUTDIR = $(ABS_OUTPUTDIR)/jaxws
278 ABS_JAXWS_DIST = $(JAXWS_OUTPUTDIR)/dist
279 endif
281 # Common make arguments (supplied to all component builds)
282 COMMON_BUILD_ARGUMENTS = \
283 JDK_TOPDIR=$(ABS_JDK_TOPDIR) \
284 JDK_MAKE_SHARED_DIR=$(ABS_JDK_TOPDIR)/make/common/shared \
285 EXTERNALSANITYCONTROL=true \
286 SOURCE_LANGUAGE_VERSION=$(SOURCE_LANGUAGE_VERSION) \
287 TARGET_CLASS_VERSION=$(TARGET_CLASS_VERSION) \
288 MILESTONE=$(MILESTONE) \
289 BUILD_NUMBER=$(BUILD_NUMBER) \
290 JDK_BUILD_NUMBER=$(JDK_BUILD_NUMBER) \
291 FULL_VERSION=$(FULL_VERSION) \
292 PREVIOUS_JDK_VERSION=$(PREVIOUS_JDK_VERSION) \
293 JDK_VERSION=$(JDK_VERSION) \
294 JDK_MKTG_VERSION=$(JDK_MKTG_VERSION) \
295 JDK_MAJOR_VERSION=$(JDK_MAJOR_VERSION) \
296 JDK_MINOR_VERSION=$(JDK_MINOR_VERSION) \
297 JDK_MICRO_VERSION=$(JDK_MICRO_VERSION) \
298 PREVIOUS_MAJOR_VERSION=$(PREVIOUS_MAJOR_VERSION) \
299 PREVIOUS_MINOR_VERSION=$(PREVIOUS_MINOR_VERSION) \
300 PREVIOUS_MICRO_VERSION=$(PREVIOUS_MICRO_VERSION)
302 ifdef ARCH_DATA_MODEL
303 COMMON_BUILD_ARGUMENTS += ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)
304 endif
306 ifeq ($(DEBUG_NAME), debug)
307 COMMON_BUILD_ARGUMENTS += VARIANT=DBG DEBUG_CLASSFILES=true
308 endif
310 ifeq ($(DEBUG_NAME), fastdebug)
311 COMMON_BUILD_ARGUMENTS += VARIANT=DBG FASTDEBUG=true DEBUG_CLASSFILES=true
312 endif
314 ifdef COOKED_JDK_UPDATE_VERSION
315 COMMON_BUILD_ARGUMENTS += COOKED_JDK_UPDATE_VERSION=$(COOKED_JDK_UPDATE_VERSION)
316 endif
318 ifdef COOKED_BUILD_NUMBER
319 COMMON_BUILD_ARGUMENTS += COOKED_BUILD_NUMBER=$(COOKED_BUILD_NUMBER)
320 endif
322 ifdef ANT_HOME
323 COMMON_BUILD_ARGUMENTS += ANT_HOME="$(ANT_HOME)"
324 endif