Makefile revision 95
6ca0e6973c8176100f4a426444823ae5e777e28fsascha#
e379fc6d7f79163700290d92ce75deb4f3005301jerenkrantz# Copyright 1995-2009 Sun Microsystems, Inc. All Rights Reserved.
e379fc6d7f79163700290d92ce75deb4f3005301jerenkrantz# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
e379fc6d7f79163700290d92ce75deb4f3005301jerenkrantz#
e379fc6d7f79163700290d92ce75deb4f3005301jerenkrantz# This code is free software; you can redistribute it and/or modify it
e379fc6d7f79163700290d92ce75deb4f3005301jerenkrantz# under the terms of the GNU General Public License version 2 only, as
e379fc6d7f79163700290d92ce75deb4f3005301jerenkrantz# published by the Free Software Foundation. Sun designates this
e379fc6d7f79163700290d92ce75deb4f3005301jerenkrantz# particular file as subject to the "Classpath" exception as provided
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# by Sun in the LICENSE file that accompanied this code.
6ca0e6973c8176100f4a426444823ae5e777e28fsascha#
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# This code is distributed in the hope that it will be useful, but WITHOUT
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# version 2 for more details (a copy is included in the LICENSE file that
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# accompanied this code).
6ca0e6973c8176100f4a426444823ae5e777e28fsascha#
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# You should have received a copy of the GNU General Public License version
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# 2 along with this work; if not, write to the Free Software Foundation,
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
6ca0e6973c8176100f4a426444823ae5e777e28fsascha#
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# CA 95054 USA or visit www.sun.com if you need additional information or
3a47c2ef905c3b6483279637fb8054ca67c5b6ddsascha# have any questions.
3a47c2ef905c3b6483279637fb8054ca67c5b6ddsascha#
3a47c2ef905c3b6483279637fb8054ca67c5b6ddsascha
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaBUILD_PARENT_DIRECTORY=.
6ca0e6973c8176100f4a426444823ae5e777e28fsascha
e50587e6b2ff25bdcbe29410be5bf8f4792016eegregamesifndef TOPDIR
6ca0e6973c8176100f4a426444823ae5e777e28fsascha TOPDIR:=.
0d9c389e9c63d02edb068917d49af2fa8012af91marcendif
6ca0e6973c8176100f4a426444823ae5e777e28fsascha
dadf206a4cf1eccf5c13b64bd9678610dd763868rbbifndef CONTROL_TOPDIR
dadf206a4cf1eccf5c13b64bd9678610dd763868rbb CONTROL_TOPDIR=$(TOPDIR)
a773226ea345018b49d45cf2e076ff2452eead5arbbendif
f9e54e16ac4952a85bb00b8043c1d1e0f495eefbgregames
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# Openjdk sources (only used if SKIP_OPENJDK_BUILD!=true)
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaOPENJDK_SOURCETREE=$(TOPDIR)/openjdk
ec9b5c4854a4055d00f5459dbbd879d517f1531dmartinOPENJDK_BUILDDIR:=$(shell \
6ca0e6973c8176100f4a426444823ae5e777e28fsascha if [ -r $(OPENJDK_SOURCETREE)/Makefile ]; then \
5181b311fbd45b65a34b3fddb3ace5fab85f36e4wrowe echo "$(OPENJDK_SOURCETREE)"; \
6ca0e6973c8176100f4a426444823ae5e777e28fsascha else \
6ca0e6973c8176100f4a426444823ae5e777e28fsascha echo "."; \
4cbb3bcf66a6788196bcc7244e4e36705acfbb57rbb fi)
a91a466a0d812a522d492c3c182163f73591ca20aaron
a91a466a0d812a522d492c3c182163f73591ca20aaronifndef JDK_TOPDIR
5f69f46ccdf50afd8f0a23f134746e6066185e89rbb JDK_TOPDIR=$(TOPDIR)/jdk
12b0070d002520b81a273ae892b9ea08e810b123rbbendif
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaifndef JDK_MAKE_SHARED_DIR
886cd69ebf69e990dbc365be87ff8ea7cd681904rbb JDK_MAKE_SHARED_DIR=$(JDK_TOPDIR)/make/common/shared
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaendif
305a68a1a5db3cc264077d89b3caa6f923257150fielding
7bfe076b680e6e591add6cdc754ce9a6910682a2sascha# For start and finish echo lines
105475009f541187ba7a14a367547d9404c578befieldingTITLE_TEXT = Control $(PLATFORM) $(ARCH) $(RELEASE)
105475009f541187ba7a14a367547d9404c578befieldingDAYE_STAMP = `$(DATE) '+%y-%m-%d %H:%M'`
7bfe076b680e6e591add6cdc754ce9a6910682a2saschaSTART_ECHO = echo "$(TITLE_TEXT) $@ build started: $(DATE_STAMP)"
f07a80771bc5d30b1e0cfcb7256c1a302da77675rbbFINISH_ECHO = echo "$(TITLE_TEXT) $@ build finished: $(DATE_STAMP)"
6ca0e6973c8176100f4a426444823ae5e777e28fsascha
80e9324586de2fa55e2da4df409e6a85885ea659fieldingdefault: all
9022fa73d4ac101553e7c36a1457ead52a73333borlikowski
9022fa73d4ac101553e7c36a1457ead52a73333borlikowskiinclude $(JDK_MAKE_SHARED_DIR)/Defs-control.gmk
38d37e90b45f2a735e7aecf702c76159e0b9f58ftrawickinclude ./make/Defs-internal.gmk
105475009f541187ba7a14a367547d9404c578befieldinginclude ./make/sanity-rules.gmk
6ca0e6973c8176100f4a426444823ae5e777e28fsaschainclude ./make/hotspot-rules.gmk
105475009f541187ba7a14a367547d9404c578befieldinginclude ./make/langtools-rules.gmk
105475009f541187ba7a14a367547d9404c578befieldinginclude ./make/corba-rules.gmk
105475009f541187ba7a14a367547d9404c578befieldinginclude ./make/jaxp-rules.gmk
105475009f541187ba7a14a367547d9404c578befieldinginclude ./make/jaxws-rules.gmk
105475009f541187ba7a14a367547d9404c578befieldinginclude ./make/jdk-rules.gmk
105475009f541187ba7a14a367547d9404c578befieldinginclude ./make/install-rules.gmk
105475009f541187ba7a14a367547d9404c578befieldinginclude ./make/sponsors-rules.gmk
105475009f541187ba7a14a367547d9404c578befieldinginclude ./make/deploy-rules.gmk
105475009f541187ba7a14a367547d9404c578befielding
105475009f541187ba7a14a367547d9404c578befielding# What "all" means
105475009f541187ba7a14a367547d9404c578befieldingall::
105475009f541187ba7a14a367547d9404c578befielding @$(START_ECHO)
6ca0e6973c8176100f4a426444823ae5e777e28fsascha
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaall:: openjdk_check sanity
6ca0e6973c8176100f4a426444823ae5e777e28fsascha
cb5d3f2f217d457dada4883addb1dc9f3f17bb85fieldingifeq ($(SKIP_FASTDEBUG_BUILD), false)
6a1c919219ae7e3382fb22f1c4cf89f11b4becffcoar all:: fastdebug_build
95d00ea81131488769296fa5765ed745cbf45207trawickendif
95d00ea81131488769296fa5765ed745cbf45207trawick
ce8d7a0627c0f246376cccd980463f8250a6a97ebjhifeq ($(SKIP_DEBUG_BUILD), false)
ce8d7a0627c0f246376cccd980463f8250a6a97ebjh all:: debug_build
20bca6c9617ad7d0268203c21039424e99acdd91bjhendif
ce8d7a0627c0f246376cccd980463f8250a6a97ebjh
ce8d7a0627c0f246376cccd980463f8250a6a97ebjhifneq ($(SKIP_OPENJDK_BUILD), true)
11c8f1b409a02814693ec75cbe7f69f3ef994fbajerenkrantz all:: openjdk_build
cdb58be93a9cbeaba1ebc759b48aa8ed519675a9bjhendif
7dfed2b71c9c4223996cbd7c5c0c85c7c8fef2a4rbb
5d5073be0470140d32914de8e74d869ee4145bffjerenkrantzall:: all_product_build
6552de06c3d34e6ecfad4c93a6604531b52caf63wsanchez
5d5073be0470140d32914de8e74d869ee4145bffjerenkrantzall::
6552de06c3d34e6ecfad4c93a6604531b52caf63wsanchez @$(FINISH_ECHO)
6ca0e6973c8176100f4a426444823ae5e777e28fsascha
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# Everything for a full product build
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaall_product_build::
6ca0e6973c8176100f4a426444823ae5e777e28fsascha @$(START_ECHO)
a736bac16e58d5e96945f35ee3c43a2cd2f5d37ejerenkrantz
88ecd979f1112454432371f55a1420240fae3743trawickifeq ($(SKIP_PRODUCT_BUILD), false)
6ca0e6973c8176100f4a426444823ae5e777e28fsascha
88ecd979f1112454432371f55a1420240fae3743trawick all_product_build:: product_build
6ca0e6973c8176100f4a426444823ae5e777e28fsascha
3a47c2ef905c3b6483279637fb8054ca67c5b6ddsascha ifeq ($(BUILD_INSTALL), true)
3a47c2ef905c3b6483279637fb8054ca67c5b6ddsascha all_product_build:: $(INSTALL)
3a47c2ef905c3b6483279637fb8054ca67c5b6ddsascha clobber:: install-clobber
3a47c2ef905c3b6483279637fb8054ca67c5b6ddsascha endif
3a47c2ef905c3b6483279637fb8054ca67c5b6ddsascha
96e6cafca226a8a2a64a7bbdc634b5b2679c9e0csascha ifeq ($(BUILD_SPONSORS), true)
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj all_product_build:: $(SPONSORS)
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj clobber:: sponsors-clobber
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj endif
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj ifneq ($(SKIP_COMPARE_IMAGES), true)
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj all_product_build:: compare-image
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj endif
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojendif
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj
b90c64e517df3fe1c97806830f84a30362187f0afieldingall_product_build::
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj @$(FINISH_ECHO)
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj# Generis build of basic repo series
b90c64e517df3fe1c97806830f84a30362187f0afieldinggeneric_build_repo_series::
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj $(MKDIR) -p $(OUTPUTDIR)
e6b0215ca481b00d658a0adfea378c36a67aa088trawick $(MKDIR) -p $(OUTPUTDIR)/j2sdk-image
e6b0215ca481b00d658a0adfea378c36a67aa088trawick
e6b0215ca481b00d658a0adfea378c36a67aa088trawickifeq ($(BUILD_LANGTOOLS), true)
e6b0215ca481b00d658a0adfea378c36a67aa088trawick generic_build_repo_series:: langtools
e6b0215ca481b00d658a0adfea378c36a67aa088trawick clobber:: langtools-clobber
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manojendif
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manojifeq ($(BUILD_CORBA), true)
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj generic_build_repo_series:: corba
ec7f09808149aa3a0f9895c29025766d4961a044dougm clobber:: corba-clobber
b9e4a86f22b3e8666186b9fe08e9241cdaf50d26manojendif
b9e4a86f22b3e8666186b9fe08e9241cdaf50d26manoj
d6baa4df51dd4759e4a7d26d3c864d7ef20e08bcmanojifeq ($(BUILD_JAXP), true)
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj generic_build_repo_series:: jaxp
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj clobber:: jaxp-clobber
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaendif
6ca0e6973c8176100f4a426444823ae5e777e28fsascha
825ab8e480abebc9528fa3b580df41bc9ec4fbderbbifeq ($(BUILD_JAXWS), true)
6ca0e6973c8176100f4a426444823ae5e777e28fsascha generic_build_repo_series:: jaxws
6ca0e6973c8176100f4a426444823ae5e777e28fsascha clobber:: jaxws-clobber
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaendif
0af3a77b888861a190b1701079a96469f323e661rbb
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaifeq ($(BUILD_HOTSPOT), true)
6ca0e6973c8176100f4a426444823ae5e777e28fsascha generic_build_repo_series:: $(HOTSPOT)
6ca0e6973c8176100f4a426444823ae5e777e28fsascha clobber:: hotspot-clobber
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaendif
7b4eb92d597c1c5cb679d021b84f06f1e425f41bdgaudet
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaifeq ($(BUILD_JDK), true)
6ca0e6973c8176100f4a426444823ae5e777e28fsascha generic_build_repo_series:: $(JDK_JAVA_EXE)
825ab8e480abebc9528fa3b580df41bc9ec4fbderbb clobber:: jdk-clobber
825ab8e480abebc9528fa3b580df41bc9ec4fbderbbendif
cb5d3f2f217d457dada4883addb1dc9f3f17bb85fielding
cb5d3f2f217d457dada4883addb1dc9f3f17bb85fieldingifeq ($(BUILD_DEPLOY), true)
825ab8e480abebc9528fa3b580df41bc9ec4fbderbb generic_build_repo_series:: $(DEPLOY)
6ca0e6973c8176100f4a426444823ae5e777e28fsascha clobber:: deploy-clobber
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaendif
6ca0e6973c8176100f4a426444823ae5e777e28fsascha
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaifeq ($(BUILD_JDK), true)
6ca0e6973c8176100f4a426444823ae5e777e28fsascha ifeq ($(BUNDLE_RULES_AVAILABLE), true)
6ca0e6973c8176100f4a426444823ae5e777e28fsascha generic_build_repo_series:: openjdk-binary-plugs-bundles
6ca0e6973c8176100f4a426444823ae5e777e28fsascha endif
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaendif
6ca0e6973c8176100f4a426444823ae5e777e28fsascha
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# The debug build, fastdebug or debug. Needs special handling.
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# Note that debug builds do NOT do INSTALL steps, but must be done
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# after the product build and before the INSTALL step of the product build.
6ca0e6973c8176100f4a426444823ae5e777e28fsascha#
1606d7656cbc08d3f3777edbdec4a7e4f9ede0a8rbb# DEBUG_NAME is fastdebug or debug
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# ALT_OUTPUTDIR is changed to have -debug or -fastdebug suffix
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# The resulting j2sdk-image is used by the install makefiles to create a
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# debug install bundle jdk-*-debug-** bundle (tar or zip)
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# which will install in the debug or fastdebug subdirectory of the
1606d7656cbc08d3f3777edbdec4a7e4f9ede0a8rbb# normal product install area.
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# The install process needs to know what the DEBUG_NAME is, so
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# look for INSTALL_DEBUG_NAME in the install rules.
6ca0e6973c8176100f4a426444823ae5e777e28fsascha#
6ca0e6973c8176100f4a426444823ae5e777e28fsascha
832935ea1f5cc1b21d72674929eef16ed80437d6martin# Location of fresh bootdir output
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaABS_BOOTDIR_OUTPUTDIR=$(ABS_OUTPUTDIR)/bootjdk
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaFRESH_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/j2sdk-image
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaFRESH_DEBUG_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)-$(DEBUG_NAME)/j2sdk-image
7bfe076b680e6e591add6cdc754ce9a6910682a2sascha
6ca0e6973c8176100f4a426444823ae5e777e28fsaschacreate_fresh_product_bootdir: FRC
6ca0e6973c8176100f4a426444823ae5e777e28fsascha @$(START_ECHO)
6ca0e6973c8176100f4a426444823ae5e777e28fsascha $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
6ca0e6973c8176100f4a426444823ae5e777e28fsascha NO_DOCS=true \
d0211374a981173d4537e3f919c708b5f64040fcgstein BOOT_CYCLE_SETTINGS= \
6ca0e6973c8176100f4a426444823ae5e777e28fsascha build_product_image
6ca0e6973c8176100f4a426444823ae5e777e28fsascha @$(FINISH_ECHO)
d0211374a981173d4537e3f919c708b5f64040fcgstein
d0211374a981173d4537e3f919c708b5f64040fcgsteincreate_fresh_debug_bootdir: FRC
2c294c31addd5c957bafe6e78c4a30d423ad6e80rbb @$(START_ECHO)
2c294c31addd5c957bafe6e78c4a30d423ad6e80rbb $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
2c294c31addd5c957bafe6e78c4a30d423ad6e80rbb NO_DOCS=true \
2c294c31addd5c957bafe6e78c4a30d423ad6e80rbb BOOT_CYCLE_DEBUG_SETTINGS= \
2c294c31addd5c957bafe6e78c4a30d423ad6e80rbb build_debug_image
d0211374a981173d4537e3f919c708b5f64040fcgstein @$(FINISH_ECHO)
d0211374a981173d4537e3f919c708b5f64040fcgstein
d0211374a981173d4537e3f919c708b5f64040fcgsteincreate_fresh_fastdebug_bootdir: FRC
d0211374a981173d4537e3f919c708b5f64040fcgstein @$(START_ECHO)
d0211374a981173d4537e3f919c708b5f64040fcgstein $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
6ca0e6973c8176100f4a426444823ae5e777e28fsascha NO_DOCS=true \
6ca0e6973c8176100f4a426444823ae5e777e28fsascha BOOT_CYCLE_DEBUG_SETTINGS= \
e379fc6d7f79163700290d92ce75deb4f3005301jerenkrantz build_fastdebug_image
e379fc6d7f79163700290d92ce75deb4f3005301jerenkrantz @$(FINISH_ECHO)
7a9190dfde3a06f271dc6c4f4830c1a5440efef8fanf
d0211374a981173d4537e3f919c708b5f64040fcgstein# Create boot image?
71cd8b65badad4cda51aa7eaba1dea44f78190c7jerenkrantzifeq ($(SKIP_BOOT_CYCLE),false)
71cd8b65badad4cda51aa7eaba1dea44f78190c7jerenkrantz ifneq ($(PLATFORM)$(ARCH_DATA_MODEL),solaris64)
71cd8b65badad4cda51aa7eaba1dea44f78190c7jerenkrantz DO_BOOT_CYCLE=true
71cd8b65badad4cda51aa7eaba1dea44f78190c7jerenkrantz endif
71cd8b65badad4cda51aa7eaba1dea44f78190c7jerenkrantzendif
71cd8b65badad4cda51aa7eaba1dea44f78190c7jerenkrantz
71cd8b65badad4cda51aa7eaba1dea44f78190c7jerenkrantzifeq ($(DO_BOOT_CYCLE),true)
2c294c31addd5c957bafe6e78c4a30d423ad6e80rbb
2c294c31addd5c957bafe6e78c4a30d423ad6e80rbb # Create the bootdir to use in the build
2c294c31addd5c957bafe6e78c4a30d423ad6e80rbb product_build:: create_fresh_product_bootdir
2c294c31addd5c957bafe6e78c4a30d423ad6e80rbb debug_build:: create_fresh_debug_bootdir
2c294c31addd5c957bafe6e78c4a30d423ad6e80rbb fastdebug_build:: create_fresh_fastdebug_bootdir
2c294c31addd5c957bafe6e78c4a30d423ad6e80rbb
68de907078051f290050b089c0570d8167b3500dgstein # Define variables to be used now for the boot jdk
68de907078051f290050b089c0570d8167b3500dgstein BOOT_CYCLE_SETTINGS= \
68de907078051f290050b089c0570d8167b3500dgstein ALT_BOOTDIR=$(FRESH_BOOTDIR) \
2c294c31addd5c957bafe6e78c4a30d423ad6e80rbb ALT_JDK_IMPORT_PATH=$(FRESH_BOOTDIR)
68de907078051f290050b089c0570d8167b3500dgstein BOOT_CYCLE_DEBUG_SETTINGS= \
d0211374a981173d4537e3f919c708b5f64040fcgstein ALT_BOOTDIR=$(FRESH_DEBUG_BOOTDIR) \
d0211374a981173d4537e3f919c708b5f64040fcgstein ALT_JDK_IMPORT_PATH=$(FRESH_DEBUG_BOOTDIR)
68de907078051f290050b089c0570d8167b3500dgstein
68de907078051f290050b089c0570d8167b3500dgsteinelse
d0211374a981173d4537e3f919c708b5f64040fcgstein
d0211374a981173d4537e3f919c708b5f64040fcgstein # Use the supplied ALT_BOOTDIR as the boot
68de907078051f290050b089c0570d8167b3500dgstein BOOT_CYCLE_SETTINGS=
d0211374a981173d4537e3f919c708b5f64040fcgstein BOOT_CYCLE_DEBUG_SETTINGS=
d0211374a981173d4537e3f919c708b5f64040fcgstein
855aa233fcb7b51d738fca5c36585646ae1960c3jerenkrantzendif
855aa233fcb7b51d738fca5c36585646ae1960c3jerenkrantz
855aa233fcb7b51d738fca5c36585646ae1960c3jerenkrantzbuild_product_image:
855aa233fcb7b51d738fca5c36585646ae1960c3jerenkrantz @$(START_ECHO)
855aa233fcb7b51d738fca5c36585646ae1960c3jerenkrantz $(MAKE) \
855aa233fcb7b51d738fca5c36585646ae1960c3jerenkrantz SKIP_FASTDEBUG_BUILD=true \
855aa233fcb7b51d738fca5c36585646ae1960c3jerenkrantz SKIP_DEBUG_BUILD=true \
71cd8b65badad4cda51aa7eaba1dea44f78190c7jerenkrantz $(BOOT_CYCLE_SETTINGS) \
71cd8b65badad4cda51aa7eaba1dea44f78190c7jerenkrantz generic_build_repo_series
71cd8b65badad4cda51aa7eaba1dea44f78190c7jerenkrantz @$(FINISH_ECHO)
71cd8b65badad4cda51aa7eaba1dea44f78190c7jerenkrantz
71cd8b65badad4cda51aa7eaba1dea44f78190c7jerenkrantzgeneric_debug_build:
855aa233fcb7b51d738fca5c36585646ae1960c3jerenkrantz @$(START_ECHO)
855aa233fcb7b51d738fca5c36585646ae1960c3jerenkrantz $(MAKE) \
d0211374a981173d4537e3f919c708b5f64040fcgstein ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)-$(DEBUG_NAME) \
6ca0e6973c8176100f4a426444823ae5e777e28fsascha DEBUG_NAME=$(DEBUG_NAME) \
6ca0e6973c8176100f4a426444823ae5e777e28fsascha NO_DOCS=true \
6ca0e6973c8176100f4a426444823ae5e777e28fsascha $(BOOT_CYCLE_DEBUG_SETTINGS) \
6ca0e6973c8176100f4a426444823ae5e777e28fsascha generic_build_repo_series
f07a80771bc5d30b1e0cfcb7256c1a302da77675rbb @$(FINISH_ECHO)
7dfed2b71c9c4223996cbd7c5c0c85c7c8fef2a4rbb
7dfed2b71c9c4223996cbd7c5c0c85c7c8fef2a4rbbbuild_debug_image:
7dfed2b71c9c4223996cbd7c5c0c85c7c8fef2a4rbb $(MAKE) DEBUG_NAME=debug generic_debug_build
6ca0e6973c8176100f4a426444823ae5e777e28fsascha
6ca0e6973c8176100f4a426444823ae5e777e28fsaschabuild_fastdebug_image:
df349d5fc2ae7d106b058fe779c7ea4d19ee0588trawick $(MAKE) DEBUG_NAME=fastdebug generic_debug_build
c803b0d84b48f151504b87ec3f196cb433149592rbb
c803b0d84b48f151504b87ec3f196cb433149592rbb# Build final image
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaproduct_build:: build_product_image
6ca0e6973c8176100f4a426444823ae5e777e28fsaschadebug_build:: build_debug_image
6ca0e6973c8176100f4a426444823ae5e777e28fsaschafastdebug_build:: build_fastdebug_image
6ca0e6973c8176100f4a426444823ae5e777e28fsascha
6ca0e6973c8176100f4a426444823ae5e777e28fsascha# Check on whether we really can build the openjdk, need source etc.
a91a466a0d812a522d492c3c182163f73591ca20aaronopenjdk_check: FRC
6ca0e6973c8176100f4a426444823ae5e777e28fsaschaifneq ($(SKIP_OPENJDK_BUILD), true)
6ca0e6973c8176100f4a426444823ae5e777e28fsascha @$(ECHO) " "
6ca0e6973c8176100f4a426444823ae5e777e28fsascha @$(ECHO) "================================================="
6ca0e6973c8176100f4a426444823ae5e777e28fsascha @if [ ! -r $(OPENJDK_BUILDDIR)/Makefile ] ; then \
d0211374a981173d4537e3f919c708b5f64040fcgstein $(ECHO) "ERROR: No openjdk source tree available at: $(OPENJDK_BUILDDIR)"; \
d0211374a981173d4537e3f919c708b5f64040fcgstein exit 1; \
d0211374a981173d4537e3f919c708b5f64040fcgstein else \
d0211374a981173d4537e3f919c708b5f64040fcgstein $(ECHO) "OpenJDK will be built after JDK is built"; \
e379fc6d7f79163700290d92ce75deb4f3005301jerenkrantz $(ECHO) " OPENJDK_BUILDDIR=$(OPENJDK_BUILDDIR)"; \
d0211374a981173d4537e3f919c708b5f64040fcgstein fi
d0211374a981173d4537e3f919c708b5f64040fcgstein @$(ECHO) "================================================="
d0211374a981173d4537e3f919c708b5f64040fcgstein @$(ECHO) " "
d0211374a981173d4537e3f919c708b5f64040fcgsteinendif
d0211374a981173d4537e3f919c708b5f64040fcgstein
d0211374a981173d4537e3f919c708b5f64040fcgstein# If we have bundle rules, we have a chance here to do a complete cycle
d0211374a981173d4537e3f919c708b5f64040fcgstein# build, of production and open build.
d0211374a981173d4537e3f919c708b5f64040fcgstein# FIXUP: We should create the openjdk source bundle and build that?
d0211374a981173d4537e3f919c708b5f64040fcgstein# But how do we reliable create or get at a formal openjdk source tree?
d0211374a981173d4537e3f919c708b5f64040fcgstein# The one we have needs to be trimmed of built bits and closed dirs.
6fc41aa6ec95bb888598a6aa4cc74cf328ad1c7erbb# The repositories might not be available.
d0211374a981173d4537e3f919c708b5f64040fcgstein# The openjdk source bundle is probably not available.
d0211374a981173d4537e3f919c708b5f64040fcgstein
d0211374a981173d4537e3f919c708b5f64040fcgsteinifneq ($(SKIP_OPENJDK_BUILD), true)
d0211374a981173d4537e3f919c708b5f64040fcgstein ifeq ($(BUILD_JDK), true)
d0211374a981173d4537e3f919c708b5f64040fcgstein ifeq ($(BUNDLE_RULES_AVAILABLE), true)
98fde0d0b2576b57adedb21b7cb2fbbc765df7e1trawick
d0211374a981173d4537e3f919c708b5f64040fcgsteinOPENJDK_PLUGS=$(ABS_OUTPUTDIR)/$(OPENJDK_BINARY_PLUGS_INAME)
d0211374a981173d4537e3f919c708b5f64040fcgsteinOPENJDK_OUTPUTDIR=$(ABS_OUTPUTDIR)/open-output
d0211374a981173d4537e3f919c708b5f64040fcgsteinOPENJDK_BUILD_NAME \
d0211374a981173d4537e3f919c708b5f64040fcgstein = openjdk-$(JDK_MINOR_VERSION)-$(BUILD_NUMBER)-$(PLATFORM)-$(ARCH)-$(BUNDLE_DATE)
0f47ee3ae8ede113e11f21bf34f3b11161d3e61drasmusOPENJDK_BUILD_BINARY_ZIP=$(ABS_BIN_BUNDLEDIR)/$(OPENJDK_BUILD_NAME).zip
78e8f0ef042921ab37fdf14ba9babfdd03c8c5dbrbbBUILT_IMAGE=$(ABS_OUTPUTDIR)/j2sdk-image
7bfe076b680e6e591add6cdc754ce9a6910682a2saschaifeq ($(PLATFORM)$(ARCH_DATA_MODEL),solaris64)
7bfe076b680e6e591add6cdc754ce9a6910682a2sascha OPENJDK_BOOTDIR=$(BOOTDIR)
7bfe076b680e6e591add6cdc754ce9a6910682a2sascha OPENJDK_IMPORTJDK=$(JDK_IMPORT_PATH)
7bfe076b680e6e591add6cdc754ce9a6910682a2saschaelse
7bfe076b680e6e591add6cdc754ce9a6910682a2sascha OPENJDK_BOOTDIR=$(BUILT_IMAGE)
7bfe076b680e6e591add6cdc754ce9a6910682a2sascha OPENJDK_IMPORTJDK=$(BUILT_IMAGE)
7bfe076b680e6e591add6cdc754ce9a6910682a2saschaendif
11ce1f263fdd8812189b85930874943f9fa81bd5fielding
11ce1f263fdd8812189b85930874943f9fa81bd5fieldingopenjdk_build:
11ce1f263fdd8812189b85930874943f9fa81bd5fielding @$(START_ECHO)
11ce1f263fdd8812189b85930874943f9fa81bd5fielding @$(ECHO) " "
92a2439559cf1161742650ed9c50c6483bd029cemadhum @$(ECHO) "================================================="
92a2439559cf1161742650ed9c50c6483bd029cemadhum @$(ECHO) "Starting openjdk build"
11ce1f263fdd8812189b85930874943f9fa81bd5fielding @$(ECHO) " Using: ALT_JDK_DEVTOOLS_DIR=$(JDK_DEVTOOLS_DIR)"
11ce1f263fdd8812189b85930874943f9fa81bd5fielding @$(ECHO) "================================================="
92a2439559cf1161742650ed9c50c6483bd029cemadhum @$(ECHO) " "
92a2439559cf1161742650ed9c50c6483bd029cemadhum $(RM) -r $(OPENJDK_OUTPUTDIR)
11ce1f263fdd8812189b85930874943f9fa81bd5fielding $(MKDIR) -p $(OPENJDK_OUTPUTDIR)
92a2439559cf1161742650ed9c50c6483bd029cemadhum ($(CD) $(OPENJDK_BUILDDIR) && $(MAKE) \
92a2439559cf1161742650ed9c50c6483bd029cemadhum OPENJDK=true \
92a2439559cf1161742650ed9c50c6483bd029cemadhum NO_DOCS=true \
92a2439559cf1161742650ed9c50c6483bd029cemadhum ALT_JDK_DEVTOOLS_DIR=$(JDK_DEVTOOLS_DIR) \
92a2439559cf1161742650ed9c50c6483bd029cemadhum ALT_OUTPUTDIR=$(OPENJDK_OUTPUTDIR) \
92a2439559cf1161742650ed9c50c6483bd029cemadhum ALT_BINARY_PLUGS_PATH=$(OPENJDK_PLUGS) \
da482ec6da90f2609367d840933bedd9e90e11b6wrowe ALT_BOOTDIR=$(OPENJDK_BOOTDIR) \
da482ec6da90f2609367d840933bedd9e90e11b6wrowe ALT_JDK_IMPORT_PATH=$(OPENJDK_IMPORTJDK) \
da482ec6da90f2609367d840933bedd9e90e11b6wrowe product_build )
da482ec6da90f2609367d840933bedd9e90e11b6wrowe $(RM) $(OPENJDK_BUILD_BINARY_ZIP)
da482ec6da90f2609367d840933bedd9e90e11b6wrowe ( $(CD) $(OPENJDK_OUTPUTDIR)/j2sdk-image && \
da482ec6da90f2609367d840933bedd9e90e11b6wrowe $(ZIPEXE) -q -r $(OPENJDK_BUILD_BINARY_ZIP) .)
da482ec6da90f2609367d840933bedd9e90e11b6wrowe $(RM) -r $(OPENJDK_OUTPUTDIR)
da482ec6da90f2609367d840933bedd9e90e11b6wrowe @$(ECHO) " "
da482ec6da90f2609367d840933bedd9e90e11b6wrowe @$(ECHO) "================================================="
92a2439559cf1161742650ed9c50c6483bd029cemadhum @$(ECHO) "Finished openjdk build"
11ce1f263fdd8812189b85930874943f9fa81bd5fielding @$(ECHO) " Binary Bundle: $(OPENJDK_BUILD_BINARY_ZIP)"
92a2439559cf1161742650ed9c50c6483bd029cemadhum @$(ECHO) "================================================="
92a2439559cf1161742650ed9c50c6483bd029cemadhum @$(ECHO) " "
11ce1f263fdd8812189b85930874943f9fa81bd5fielding @$(FINISH_ECHO)
11ce1f263fdd8812189b85930874943f9fa81bd5fielding
11ce1f263fdd8812189b85930874943f9fa81bd5fielding endif
92a2439559cf1161742650ed9c50c6483bd029cemadhum endif
92a2439559cf1161742650ed9c50c6483bd029cemadhumendif
92a2439559cf1161742650ed9c50c6483bd029cemadhum
11ce1f263fdd8812189b85930874943f9fa81bd5fieldingclobber::
92a2439559cf1161742650ed9c50c6483bd029cemadhum $(RM) -r $(OUTPUTDIR)/*
92a2439559cf1161742650ed9c50c6483bd029cemadhum $(RM) -r $(OUTPUTDIR)-debug/*
92a2439559cf1161742650ed9c50c6483bd029cemadhum $(RM) -r $(OUTPUTDIR)-fastdebug/*
92a2439559cf1161742650ed9c50c6483bd029cemadhum -($(RMDIR) -p $(OUTPUTDIR) > $(DEV_NULL) 2>&1; $(TRUE))
92a2439559cf1161742650ed9c50c6483bd029cemadhum
92a2439559cf1161742650ed9c50c6483bd029cemadhumclean: clobber
11ce1f263fdd8812189b85930874943f9fa81bd5fielding
92a2439559cf1161742650ed9c50c6483bd029cemadhum#
92a2439559cf1161742650ed9c50c6483bd029cemadhum# Dev builds
da482ec6da90f2609367d840933bedd9e90e11b6wrowe#
da482ec6da90f2609367d840933bedd9e90e11b6wrowe
da482ec6da90f2609367d840933bedd9e90e11b6wrowedev : dev-build
da482ec6da90f2609367d840933bedd9e90e11b6wrowe
da482ec6da90f2609367d840933bedd9e90e11b6wrowedev-build:
da482ec6da90f2609367d840933bedd9e90e11b6wrowe $(MAKE) DEV_ONLY=true all
da482ec6da90f2609367d840933bedd9e90e11b6wrowedev-sanity:
da482ec6da90f2609367d840933bedd9e90e11b6wrowe $(MAKE) DEV_ONLY=true sanity
da482ec6da90f2609367d840933bedd9e90e11b6wrowedev-clobber:
da482ec6da90f2609367d840933bedd9e90e11b6wrowe $(MAKE) DEV_ONLY=true clobber
92a2439559cf1161742650ed9c50c6483bd029cemadhum
da482ec6da90f2609367d840933bedd9e90e11b6wrowe#
92a2439559cf1161742650ed9c50c6483bd029cemadhum# Quick jdk verification build
da482ec6da90f2609367d840933bedd9e90e11b6wrowe#
da482ec6da90f2609367d840933bedd9e90e11b6wrowejdk_only:
da482ec6da90f2609367d840933bedd9e90e11b6wrowe $(MAKE) SKIP_FASTDEBUG_BUILD=true BUILD_HOTSPOT=false all
da482ec6da90f2609367d840933bedd9e90e11b6wrowe
da482ec6da90f2609367d840933bedd9e90e11b6wrowe
da482ec6da90f2609367d840933bedd9e90e11b6wrowe#
da482ec6da90f2609367d840933bedd9e90e11b6wrowe# Quick jdk verification fastdebug build
da482ec6da90f2609367d840933bedd9e90e11b6wrowe#
da482ec6da90f2609367d840933bedd9e90e11b6wrowejdk_fastdebug_only:
da482ec6da90f2609367d840933bedd9e90e11b6wrowe $(MAKE) DEBUG_NAME=fastdebug BUILD_HOTSPOT=false BUILD_DEPLOY=false \
92a2439559cf1161742650ed9c50c6483bd029cemadhum BUILD_INSTALL=false BUILD_SPONSORS=false generic_debug_build
da482ec6da90f2609367d840933bedd9e90e11b6wrowe
da482ec6da90f2609367d840933bedd9e90e11b6wrowe#
da482ec6da90f2609367d840933bedd9e90e11b6wrowe# Quick deploy verification fastdebug build
da482ec6da90f2609367d840933bedd9e90e11b6wrowe#
da482ec6da90f2609367d840933bedd9e90e11b6wrowedeploy_fastdebug_only:
da482ec6da90f2609367d840933bedd9e90e11b6wrowe $(MAKE) \
da482ec6da90f2609367d840933bedd9e90e11b6wrowe DEBUG_NAME=fastdebug \
da482ec6da90f2609367d840933bedd9e90e11b6wrowe BUILD_HOTSPOT=false \
da482ec6da90f2609367d840933bedd9e90e11b6wrowe BUILD_JDK=false \
da482ec6da90f2609367d840933bedd9e90e11b6wrowe BUILD_LANGTOOLS=false \
fcdca175a52fe517f2317ba0e2b6e6d14522b869madhum BUILD_CORBA=false \
da482ec6da90f2609367d840933bedd9e90e11b6wrowe BUILD_JAXP=false \
102dff57058911762c63bb67b5453c7cc4a4e048wrowe BUILD_JAXWS=false \
da482ec6da90f2609367d840933bedd9e90e11b6wrowe BUILD_INSTALL=false \
da482ec6da90f2609367d840933bedd9e90e11b6wrowe BUILD_SPONSORS=false \
da482ec6da90f2609367d840933bedd9e90e11b6wrowe generic_debug_build
da482ec6da90f2609367d840933bedd9e90e11b6wrowe
da482ec6da90f2609367d840933bedd9e90e11b6wrowe#
da482ec6da90f2609367d840933bedd9e90e11b6wrowe# Product build (skip debug builds)
da482ec6da90f2609367d840933bedd9e90e11b6wrowe#
11ce1f263fdd8812189b85930874943f9fa81bd5fieldingproduct_only:
92a2439559cf1161742650ed9c50c6483bd029cemadhum $(MAKE) SKIP_FASTDEBUG_BUILD=true all
92a2439559cf1161742650ed9c50c6483bd029cemadhum
da482ec6da90f2609367d840933bedd9e90e11b6wrowe#
da482ec6da90f2609367d840933bedd9e90e11b6wrowe# Check target
da482ec6da90f2609367d840933bedd9e90e11b6wrowe#
11ce1f263fdd8812189b85930874943f9fa81bd5fielding
da482ec6da90f2609367d840933bedd9e90e11b6wrowecheck: variable_check
92a2439559cf1161742650ed9c50c6483bd029cemadhum
92a2439559cf1161742650ed9c50c6483bd029cemadhum#
92a2439559cf1161742650ed9c50c6483bd029cemadhum# Help target
92a2439559cf1161742650ed9c50c6483bd029cemadhum#
92a2439559cf1161742650ed9c50c6483bd029cemadhumhelp: intro_help target_help variable_help notes_help examples_help
92a2439559cf1161742650ed9c50c6483bd029cemadhum
92a2439559cf1161742650ed9c50c6483bd029cemadhum# Intro help message
11ce1f263fdd8812189b85930874943f9fa81bd5fieldingintro_help:
92a2439559cf1161742650ed9c50c6483bd029cemadhum @$(ECHO) "\
92a2439559cf1161742650ed9c50c6483bd029cemadhumMakefile for the JDK builds (all the JDK). \n\
92a2439559cf1161742650ed9c50c6483bd029cemadhum"
92a2439559cf1161742650ed9c50c6483bd029cemadhum
92a2439559cf1161742650ed9c50c6483bd029cemadhum# Target help
fcdca175a52fe517f2317ba0e2b6e6d14522b869madhumtarget_help:
fcdca175a52fe517f2317ba0e2b6e6d14522b869madhum @$(ECHO) "\
fcdca175a52fe517f2317ba0e2b6e6d14522b869madhum--- Common Targets --- \n\
022b39bf40d1e163d794322fb7d80bd743614333wroweall -- build the core JDK (default target) \n\
fcdca175a52fe517f2317ba0e2b6e6d14522b869madhumhelp -- Print out help information \n\
022b39bf40d1e163d794322fb7d80bd743614333wrowecheck -- Check make variable values for correctness \n\
fcdca175a52fe517f2317ba0e2b6e6d14522b869madhumsanity -- Perform detailed sanity checks on system and settings \n\
022b39bf40d1e163d794322fb7d80bd743614333wrowefastdebug_build -- build the core JDK in 'fastdebug' mode (-g -O) \n\
fcdca175a52fe517f2317ba0e2b6e6d14522b869madhumdebug_build -- build the core JDK in 'debug' mode (-g) \n\
8ae403ebccc199f41c19eb5c00ad515684687bf8wroweclean -- remove all built and imported files \n\
92a2439559cf1161742650ed9c50c6483bd029cemadhumclobber -- same as clean \n\
92a2439559cf1161742650ed9c50c6483bd029cemadhum"
92a2439559cf1161742650ed9c50c6483bd029cemadhum
da482ec6da90f2609367d840933bedd9e90e11b6wrowe# Variable help (only common ones used by this Makefile)
da482ec6da90f2609367d840933bedd9e90e11b6wrowevariable_help: variable_help_intro variable_list variable_help_end
da482ec6da90f2609367d840933bedd9e90e11b6wrowevariable_help_intro:
11ce1f263fdd8812189b85930874943f9fa81bd5fielding @$(ECHO) "--- Common Variables ---"
92a2439559cf1161742650ed9c50c6483bd029cemadhumvariable_help_end:
92a2439559cf1161742650ed9c50c6483bd029cemadhum @$(ECHO) " "
92a2439559cf1161742650ed9c50c6483bd029cemadhum
92a2439559cf1161742650ed9c50c6483bd029cemadhum# One line descriptions for the variables
92a2439559cf1161742650ed9c50c6483bd029cemadhumOUTPUTDIR.desc = Output directory
92a2439559cf1161742650ed9c50c6483bd029cemadhumPARALLEL_COMPILE_JOBS.desc = Solaris/Linux parallel compile run count
92a2439559cf1161742650ed9c50c6483bd029cemadhumSLASH_JAVA.desc = Root of all build tools, e.g. /java or J:
92a2439559cf1161742650ed9c50c6483bd029cemadhumBOOTDIR.desc = JDK used to boot the build
92a2439559cf1161742650ed9c50c6483bd029cemadhumJDK_IMPORT_PATH.desc = JDK used to import components of the build
92a2439559cf1161742650ed9c50c6483bd029cemadhumCOMPILER_PATH.desc = Compiler install directory
11ce1f263fdd8812189b85930874943f9fa81bd5fieldingCACERTS_FILE.desc = Location of certificates file
92a2439559cf1161742650ed9c50c6483bd029cemadhumDEVTOOLS_PATH.desc = Directory containing zip and gnumake
92a2439559cf1161742650ed9c50c6483bd029cemadhumCUPS_HEADERS_PATH.desc = Include directory location for CUPS header files
92a2439559cf1161742650ed9c50c6483bd029cemadhumDXSDK_PATH.desc = Root directory of DirectX SDK
1e7749fd30f80b3fa49039f446a9b9d02b27f7effieldingMSDEVTOOLS_PATH.desc = Root directory of VC++ tools (e.g. rc.exe)
12e76edaaedf2f1495a3727c2cedbdc4506a95a6jerenkrantzMSVCRT_DLL_PATH.desc = Directory containing mscvrt.dll
11ce1f263fdd8812189b85930874943f9fa81bd5fielding
11ce1f263fdd8812189b85930874943f9fa81bd5fielding# Make variables to print out (description and value)
fcdca175a52fe517f2317ba0e2b6e6d14522b869madhumVARIABLE_PRINTVAL_LIST += \
fcdca175a52fe517f2317ba0e2b6e6d14522b869madhum OUTPUTDIR \
fcdca175a52fe517f2317ba0e2b6e6d14522b869madhum PARALLEL_COMPILE_JOBS \
fcdca175a52fe517f2317ba0e2b6e6d14522b869madhum SLASH_JAVA \
fcdca175a52fe517f2317ba0e2b6e6d14522b869madhum BOOTDIR \
fcdca175a52fe517f2317ba0e2b6e6d14522b869madhum JDK_IMPORT_PATH \
fcdca175a52fe517f2317ba0e2b6e6d14522b869madhum COMPILER_PATH \
7753e1f66119f5c483dd8cd1db8e0a7abd7c28c1fielding CACERTS_FILE \
11ce1f263fdd8812189b85930874943f9fa81bd5fielding DEVTOOLS_PATH
11ce1f263fdd8812189b85930874943f9fa81bd5fielding
9d432e23f6025b78322cbee43e8e89262a108e5eaaron# Make variables that should refer to directories that exist
9d432e23f6025b78322cbee43e8e89262a108e5eaaronVARIABLE_CHECKDIR_LIST += \
9d432e23f6025b78322cbee43e8e89262a108e5eaaron SLASH_JAVA \
9d432e23f6025b78322cbee43e8e89262a108e5eaaron BOOTDIR \
9d432e23f6025b78322cbee43e8e89262a108e5eaaron JDK_IMPORT_PATH \
9d432e23f6025b78322cbee43e8e89262a108e5eaaron COMPILER_PATH \
9d432e23f6025b78322cbee43e8e89262a108e5eaaron DEVTOOLS_PATH
9d432e23f6025b78322cbee43e8e89262a108e5eaaron
9d432e23f6025b78322cbee43e8e89262a108e5eaaron# Make variables that should refer to files that exist
9d432e23f6025b78322cbee43e8e89262a108e5eaaronVARIABLE_CHECKFIL_LIST += \
9d432e23f6025b78322cbee43e8e89262a108e5eaaron CACERTS_FILE
9d432e23f6025b78322cbee43e8e89262a108e5eaaron
9d432e23f6025b78322cbee43e8e89262a108e5eaaron# Some are windows specific
9d432e23f6025b78322cbee43e8e89262a108e5eaaronifeq ($(PLATFORM), windows)
9d432e23f6025b78322cbee43e8e89262a108e5eaaron
9d432e23f6025b78322cbee43e8e89262a108e5eaaronVARIABLE_PRINTVAL_LIST += \
9d432e23f6025b78322cbee43e8e89262a108e5eaaron DXSDK_PATH \
e213c8a802baea59a07c8a6d089f94a678f70b96aaron MSDEVTOOLS_PATH \
9d432e23f6025b78322cbee43e8e89262a108e5eaaron MSVCRT_DLL_PATH
9d432e23f6025b78322cbee43e8e89262a108e5eaaron
9d432e23f6025b78322cbee43e8e89262a108e5eaaronVARIABLE_CHECKDIR_LIST += \
9d432e23f6025b78322cbee43e8e89262a108e5eaaron DXSDK_PATH \
9d432e23f6025b78322cbee43e8e89262a108e5eaaron MSDEVTOOLS_PATH \
9d432e23f6025b78322cbee43e8e89262a108e5eaaron MSVCRT_DLL_PATH
9d432e23f6025b78322cbee43e8e89262a108e5eaaron
9d432e23f6025b78322cbee43e8e89262a108e5eaaronendif
9d432e23f6025b78322cbee43e8e89262a108e5eaaron
9d432e23f6025b78322cbee43e8e89262a108e5eaaron# For pattern rules below, so all are treated the same
9d432e23f6025b78322cbee43e8e89262a108e5eaaronDO_PRINTVAL_LIST=$(VARIABLE_PRINTVAL_LIST:%=%.printval)
9d432e23f6025b78322cbee43e8e89262a108e5eaaronDO_CHECKDIR_LIST=$(VARIABLE_CHECKDIR_LIST:%=%.checkdir)
9d432e23f6025b78322cbee43e8e89262a108e5eaaronDO_CHECKFIL_LIST=$(VARIABLE_CHECKFIL_LIST:%=%.checkfil)
9d432e23f6025b78322cbee43e8e89262a108e5eaaron
9d432e23f6025b78322cbee43e8e89262a108e5eaaron# Complete variable check
9d432e23f6025b78322cbee43e8e89262a108e5eaaronvariable_check: $(DO_CHECKDIR_LIST) $(DO_CHECKFIL_LIST)
9d432e23f6025b78322cbee43e8e89262a108e5eaaronvariable_list: $(DO_PRINTVAL_LIST) variable_check
# Pattern rule for printing out a variable
%.printval:
@$(ECHO) " ALT_$* - $($*.desc)"
@$(ECHO) " \t $*=$($*)"
# Pattern rule for checking to see if a variable with a directory exists
%.checkdir:
@if [ ! -d $($*) ] ; then \
$(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
fi
# Pattern rule for checking to see if a variable with a file exists
%.checkfil:
@if [ ! -f $($*) ] ; then \
$(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
fi
# Misc notes on help
notes_help:
@$(ECHO) "\
--- Notes --- \n\
- All builds use same output directory unless overridden with \n\
\t ALT_OUTPUTDIR=<dir>, changing from product to fastdebug you may want \n\
\t to use the clean target first. \n\
- JDK_IMPORT_PATH must refer to a compatible build, not all past promoted \n\
\t builds or previous release JDK builds will work. \n\
- The fastest builds have been when the sources and the BOOTDIR are on \n\
\t local disk. \n\
"
examples_help:
@$(ECHO) "\
--- Examples --- \n\
$(MAKE) fastdebug_build \n\
$(MAKE) ALT_OUTPUTDIR=/tmp/foobar all \n\
$(MAKE) ALT_OUTPUTDIR=/tmp/foobar fastdebug_build \n\
$(MAKE) ALT_OUTPUTDIR=/tmp/foobar all \n\
$(MAKE) ALT_BOOTDIR=/opt/java/jdk1.5.0 \n\
$(MAKE) ALT_JDK_IMPORT_PATH=/opt/java/jdk1.6.0 \n\
"
################################################################
# Source and binary plug bundling
################################################################
ifeq ($(BUNDLE_RULES_AVAILABLE), true)
include $(BUNDLE_RULES)
endif
################################################################
# JPRT rule to build
################################################################
include ./make/jprt.gmk
################################################################
# PHONY
################################################################
.PHONY: all \
generic_build_repo_series \
what clobber insane \
dev dev-build dev-sanity dev-clobber \
product_build \
fastdebug_build \
debug_build \
build_product_image \
build_debug_image \
build_fastdebug_image \
create_fresh_product_bootdir \
create_fresh_debug_bootdir \
create_fresh_fastdebug_bootdir \
generic_debug_build
# Force target
FRC: