blob: d93b3195ec5150705b76821eb5def61f918c53f7 [file] [log] [blame]
J. Duke686d76f2007-12-01 00:00:00 +00001#
Kelly O'Hair0eca63f2010-06-21 11:00:15 -07002# Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
J. Duke686d76f2007-12-01 00:00:00 +00003# 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
Kelly O'Hair136614e2010-05-25 15:51:26 -07007# published by the Free Software Foundation. Oracle designates this
J. Duke686d76f2007-12-01 00:00:00 +00008# particular file as subject to the "Classpath" exception as provided
Kelly O'Hair136614e2010-05-25 15:51:26 -07009# by Oracle in the LICENSE file that accompanied this code.
J. Duke686d76f2007-12-01 00:00:00 +000010#
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#
Kelly O'Hair136614e2010-05-25 15:51:26 -070021# 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.
J. Duke686d76f2007-12-01 00:00:00 +000024#
25
Kelly O'Hair6377bd62008-03-09 15:47:58 -070026BUILD_PARENT_DIRECTORY=.
27
J. Duke686d76f2007-12-01 00:00:00 +000028ifndef TOPDIR
Kelly O'Hairfb56a9a2008-03-25 14:38:56 -070029 TOPDIR:=.
J. Duke686d76f2007-12-01 00:00:00 +000030endif
31
J. Duke686d76f2007-12-01 00:00:00 +000032ifndef JDK_TOPDIR
33 JDK_TOPDIR=$(TOPDIR)/jdk
34endif
35ifndef JDK_MAKE_SHARED_DIR
36 JDK_MAKE_SHARED_DIR=$(JDK_TOPDIR)/make/common/shared
37endif
38
Kelly O'Hairfa892cf2008-08-06 14:57:13 -070039default: all
40
J. Duke686d76f2007-12-01 00:00:00 +000041include $(JDK_MAKE_SHARED_DIR)/Defs-control.gmk
J. Duke686d76f2007-12-01 00:00:00 +000042include ./make/Defs-internal.gmk
J. Duke686d76f2007-12-01 00:00:00 +000043include ./make/sanity-rules.gmk
J. Duke686d76f2007-12-01 00:00:00 +000044include ./make/hotspot-rules.gmk
45include ./make/langtools-rules.gmk
46include ./make/corba-rules.gmk
47include ./make/jaxp-rules.gmk
48include ./make/jaxws-rules.gmk
49include ./make/jdk-rules.gmk
50include ./make/install-rules.gmk
51include ./make/sponsors-rules.gmk
52include ./make/deploy-rules.gmk
53
Kelly O'Hair88990fd2011-01-05 17:24:58 -080054all:: sanity
Kelly O'Hairfa892cf2008-08-06 14:57:13 -070055
56ifeq ($(SKIP_FASTDEBUG_BUILD), false)
57 all:: fastdebug_build
58endif
59
60ifeq ($(SKIP_DEBUG_BUILD), false)
61 all:: debug_build
62endif
63
Kelly O'Hair179908e2008-08-17 09:56:25 -070064all:: all_product_build
65
Kelly O'Hairfa892cf2008-08-06 14:57:13 -070066# Everything for a full product build
Kelly O'Hairfa892cf2008-08-06 14:57:13 -070067ifeq ($(SKIP_PRODUCT_BUILD), false)
Fredrik Öhrström4eb68762011-02-28 10:56:10 +010068
Kelly O'Hairfa892cf2008-08-06 14:57:13 -070069 all_product_build:: product_build
70
71 ifeq ($(BUILD_INSTALL), true)
72 all_product_build:: $(INSTALL)
73 clobber:: install-clobber
74 endif
Fredrik Öhrström4eb68762011-02-28 10:56:10 +010075
Kelly O'Hairfa892cf2008-08-06 14:57:13 -070076 ifeq ($(BUILD_SPONSORS), true)
77 all_product_build:: $(SPONSORS)
78 clobber:: sponsors-clobber
79 endif
Fredrik Öhrström4eb68762011-02-28 10:56:10 +010080
Kelly O'Hairfa892cf2008-08-06 14:57:13 -070081 ifneq ($(SKIP_COMPARE_IMAGES), true)
82 all_product_build:: compare-image
83 endif
84
85endif
86
Fredrik Öhrström4eb68762011-02-28 10:56:10 +010087define StartTimer
88 $(MKDIR) -p $(BUILDTIMESDIR)
89 $(RM) $(BUILDTIMESDIR)/build_time_*
90 $(call RecordStartTime,TOTAL)
91endef
92
93define StopTimer
94 $(if $(REPORT_BUILD_TIMES),$(call RecordEndTime,TOTAL) && $(call ReportBuildTimes,$1),)
95endef
Kelly O'Hairfa892cf2008-08-06 14:57:13 -070096
Kelly O'Hair0eca63f2010-06-21 11:00:15 -070097# Generic build of basic repo series
Kelly O'Hairfa892cf2008-08-06 14:57:13 -070098generic_build_repo_series::
99 $(MKDIR) -p $(OUTPUTDIR)
J. Duke686d76f2007-12-01 00:00:00 +0000100 $(MKDIR) -p $(OUTPUTDIR)/j2sdk-image
Fredrik Öhrström4eb68762011-02-28 10:56:10 +0100101 @$(call StartTimer)
J. Duke686d76f2007-12-01 00:00:00 +0000102
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700103ifeq ($(BUILD_LANGTOOLS), true)
104 generic_build_repo_series:: langtools
105 clobber:: langtools-clobber
106endif
107
108ifeq ($(BUILD_CORBA), true)
109 generic_build_repo_series:: corba
110 clobber:: corba-clobber
111endif
112
113ifeq ($(BUILD_JAXP), true)
114 generic_build_repo_series:: jaxp
115 clobber:: jaxp-clobber
116endif
117
118ifeq ($(BUILD_JAXWS), true)
119 generic_build_repo_series:: jaxws
120 clobber:: jaxws-clobber
121endif
122
123ifeq ($(BUILD_HOTSPOT), true)
124 generic_build_repo_series:: $(HOTSPOT)
125 clobber:: hotspot-clobber
126endif
127
128ifeq ($(BUILD_JDK), true)
129 generic_build_repo_series:: $(JDK_JAVA_EXE)
130 clobber:: jdk-clobber
131endif
132
133ifeq ($(BUILD_DEPLOY), true)
134 generic_build_repo_series:: $(DEPLOY)
135 clobber:: deploy-clobber
136endif
137
Fredrik Öhrström4eb68762011-02-28 10:56:10 +0100138generic_build_repo_series::
139 @$(call StopTimer,$(if $(DEBUG_NAME),$(DEBUG_NAME)_build,all_product_build))
140
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700141# The debug build, fastdebug or debug. Needs special handling.
142# Note that debug builds do NOT do INSTALL steps, but must be done
143# after the product build and before the INSTALL step of the product build.
144#
145# DEBUG_NAME is fastdebug or debug
146# ALT_OUTPUTDIR is changed to have -debug or -fastdebug suffix
147# The resulting j2sdk-image is used by the install makefiles to create a
148# debug install bundle jdk-*-debug-** bundle (tar or zip)
149# which will install in the debug or fastdebug subdirectory of the
150# normal product install area.
151# The install process needs to know what the DEBUG_NAME is, so
152# look for INSTALL_DEBUG_NAME in the install rules.
153#
Kelly O'Hair0eca63f2010-06-21 11:00:15 -0700154# NOTE: On windows, do not use $(ABS_BOOTDIR_OUTPUTDIR)-$(DEBUG_NAME).
155# Due to the use of short paths in $(ABS_OUTPUTDIR), this may
156# not be the same location.
157#
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700158
159# Location of fresh bootdir output
160ABS_BOOTDIR_OUTPUTDIR=$(ABS_OUTPUTDIR)/bootjdk
161FRESH_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/j2sdk-image
Kelly O'Hair0eca63f2010-06-21 11:00:15 -0700162FRESH_DEBUG_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-$(DEBUG_NAME)/j2sdk-image
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700163
164create_fresh_product_bootdir: FRC
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700165 $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
Kelly O'Haird0c9ba32009-11-18 16:41:09 -0800166 GENERATE_DOCS=false \
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700167 BOOT_CYCLE_SETTINGS= \
168 build_product_image
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700169
170create_fresh_debug_bootdir: FRC
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700171 $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
Kelly O'Haird0c9ba32009-11-18 16:41:09 -0800172 GENERATE_DOCS=false \
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700173 BOOT_CYCLE_DEBUG_SETTINGS= \
174 build_debug_image
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700175
176create_fresh_fastdebug_bootdir: FRC
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700177 $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
Kelly O'Haird0c9ba32009-11-18 16:41:09 -0800178 GENERATE_DOCS=false \
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700179 BOOT_CYCLE_DEBUG_SETTINGS= \
180 build_fastdebug_image
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700181
182# Create boot image?
183ifeq ($(SKIP_BOOT_CYCLE),false)
184 ifneq ($(PLATFORM)$(ARCH_DATA_MODEL),solaris64)
185 DO_BOOT_CYCLE=true
186 endif
187endif
188
Fredrik Öhrström4eb68762011-02-28 10:56:10 +0100189
190
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700191ifeq ($(DO_BOOT_CYCLE),true)
192
193 # Create the bootdir to use in the build
194 product_build:: create_fresh_product_bootdir
195 debug_build:: create_fresh_debug_bootdir
196 fastdebug_build:: create_fresh_fastdebug_bootdir
197
198 # Define variables to be used now for the boot jdk
199 BOOT_CYCLE_SETTINGS= \
200 ALT_BOOTDIR=$(FRESH_BOOTDIR) \
201 ALT_JDK_IMPORT_PATH=$(FRESH_BOOTDIR)
202 BOOT_CYCLE_DEBUG_SETTINGS= \
203 ALT_BOOTDIR=$(FRESH_DEBUG_BOOTDIR) \
204 ALT_JDK_IMPORT_PATH=$(FRESH_DEBUG_BOOTDIR)
205
206else
207
208 # Use the supplied ALT_BOOTDIR as the boot
209 BOOT_CYCLE_SETTINGS=
210 BOOT_CYCLE_DEBUG_SETTINGS=
211
212endif
213
214build_product_image:
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700215 $(MAKE) \
216 SKIP_FASTDEBUG_BUILD=true \
217 SKIP_DEBUG_BUILD=true \
218 $(BOOT_CYCLE_SETTINGS) \
219 generic_build_repo_series
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700220
Kelly O'Hair0eca63f2010-06-21 11:00:15 -0700221# NOTE: On windows, do not use $(ABS_OUTPUTDIR)-$(DEBUG_NAME).
222# Due to the use of short paths in $(ABS_OUTPUTDIR), this may
223# not be the same location.
224
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700225generic_debug_build:
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700226 $(MAKE) \
Kelly O'Hair0eca63f2010-06-21 11:00:15 -0700227 ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-$(DEBUG_NAME) \
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700228 DEBUG_NAME=$(DEBUG_NAME) \
Kelly O'Haird0c9ba32009-11-18 16:41:09 -0800229 GENERATE_DOCS=false \
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700230 $(BOOT_CYCLE_DEBUG_SETTINGS) \
231 generic_build_repo_series
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700232
233build_debug_image:
234 $(MAKE) DEBUG_NAME=debug generic_debug_build
235
236build_fastdebug_image:
237 $(MAKE) DEBUG_NAME=fastdebug generic_debug_build
238
239# Build final image
240product_build:: build_product_image
241debug_build:: build_debug_image
242fastdebug_build:: build_fastdebug_image
243
Fredrik Öhrström4eb68762011-02-28 10:56:10 +0100244clobber:: REPORT_BUILD_TIMES=
245clobber::
J. Duke686d76f2007-12-01 00:00:00 +0000246 $(RM) -r $(OUTPUTDIR)/*
Kelly O'Hair0eca63f2010-06-21 11:00:15 -0700247 $(RM) -r $(OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-debug/*
248 $(RM) -r $(OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-fastdebug/*
J. Duke686d76f2007-12-01 00:00:00 +0000249 -($(RMDIR) -p $(OUTPUTDIR) > $(DEV_NULL) 2>&1; $(TRUE))
250
251clean: clobber
252
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700253#
254# Dev builds
255#
256
257dev : dev-build
258
259dev-build:
260 $(MAKE) DEV_ONLY=true all
261dev-sanity:
262 $(MAKE) DEV_ONLY=true sanity
263dev-clobber:
264 $(MAKE) DEV_ONLY=true clobber
J. Duke686d76f2007-12-01 00:00:00 +0000265
266#
267# Quick jdk verification build
268#
269jdk_only:
270 $(MAKE) SKIP_FASTDEBUG_BUILD=true BUILD_HOTSPOT=false all
271
272
273#
274# Quick jdk verification fastdebug build
275#
276jdk_fastdebug_only:
277 $(MAKE) DEBUG_NAME=fastdebug BUILD_HOTSPOT=false BUILD_DEPLOY=false \
278 BUILD_INSTALL=false BUILD_SPONSORS=false generic_debug_build
279
280#
281# Quick deploy verification fastdebug build
282#
283deploy_fastdebug_only:
284 $(MAKE) \
285 DEBUG_NAME=fastdebug \
286 BUILD_HOTSPOT=false \
287 BUILD_JDK=false \
288 BUILD_LANGTOOLS=false \
289 BUILD_CORBA=false \
290 BUILD_JAXP=false \
291 BUILD_JAXWS=false \
292 BUILD_INSTALL=false \
293 BUILD_SPONSORS=false \
294 generic_debug_build
295
296#
297# Product build (skip debug builds)
298#
299product_only:
300 $(MAKE) SKIP_FASTDEBUG_BUILD=true all
301
302#
303# Check target
304#
305
306check: variable_check
307
308#
309# Help target
310#
311help: intro_help target_help variable_help notes_help examples_help
312
313# Intro help message
314intro_help:
315 @$(ECHO) "\
316Makefile for the JDK builds (all the JDK). \n\
317"
318
319# Target help
320target_help:
321 @$(ECHO) "\
322--- Common Targets --- \n\
323all -- build the core JDK (default target) \n\
324help -- Print out help information \n\
325check -- Check make variable values for correctness \n\
326sanity -- Perform detailed sanity checks on system and settings \n\
327fastdebug_build -- build the core JDK in 'fastdebug' mode (-g -O) \n\
328debug_build -- build the core JDK in 'debug' mode (-g) \n\
329clean -- remove all built and imported files \n\
330clobber -- same as clean \n\
331"
332
333# Variable help (only common ones used by this Makefile)
334variable_help: variable_help_intro variable_list variable_help_end
335variable_help_intro:
336 @$(ECHO) "--- Common Variables ---"
337variable_help_end:
338 @$(ECHO) " "
339
340# One line descriptions for the variables
341OUTPUTDIR.desc = Output directory
342PARALLEL_COMPILE_JOBS.desc = Solaris/Linux parallel compile run count
343SLASH_JAVA.desc = Root of all build tools, e.g. /java or J:
344BOOTDIR.desc = JDK used to boot the build
345JDK_IMPORT_PATH.desc = JDK used to import components of the build
346COMPILER_PATH.desc = Compiler install directory
347CACERTS_FILE.desc = Location of certificates file
348DEVTOOLS_PATH.desc = Directory containing zip and gnumake
349CUPS_HEADERS_PATH.desc = Include directory location for CUPS header files
350DXSDK_PATH.desc = Root directory of DirectX SDK
J. Duke686d76f2007-12-01 00:00:00 +0000351
352# Make variables to print out (description and value)
353VARIABLE_PRINTVAL_LIST += \
354 OUTPUTDIR \
355 PARALLEL_COMPILE_JOBS \
356 SLASH_JAVA \
357 BOOTDIR \
358 JDK_IMPORT_PATH \
359 COMPILER_PATH \
360 CACERTS_FILE \
361 DEVTOOLS_PATH
362
363# Make variables that should refer to directories that exist
364VARIABLE_CHECKDIR_LIST += \
365 SLASH_JAVA \
366 BOOTDIR \
367 JDK_IMPORT_PATH \
368 COMPILER_PATH \
369 DEVTOOLS_PATH
370
371# Make variables that should refer to files that exist
372VARIABLE_CHECKFIL_LIST += \
373 CACERTS_FILE
374
375# Some are windows specific
376ifeq ($(PLATFORM), windows)
377
378VARIABLE_PRINTVAL_LIST += \
Kelly O'Hair5ef33b62011-01-14 14:04:19 -0800379 DXSDK_PATH
J. Duke686d76f2007-12-01 00:00:00 +0000380
381VARIABLE_CHECKDIR_LIST += \
Kelly O'Hair5ef33b62011-01-14 14:04:19 -0800382 DXSDK_PATH
J. Duke686d76f2007-12-01 00:00:00 +0000383
384endif
385
386# For pattern rules below, so all are treated the same
387DO_PRINTVAL_LIST=$(VARIABLE_PRINTVAL_LIST:%=%.printval)
388DO_CHECKDIR_LIST=$(VARIABLE_CHECKDIR_LIST:%=%.checkdir)
389DO_CHECKFIL_LIST=$(VARIABLE_CHECKFIL_LIST:%=%.checkfil)
390
391# Complete variable check
392variable_check: $(DO_CHECKDIR_LIST) $(DO_CHECKFIL_LIST)
393variable_list: $(DO_PRINTVAL_LIST) variable_check
394
395# Pattern rule for printing out a variable
396%.printval:
397 @$(ECHO) " ALT_$* - $($*.desc)"
398 @$(ECHO) " \t $*=$($*)"
399
400# Pattern rule for checking to see if a variable with a directory exists
401%.checkdir:
402 @if [ ! -d $($*) ] ; then \
403 $(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
404 fi
405
406# Pattern rule for checking to see if a variable with a file exists
407%.checkfil:
408 @if [ ! -f $($*) ] ; then \
409 $(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
410 fi
411
412# Misc notes on help
413notes_help:
414 @$(ECHO) "\
415--- Notes --- \n\
416- All builds use same output directory unless overridden with \n\
417 \t ALT_OUTPUTDIR=<dir>, changing from product to fastdebug you may want \n\
418 \t to use the clean target first. \n\
419- JDK_IMPORT_PATH must refer to a compatible build, not all past promoted \n\
420 \t builds or previous release JDK builds will work. \n\
421- The fastest builds have been when the sources and the BOOTDIR are on \n\
422 \t local disk. \n\
423"
424
425examples_help:
426 @$(ECHO) "\
427--- Examples --- \n\
428 $(MAKE) fastdebug_build \n\
429 $(MAKE) ALT_OUTPUTDIR=/tmp/foobar all \n\
430 $(MAKE) ALT_OUTPUTDIR=/tmp/foobar fastdebug_build \n\
431 $(MAKE) ALT_OUTPUTDIR=/tmp/foobar all \n\
432 $(MAKE) ALT_BOOTDIR=/opt/java/jdk1.5.0 \n\
433 $(MAKE) ALT_JDK_IMPORT_PATH=/opt/java/jdk1.6.0 \n\
434"
435
436################################################################
Kelly O'Haird77b0512010-12-23 18:41:57 -0800437# Source bundling
J. Duke686d76f2007-12-01 00:00:00 +0000438################################################################
439ifeq ($(BUNDLE_RULES_AVAILABLE), true)
440 include $(BUNDLE_RULES)
441endif
442
443################################################################
Kelly O'Hair0eca63f2010-06-21 11:00:15 -0700444# rule to test
445################################################################
446
Kelly O'Haire0c099c2010-09-24 14:03:33 -0700447.NOTPARALLEL: test_run
Kelly O'Hair0eca63f2010-06-21 11:00:15 -0700448
Kelly O'Haire0c099c2010-09-24 14:03:33 -0700449test:
450 $(MAKE) test_run
451
452test_run: test_clean test_start test_summary
Kelly O'Hair0eca63f2010-06-21 11:00:15 -0700453
454test_start:
455 @$(ECHO) "Tests started at `$(DATE)`"
456
457test_clean:
458 $(RM) $(OUTPUTDIR)/test_failures.txt $(OUTPUTDIR)/test_log.txt
459
460test_summary: $(OUTPUTDIR)/test_failures.txt
461 @$(ECHO) "#################################################"
462 @$(ECHO) "Tests completed at `$(DATE)`"
463 @( $(EGREP) '^TEST STATS:' $(OUTPUTDIR)/test_log.txt \
464 || $(ECHO) "No TEST STATS seen in log" )
465 @$(ECHO) "For complete details see: $(OUTPUTDIR)/test_log.txt"
466 @$(ECHO) "#################################################"
467 @if [ -s $< ] ; then \
468 $(ECHO) "ERROR: Test failure count: `$(CAT) $< | $(WC) -l`"; \
469 $(CAT) $<; \
470 exit 1; \
471 else \
472 $(ECHO) "Success! No failures detected"; \
473 fi
474
475# Get failure list from log
476$(OUTPUTDIR)/test_failures.txt: $(OUTPUTDIR)/test_log.txt
477 @$(RM) $@
Kelly O'Haire0c099c2010-09-24 14:03:33 -0700478 @( $(EGREP) '^FAILED:' $< || $(ECHO) "" ) | $(NAWK) 'length>0' > $@
Kelly O'Hair0eca63f2010-06-21 11:00:15 -0700479
480# Get log file of all tests run
481JDK_TO_TEST := $(shell \
482 if [ -d "$(ABS_OUTPUTDIR)/j2sdk-image" ] ; then \
483 $(ECHO) "$(ABS_OUTPUTDIR)/j2sdk-image"; \
484 elif [ -d "$(ABS_OUTPUTDIR)/bin" ] ; then \
485 $(ECHO) "$(ABS_OUTPUTDIR)"; \
486 elif [ "$(PRODUCT_HOME)" != "" -a -d "$(PRODUCT_HOME)/bin" ] ; then \
487 $(ECHO) "$(PRODUCT_HOME)"; \
488 fi \
489)
Kelly O'Haire0c099c2010-09-24 14:03:33 -0700490TEST_TARGETS=all
Kelly O'Hair0eca63f2010-06-21 11:00:15 -0700491$(OUTPUTDIR)/test_log.txt:
492 $(RM) $@
Kelly O'Haire0c099c2010-09-24 14:03:33 -0700493 ( $(CD) test && \
494 $(MAKE) NO_STOPPING=- PRODUCT_HOME=$(JDK_TO_TEST) $(TEST_TARGETS) \
Kelly O'Hair0eca63f2010-06-21 11:00:15 -0700495 ) | tee $@
496
497################################################################
J. Duke686d76f2007-12-01 00:00:00 +0000498# JPRT rule to build
499################################################################
500
501include ./make/jprt.gmk
502
503################################################################
504# PHONY
505################################################################
506
Kelly O'Haire0c099c2010-09-24 14:03:33 -0700507.PHONY: all test test_run test_start test_summary test_clean \
Kelly O'Hairfa892cf2008-08-06 14:57:13 -0700508 generic_build_repo_series \
509 what clobber insane \
510 dev dev-build dev-sanity dev-clobber \
511 product_build \
512 fastdebug_build \
513 debug_build \
514 build_product_image \
515 build_debug_image \
516 build_fastdebug_image \
517 create_fresh_product_bootdir \
518 create_fresh_debug_bootdir \
519 create_fresh_fastdebug_bootdir \
520 generic_debug_build
J. Duke686d76f2007-12-01 00:00:00 +0000521
Kelly O'Hair6377bd62008-03-09 15:47:58 -0700522# Force target
523FRC:
524