Makefile revision 142
0N/A#
2362N/A# Copyright 1995-2009 Sun Microsystems, Inc. All Rights Reserved.
1008N/A# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1008N/A#
1008N/A# This code is free software; you can redistribute it and/or modify it
1008N/A# under the terms of the GNU General Public License version 2 only, as
2362N/A# published by the Free Software Foundation. Sun designates this
1008N/A# particular file as subject to the "Classpath" exception as provided
2362N/A# by Sun in the LICENSE file that accompanied this code.
1008N/A#
1008N/A# This code is distributed in the hope that it will be useful, but WITHOUT
1008N/A# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1008N/A# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
1008N/A# version 2 for more details (a copy is included in the LICENSE file that
1008N/A# accompanied this code).
1008N/A#
1008N/A# You should have received a copy of the GNU General Public License version
1008N/A# 2 along with this work; if not, write to the Free Software Foundation,
1008N/A# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
1008N/A#
2362N/A# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
2362N/A# CA 95054 USA or visit www.sun.com if you need additional information or
2362N/A# have any questions.
1008N/A#
1008N/A
1008N/ABUILD_PARENT_DIRECTORY=.
1008N/A
0N/Aifndef TOPDIR
0N/A TOPDIR:=.
1821N/Aendif
1821N/A
1821N/Aifndef CONTROL_TOPDIR
1821N/A CONTROL_TOPDIR=$(TOPDIR)
1821N/Aendif
1821N/A
1821N/A# Openjdk sources (only used if SKIP_OPENJDK_BUILD!=true)
1821N/AOPENJDK_SOURCETREE=$(TOPDIR)/openjdk
1821N/AOPENJDK_BUILDDIR:=$(shell \
1821N/A if [ -r $(OPENJDK_SOURCETREE)/Makefile ]; then \
2391N/A echo "$(OPENJDK_SOURCETREE)"; \
1821N/A else \
1821N/A echo "."; \
2391N/A fi)
1821N/A
1821N/Aifndef JDK_TOPDIR
1821N/A JDK_TOPDIR=$(TOPDIR)/jdk
2391N/Aendif
1821N/Aifndef JDK_MAKE_SHARED_DIR
1821N/A JDK_MAKE_SHARED_DIR=$(JDK_TOPDIR)/make/common/shared
1821N/Aendif
1821N/A
1821N/A# For start and finish echo lines
1821N/ATITLE_TEXT = Control $(PLATFORM) $(ARCH) $(RELEASE)
1821N/ADATE_STAMP = `$(DATE) '+%y-%m-%d %H:%M'`
1821N/ASTART_ECHO = echo "$(TITLE_TEXT) $@ build started: $(DATE_STAMP)"
1821N/AFINISH_ECHO = echo "$(TITLE_TEXT) $@ build finished: $(DATE_STAMP)"
1821N/A
1821N/Adefault: all
1821N/A
1008N/Ainclude $(JDK_MAKE_SHARED_DIR)/Defs-control.gmk
1008N/Ainclude ./make/Defs-internal.gmk
1821N/Ainclude ./make/sanity-rules.gmk
1008N/Ainclude ./make/hotspot-rules.gmk
1008N/Ainclude ./make/langtools-rules.gmk
1008N/Ainclude ./make/corba-rules.gmk
1008N/Ainclude ./make/jaxp-rules.gmk
1008N/Ainclude ./make/jaxws-rules.gmk
1821N/Ainclude ./make/jdk-rules.gmk
1821N/Ainclude ./make/install-rules.gmk
1821N/Ainclude ./make/sponsors-rules.gmk
1821N/Ainclude ./make/deploy-rules.gmk
1821N/A
1821N/A# What "all" means
1821N/Aall::
1821N/A @$(START_ECHO)
2228N/A
2228N/Aall:: openjdk_check sanity
2228N/A
2228N/Aifeq ($(SKIP_FASTDEBUG_BUILD), false)
1821N/A all:: fastdebug_build
0N/Aendif
2402N/A
2402N/Aifeq ($(SKIP_DEBUG_BUILD), false)
2402N/A all:: debug_build
2402N/Aendif
2402N/A
2402N/Aifneq ($(SKIP_OPENJDK_BUILD), true)
2402N/A all:: openjdk_build
2402N/Aendif
2402N/A
2402N/Aall:: all_product_build
2402N/A
2402N/Aall::
2402N/A @$(FINISH_ECHO)
2402N/A
2402N/A# Everything for a full product build
2402N/Aall_product_build::
2402N/A @$(START_ECHO)
2402N/A
2402N/Aifeq ($(SKIP_PRODUCT_BUILD), false)
0N/A
0N/A all_product_build:: product_build
1008N/A
1821N/A ifeq ($(BUILD_INSTALL), true)
1821N/A all_product_build:: $(INSTALL)
1821N/A clobber:: install-clobber
2228N/A endif
2228N/A
2228N/A ifeq ($(BUILD_SPONSORS), true)
2228N/A all_product_build:: $(SPONSORS)
2228N/A clobber:: sponsors-clobber
2228N/A endif
2228N/A
2228N/A ifneq ($(SKIP_COMPARE_IMAGES), true)
2228N/A all_product_build:: compare-image
2228N/A endif
2402N/A
2402N/Aendif
2402N/A
2402N/Aall_product_build::
2402N/A @$(FINISH_ECHO)
2402N/A
2402N/A# Generis build of basic repo series
2402N/Ageneric_build_repo_series::
2402N/A $(MKDIR) -p $(OUTPUTDIR)
2402N/A $(MKDIR) -p $(OUTPUTDIR)/j2sdk-image
2402N/A
2402N/Aifeq ($(BUILD_LANGTOOLS), true)
2402N/A generic_build_repo_series:: langtools
2402N/A clobber:: langtools-clobber
2402N/Aendif
2402N/A
2402N/Aifeq ($(BUILD_CORBA), true)
2402N/A generic_build_repo_series:: corba
2402N/A clobber:: corba-clobber
2402N/Aendif
2402N/A
1821N/Aifeq ($(BUILD_JAXP), true)
2228N/A generic_build_repo_series:: jaxp
2228N/A clobber:: jaxp-clobber
2228N/Aendif
2228N/A
2228N/Aifeq ($(BUILD_JAXWS), true)
2228N/A generic_build_repo_series:: jaxws
2228N/A clobber:: jaxws-clobber
2228N/Aendif
2228N/A
2228N/Aifeq ($(BUILD_HOTSPOT), true)
2228N/A generic_build_repo_series:: $(HOTSPOT)
1821N/A clobber:: hotspot-clobber
1821N/Aendif
1821N/A
2228N/Aifeq ($(BUILD_JDK), true)
2228N/A generic_build_repo_series:: $(JDK_JAVA_EXE)
2228N/A clobber:: jdk-clobber
2228N/Aendif
2228N/A
1821N/Aifeq ($(BUILD_DEPLOY), true)
2228N/A generic_build_repo_series:: $(DEPLOY)
1821N/A clobber:: deploy-clobber
2228N/Aendif
2228N/A
1821N/Aifeq ($(BUILD_JDK), true)
2228N/A ifeq ($(BUNDLE_RULES_AVAILABLE), true)
1821N/A generic_build_repo_series:: openjdk-binary-plugs-bundles
1821N/A endif
1821N/Aendif
1821N/A
1821N/A# The debug build, fastdebug or debug. Needs special handling.
1821N/A# Note that debug builds do NOT do INSTALL steps, but must be done
1821N/A# after the product build and before the INSTALL step of the product build.
1821N/A#
1821N/A# DEBUG_NAME is fastdebug or debug
1821N/A# ALT_OUTPUTDIR is changed to have -debug or -fastdebug suffix
2228N/A# The resulting j2sdk-image is used by the install makefiles to create a
1821N/A# debug install bundle jdk-*-debug-** bundle (tar or zip)
1821N/A# which will install in the debug or fastdebug subdirectory of the
1821N/A# normal product install area.
1821N/A# The install process needs to know what the DEBUG_NAME is, so
1821N/A# look for INSTALL_DEBUG_NAME in the install rules.
1821N/A#
1821N/A
1821N/A# Location of fresh bootdir output
0N/AABS_BOOTDIR_OUTPUTDIR=$(ABS_OUTPUTDIR)/bootjdk
1821N/AFRESH_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/j2sdk-image
1008N/AFRESH_DEBUG_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)-$(DEBUG_NAME)/j2sdk-image
0N/A
0N/Acreate_fresh_product_bootdir: FRC
2228N/A @$(START_ECHO)
2228N/A $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
2228N/A GENERATE_DOCS=false \
2228N/A BOOT_CYCLE_SETTINGS= \
2228N/A build_product_image
2228N/A @$(FINISH_ECHO)
0N/A
1821N/Acreate_fresh_debug_bootdir: FRC
0N/A @$(START_ECHO)
1008N/A $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
1008N/A GENERATE_DOCS=false \
1008N/A BOOT_CYCLE_DEBUG_SETTINGS= \
1008N/A build_debug_image
2228N/A @$(FINISH_ECHO)
1008N/A
2228N/Acreate_fresh_fastdebug_bootdir: FRC
2228N/A @$(START_ECHO)
0N/A $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
1008N/A GENERATE_DOCS=false \
1008N/A BOOT_CYCLE_DEBUG_SETTINGS= \
1008N/A build_fastdebug_image
2228N/A @$(FINISH_ECHO)
2228N/A
2228N/A# Create boot image?
2228N/Aifeq ($(SKIP_BOOT_CYCLE),false)
2228N/A ifneq ($(PLATFORM)$(ARCH_DATA_MODEL),solaris64)
2228N/A DO_BOOT_CYCLE=true
2228N/A endif
1008N/Aendif
1008N/A
1008N/Aifeq ($(DO_BOOT_CYCLE),true)
1008N/A
1008N/A # Create the bootdir to use in the build
1008N/A product_build:: create_fresh_product_bootdir
1821N/A debug_build:: create_fresh_debug_bootdir
1008N/A fastdebug_build:: create_fresh_fastdebug_bootdir
1008N/A
0N/A # Define variables to be used now for the boot jdk
0N/A BOOT_CYCLE_SETTINGS= \
1008N/A ALT_BOOTDIR=$(FRESH_BOOTDIR) \
1008N/A ALT_JDK_IMPORT_PATH=$(FRESH_BOOTDIR)
1008N/A BOOT_CYCLE_DEBUG_SETTINGS= \
1008N/A ALT_BOOTDIR=$(FRESH_DEBUG_BOOTDIR) \
1008N/A ALT_JDK_IMPORT_PATH=$(FRESH_DEBUG_BOOTDIR)
0N/A
1821N/Aelse
1821N/A
1821N/A # Use the supplied ALT_BOOTDIR as the boot
1821N/A BOOT_CYCLE_SETTINGS=
1821N/A BOOT_CYCLE_DEBUG_SETTINGS=
1821N/A
1821N/Aendif
1821N/A
1821N/Abuild_product_image:
1821N/A @$(START_ECHO)
1821N/A $(MAKE) \
1821N/A SKIP_FASTDEBUG_BUILD=true \
1821N/A SKIP_DEBUG_BUILD=true \
1821N/A $(BOOT_CYCLE_SETTINGS) \
1821N/A generic_build_repo_series
2402N/A @$(FINISH_ECHO)
2402N/A
2402N/Ageneric_debug_build:
2391N/A @$(START_ECHO)
2391N/A $(MAKE) \
1008N/A ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)-$(DEBUG_NAME) \
1008N/A DEBUG_NAME=$(DEBUG_NAME) \
1008N/A GENERATE_DOCS=false \
1008N/A $(BOOT_CYCLE_DEBUG_SETTINGS) \
1008N/A generic_build_repo_series
0N/A @$(FINISH_ECHO)
1008N/A
1008N/Abuild_debug_image:
2391N/A $(MAKE) DEBUG_NAME=debug generic_debug_build
1008N/A
3866N/Abuild_fastdebug_image:
1008N/A $(MAKE) DEBUG_NAME=fastdebug generic_debug_build
1821N/A
1821N/A# Build final image
1821N/Aproduct_build:: build_product_image
1821N/Adebug_build:: build_debug_image
1821N/Afastdebug_build:: build_fastdebug_image
1821N/A
1947N/A# Check on whether we really can build the openjdk, need source etc.
1947N/Aopenjdk_check: FRC
1947N/Aifneq ($(SKIP_OPENJDK_BUILD), true)
1947N/A @$(ECHO) " "
1947N/A @$(ECHO) "================================================="
1947N/A @if [ ! -r $(OPENJDK_BUILDDIR)/Makefile ] ; then \
1947N/A $(ECHO) "ERROR: No openjdk source tree available at: $(OPENJDK_BUILDDIR)"; \
1947N/A exit 1; \
1947N/A else \
2017N/A $(ECHO) "OpenJDK will be built after JDK is built"; \
1947N/A $(ECHO) " OPENJDK_BUILDDIR=$(OPENJDK_BUILDDIR)"; \
1821N/A fi
1821N/A @$(ECHO) "================================================="
1947N/A @$(ECHO) " "
1821N/Aendif
1947N/A
1947N/A# If we have bundle rules, we have a chance here to do a complete cycle
1821N/A# build, of production and open build.
2017N/A# FIXUP: We should create the openjdk source bundle and build that?
1821N/A# But how do we reliable create or get at a formal openjdk source tree?
1821N/A# The one we have needs to be trimmed of built bits and closed dirs.
1821N/A# The repositories might not be available.
1821N/A# The openjdk source bundle is probably not available.
1821N/A
1821N/Aifneq ($(SKIP_OPENJDK_BUILD), true)
1821N/A ifeq ($(BUILD_JDK), true)
1821N/A ifeq ($(BUNDLE_RULES_AVAILABLE), true)
1947N/A
1821N/AOPENJDK_PLUGS=$(ABS_OUTPUTDIR)/$(OPENJDK_BINARY_PLUGS_INAME)
1821N/AOPENJDK_OUTPUTDIR=$(ABS_OUTPUTDIR)/open-output
1821N/AOPENJDK_BUILD_NAME \
1947N/A = openjdk-$(JDK_MINOR_VERSION)-$(BUILD_NUMBER)-$(PLATFORM)-$(ARCH)-$(BUNDLE_DATE)
1947N/AOPENJDK_BUILD_BINARY_ZIP=$(ABS_BIN_BUNDLEDIR)/$(OPENJDK_BUILD_NAME).zip
1947N/ABUILT_IMAGE=$(ABS_OUTPUTDIR)/j2sdk-image
1821N/Aifeq ($(PLATFORM)$(ARCH_DATA_MODEL),solaris64)
1821N/A OPENJDK_BOOTDIR=$(BOOTDIR)
1821N/A OPENJDK_IMPORTJDK=$(JDK_IMPORT_PATH)
1821N/Aelse
1821N/A OPENJDK_BOOTDIR=$(BUILT_IMAGE)
2500N/A OPENJDK_IMPORTJDK=$(BUILT_IMAGE)
1821N/Aendif
1821N/A
1821N/Aopenjdk_build:
1821N/A @$(START_ECHO)
3866N/A @$(ECHO) " "
3866N/A @$(ECHO) "================================================="
3866N/A @$(ECHO) "Starting openjdk build"
2203N/A @$(ECHO) " Using: ALT_JDK_DEVTOOLS_DIR=$(JDK_DEVTOOLS_DIR)"
1947N/A @$(ECHO) "================================================="
1821N/A @$(ECHO) " "
1008N/A $(RM) -r $(OPENJDK_OUTPUTDIR)
1008N/A $(MKDIR) -p $(OPENJDK_OUTPUTDIR)
0N/A ($(CD) $(OPENJDK_BUILDDIR) && $(MAKE) \
1008N/A OPENJDK=true \
1008N/A GENERATE_DOCS=false \
1008N/A ALT_JDK_DEVTOOLS_DIR=$(JDK_DEVTOOLS_DIR) \
0N/A ALT_OUTPUTDIR=$(OPENJDK_OUTPUTDIR) \
1008N/A ALT_BINARY_PLUGS_PATH=$(OPENJDK_PLUGS) \
1008N/A ALT_BOOTDIR=$(OPENJDK_BOOTDIR) \
1008N/A ALT_JDK_IMPORT_PATH=$(OPENJDK_IMPORTJDK) \
2500N/A product_build )
0N/A $(RM) $(OPENJDK_BUILD_BINARY_ZIP)
0N/A ( $(CD) $(OPENJDK_OUTPUTDIR)/j2sdk-image && \
0N/A $(ZIPEXE) -q -r $(OPENJDK_BUILD_BINARY_ZIP) .)
1008N/A $(RM) -r $(OPENJDK_OUTPUTDIR)
1008N/A @$(ECHO) " "
1008N/A @$(ECHO) "================================================="
1008N/A @$(ECHO) "Finished openjdk build"
1008N/A @$(ECHO) " Binary Bundle: $(OPENJDK_BUILD_BINARY_ZIP)"
1008N/A @$(ECHO) "================================================="
1008N/A @$(ECHO) " "
1008N/A @$(FINISH_ECHO)
1934N/A
1934N/A endif
1934N/A endif
1934N/Aendif
1934N/A
1008N/Aclobber::
1008N/A $(RM) -r $(OUTPUTDIR)/*
1008N/A $(RM) -r $(OUTPUTDIR)-debug/*
1008N/A $(RM) -r $(OUTPUTDIR)-fastdebug/*
1821N/A -($(RMDIR) -p $(OUTPUTDIR) > $(DEV_NULL) 2>&1; $(TRUE))
1821N/A
1821N/Aclean: clobber
1821N/A
1821N/A#
1821N/A# Dev builds
1821N/A#
1821N/A
1821N/Adev : dev-build
2020N/A
2020N/Adev-build:
1821N/A $(MAKE) DEV_ONLY=true all
1821N/Adev-sanity:
1821N/A $(MAKE) DEV_ONLY=true sanity
1821N/Adev-clobber:
1821N/A $(MAKE) DEV_ONLY=true clobber
1821N/A
1821N/A#
1934N/A# Quick jdk verification build
1821N/A#
1821N/Ajdk_only:
1821N/A $(MAKE) SKIP_FASTDEBUG_BUILD=true BUILD_HOTSPOT=false all
1821N/A
3866N/A
1821N/A#
1821N/A# Quick jdk verification fastdebug build
3866N/A#
1821N/Ajdk_fastdebug_only:
1934N/A $(MAKE) DEBUG_NAME=fastdebug BUILD_HOTSPOT=false BUILD_DEPLOY=false \
2500N/A BUILD_INSTALL=false BUILD_SPONSORS=false generic_debug_build
2228N/A
1934N/A#
1934N/A# Quick deploy verification fastdebug build
2228N/A#
1934N/Adeploy_fastdebug_only:
1934N/A $(MAKE) \
1821N/A DEBUG_NAME=fastdebug \
1821N/A BUILD_HOTSPOT=false \
3866N/A BUILD_JDK=false \
1821N/A BUILD_LANGTOOLS=false \
1821N/A BUILD_CORBA=false \
1821N/A BUILD_JAXP=false \
1821N/A BUILD_JAXWS=false \
1821N/A BUILD_INSTALL=false \
1008N/A BUILD_SPONSORS=false \
1008N/A generic_debug_build
1934N/A
1934N/A#
1934N/A# Product build (skip debug builds)
1934N/A#
1821N/Aproduct_only:
1821N/A $(MAKE) SKIP_FASTDEBUG_BUILD=true all
3740N/A
3866N/A#
1821N/A# Check target
1821N/A#
3740N/A
3866N/Acheck: variable_check
1821N/A
1821N/A#
2017N/A# Help target
1821N/A#
2017N/Ahelp: intro_help target_help variable_help notes_help examples_help
1821N/A
1821N/A# Intro help message
1821N/Aintro_help:
1821N/A @$(ECHO) "\
1821N/AMakefile for the JDK builds (all the JDK). \n\
1821N/A"
1821N/A
1821N/A# Target help
1821N/Atarget_help:
1821N/A @$(ECHO) "\
3740N/A--- Common Targets --- \n\
1821N/Aall -- build the core JDK (default target) \n\
1821N/Ahelp -- Print out help information \n\
1821N/Acheck -- Check make variable values for correctness \n\
1821N/Asanity -- Perform detailed sanity checks on system and settings \n\
3740N/Afastdebug_build -- build the core JDK in 'fastdebug' mode (-g -O) \n\
3740N/Adebug_build -- build the core JDK in 'debug' mode (-g) \n\
1821N/Aclean -- remove all built and imported files \n\
3740N/Aclobber -- same as clean \n\
1821N/A"
1821N/A
1821N/A# Variable help (only common ones used by this Makefile)
1821N/Avariable_help: variable_help_intro variable_list variable_help_end
1821N/Avariable_help_intro:
3740N/A @$(ECHO) "--- Common Variables ---"
3740N/Avariable_help_end:
3740N/A @$(ECHO) " "
1821N/A
2017N/A# One line descriptions for the variables
2017N/AOUTPUTDIR.desc = Output directory
2017N/APARALLEL_COMPILE_JOBS.desc = Solaris/Linux parallel compile run count
1821N/ASLASH_JAVA.desc = Root of all build tools, e.g. /java or J:
3740N/ABOOTDIR.desc = JDK used to boot the build
1821N/AJDK_IMPORT_PATH.desc = JDK used to import components of the build
1821N/ACOMPILER_PATH.desc = Compiler install directory
2017N/ACACERTS_FILE.desc = Location of certificates file
1934N/ADEVTOOLS_PATH.desc = Directory containing zip and gnumake
1934N/ACUPS_HEADERS_PATH.desc = Include directory location for CUPS header files
1934N/ADXSDK_PATH.desc = Root directory of DirectX SDK
1821N/AMSDEVTOOLS_PATH.desc = Root directory of VC++ tools (e.g. rc.exe)
1821N/AMSVCRT_DLL_PATH.desc = Directory containing mscvrt.dll
3740N/A
1821N/A# Make variables to print out (description and value)
1821N/AVARIABLE_PRINTVAL_LIST += \
1821N/A OUTPUTDIR \
1821N/A PARALLEL_COMPILE_JOBS \
3740N/A SLASH_JAVA \
1821N/A BOOTDIR \
1821N/A JDK_IMPORT_PATH \
1821N/A COMPILER_PATH \
1821N/A CACERTS_FILE \
1821N/A DEVTOOLS_PATH
3740N/A
1821N/A# Make variables that should refer to directories that exist
1821N/AVARIABLE_CHECKDIR_LIST += \
1821N/A SLASH_JAVA \
1821N/A BOOTDIR \
1821N/A JDK_IMPORT_PATH \
3740N/A COMPILER_PATH \
1821N/A DEVTOOLS_PATH
1821N/A
2017N/A# Make variables that should refer to files that exist
1934N/AVARIABLE_CHECKFIL_LIST += \
1934N/A CACERTS_FILE
1934N/A
1821N/A# Some are windows specific
1821N/Aifeq ($(PLATFORM), windows)
3740N/A
1821N/AVARIABLE_PRINTVAL_LIST += \
1821N/A DXSDK_PATH \
1821N/A MSDEVTOOLS_PATH \
1821N/A MSVCRT_DLL_PATH
3740N/A
3740N/AVARIABLE_CHECKDIR_LIST += \
1821N/A DXSDK_PATH \
3740N/A MSDEVTOOLS_PATH \
1821N/A MSVCRT_DLL_PATH
1821N/A
1821N/Aendif
1821N/A
3740N/A# For pattern rules below, so all are treated the same
1821N/ADO_PRINTVAL_LIST=$(VARIABLE_PRINTVAL_LIST:%=%.printval)
1821N/ADO_CHECKDIR_LIST=$(VARIABLE_CHECKDIR_LIST:%=%.checkdir)
1821N/ADO_CHECKFIL_LIST=$(VARIABLE_CHECKFIL_LIST:%=%.checkfil)
1821N/A
3740N/A# Complete variable check
1821N/Avariable_check: $(DO_CHECKDIR_LIST) $(DO_CHECKFIL_LIST)
1821N/Avariable_list: $(DO_PRINTVAL_LIST) variable_check
2546N/A
1821N/A# Pattern rule for printing out a variable
3740N/A%.printval:
3740N/A @$(ECHO) " ALT_$* - $($*.desc)"
2402N/A @$(ECHO) " \t $*=$($*)"
2546N/A
2017N/A# Pattern rule for checking to see if a variable with a directory exists
2546N/A%.checkdir:
1821N/A @if [ ! -d $($*) ] ; then \
3740N/A $(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
2546N/A fi
1821N/A
2017N/A# Pattern rule for checking to see if a variable with a file exists
1934N/A%.checkfil:
1934N/A @if [ ! -f $($*) ] ; then \
1934N/A $(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
1821N/A fi
1821N/A
1821N/A# Misc notes on help
3740N/Anotes_help:
1821N/A @$(ECHO) "\
1821N/A--- Notes --- \n\
1821N/A- All builds use same output directory unless overridden with \n\
1821N/A \t ALT_OUTPUTDIR=<dir>, changing from product to fastdebug you may want \n\
3740N/A \t to use the clean target first. \n\
1821N/A- JDK_IMPORT_PATH must refer to a compatible build, not all past promoted \n\
1821N/A \t builds or previous release JDK builds will work. \n\
1821N/A- The fastest builds have been when the sources and the BOOTDIR are on \n\
1821N/A \t local disk. \n\
1821N/A"
3740N/A
1821N/Aexamples_help:
2017N/A @$(ECHO) "\
2017N/A--- Examples --- \n\
2017N/A $(MAKE) fastdebug_build \n\
1821N/A $(MAKE) ALT_OUTPUTDIR=/tmp/foobar all \n\
3740N/A $(MAKE) ALT_OUTPUTDIR=/tmp/foobar fastdebug_build \n\
3740N/A $(MAKE) ALT_OUTPUTDIR=/tmp/foobar all \n\
2402N/A $(MAKE) ALT_BOOTDIR=/opt/java/jdk1.5.0 \n\
1821N/A $(MAKE) ALT_JDK_IMPORT_PATH=/opt/java/jdk1.6.0 \n\
1821N/A"
2017N/A
1934N/A################################################################
1934N/A# Source and binary plug bundling
1934N/A################################################################
1821N/Aifeq ($(BUNDLE_RULES_AVAILABLE), true)
1821N/A include $(BUNDLE_RULES)
1821N/Aendif
3740N/A
1821N/A################################################################
1821N/A# JPRT rule to build
1821N/A################################################################
1821N/A
3740N/Ainclude ./make/jprt.gmk
1821N/A
1821N/A################################################################
2017N/A# PHONY
1821N/A################################################################
3740N/A
1940N/A.PHONY: all \
2017N/A generic_build_repo_series \
2017N/A what clobber insane \
2017N/A dev dev-build dev-sanity dev-clobber \
1821N/A product_build \
3740N/A fastdebug_build \
3740N/A debug_build \
3740N/A build_product_image \
2402N/A build_debug_image \
2500N/A build_fastdebug_image \
1821N/A create_fresh_product_bootdir \
2017N/A create_fresh_debug_bootdir \
1934N/A create_fresh_fastdebug_bootdir \
1934N/A generic_debug_build
1934N/A
1821N/A# Force target
1821N/AFRC:
3740N/A
1821N/A