Makefile revision 276
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
1fa26403d7679235a30fbf6289f68fed5872df30Mark Andrews# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews#
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# This code is free software; you can redistribute it and/or modify it
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# under the terms of the GNU General Public License version 2 only, as
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# published by the Free Software Foundation. Oracle designates this
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# particular file as subject to the "Classpath" exception as provided
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# by Oracle in the LICENSE file that accompanied this code.
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# This code is distributed in the hope that it will be useful, but WITHOUT
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# version 2 for more details (a copy is included in the LICENSE file that
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# accompanied this code).
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews#
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# You should have received a copy of the GNU General Public License version
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# 2 along with this work; if not, write to the Free Software Foundation,
af5073d03288a53b646ec3b807ac25ced64d7879Mark Andrews# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews#
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
af5073d03288a53b646ec3b807ac25ced64d7879Mark Andrews# or visit www.oracle.com if you need additional information or have any
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson# questions.
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson#
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark AndrewsBUILD_PARENT_DIRECTORY=.
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsifndef TOPDIR
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington TOPDIR:=.
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsendif
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Openjdk sources (only used if SKIP_OPENJDK_BUILD!=true)
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsOPENJDK_SOURCETREE=$(TOPDIR)/openjdk
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsOPENJDK_BUILDDIR:=$(shell \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews if [ -r $(OPENJDK_SOURCETREE)/Makefile ]; then \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews echo "$(OPENJDK_SOURCETREE)"; \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews else \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews echo "."; \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews fi)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
a0624cf8d5711cca4e3907859fbc8062a7e460faMark Andrewsifndef JDK_TOPDIR
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews JDK_TOPDIR=$(TOPDIR)/jdk
a0624cf8d5711cca4e3907859fbc8062a7e460faMark Andrewsendif
a0624cf8d5711cca4e3907859fbc8062a7e460faMark Andrewsifndef JDK_MAKE_SHARED_DIR
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews JDK_MAKE_SHARED_DIR=$(JDK_TOPDIR)/make/common/shared
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonendif
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# For start and finish echo lines
91216cff91b34c9ff6e846dc23f248219cafe660Andreas GustafssonTITLE_TEXT = Control $(PLATFORM) $(ARCH) $(RELEASE)
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark AndrewsDATE_STAMP = `$(DATE) '+%y-%m-%d %H:%M'`
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark AndrewsSTART_ECHO = echo "$(TITLE_TEXT) $@ build started: $(DATE_STAMP)"
91216cff91b34c9ff6e846dc23f248219cafe660Andreas GustafssonFINISH_ECHO = echo "$(TITLE_TEXT) $@ build finished: $(DATE_STAMP)"
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtondefault: all
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsinclude $(JDK_MAKE_SHARED_DIR)/Defs-control.gmk
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsinclude ./make/Defs-internal.gmk
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsinclude ./make/sanity-rules.gmk
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsinclude ./make/hotspot-rules.gmk
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsinclude ./make/langtools-rules.gmk
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsinclude ./make/corba-rules.gmk
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsinclude ./make/jaxp-rules.gmk
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsinclude ./make/jaxws-rules.gmk
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsinclude ./make/jdk-rules.gmk
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsinclude ./make/install-rules.gmk
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsinclude ./make/sponsors-rules.gmk
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsinclude ./make/deploy-rules.gmk
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# What "all" means
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsall::
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(START_ECHO)
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsall:: openjdk_check sanity
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonifeq ($(SKIP_FASTDEBUG_BUILD), false)
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson all:: fastdebug_build
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonendif
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonifeq ($(SKIP_DEBUG_BUILD), false)
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson all:: debug_build
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonendif
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonifneq ($(SKIP_OPENJDK_BUILD), true)
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson all:: openjdk_build
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonendif
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonall:: all_product_build
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsall::
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(FINISH_ECHO)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# Everything for a full product build
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsall_product_build::
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(START_ECHO)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsifeq ($(SKIP_PRODUCT_BUILD), false)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews all_product_build:: product_build
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews ifeq ($(BUILD_INSTALL), true)
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews all_product_build:: $(INSTALL)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews clobber:: install-clobber
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews endif
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews ifeq ($(BUILD_SPONSORS), true)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews all_product_build:: $(SPONSORS)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews clobber:: sponsors-clobber
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews endif
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews ifneq ($(SKIP_COMPARE_IMAGES), true)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews all_product_build:: compare-image
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews endif
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsendif
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsall_product_build::
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews @$(FINISH_ECHO)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Generic build of basic repo series
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsgeneric_build_repo_series::
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(MKDIR) -p $(OUTPUTDIR)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(MKDIR) -p $(OUTPUTDIR)/j2sdk-image
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsifeq ($(BUILD_LANGTOOLS), true)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews generic_build_repo_series:: langtools
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews clobber:: langtools-clobber
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsendif
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsifeq ($(BUILD_CORBA), true)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews generic_build_repo_series:: corba
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews clobber:: corba-clobber
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsendif
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsifeq ($(BUILD_JAXP), true)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews generic_build_repo_series:: jaxp
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews clobber:: jaxp-clobber
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsendif
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
a0624cf8d5711cca4e3907859fbc8062a7e460faMark Andrewsifeq ($(BUILD_JAXWS), true)
a0624cf8d5711cca4e3907859fbc8062a7e460faMark Andrews generic_build_repo_series:: jaxws
a0624cf8d5711cca4e3907859fbc8062a7e460faMark Andrews clobber:: jaxws-clobber
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsendif
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsifeq ($(BUILD_HOTSPOT), true)
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews generic_build_repo_series:: $(HOTSPOT)
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews clobber:: hotspot-clobber
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsendif
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsifeq ($(BUILD_JDK), true)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington generic_build_repo_series:: $(JDK_JAVA_EXE)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews clobber:: jdk-clobber
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsendif
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsifeq ($(BUILD_DEPLOY), true)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews generic_build_repo_series:: $(DEPLOY)
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews clobber:: deploy-clobber
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonendif
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# The debug build, fastdebug or debug. Needs special handling.
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Note that debug builds do NOT do INSTALL steps, but must be done
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# after the product build and before the INSTALL step of the product build.
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews#
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# DEBUG_NAME is fastdebug or debug
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# ALT_OUTPUTDIR is changed to have -debug or -fastdebug suffix
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# The resulting j2sdk-image is used by the install makefiles to create a
09344332cf7840e7e219215128fd52ea4c3d6942Mark Andrews# debug install bundle jdk-*-debug-** bundle (tar or zip)
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# which will install in the debug or fastdebug subdirectory of the
fd42a013f17611b34cd49cc0abee0a6b0d251a6bMark Andrews# normal product install area.
09344332cf7840e7e219215128fd52ea4c3d6942Mark Andrews# The install process needs to know what the DEBUG_NAME is, so
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson# look for INSTALL_DEBUG_NAME in the install rules.
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson#
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# NOTE: On windows, do not use $(ABS_BOOTDIR_OUTPUTDIR)-$(DEBUG_NAME).
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Due to the use of short paths in $(ABS_OUTPUTDIR), this may
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# not be the same location.
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews#
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Location of fresh bootdir output
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsABS_BOOTDIR_OUTPUTDIR=$(ABS_OUTPUTDIR)/bootjdk
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsFRESH_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/j2sdk-image
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsFRESH_DEBUG_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-$(DEBUG_NAME)/j2sdk-image
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewscreate_fresh_product_bootdir: FRC
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(START_ECHO)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews GENERATE_DOCS=false \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews BOOT_CYCLE_SETTINGS= \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews build_product_image
e076d0c88be69de7c190ab924d095e69d2e11f7aAndreas Gustafsson @$(FINISH_ECHO)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewscreate_fresh_debug_bootdir: FRC
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(START_ECHO)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson GENERATE_DOCS=false \
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson BOOT_CYCLE_DEBUG_SETTINGS= \
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson build_debug_image
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(FINISH_ECHO)
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssoncreate_fresh_fastdebug_bootdir: FRC
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews @$(START_ECHO)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington GENERATE_DOCS=false \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington BOOT_CYCLE_DEBUG_SETTINGS= \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews build_fastdebug_image
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(FINISH_ECHO)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Create boot image?
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsifeq ($(SKIP_BOOT_CYCLE),false)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews ifneq ($(PLATFORM)$(ARCH_DATA_MODEL),solaris64)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews DO_BOOT_CYCLE=true
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews endif
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonendif
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonifeq ($(DO_BOOT_CYCLE),true)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington # Create the bootdir to use in the build
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington product_build:: create_fresh_product_bootdir
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington debug_build:: create_fresh_debug_bootdir
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fastdebug_build:: create_fresh_fastdebug_bootdir
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington # Define variables to be used now for the boot jdk
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington BOOT_CYCLE_SETTINGS= \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington ALT_BOOTDIR=$(FRESH_BOOTDIR) \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington ALT_JDK_IMPORT_PATH=$(FRESH_BOOTDIR)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington BOOT_CYCLE_DEBUG_SETTINGS= \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington ALT_BOOTDIR=$(FRESH_DEBUG_BOOTDIR) \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington ALT_JDK_IMPORT_PATH=$(FRESH_DEBUG_BOOTDIR)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonelse
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington # Use the supplied ALT_BOOTDIR as the boot
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington BOOT_CYCLE_SETTINGS=
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington BOOT_CYCLE_DEBUG_SETTINGS=
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonendif
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonbuild_product_image:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(START_ECHO)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(MAKE) \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington SKIP_FASTDEBUG_BUILD=true \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington SKIP_DEBUG_BUILD=true \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(BOOT_CYCLE_SETTINGS) \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington generic_build_repo_series
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(FINISH_ECHO)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# NOTE: On windows, do not use $(ABS_OUTPUTDIR)-$(DEBUG_NAME).
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Due to the use of short paths in $(ABS_OUTPUTDIR), this may
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# not be the same location.
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtongeneric_debug_build:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(START_ECHO)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(MAKE) \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-$(DEBUG_NAME) \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington DEBUG_NAME=$(DEBUG_NAME) \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington GENERATE_DOCS=false \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(BOOT_CYCLE_DEBUG_SETTINGS) \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington generic_build_repo_series
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(FINISH_ECHO)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonbuild_debug_image:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(MAKE) DEBUG_NAME=debug generic_debug_build
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonbuild_fastdebug_image:
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews $(MAKE) DEBUG_NAME=fastdebug generic_debug_build
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Build final image
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellingtonproduct_build:: build_product_image
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellingtondebug_build:: build_debug_image
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellingtonfastdebug_build:: build_fastdebug_image
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington# Check on whether we really can build the openjdk, need source etc.
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonopenjdk_check: FRC
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonifneq ($(SKIP_OPENJDK_BUILD), true)
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington @$(ECHO) " "
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington @$(ECHO) "================================================="
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington @if [ ! -r $(OPENJDK_BUILDDIR)/Makefile ] ; then \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews $(ECHO) "ERROR: No openjdk source tree available at: $(OPENJDK_BUILDDIR)"; \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington exit 1; \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews else \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(ECHO) "OpenJDK will be built after JDK is built"; \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(ECHO) " OPENJDK_BUILDDIR=$(OPENJDK_BUILDDIR)"; \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) "================================================="
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(ECHO) " "
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsendif
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# If we have bundle rules, we have a chance here to do a complete cycle
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# build, of production and open build.
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# FIXUP: We should create the openjdk source bundle and build that?
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# But how do we reliable create or get at a formal openjdk source tree?
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# The one we have needs to be trimmed of built bits and closed dirs.
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# The repositories might not be available.
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# The openjdk source bundle is probably not available.
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsifneq ($(SKIP_OPENJDK_BUILD), true)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews ifeq ($(BUILD_JDK), true)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews ifeq ($(BUNDLE_RULES_AVAILABLE), true)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsOPENJDK_OUTPUTDIR=$(ABS_OUTPUTDIR)/open-output
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsOPENJDK_BUILD_NAME \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington = openjdk-$(JDK_MINOR_VERSION)-$(BUILD_NUMBER)-$(PLATFORM)-$(ARCH)-$(BUNDLE_DATE)
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark AndrewsOPENJDK_BUILD_BINARY_ZIP=$(ABS_BIN_BUNDLEDIR)/$(OPENJDK_BUILD_NAME).zip
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian WellingtonBUILT_IMAGE=$(ABS_OUTPUTDIR)/j2sdk-image
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonifeq ($(PLATFORM)$(ARCH_DATA_MODEL),solaris64)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington OPENJDK_BOOTDIR=$(BOOTDIR)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington OPENJDK_IMPORTJDK=$(JDK_IMPORT_PATH)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonelse
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington OPENJDK_BOOTDIR=$(BUILT_IMAGE)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington OPENJDK_IMPORTJDK=$(BUILT_IMAGE)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonendif
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonopenjdk_build:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(START_ECHO)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) " "
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) "================================================="
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) "Starting openjdk build"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) " Using: ALT_JDK_DEVTOOLS_DIR=$(JDK_DEVTOOLS_DIR)"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) "================================================="
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) " "
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(RM) -r $(OPENJDK_OUTPUTDIR)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(MKDIR) -p $(OPENJDK_OUTPUTDIR)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington ($(CD) $(OPENJDK_BUILDDIR) && $(MAKE) \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington OPENJDK=true \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington GENERATE_DOCS=false \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews ALT_JDK_DEVTOOLS_DIR=$(JDK_DEVTOOLS_DIR) \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews ALT_OUTPUTDIR=$(OPENJDK_OUTPUTDIR) \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington ALT_BOOTDIR=$(OPENJDK_BOOTDIR) \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews ALT_JDK_IMPORT_PATH=$(OPENJDK_IMPORTJDK) \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews product_build )
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(RM) $(OPENJDK_BUILD_BINARY_ZIP)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews ( $(CD) $(OPENJDK_OUTPUTDIR)/j2sdk-image && \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(ZIPEXE) -q -r $(OPENJDK_BUILD_BINARY_ZIP) .)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(RM) -r $(OPENJDK_OUTPUTDIR)
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews @$(ECHO) " "
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) "================================================="
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) "Finished openjdk build"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) " Binary Bundle: $(OPENJDK_BUILD_BINARY_ZIP)"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) "================================================="
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) " "
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(FINISH_ECHO)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington endif
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington endif
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonendif
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonclobber::
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(RM) -r $(OUTPUTDIR)/*
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(RM) -r $(OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-debug/*
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(RM) -r $(OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-fastdebug/*
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington -($(RMDIR) -p $(OUTPUTDIR) > $(DEV_NULL) 2>&1; $(TRUE))
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonclean: clobber
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Dev builds
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtondev : dev-build
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtondev-build:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(MAKE) DEV_ONLY=true all
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtondev-sanity:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(MAKE) DEV_ONLY=true sanity
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtondev-clobber:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(MAKE) DEV_ONLY=true clobber
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Quick jdk verification build
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsjdk_only:
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(MAKE) SKIP_FASTDEBUG_BUILD=true BUILD_HOTSPOT=false all
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews#
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Quick jdk verification fastdebug build
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews#
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsjdk_fastdebug_only:
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(MAKE) DEBUG_NAME=fastdebug BUILD_HOTSPOT=false BUILD_DEPLOY=false \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews BUILD_INSTALL=false BUILD_SPONSORS=false generic_debug_build
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews#
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Quick deploy verification fastdebug build
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsdeploy_fastdebug_only:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(MAKE) \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington DEBUG_NAME=fastdebug \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington BUILD_HOTSPOT=false \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington BUILD_JDK=false \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington BUILD_LANGTOOLS=false \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington BUILD_CORBA=false \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington BUILD_JAXP=false \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington BUILD_JAXWS=false \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington BUILD_INSTALL=false \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington BUILD_SPONSORS=false \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington generic_debug_build
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Product build (skip debug builds)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonproduct_only:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(MAKE) SKIP_FASTDEBUG_BUILD=true all
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Check target
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewscheck: variable_check
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Help target
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews#
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewshelp: intro_help target_help variable_help notes_help examples_help
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Intro help message
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsintro_help:
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(ECHO) "\
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsMakefile for the JDK builds (all the JDK). \n\
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington"
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Target help
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewstarget_help:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) "\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews--- Common Targets --- \n\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsall -- build the core JDK (default target) \n\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewshelp -- Print out help information \n\
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellingtoncheck -- Check make variable values for correctness \n\
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellingtonsanity -- Perform detailed sanity checks on system and settings \n\
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellingtonfastdebug_build -- build the core JDK in 'fastdebug' mode (-g -O) \n\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsdebug_build -- build the core JDK in 'debug' mode (-g) \n\
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsclean -- remove all built and imported files \n\
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellingtonclobber -- same as clean \n\
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews"
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# Variable help (only common ones used by this Makefile)
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsvariable_help: variable_help_intro variable_list variable_help_end
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsvariable_help_intro:
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews @$(ECHO) "--- Common Variables ---"
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsvariable_help_end:
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews @$(ECHO) " "
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# One line descriptions for the variables
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark AndrewsOUTPUTDIR.desc = Output directory
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark AndrewsPARALLEL_COMPILE_JOBS.desc = Solaris/Linux parallel compile run count
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark AndrewsSLASH_JAVA.desc = Root of all build tools, e.g. /java or J:
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark AndrewsBOOTDIR.desc = JDK used to boot the build
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark AndrewsJDK_IMPORT_PATH.desc = JDK used to import components of the build
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark AndrewsCOMPILER_PATH.desc = Compiler install directory
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark AndrewsCACERTS_FILE.desc = Location of certificates file
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsDEVTOOLS_PATH.desc = Directory containing zip and gnumake
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsCUPS_HEADERS_PATH.desc = Include directory location for CUPS header files
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsDXSDK_PATH.desc = Root directory of DirectX SDK
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsMSVCRT_DLL_PATH.desc = Directory containing mscvrt.dll
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Make variables to print out (description and value)
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsVARIABLE_PRINTVAL_LIST += \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews OUTPUTDIR \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews PARALLEL_COMPILE_JOBS \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington SLASH_JAVA \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews BOOTDIR \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews JDK_IMPORT_PATH \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington COMPILER_PATH \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews CACERTS_FILE \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews DEVTOOLS_PATH
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Make variables that should refer to directories that exist
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsVARIABLE_CHECKDIR_LIST += \
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews SLASH_JAVA \
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews BOOTDIR \
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews JDK_IMPORT_PATH \
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews COMPILER_PATH \
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews DEVTOOLS_PATH
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews# Make variables that should refer to files that exist
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark AndrewsVARIABLE_CHECKFIL_LIST += \
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews CACERTS_FILE
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews# Some are windows specific
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrewsifeq ($(PLATFORM), windows)
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark AndrewsVARIABLE_PRINTVAL_LIST += \
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews DXSDK_PATH \
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews MSVCRT_DLL_PATH
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews
48b492d73ae5328c5efef4b9e0f22063e0ab058aMark AndrewsVARIABLE_CHECKDIR_LIST += \
48b492d73ae5328c5efef4b9e0f22063e0ab058aMark Andrews DXSDK_PATH \
48b492d73ae5328c5efef4b9e0f22063e0ab058aMark Andrews MSVCRT_DLL_PATH
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsendif
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# For pattern rules below, so all are treated the same
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark AndrewsDO_PRINTVAL_LIST=$(VARIABLE_PRINTVAL_LIST:%=%.printval)
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsDO_CHECKDIR_LIST=$(VARIABLE_CHECKDIR_LIST:%=%.checkdir)
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark AndrewsDO_CHECKFIL_LIST=$(VARIABLE_CHECKFIL_LIST:%=%.checkfil)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
ca9a8f6d0b0f2a400a96f868193471510364336fMark Andrews# Complete variable check
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsvariable_check: $(DO_CHECKDIR_LIST) $(DO_CHECKFIL_LIST)
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsvariable_list: $(DO_PRINTVAL_LIST) variable_check
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# Pattern rule for printing out a variable
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews%.printval:
854b0d831e45a90211917e3a49f40d10c4a2ee79Mark Andrews @$(ECHO) " ALT_$* - $($*.desc)"
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(ECHO) " \t $*=$($*)"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Pattern rule for checking to see if a variable with a directory exists
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews%.checkdir:
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @if [ ! -d $($*) ] ; then \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews fi
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Pattern rule for checking to see if a variable with a file exists
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington%.checkfil:
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews @if [ ! -f $($*) ] ; then \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews fi
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# Misc notes on help
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsnotes_help:
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(ECHO) "\
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews--- Notes --- \n\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews- All builds use same output directory unless overridden with \n\
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington \t ALT_OUTPUTDIR=<dir>, changing from product to fastdebug you may want \n\
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington \t to use the clean target first. \n\
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews- JDK_IMPORT_PATH must refer to a compatible build, not all past promoted \n\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews \t builds or previous release JDK builds will work. \n\
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington- The fastest builds have been when the sources and the BOOTDIR are on \n\
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington \t local disk. \n\
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews"
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonexamples_help:
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews @$(ECHO) "\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews--- Examples --- \n\
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(MAKE) fastdebug_build \n\
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews $(MAKE) ALT_OUTPUTDIR=/tmp/foobar all \n\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(MAKE) ALT_OUTPUTDIR=/tmp/foobar fastdebug_build \n\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(MAKE) ALT_OUTPUTDIR=/tmp/foobar all \n\
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews $(MAKE) ALT_BOOTDIR=/opt/java/jdk1.5.0 \n\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(MAKE) ALT_JDK_IMPORT_PATH=/opt/java/jdk1.6.0 \n\
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington################################################################
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Source bundling
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews################################################################
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsifeq ($(BUNDLE_RULES_AVAILABLE), true)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews include $(BUNDLE_RULES)
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsendif
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews################################################################
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# rule to test
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington################################################################
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews.NOTPARALLEL: test_run
7a6ad11e0185a73984410f3252f3c49c3a301dbdBrian Wellington
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewstest:
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(MAKE) test_run
7a6ad11e0185a73984410f3252f3c49c3a301dbdBrian Wellington
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewstest_run: test_clean test_start test_summary
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewstest_start:
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(ECHO) "Tests started at `$(DATE)`"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtontest_clean:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(RM) $(OUTPUTDIR)/test_failures.txt $(OUTPUTDIR)/test_log.txt
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtontest_summary: $(OUTPUTDIR)/test_failures.txt
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) "#################################################"
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(ECHO) "Tests completed at `$(DATE)`"
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews @( $(EGREP) '^TEST STATS:' $(OUTPUTDIR)/test_log.txt \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews || $(ECHO) "No TEST STATS seen in log" )
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(ECHO) "For complete details see: $(OUTPUTDIR)/test_log.txt"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) "#################################################"
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews @if [ -s $< ] ; then \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(ECHO) "ERROR: Test failure count: `$(CAT) $< | $(WC) -l`"; \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews $(CAT) $<; \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews exit 1; \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews else \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(ECHO) "Success! No failures detected"; \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews fi
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Get failure list from log
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews$(OUTPUTDIR)/test_failures.txt: $(OUTPUTDIR)/test_log.txt
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(RM) $@
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews @( $(EGREP) '^FAILED:' $< || $(ECHO) "" ) | $(NAWK) 'length>0' > $@
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Get log file of all tests run
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsJDK_TO_TEST := $(shell \
e076d0c88be69de7c190ab924d095e69d2e11f7aAndreas Gustafsson if [ -d "$(ABS_OUTPUTDIR)/j2sdk-image" ] ; then \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(ECHO) "$(ABS_OUTPUTDIR)/j2sdk-image"; \
e076d0c88be69de7c190ab924d095e69d2e11f7aAndreas Gustafsson elif [ -d "$(ABS_OUTPUTDIR)/bin" ] ; then \
e076d0c88be69de7c190ab924d095e69d2e11f7aAndreas Gustafsson $(ECHO) "$(ABS_OUTPUTDIR)"; \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews elif [ "$(PRODUCT_HOME)" != "" -a -d "$(PRODUCT_HOME)/bin" ] ; then \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews $(ECHO) "$(PRODUCT_HOME)"; \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews fi \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews)
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsTEST_TARGETS=all
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews$(OUTPUTDIR)/test_log.txt:
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(RM) $@
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington ( $(CD) test && \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews $(MAKE) NO_STOPPING=- PRODUCT_HOME=$(JDK_TO_TEST) $(TEST_TARGETS) \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews ) | tee $@
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews################################################################
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# JPRT rule to build
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews################################################################
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsinclude ./make/jprt.gmk
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews################################################################
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# PHONY
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews################################################################
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews.PHONY: all test test_run test_start test_summary test_clean \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington generic_build_repo_series \
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington what clobber insane \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington dev dev-build dev-sanity dev-clobber \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington product_build \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews fastdebug_build \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews debug_build \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington build_product_image \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews build_debug_image \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews build_fastdebug_image \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews create_fresh_product_bootdir \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews create_fresh_debug_bootdir \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews create_fresh_fastdebug_bootdir \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews generic_debug_build
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# Force target
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsFRC:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews