Makefile revision 613
cd348e325366620fe047edcc849e3c9424828599Peter Bray#
cd348e325366620fe047edcc849e3c9424828599Peter Bray# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
0ca9a2c194523c517c3aafe5758e217ac88d6baaLubos Kosco# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
cd348e325366620fe047edcc849e3c9424828599Peter Bray#
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# This code is free software; you can redistribute it and/or modify it
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal# under the terms of the GNU General Public License version 2 only, as
983523cf73bc85cce6282cb5aa78b60f6bcd959fLubos Kosco# published by the Free Software Foundation. Oracle designates this
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# particular file as subject to the "Classpath" exception as provided
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# by Oracle in the LICENSE file that accompanied this code.
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Bray#
983523cf73bc85cce6282cb5aa78b60f6bcd959fLubos Kosco# This code is distributed in the hope that it will be useful, but WITHOUT
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# version 2 for more details (a copy is included in the LICENSE file that
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Bray# accompanied this code).
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Bray#
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# You should have received a copy of the GNU General Public License version
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# 2 along with this work; if not, write to the Free Software Foundation,
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Bray#
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# or visit www.oracle.com if you need additional information or have any
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# questions.
d961aa46ea0d50fed47802497e45226b1965b12dVladimir Kotal#
d961aa46ea0d50fed47802497e45226b1965b12dVladimir Kotal
d961aa46ea0d50fed47802497e45226b1965b12dVladimir KotalBUILD_PARENT_DIRECTORY=.
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
983523cf73bc85cce6282cb5aa78b60f6bcd959fLubos Kosco# Basename of any originally supplied ALT_OUTPUTDIR directory
983523cf73bc85cce6282cb5aa78b60f6bcd959fLubos Koscoifndef ORIG_OUTPUTDIR_BASENAME
983523cf73bc85cce6282cb5aa78b60f6bcd959fLubos Kosco ifdef ALT_OUTPUTDIR
983523cf73bc85cce6282cb5aa78b60f6bcd959fLubos Kosco ORIG_OUTPUTDIR_BASENAME := $(shell basename $(ALT_OUTPUTDIR))
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray else
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray ORIG_OUTPUTDIR_BASENAME = $(PLATFORM)-$(ARCH)
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray endif
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayendif
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayexport ORIG_OUTPUTDIR_BASENAME
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal# The three possible directories created for output (3 build flavors)
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayOUTPUTDIR_BASENAME- = $(ORIG_OUTPUTDIR_BASENAME)
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter BrayOUTPUTDIR_BASENAME-debug = $(ORIG_OUTPUTDIR_BASENAME)-debug
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir KotalOUTPUTDIR_BASENAME-fastdebug = $(ORIG_OUTPUTDIR_BASENAME)-fastdebug
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal# Relative path to a debug output area
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir KotalREL_JDK_OUTPUTDIR = ../$(OUTPUTDIR_BASENAME-$(DEBUG_NAME))
65df1e87266301e243dcead8082ca6255abea666Vladimir Kotal
65df1e87266301e243dcead8082ca6255abea666Vladimir Kotal# The created jdk image directory
425278cfacbc73f1e955ab6016f206fc5ed93ccbVladimir KotalJDK_IMAGE_DIRNAME = j2sdk-image
425278cfacbc73f1e955ab6016f206fc5ed93ccbVladimir KotalJDK_IMAGE_DIR = $(OUTPUTDIR)/$(JDK_IMAGE_DIRNAME)
65df1e87266301e243dcead8082ca6255abea666Vladimir KotalABS_JDK_IMAGE_DIR = $(ABS_OUTPUTDIR)/$(JDK_IMAGE_DIRNAME)
65df1e87266301e243dcead8082ca6255abea666Vladimir Kotal
65df1e87266301e243dcead8082ca6255abea666Vladimir Kotal# Relative path from an output directory to the image directory
425278cfacbc73f1e955ab6016f206fc5ed93ccbVladimir KotalREL_JDK_IMAGE_DIR = ../$(OUTPUTDIR_BASENAME-$(DEBUG_NAME))/$(JDK_IMAGE_DIRNAME)
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir KotalREL_JDK_DEBUG_IMAGE_DIR = ../$(OUTPUTDIR_BASENAME-debug)/$(JDK_IMAGE_DIRNAME)
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir KotalREL_JDK_FASTDEBUG_IMAGE_DIR = ../$(OUTPUTDIR_BASENAME-fastdebug)/$(JDK_IMAGE_DIRNAME)
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotalifndef TOPDIR
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal TOPDIR:=.
6ce0623fa4ef95af9d77700a1c9c19ec1a919326Guillaume Smetendif
6ce0623fa4ef95af9d77700a1c9c19ec1a919326Guillaume Smet
56c25decc0427c204cd35856e521ddf28337e75dLubos Koscoifndef JDK_TOPDIR
56c25decc0427c204cd35856e521ddf28337e75dLubos Kosco JDK_TOPDIR=$(TOPDIR)/jdk
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotalendif
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotalifndef JDK_MAKE_SHARED_DIR
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal JDK_MAKE_SHARED_DIR=$(JDK_TOPDIR)/make/common/shared
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotalendif
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal
83439b4ed8fe40097dc3f2c05168d26bd7926159Vladimir Kotaldefault: all
83439b4ed8fe40097dc3f2c05168d26bd7926159Vladimir Kotal
83439b4ed8fe40097dc3f2c05168d26bd7926159Vladimir Kotalinclude $(JDK_MAKE_SHARED_DIR)/Defs-control.gmk
3ba66fbb56ef22f183da783a1b2718280c357a4eStanislav Kozinainclude ./make/Defs-internal.gmk
3ba66fbb56ef22f183da783a1b2718280c357a4eStanislav Kozinainclude ./make/sanity-rules.gmk
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotalinclude ./make/hotspot-rules.gmk
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotalinclude ./make/langtools-rules.gmk
983523cf73bc85cce6282cb5aa78b60f6bcd959fLubos Koscoinclude ./make/corba-rules.gmk
983523cf73bc85cce6282cb5aa78b60f6bcd959fLubos Koscoinclude ./make/jaxp-rules.gmk
983523cf73bc85cce6282cb5aa78b60f6bcd959fLubos Koscoinclude ./make/jaxws-rules.gmk
983523cf73bc85cce6282cb5aa78b60f6bcd959fLubos Koscoinclude ./make/jdk-rules.gmk
983523cf73bc85cce6282cb5aa78b60f6bcd959fLubos Koscoinclude ./make/install-rules.gmk
bc5565fc58603964988b42b6aee40e246f35d94fVladimir Kotalinclude ./make/sponsors-rules.gmk
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Brayinclude ./make/deploy-rules.gmk
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Bray
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Brayall:: sanity
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
0ca9a2c194523c517c3aafe5758e217ac88d6baaLubos Koscoifeq ($(SKIP_FASTDEBUG_BUILD), false)
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal all:: fastdebug_build
425278cfacbc73f1e955ab6016f206fc5ed93ccbVladimir Kotalendif
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal
cd348e325366620fe047edcc849e3c9424828599Peter Brayifeq ($(SKIP_DEBUG_BUILD), false)
3b0448fdd830b8d04c6a71511e5d26a4fc3b5b80Lubos Kosco all:: debug_build
cd348e325366620fe047edcc849e3c9424828599Peter Brayendif
cd348e325366620fe047edcc849e3c9424828599Peter Bray
cd348e325366620fe047edcc849e3c9424828599Peter Brayall:: all_product_build
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotalall_product_build::
43dac746513591adbd09bc4f417feb385f4fd87eVladimir Kotal
fbf97ea1786d1e25add88bbfb91810170473bc9fLubos Kosco# Everything for a full product build
3a4816d2417e1abe89a913616de36f200793bea3Vladimir Kotalifeq ($(SKIP_PRODUCT_BUILD), false)
fbf97ea1786d1e25add88bbfb91810170473bc9fLubos Kosco
610915d59310c9aba810740e858ba64c5e3e6a2fVladimir Kotal all_product_build:: product_build
3a4816d2417e1abe89a913616de36f200793bea3Vladimir Kotal
fbf97ea1786d1e25add88bbfb91810170473bc9fLubos Kosco ifeq ($(BUILD_INSTALL), true)
fbf97ea1786d1e25add88bbfb91810170473bc9fLubos Kosco all_product_build:: $(INSTALL)
fbf97ea1786d1e25add88bbfb91810170473bc9fLubos Kosco clobber:: install-clobber
fbf97ea1786d1e25add88bbfb91810170473bc9fLubos Kosco endif
fbf97ea1786d1e25add88bbfb91810170473bc9fLubos Kosco
f21b682cd9b414738a4f5a38b56f6682e537e1d2Trond Norbye ifeq ($(BUILD_SPONSORS), true)
3b0448fdd830b8d04c6a71511e5d26a4fc3b5b80Lubos Kosco all_product_build:: $(SPONSORS)
3b0448fdd830b8d04c6a71511e5d26a4fc3b5b80Lubos Kosco clobber:: sponsors-clobber
cd348e325366620fe047edcc849e3c9424828599Peter Bray endif
cd348e325366620fe047edcc849e3c9424828599Peter Bray
cd348e325366620fe047edcc849e3c9424828599Peter Bray ifneq ($(SKIP_COMPARE_IMAGES), true)
cd348e325366620fe047edcc849e3c9424828599Peter Bray all_product_build:: compare-image
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray endif
cd348e325366620fe047edcc849e3c9424828599Peter Bray
c276b1ec9722ee95a86a4a381b39c5f405fc1cc4Vladimir Kotalendif
c276b1ec9722ee95a86a4a381b39c5f405fc1cc4Vladimir Kotal
c276b1ec9722ee95a86a4a381b39c5f405fc1cc4Vladimir Kotaldefine StartTimer
c276b1ec9722ee95a86a4a381b39c5f405fc1cc4Vladimir Kotal $(MKDIR) -p $(BUILDTIMESDIR)
c276b1ec9722ee95a86a4a381b39c5f405fc1cc4Vladimir Kotal $(RM) $(BUILDTIMESDIR)/build_time_*
c276b1ec9722ee95a86a4a381b39c5f405fc1cc4Vladimir Kotal $(call RecordStartTime,TOTAL)
2cf31ec93bd5d8a2efeab511ce051da51e69aedaLubos Koscoendef
c276b1ec9722ee95a86a4a381b39c5f405fc1cc4Vladimir Kotal
c276b1ec9722ee95a86a4a381b39c5f405fc1cc4Vladimir Kotaldefine StopTimer
2cf31ec93bd5d8a2efeab511ce051da51e69aedaLubos Kosco $(if $(REPORT_BUILD_TIMES),$(call RecordEndTime,TOTAL) && $(call ReportBuildTimes,$1),)
0ca9a2c194523c517c3aafe5758e217ac88d6baaLubos Koscoendef
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray# Generic build of basic repo series
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Braygeneric_build_repo_series:: $(SOURCE_TIPS)
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray $(MKDIR) -p $(JDK_IMAGE_DIR)
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray @$(call StartTimer)
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayifeq ($(BUILD_LANGTOOLS), true)
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray generic_build_repo_series:: langtools
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray clobber:: langtools-clobber
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayendif
cd348e325366620fe047edcc849e3c9424828599Peter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayifeq ($(BUILD_CORBA), true)
cd348e325366620fe047edcc849e3c9424828599Peter Bray generic_build_repo_series:: corba
cd348e325366620fe047edcc849e3c9424828599Peter Bray clobber:: corba-clobber
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayendif
cd348e325366620fe047edcc849e3c9424828599Peter Bray
cd348e325366620fe047edcc849e3c9424828599Peter Brayifeq ($(BUILD_JAXP), true)
cd348e325366620fe047edcc849e3c9424828599Peter Bray generic_build_repo_series:: jaxp
cd348e325366620fe047edcc849e3c9424828599Peter Bray clobber:: jaxp-clobber
cd348e325366620fe047edcc849e3c9424828599Peter Brayendif
cd348e325366620fe047edcc849e3c9424828599Peter Bray
cd348e325366620fe047edcc849e3c9424828599Peter Brayifeq ($(BUILD_JAXWS), true)
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray generic_build_repo_series:: jaxws
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray clobber:: jaxws-clobber
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayendif
0ca9a2c194523c517c3aafe5758e217ac88d6baaLubos Kosco
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayifeq ($(BUILD_HOTSPOT), true)
0ca9a2c194523c517c3aafe5758e217ac88d6baaLubos Kosco generic_build_repo_series:: $(HOTSPOT)
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray clobber:: hotspot-clobber
5762c9f28c2246777be0e9d49cb29d9c0f49146dLubos Koscoendif
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayifeq ($(BUILD_JDK), true)
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray generic_build_repo_series:: $(JDK_JAVA_EXE)
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray clobber:: jdk-clobber
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Brayendif
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayifeq ($(BUILD_DEPLOY), true)
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray generic_build_repo_series:: $(DEPLOY)
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray clobber:: deploy-clobber
b34561d2c3d92fac37dbced05ba6a8738e3d20e9Lubos Koscoendif
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayifeq ($(BUILD_INSTALL_BUNDLES), true)
5e6c91d7e77062129cd0b6ac8aaa546dff216419Lubos Kosco generic_build_repo_series:: install-binaries-jdk-debug
c83dfde6b364917fa8ed28142d509a7c29a4da68Vladimir Kotal clobber:: install-binaries-jdk-debug-clobber
c83dfde6b364917fa8ed28142d509a7c29a4da68Vladimir Kotalendif
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
cd348e325366620fe047edcc849e3c9424828599Peter Braygeneric_build_repo_series::
cd348e325366620fe047edcc849e3c9424828599Peter Bray @$(call StopTimer,$(if $(DEBUG_NAME),$(DEBUG_NAME)_build,all_product_build))
cd348e325366620fe047edcc849e3c9424828599Peter Bray
cd348e325366620fe047edcc849e3c9424828599Peter Bray# The debug build, fastdebug or debug. Needs special handling.
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray#
cd348e325366620fe047edcc849e3c9424828599Peter Bray# Note that debug builds do NOT do INSTALL steps aside from the
cd348e325366620fe047edcc849e3c9424828599Peter Bray# install-binaries-jdk-debug or install-binaries-jdk-debug-clobber targets.
cd348e325366620fe047edcc849e3c9424828599Peter Bray#
cd348e325366620fe047edcc849e3c9424828599Peter Bray# DEBUG_NAME is fastdebug or debug
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# ALT_OUTPUTDIR is changed to have -debug or -fastdebug suffix
cd348e325366620fe047edcc849e3c9424828599Peter Bray# The resulting image directory (j2sdk-image) is used by the install makefiles
0b2998be561e7bf5e3479d686a5af36f712b0d9aVladimir Kotal# (only if debug files are present when install checks for them)
0b2998be561e7bf5e3479d686a5af36f712b0d9aVladimir Kotal# to create a debug install bundle jdk-*-debug-** bundle (tar or zip)
cd348e325366620fe047edcc849e3c9424828599Peter Bray# which will install in the debug or fastdebug subdirectory of the
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# normal product install area.
cd348e325366620fe047edcc849e3c9424828599Peter Bray# The install process needs to know what the DEBUG_NAME is, so
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# look for INSTALL_DEBUG_NAME in the install rules.
cd348e325366620fe047edcc849e3c9424828599Peter Bray#
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# NOTE: On windows, do not use $(ABS_BOOTDIR_OUTPUTDIR)-$(DEBUG_NAME).
cd348e325366620fe047edcc849e3c9424828599Peter Bray# Due to the use of short paths in $(ABS_OUTPUTDIR), this may
c842732324ee4c74ede17887ad1f0dcdc4364a2cLubos Kosco# not be the same location.
c842732324ee4c74ede17887ad1f0dcdc4364a2cLubos Kosco#
c842732324ee4c74ede17887ad1f0dcdc4364a2cLubos Kosco
d7c1415de39f4b07c85828f49cd1ee7a2a19eb9eLubos Kosco# Location of fresh bootdir output
c842732324ee4c74ede17887ad1f0dcdc4364a2cLubos KoscoABS_BOOTDIR_OUTPUTDIR=$(ABS_OUTPUTDIR)/bootjdk
c842732324ee4c74ede17887ad1f0dcdc4364a2cLubos KoscoFRESH_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/$(JDK_IMAGE_DIRNAME)
c842732324ee4c74ede17887ad1f0dcdc4364a2cLubos KoscoFRESH_DEBUG_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/$(REL_JDK_IMAGE_DIR)
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray
bc5565fc58603964988b42b6aee40e246f35d94fVladimir Kotalcreate_fresh_product_bootdir: FRC
bc5565fc58603964988b42b6aee40e246f35d94fVladimir Kotal $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
bc5565fc58603964988b42b6aee40e246f35d94fVladimir Kotal GENERATE_DOCS=false \
bc5565fc58603964988b42b6aee40e246f35d94fVladimir Kotal BOOT_CYCLE_SETTINGS= \
bc5565fc58603964988b42b6aee40e246f35d94fVladimir Kotal build_product_image
bc5565fc58603964988b42b6aee40e246f35d94fVladimir Kotal
bc5565fc58603964988b42b6aee40e246f35d94fVladimir Kotalcreate_fresh_debug_bootdir: FRC
bc5565fc58603964988b42b6aee40e246f35d94fVladimir Kotal $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
bc5565fc58603964988b42b6aee40e246f35d94fVladimir Kotal GENERATE_DOCS=false \
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray BOOT_CYCLE_DEBUG_SETTINGS= \
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray build_debug_image
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
3aa0947feb67d3e8292d84776638be98dd97fdc3Lubos Koscocreate_fresh_fastdebug_bootdir: FRC
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray GENERATE_DOCS=false \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray BOOT_CYCLE_DEBUG_SETTINGS= \
cd348e325366620fe047edcc849e3c9424828599Peter Bray build_fastdebug_image
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
cd348e325366620fe047edcc849e3c9424828599Peter Bray# Create boot image?
cd348e325366620fe047edcc849e3c9424828599Peter Brayifeq ($(SKIP_BOOT_CYCLE),false)
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray ifneq ($(PLATFORM)$(ARCH_DATA_MODEL),solaris64)
cd348e325366620fe047edcc849e3c9424828599Peter Bray DO_BOOT_CYCLE=true
d961aa46ea0d50fed47802497e45226b1965b12dVladimir Kotal endif
e9dbb478e3339d96ce4f0af5c6ab7e1d35ebb86dVladimir Kotalendif
d961aa46ea0d50fed47802497e45226b1965b12dVladimir Kotal
d961aa46ea0d50fed47802497e45226b1965b12dVladimir Kotal
d961aa46ea0d50fed47802497e45226b1965b12dVladimir Kotal
d961aa46ea0d50fed47802497e45226b1965b12dVladimir Kotalifeq ($(DO_BOOT_CYCLE),true)
d961aa46ea0d50fed47802497e45226b1965b12dVladimir Kotal
cd348e325366620fe047edcc849e3c9424828599Peter Bray # Create the bootdir to use in the build
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray product_build:: create_fresh_product_bootdir
cd348e325366620fe047edcc849e3c9424828599Peter Bray debug_build:: create_fresh_debug_bootdir
cd348e325366620fe047edcc849e3c9424828599Peter Bray fastdebug_build:: create_fresh_fastdebug_bootdir
cd348e325366620fe047edcc849e3c9424828599Peter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray # Define variables to be used now for the boot jdk
cd348e325366620fe047edcc849e3c9424828599Peter Bray BOOT_CYCLE_SETTINGS= \
56d93b0c761868f813ac0bc0b5bc21a7a9fefd89Vladimir Kotal ALT_BOOTDIR=$(FRESH_BOOTDIR) \
56d93b0c761868f813ac0bc0b5bc21a7a9fefd89Vladimir Kotal ALT_JDK_IMPORT_PATH=$(FRESH_BOOTDIR)
4f3c0816485669143aa54f1c6461fcb47cf5bc5cVladimir Kotal BOOT_CYCLE_DEBUG_SETTINGS= \
4f3c0816485669143aa54f1c6461fcb47cf5bc5cVladimir Kotal ALT_BOOTDIR=$(FRESH_DEBUG_BOOTDIR) \
2b024356b830395446c55f50f9f724a63612e578Lubos Kosco ALT_JDK_IMPORT_PATH=$(FRESH_DEBUG_BOOTDIR)
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Brayelse
17d95a647aba8c37d9ac34d97e4eed729aa46f67Naseer Ahmed
17d95a647aba8c37d9ac34d97e4eed729aa46f67Naseer Ahmed # Use the supplied ALT_BOOTDIR as the boot
17d95a647aba8c37d9ac34d97e4eed729aa46f67Naseer Ahmed BOOT_CYCLE_SETTINGS=
5762c9f28c2246777be0e9d49cb29d9c0f49146dLubos Kosco BOOT_CYCLE_DEBUG_SETTINGS=
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Brayendif
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray
5762c9f28c2246777be0e9d49cb29d9c0f49146dLubos Koscobuild_product_image:
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray $(MAKE) \
d6ee3934a24d8ccc0e4bb478405d8e5f6a35825dLubos Kosco SKIP_FASTDEBUG_BUILD=true \
477c09a2656e6a2c1075425ad81e61d594164fa9Lubos Kosco SKIP_DEBUG_BUILD=true \
c842732324ee4c74ede17887ad1f0dcdc4364a2cLubos Kosco $(BOOT_CYCLE_SETTINGS) \
d6ee3934a24d8ccc0e4bb478405d8e5f6a35825dLubos Kosco generic_build_repo_series
c842732324ee4c74ede17887ad1f0dcdc4364a2cLubos Kosco
cd348e325366620fe047edcc849e3c9424828599Peter Bray# NOTE: On windows, do not use $(ABS_OUTPUTDIR)-$(DEBUG_NAME).
b17cb0705d90907337b3528aa7b8ed1700806f26Vladimir Kotal# Due to the use of short paths in $(ABS_OUTPUTDIR), this may
d6ee3934a24d8ccc0e4bb478405d8e5f6a35825dLubos Kosco# not be the same location.
425278cfacbc73f1e955ab6016f206fc5ed93ccbVladimir Kotal
8f8c3f4555e5aa3160f03f2e9c55ddbd3381357bLubos Koscogeneric_debug_build:
425278cfacbc73f1e955ab6016f206fc5ed93ccbVladimir Kotal $(MAKE) \
8f8c3f4555e5aa3160f03f2e9c55ddbd3381357bLubos Kosco ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)/$(REL_JDK_OUTPUTDIR) \
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray DEBUG_NAME=$(DEBUG_NAME) \
d70dc22c6dce3f498251b0873638d1fea0e644a3Lubos Kosco GENERATE_DOCS=false \
477c09a2656e6a2c1075425ad81e61d594164fa9Lubos Kosco BUILD_INSTALL_BUNDLES=true \
d70dc22c6dce3f498251b0873638d1fea0e644a3Lubos Kosco CREATE_DEBUGINFO_BUNDLES=false \
d70dc22c6dce3f498251b0873638d1fea0e644a3Lubos Kosco $(BOOT_CYCLE_DEBUG_SETTINGS) \
d70dc22c6dce3f498251b0873638d1fea0e644a3Lubos Kosco generic_build_repo_series
d70dc22c6dce3f498251b0873638d1fea0e644a3Lubos Kosco
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Braybuild_debug_image:
2cf31ec93bd5d8a2efeab511ce051da51e69aedaLubos Kosco $(MAKE) DEBUG_NAME=debug generic_debug_build
2cf31ec93bd5d8a2efeab511ce051da51e69aedaLubos Kosco
2cf31ec93bd5d8a2efeab511ce051da51e69aedaLubos Koscobuild_fastdebug_image:
2cf31ec93bd5d8a2efeab511ce051da51e69aedaLubos Kosco $(MAKE) DEBUG_NAME=fastdebug generic_debug_build
2cf31ec93bd5d8a2efeab511ce051da51e69aedaLubos Kosco
2cf31ec93bd5d8a2efeab511ce051da51e69aedaLubos Kosco# Build final image
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Brayproduct_build:: build_product_image
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Braydebug_build:: build_debug_image
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Brayfastdebug_build:: build_fastdebug_image
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray
1a5c2ab40bd94d2b2c63afda767ce7bbf29ecc4bJan Friedel# The source tips are stored with the relative path to the repo.
5762c9f28c2246777be0e9d49cb29d9c0f49146dLubos Kosco# This file will be used when constructing the jdk image.
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Braysource_tips: $(SOURCE_TIPS)
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray $(CAT) $<
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal$(SOURCE_TIPS): FRC
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal @$(prep-target)
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal @$(call GetSourceTips)
5baba343b1d32252619db7e6aff0c1c0be67761cjethrogb
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotalclobber:: REPORT_BUILD_TIMES=
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotalclobber::
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal $(RM) -r $(OUTPUTDIR)/*
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal -($(RMDIR) -p $(OUTPUTDIR) > $(DEV_NULL) 2>&1; $(TRUE))
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotalclean: clobber
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal#
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal# Dev builds
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray#
6ce0623fa4ef95af9d77700a1c9c19ec1a919326Guillaume Smet
6ce0623fa4ef95af9d77700a1c9c19ec1a919326Guillaume Smetdev : dev-build
6ce0623fa4ef95af9d77700a1c9c19ec1a919326Guillaume Smet
6ce0623fa4ef95af9d77700a1c9c19ec1a919326Guillaume Smetdev-build:
6ce0623fa4ef95af9d77700a1c9c19ec1a919326Guillaume Smet $(MAKE) DEV_ONLY=true all
6ce0623fa4ef95af9d77700a1c9c19ec1a919326Guillaume Smetdev-sanity:
6ce0623fa4ef95af9d77700a1c9c19ec1a919326Guillaume Smet $(MAKE) DEV_ONLY=true sanity
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Braydev-clobber:
cd71fb134e037849c77364b50940b1870c4684ceVladimir Kotal $(MAKE) DEV_ONLY=true clobber
983523cf73bc85cce6282cb5aa78b60f6bcd959fLubos Kosco
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray#
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# Quick jdk verification build
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray#
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayjdk_only:
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray $(MAKE) SKIP_FASTDEBUG_BUILD=true BUILD_HOTSPOT=false all
2b024356b830395446c55f50f9f724a63612e578Lubos Kosco
2b024356b830395446c55f50f9f724a63612e578Lubos Kosco
2b024356b830395446c55f50f9f724a63612e578Lubos Kosco#
2b024356b830395446c55f50f9f724a63612e578Lubos Kosco# Quick jdk verification fastdebug build
2b024356b830395446c55f50f9f724a63612e578Lubos Kosco#
0ca9a2c194523c517c3aafe5758e217ac88d6baaLubos Koscojdk_fastdebug_only:
cd348e325366620fe047edcc849e3c9424828599Peter Bray $(MAKE) DEBUG_NAME=fastdebug BUILD_HOTSPOT=false BUILD_DEPLOY=false \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray BUILD_INSTALL=false BUILD_SPONSORS=false generic_debug_build
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray#
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# Quick deploy verification fastdebug build
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray#
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Braydeploy_fastdebug_only:
2b024356b830395446c55f50f9f724a63612e578Lubos Kosco $(MAKE) \
2b024356b830395446c55f50f9f724a63612e578Lubos Kosco DEBUG_NAME=fastdebug \
2b024356b830395446c55f50f9f724a63612e578Lubos Kosco BUILD_HOTSPOT=false \
2b024356b830395446c55f50f9f724a63612e578Lubos Kosco BUILD_JDK=false \
2b024356b830395446c55f50f9f724a63612e578Lubos Kosco BUILD_LANGTOOLS=false \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray BUILD_CORBA=false \
cd348e325366620fe047edcc849e3c9424828599Peter Bray BUILD_JAXP=false \
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray BUILD_JAXWS=false \
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray BUILD_INSTALL=false \
4e854c69a0484765dcd27b0e837898c8b6969beaTrond Norbye BUILD_SPONSORS=false \
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray generic_debug_build
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray#
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray# Product build (skip debug builds)
477c09a2656e6a2c1075425ad81e61d594164fa9Lubos Kosco#
477c09a2656e6a2c1075425ad81e61d594164fa9Lubos Koscoproduct_only:
83439b4ed8fe40097dc3f2c05168d26bd7926159Vladimir Kotal $(MAKE) SKIP_FASTDEBUG_BUILD=true all
83439b4ed8fe40097dc3f2c05168d26bd7926159Vladimir Kotal
83439b4ed8fe40097dc3f2c05168d26bd7926159Vladimir Kotal#
83439b4ed8fe40097dc3f2c05168d26bd7926159Vladimir Kotal# Check target
477c09a2656e6a2c1075425ad81e61d594164fa9Lubos Kosco#
cd348e325366620fe047edcc849e3c9424828599Peter Bray
3ba66fbb56ef22f183da783a1b2718280c357a4eStanislav Kozinacheck: variable_check
3ba66fbb56ef22f183da783a1b2718280c357a4eStanislav Kozina
3ba66fbb56ef22f183da783a1b2718280c357a4eStanislav Kozina#
3ba66fbb56ef22f183da783a1b2718280c357a4eStanislav Kozina# Help target
3ba66fbb56ef22f183da783a1b2718280c357a4eStanislav Kozina#
3ba66fbb56ef22f183da783a1b2718280c357a4eStanislav Kozinahelp: intro_help target_help variable_help notes_help examples_help
3ba66fbb56ef22f183da783a1b2718280c357a4eStanislav Kozina
3ba66fbb56ef22f183da783a1b2718280c357a4eStanislav Kozina# Intro help message
cd348e325366620fe047edcc849e3c9424828599Peter Brayintro_help:
cd348e325366620fe047edcc849e3c9424828599Peter Bray @$(ECHO) "\
cd348e325366620fe047edcc849e3c9424828599Peter BrayMakefile for the JDK builds (all the JDK). \n\
cd348e325366620fe047edcc849e3c9424828599Peter Bray"
cd348e325366620fe047edcc849e3c9424828599Peter Bray
cd348e325366620fe047edcc849e3c9424828599Peter Bray# Target help
cd348e325366620fe047edcc849e3c9424828599Peter Braytarget_help:
cd348e325366620fe047edcc849e3c9424828599Peter Bray @$(ECHO) "\
cd348e325366620fe047edcc849e3c9424828599Peter Bray--- Common Targets --- \n\
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Brayall -- build the core JDK (default target) \n\
cd348e325366620fe047edcc849e3c9424828599Peter Brayhelp -- Print out help information \n\
cd348e325366620fe047edcc849e3c9424828599Peter Braycheck -- Check make variable values for correctness \n\
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Braysanity -- Perform detailed sanity checks on system and settings \n\
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Brayfastdebug_build -- build the core JDK in 'fastdebug' mode (-g -O) \n\
477c09a2656e6a2c1075425ad81e61d594164fa9Lubos Koscodebug_build -- build the core JDK in 'debug' mode (-g) \n\
4e854c69a0484765dcd27b0e837898c8b6969beaTrond Norbyeclean -- remove all built and imported files \n\
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Brayclobber -- same as clean \n\
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Bray"
8f8c3f4555e5aa3160f03f2e9c55ddbd3381357bLubos Kosco
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye# Variable help (only common ones used by this Makefile)
3a5046f0538ba9fb3a9429199544a9f4b93d9a4dLubos Koscovariable_help: variable_help_intro variable_list variable_help_end
3a5046f0538ba9fb3a9429199544a9f4b93d9a4dLubos Koscovariable_help_intro:
3a5046f0538ba9fb3a9429199544a9f4b93d9a4dLubos Kosco @$(ECHO) "--- Common Variables ---"
3a5046f0538ba9fb3a9429199544a9f4b93d9a4dLubos Koscovariable_help_end:
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray @$(ECHO) " "
cd348e325366620fe047edcc849e3c9424828599Peter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# One line descriptions for the variables
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayOUTPUTDIR.desc = Output directory
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayPARALLEL_COMPILE_JOBS.desc = Solaris/Linux parallel compile run count
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BraySLASH_JAVA.desc = Root of all build tools, e.g. /java or J:
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayBOOTDIR.desc = JDK used to boot the build
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayJDK_IMPORT_PATH.desc = JDK used to import components of the build
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayCOMPILER_PATH.desc = Compiler install directory
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayCACERTS_FILE.desc = Location of certificates file
0ca9a2c194523c517c3aafe5758e217ac88d6baaLubos KoscoDEVTOOLS_PATH.desc = Directory containing zip and gnumake
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayCUPS_HEADERS_PATH.desc = Include directory location for CUPS header files
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayDXSDK_PATH.desc = Root directory of DirectX SDK
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# Make variables to print out (description and value)
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayVARIABLE_PRINTVAL_LIST += \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray OUTPUTDIR \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray PARALLEL_COMPILE_JOBS \
0ca9a2c194523c517c3aafe5758e217ac88d6baaLubos Kosco SLASH_JAVA \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray BOOTDIR \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray JDK_IMPORT_PATH \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray COMPILER_PATH \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray CACERTS_FILE \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray DEVTOOLS_PATH
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# Make variables that should refer to directories that exist
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayVARIABLE_CHECKDIR_LIST += \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray SLASH_JAVA \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray BOOTDIR \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray JDK_IMPORT_PATH \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray COMPILER_PATH \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray DEVTOOLS_PATH
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# Make variables that should refer to files that exist
c83dfde6b364917fa8ed28142d509a7c29a4da68Vladimir KotalVARIABLE_CHECKFIL_LIST += \
c83dfde6b364917fa8ed28142d509a7c29a4da68Vladimir Kotal CACERTS_FILE
c83dfde6b364917fa8ed28142d509a7c29a4da68Vladimir Kotal
c83dfde6b364917fa8ed28142d509a7c29a4da68Vladimir Kotal# Some are windows specific
c83dfde6b364917fa8ed28142d509a7c29a4da68Vladimir Kotalifeq ($(PLATFORM), windows)
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayVARIABLE_PRINTVAL_LIST += \
0ca9a2c194523c517c3aafe5758e217ac88d6baaLubos Kosco DXSDK_PATH
cd348e325366620fe047edcc849e3c9424828599Peter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayVARIABLE_CHECKDIR_LIST += \
cd348e325366620fe047edcc849e3c9424828599Peter Bray DXSDK_PATH
cd348e325366620fe047edcc849e3c9424828599Peter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayendif
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# For pattern rules below, so all are treated the same
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayDO_PRINTVAL_LIST=$(VARIABLE_PRINTVAL_LIST:%=%.printval)
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayDO_CHECKDIR_LIST=$(VARIABLE_CHECKDIR_LIST:%=%.checkdir)
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayDO_CHECKFIL_LIST=$(VARIABLE_CHECKFIL_LIST:%=%.checkfil)
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# Complete variable check
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayvariable_check: $(DO_CHECKDIR_LIST) $(DO_CHECKFIL_LIST)
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayvariable_list: $(DO_PRINTVAL_LIST) variable_check
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye# Pattern rule for printing out a variable
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye%.printval:
56d93b0c761868f813ac0bc0b5bc21a7a9fefd89Vladimir Kotal @$(ECHO) " ALT_$* - $($*.desc)"
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye @$(ECHO) " \t $*=$($*)"
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye# Pattern rule for checking to see if a variable with a directory exists
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye%.checkdir:
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye @if [ ! -d $($*) ] ; then \
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye $(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye fi
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye# Pattern rule for checking to see if a variable with a file exists
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye%.checkfil:
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye @if [ ! -f $($*) ] ; then \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray $(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray fi
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal# Misc notes on help
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotalnotes_help:
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal @$(ECHO) "\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal--- Notes --- \n\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal- All builds use same output directory unless overridden with \n\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal \t ALT_OUTPUTDIR=<dir>, changing from product to fastdebug you may want \n\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal \t to use the clean target first. \n\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal- JDK_IMPORT_PATH must refer to a compatible build, not all past promoted \n\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal \t builds or previous release JDK builds will work. \n\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal- The fastest builds have been when the sources and the BOOTDIR are on \n\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal \t local disk. \n\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal"
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotalexamples_help:
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal @$(ECHO) "\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal--- Examples --- \n\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal $(MAKE) fastdebug_build \n\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal $(MAKE) ALT_OUTPUTDIR=/tmp/foobar all \n\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal $(MAKE) ALT_OUTPUTDIR=/tmp/foobar fastdebug_build \n\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal $(MAKE) ALT_OUTPUTDIR=/tmp/foobar all \n\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal $(MAKE) ALT_BOOTDIR=/opt/java/jdk1.5.0 \n\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal $(MAKE) ALT_JDK_IMPORT_PATH=/opt/java/jdk1.6.0 \n\
f9e7e93ed37cbcb0a111b6f997bb75d567c31c0bVladimir Kotal"
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray################################################################
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# Source bundling
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray################################################################
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayifeq ($(BUNDLE_RULES_AVAILABLE), true)
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye include $(BUNDLE_RULES)
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayendif
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray################################################################
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# rule to test
4e854c69a0484765dcd27b0e837898c8b6969beaTrond Norbye################################################################
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
c276b1ec9722ee95a86a4a381b39c5f405fc1cc4Vladimir Kotal.NOTPARALLEL: test_run
c276b1ec9722ee95a86a4a381b39c5f405fc1cc4Vladimir Kotal
c276b1ec9722ee95a86a4a381b39c5f405fc1cc4Vladimir Kotaltest:
c276b1ec9722ee95a86a4a381b39c5f405fc1cc4Vladimir Kotal $(MAKE) test_run
c276b1ec9722ee95a86a4a381b39c5f405fc1cc4Vladimir Kotal
4e854c69a0484765dcd27b0e837898c8b6969beaTrond Norbyetest_run: test_clean test_start test_summary
4e854c69a0484765dcd27b0e837898c8b6969beaTrond Norbye
4e854c69a0484765dcd27b0e837898c8b6969beaTrond Norbyetest_start:
4e854c69a0484765dcd27b0e837898c8b6969beaTrond Norbye @$(ECHO) "Tests started at `$(DATE)`"
4e854c69a0484765dcd27b0e837898c8b6969beaTrond Norbye
4e854c69a0484765dcd27b0e837898c8b6969beaTrond Norbyetest_clean:
4e854c69a0484765dcd27b0e837898c8b6969beaTrond Norbye $(RM) $(OUTPUTDIR)/test_failures.txt $(OUTPUTDIR)/test_log.txt
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
4e854c69a0484765dcd27b0e837898c8b6969beaTrond Norbyetest_summary: $(OUTPUTDIR)/test_failures.txt
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray @$(ECHO) "#################################################"
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray @$(ECHO) "Tests completed at `$(DATE)`"
a3a5f5c0500064f4c6ac3658b1e3e4d838912329Lubos Kosco @( $(EGREP) '^TEST STATS:' $(OUTPUTDIR)/test_log.txt \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray || $(ECHO) "No TEST STATS seen in log" )
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray @$(ECHO) "For complete details see: $(OUTPUTDIR)/test_log.txt"
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray @$(ECHO) "#################################################"
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray @if [ -s $< ] ; then \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray $(ECHO) "ERROR: Test failure count: `$(CAT) $< | $(WC) -l`"; \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray $(CAT) $<; \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray exit 1; \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray else \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray $(ECHO) "Success! No failures detected"; \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray fi
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# Get failure list from log
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray$(OUTPUTDIR)/test_failures.txt: $(OUTPUTDIR)/test_log.txt
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray @$(RM) $@
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray @( $(EGREP) '^FAILED:' $< || $(ECHO) "" ) | $(NAWK) 'length>0' > $@
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# Get log file of all tests run
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayJDK_TO_TEST := $(shell \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray if [ -d "$(ABS_JDK_IMAGE_DIR)" ] ; then \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray $(ECHO) "$(ABS_JDK_IMAGE_DIR)"; \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray elif [ -d "$(ABS_OUTPUTDIR)/bin" ] ; then \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray $(ECHO) "$(ABS_OUTPUTDIR)"; \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray elif [ "$(PRODUCT_HOME)" != "" -a -d "$(PRODUCT_HOME)/bin" ] ; then \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray $(ECHO) "$(PRODUCT_HOME)"; \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray fi \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray)
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayTEST_TARGETS=all
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray$(OUTPUTDIR)/test_log.txt:
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray $(RM) $@
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray ( $(CD) test && \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray $(MAKE) NO_STOPPING=- PRODUCT_HOME=$(JDK_TO_TEST) $(TEST_TARGETS) \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray ) | tee $@
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray################################################################
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# JPRT rule to build
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray################################################################
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
340e2c0d70fade14c720931c87652727b941c167Vladimir Kotalinclude ./make/jprt.gmk
340e2c0d70fade14c720931c87652727b941c167Vladimir Kotal
fe967af3e58b6c8feaecf15b06fc1d5401b07914Lubos Kosco################################################################
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# PHONY
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray################################################################
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray.PHONY: all test test_run test_start test_summary test_clean \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray generic_build_repo_series \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray what clobber insane \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray dev dev-build dev-sanity dev-clobber \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray product_build \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray fastdebug_build \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray debug_build \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray build_product_image \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray build_debug_image \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray build_fastdebug_image \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray create_fresh_product_bootdir \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray create_fresh_debug_bootdir \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray create_fresh_fastdebug_bootdir \
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray generic_debug_build
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# Force target
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayFRC:
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray