Makefile revision 315
ac4e70ff8955669341f435bc0a734a17c01af124Mark Andrews#
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews# Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
04428429c4e689333e3ef8d19a2debeb20d4d15dMark Andrews# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
e999539fb3e45b2617571e0e3ecd651992291701Mark Andrews#
e999539fb3e45b2617571e0e3ecd651992291701Mark Andrews# This code is free software; you can redistribute it and/or modify it
2a40fdc2d34adb8a5c72a748449699666032d461Mark Andrews# under the terms of the GNU General Public License version 2 only, as
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews# published by the Free Software Foundation. Oracle designates this
a3b428812703d22a605a9f882e71ed65f0ffdc65Mark Andrews# particular file as subject to the "Classpath" exception as provided
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews# by Oracle in the LICENSE file that accompanied this code.
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
ac4e70ff8955669341f435bc0a734a17c01af124Mark Andrews# This code is distributed in the hope that it will be useful, but WITHOUT
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
d56e188030368b835122d759ebbf8d9613c166f4Mark Andrews# version 2 for more details (a copy is included in the LICENSE file that
c718d15a9a95054ee3c71540c02335426071fc6dMark Andrews# accompanied this code).
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews#
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# You should have received a copy of the GNU General Public License version
c718d15a9a95054ee3c71540c02335426071fc6dMark Andrews# 2 along with this work; if not, write to the Free Software Foundation,
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews#
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c718d15a9a95054ee3c71540c02335426071fc6dMark Andrews# or visit www.oracle.com if you need additional information or have any
c718d15a9a95054ee3c71540c02335426071fc6dMark Andrews# questions.
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews#
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark AndrewsBUILD_PARENT_DIRECTORY=.
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonifndef TOPDIR
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews TOPDIR:=.
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrewsendif
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrewsifndef JDK_TOPDIR
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington JDK_TOPDIR=$(TOPDIR)/jdk
a3b428812703d22a605a9f882e71ed65f0ffdc65Mark Andrewsendif
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsifndef JDK_MAKE_SHARED_DIR
c718d15a9a95054ee3c71540c02335426071fc6dMark Andrews JDK_MAKE_SHARED_DIR=$(JDK_TOPDIR)/make/common/shared
c6d4f781529d2f28693546b25b2967d44ec89e60Mark Andrewsendif
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
c718d15a9a95054ee3c71540c02335426071fc6dMark Andrewsdefault: all
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
c069a20053d41ae299eb9457e50ea44ae9f73ed2Mark Andrewsinclude $(JDK_MAKE_SHARED_DIR)/Defs-control.gmk
ed178efa9ab8f813538fce4ff603b81ded9f1799Mark Andrewsinclude ./make/Defs-internal.gmk
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsinclude ./make/sanity-rules.gmk
605bd686e437162b5ab65ac4e7c1be0bba1886ddMark Andrewsinclude ./make/hotspot-rules.gmk
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsinclude ./make/langtools-rules.gmk
3f6174bffe227be44e241a29d186add00c032ff6Mark Andrewsinclude ./make/corba-rules.gmk
1eb1e1e838d2ea00b166c918bf50764a95826be8Mark Andrewsinclude ./make/jaxp-rules.gmk
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsinclude ./make/jaxws-rules.gmk
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrewsinclude ./make/jdk-rules.gmk
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssoninclude ./make/install-rules.gmk
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrewsinclude ./make/sponsors-rules.gmk
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrewsinclude ./make/deploy-rules.gmk
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrewsall:: sanity
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrewsifeq ($(SKIP_FASTDEBUG_BUILD), false)
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews all:: fastdebug_build
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonendif
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonifeq ($(SKIP_DEBUG_BUILD), false)
26a77b80bb7ee886c6fa704348d5e80a011d8811Mark Andrews all:: debug_build
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsendif
6f046a065e5543f8cd7e2f24991c65d2372f4c8dMark Andrews
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsall:: all_product_build
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsall_product_build::
62ee2c9f460d2e2e45dcf1abc8b4b4a4a43f5618Mark Andrews
e086341ea57e618a60c9f166b95daee1fab71b3bMark Andrews# Everything for a full product build
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsifeq ($(SKIP_PRODUCT_BUILD), false)
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews all_product_build:: product_build
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews ifeq ($(BUILD_INSTALL), true)
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews all_product_build:: $(INSTALL)
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson clobber:: install-clobber
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews endif
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson ifeq ($(BUILD_SPONSORS), true)
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews all_product_build:: $(SPONSORS)
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson clobber:: sponsors-clobber
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews endif
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
45eca3a5d46ed15aee14d81f6cb6c9fb6f365344Mark Andrews ifneq ($(SKIP_COMPARE_IMAGES), true)
80f9a970ae6681c08529ef209eaabbe078c27ca3Mark Andrews all_product_build:: compare-image
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews endif
46e873c835bf7d9ec3e1097e0aceb8db5b1ae93aMark Andrews
46e873c835bf7d9ec3e1097e0aceb8db5b1ae93aMark Andrewsendif
dd9ad704c3800e3ab07ede8595871eac79984871Mark Andrews
605bd686e437162b5ab65ac4e7c1be0bba1886ddMark Andrewsdefine StartTimer
45eca3a5d46ed15aee14d81f6cb6c9fb6f365344Mark Andrews $(MKDIR) -p $(BUILDTIMESDIR)
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews $(RM) $(BUILDTIMESDIR)/build_time_*
ab81f57ca0c3addfec3df3babdcea9644757cf23Mark Andrews $(call RecordStartTime,TOTAL)
605bd686e437162b5ab65ac4e7c1be0bba1886ddMark Andrewsendef
6b5c57e52ac8c3e0af1547be3140ebbfb41a85b3Mark Andrews
6b5c57e52ac8c3e0af1547be3140ebbfb41a85b3Mark Andrewsdefine StopTimer
413988c8166976498250c0ebb2e3a645d0366bd3Mark Andrews $(if $(REPORT_BUILD_TIMES),$(call RecordEndTime,TOTAL) && $(call ReportBuildTimes,$1),)
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrewsendef
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews
6b5c57e52ac8c3e0af1547be3140ebbfb41a85b3Mark Andrews# Generic build of basic repo series
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrewsgeneric_build_repo_series::
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews $(MKDIR) -p $(OUTPUTDIR)
6b5c57e52ac8c3e0af1547be3140ebbfb41a85b3Mark Andrews $(MKDIR) -p $(OUTPUTDIR)/j2sdk-image
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews @$(call StartTimer)
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrewsifeq ($(BUILD_LANGTOOLS), true)
642e0716c8b4ab82ebc8e60f94c9e897ee89f19aMark Andrews generic_build_repo_series:: langtools
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews clobber:: langtools-clobber
6b5c57e52ac8c3e0af1547be3140ebbfb41a85b3Mark Andrewsendif
6b5c57e52ac8c3e0af1547be3140ebbfb41a85b3Mark Andrews
6b5c57e52ac8c3e0af1547be3140ebbfb41a85b3Mark Andrewsifeq ($(BUILD_CORBA), true)
6b5c57e52ac8c3e0af1547be3140ebbfb41a85b3Mark Andrews generic_build_repo_series:: corba
45eca3a5d46ed15aee14d81f6cb6c9fb6f365344Mark Andrews clobber:: corba-clobber
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrewsendif
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews
6b5c57e52ac8c3e0af1547be3140ebbfb41a85b3Mark Andrewsifeq ($(BUILD_JAXP), true)
d3a3e690ab1f87fa02b3fa77be5ddea5c1fe0cd4Mark Andrews generic_build_repo_series:: jaxp
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews clobber:: jaxp-clobber
d56e188030368b835122d759ebbf8d9613c166f4Mark Andrewsendif
6b5c57e52ac8c3e0af1547be3140ebbfb41a85b3Mark Andrews
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrewsifeq ($(BUILD_JAXWS), true)
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews generic_build_repo_series:: jaxws
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews clobber:: jaxws-clobber
6b5c57e52ac8c3e0af1547be3140ebbfb41a85b3Mark Andrewsendif
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews
b7aab05edae933e169d5f83c653935b17c7f0a8bMark Andrewsifeq ($(BUILD_HOTSPOT), true)
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews generic_build_repo_series:: $(HOTSPOT)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews clobber:: hotspot-clobber
6b5c57e52ac8c3e0af1547be3140ebbfb41a85b3Mark Andrewsendif
ed178efa9ab8f813538fce4ff603b81ded9f1799Mark Andrews
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsifeq ($(BUILD_JDK), true)
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews generic_build_repo_series:: $(JDK_JAVA_EXE)
46e873c835bf7d9ec3e1097e0aceb8db5b1ae93aMark Andrews clobber:: jdk-clobber
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsendif
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
46e873c835bf7d9ec3e1097e0aceb8db5b1ae93aMark Andrewsifeq ($(BUILD_DEPLOY), true)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews generic_build_repo_series:: $(DEPLOY)
dd9ad704c3800e3ab07ede8595871eac79984871Mark Andrews clobber:: deploy-clobber
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsendif
0d3490f93bb980fde704055e74c1b508987a5fe4Mark Andrews
5147281cb8e25c599d759dfa65fdb6f9125efefbMark Andrewsgeneric_build_repo_series::
6a78eb0a8677dca8817233799a715de27f9c2cbbMark Andrews @$(call StopTimer,$(if $(DEBUG_NAME),$(DEBUG_NAME)_build,all_product_build))
6b5c57e52ac8c3e0af1547be3140ebbfb41a85b3Mark Andrews
6b5c57e52ac8c3e0af1547be3140ebbfb41a85b3Mark Andrews# The debug build, fastdebug or debug. Needs special handling.
605bd686e437162b5ab65ac4e7c1be0bba1886ddMark Andrews# Note that debug builds do NOT do INSTALL steps, but must be done
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# after the product build and before the INSTALL step of the product build.
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews#
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews# DEBUG_NAME is fastdebug or debug
62ee2c9f460d2e2e45dcf1abc8b4b4a4a43f5618Mark Andrews# ALT_OUTPUTDIR is changed to have -debug or -fastdebug suffix
1eb1e1e838d2ea00b166c918bf50764a95826be8Mark Andrews# The resulting j2sdk-image is used by the install makefiles to create a
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# debug install bundle jdk-*-debug-** bundle (tar or zip)
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# which will install in the debug or fastdebug subdirectory of the
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews# normal product install area.
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson# The install process needs to know what the DEBUG_NAME is, so
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews# look for INSTALL_DEBUG_NAME in the install rules.
45eca3a5d46ed15aee14d81f6cb6c9fb6f365344Mark Andrews#
ca12f7f4cf72e2368ee946f3eb4915ab73576cdcMark Andrews# NOTE: On windows, do not use $(ABS_BOOTDIR_OUTPUTDIR)-$(DEBUG_NAME).
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews# Due to the use of short paths in $(ABS_OUTPUTDIR), this may
1eb1e1e838d2ea00b166c918bf50764a95826be8Mark Andrews# not be the same location.
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
0d3490f93bb980fde704055e74c1b508987a5fe4Mark Andrews
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# Location of fresh bootdir output
c718d15a9a95054ee3c71540c02335426071fc6dMark AndrewsABS_BOOTDIR_OUTPUTDIR=$(ABS_OUTPUTDIR)/bootjdk
605bd686e437162b5ab65ac4e7c1be0bba1886ddMark AndrewsFRESH_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/j2sdk-image
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsFRESH_DEBUG_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-$(DEBUG_NAME)/j2sdk-image
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssoncreate_fresh_product_bootdir: FRC
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington GENERATE_DOCS=false \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews BOOT_CYCLE_SETTINGS= \
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews build_product_image
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrewscreate_fresh_debug_bootdir: FRC
ed178efa9ab8f813538fce4ff603b81ded9f1799Mark Andrews $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews GENERATE_DOCS=false \
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews BOOT_CYCLE_DEBUG_SETTINGS= \
6b5c57e52ac8c3e0af1547be3140ebbfb41a85b3Mark Andrews build_debug_image
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewscreate_fresh_fastdebug_bootdir: FRC
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews GENERATE_DOCS=false \
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews BOOT_CYCLE_DEBUG_SETTINGS= \
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews build_fastdebug_image
e076d0c88be69de7c190ab924d095e69d2e11f7aAndreas Gustafsson
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Create boot image?
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrewsifeq ($(SKIP_BOOT_CYCLE),false)
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews ifneq ($(PLATFORM)$(ARCH_DATA_MODEL),solaris64)
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews DO_BOOT_CYCLE=true
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews endif
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonendif
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonifeq ($(DO_BOOT_CYCLE),true)
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews # Create the bootdir to use in the build
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews product_build:: create_fresh_product_bootdir
ac4e70ff8955669341f435bc0a734a17c01af124Mark Andrews debug_build:: create_fresh_debug_bootdir
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fastdebug_build:: create_fresh_fastdebug_bootdir
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
282e38d96feb488fddbbc0b0409491094786977fMark Andrews # Define variables to be used now for the boot jdk
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews BOOT_CYCLE_SETTINGS= \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews ALT_BOOTDIR=$(FRESH_BOOTDIR) \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews ALT_JDK_IMPORT_PATH=$(FRESH_BOOTDIR)
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews BOOT_CYCLE_DEBUG_SETTINGS= \
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews ALT_BOOTDIR=$(FRESH_DEBUG_BOOTDIR) \
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews ALT_JDK_IMPORT_PATH=$(FRESH_DEBUG_BOOTDIR)
abf32d940f8f674b3971ef41b306a01b3da8d2cfMark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonelse
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
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 $(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
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 $(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
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonbuild_debug_image:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(MAKE) DEBUG_NAME=debug generic_debug_build
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonbuild_fastdebug_image:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(MAKE) DEBUG_NAME=fastdebug generic_debug_build
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Build final image
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonproduct_build:: build_product_image
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtondebug_build:: build_debug_image
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonfastdebug_build:: build_fastdebug_image
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonclobber:: REPORT_BUILD_TIMES=
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
bf54ac86eeddce16b67c525d38d1096cc956f478Mark Andrews
eaccf5e805405de257b5a4840256c580fefe00e3Mark Andrewsdev-build:
0d3490f93bb980fde704055e74c1b508987a5fe4Mark Andrews $(MAKE) DEV_ONLY=true all
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellingtondev-sanity:
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington $(MAKE) DEV_ONLY=true sanity
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellingtondev-clobber:
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington $(MAKE) DEV_ONLY=true clobber
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Quick jdk verification build
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews#
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellingtonjdk_only:
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews $(MAKE) SKIP_FASTDEBUG_BUILD=true BUILD_HOTSPOT=false all
0d3490f93bb980fde704055e74c1b508987a5fe4Mark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
bf54ac86eeddce16b67c525d38d1096cc956f478Mark Andrews#
0d3490f93bb980fde704055e74c1b508987a5fe4Mark Andrews# Quick jdk verification fastdebug build
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonjdk_fastdebug_only:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(MAKE) DEBUG_NAME=fastdebug BUILD_HOTSPOT=false BUILD_DEPLOY=false \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington BUILD_INSTALL=false BUILD_SPONSORS=false generic_debug_build
bf54ac86eeddce16b67c525d38d1096cc956f478Mark Andrews
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews#
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews# Quick deploy verification fastdebug build
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews#
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrewsdeploy_fastdebug_only:
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews $(MAKE) \
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews DEBUG_NAME=fastdebug \
68baa2d193672c482b7ea07ece349e7b1ceb96e6Mark Andrews BUILD_HOTSPOT=false \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews BUILD_JDK=false \
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews BUILD_LANGTOOLS=false \
67a0e14fa9c3c160116f0671f4ac5874306b1150Mark Andrews BUILD_CORBA=false \
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews BUILD_JAXP=false \
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews BUILD_JAXWS=false \
a9789e288ee11ae4315e27235c33bae5405bd7c4Mark Andrews BUILD_INSTALL=false \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews BUILD_SPONSORS=false \
eaccf5e805405de257b5a4840256c580fefe00e3Mark Andrews generic_debug_build
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# 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
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtoncheck: variable_check
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Help target
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonhelp: intro_help target_help variable_help notes_help examples_help
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Intro help message
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonintro_help:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) "\
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark AndrewsMakefile for the JDK builds (all the JDK). \n\
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Target help
bf54ac86eeddce16b67c525d38d1096cc956f478Mark Andrewstarget_help:
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(ECHO) "\
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington--- Common Targets --- \n\
01bf5871f8861eb805dd8ca79bdb9b0b9e4e6a5eMark Andrewsall -- build the core JDK (default target) \n\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewshelp -- Print out help information \n\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewscheck -- Check make variable values for correctness \n\
eaccf5e805405de257b5a4840256c580fefe00e3Mark Andrewssanity -- Perform detailed sanity checks on system and settings \n\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsfastdebug_build -- build the core JDK in 'fastdebug' mode (-g -O) \n\
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtondebug_build -- build the core JDK in 'debug' mode (-g) \n\
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsclean -- remove all built and imported files \n\
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonclobber -- same as clean \n\
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews"
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Variable help (only common ones used by this Makefile)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonvariable_help: variable_help_intro variable_list variable_help_end
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonvariable_help_intro:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) "--- Common Variables ---"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonvariable_help_end:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) " "
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# One line descriptions for the variables
b7aab05edae933e169d5f83c653935b17c7f0a8bMark AndrewsOUTPUTDIR.desc = Output directory
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian WellingtonPARALLEL_COMPILE_JOBS.desc = Solaris/Linux parallel compile run count
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian WellingtonSLASH_JAVA.desc = Root of all build tools, e.g. /java or J:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian WellingtonBOOTDIR.desc = JDK used to boot the build
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark AndrewsJDK_IMPORT_PATH.desc = JDK used to import components of the build
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark AndrewsCOMPILER_PATH.desc = Compiler install directory
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian WellingtonCACERTS_FILE.desc = Location of certificates file
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian WellingtonDEVTOOLS_PATH.desc = Directory containing zip and gnumake
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark AndrewsCUPS_HEADERS_PATH.desc = Include directory location for CUPS header files
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian WellingtonDXSDK_PATH.desc = Root directory of DirectX SDK
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Make variables to print out (description and value)
b7aab05edae933e169d5f83c653935b17c7f0a8bMark AndrewsVARIABLE_PRINTVAL_LIST += \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington OUTPUTDIR \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington PARALLEL_COMPILE_JOBS \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington SLASH_JAVA \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington BOOTDIR \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington JDK_IMPORT_PATH \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington COMPILER_PATH \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington CACERTS_FILE \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington DEVTOOLS_PATH
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Make variables that should refer to directories that exist
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsVARIABLE_CHECKDIR_LIST += \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington SLASH_JAVA \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews BOOTDIR \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews JDK_IMPORT_PATH \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews COMPILER_PATH \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews DEVTOOLS_PATH
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Make variables that should refer to files that exist
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsVARIABLE_CHECKFIL_LIST += \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews CACERTS_FILE
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# Some are windows specific
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonifeq ($(PLATFORM), windows)
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian WellingtonVARIABLE_PRINTVAL_LIST += \
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews DXSDK_PATH
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark AndrewsVARIABLE_CHECKDIR_LIST += \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington DXSDK_PATH
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrewsendif
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews# For pattern rules below, so all are treated the same
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark AndrewsDO_PRINTVAL_LIST=$(VARIABLE_PRINTVAL_LIST:%=%.printval)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian WellingtonDO_CHECKDIR_LIST=$(VARIABLE_CHECKDIR_LIST:%=%.checkdir)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian WellingtonDO_CHECKFIL_LIST=$(VARIABLE_CHECKFIL_LIST:%=%.checkfil)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Complete variable check
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonvariable_check: $(DO_CHECKDIR_LIST) $(DO_CHECKFIL_LIST)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonvariable_list: $(DO_PRINTVAL_LIST) variable_check
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Pattern rule for printing out a variable
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington%.printval:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) " ALT_$* - $($*.desc)"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @$(ECHO) " \t $*=$($*)"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
bf54ac86eeddce16b67c525d38d1096cc956f478Mark Andrews# Pattern rule for checking to see if a variable with a directory exists
eaccf5e805405de257b5a4840256c580fefe00e3Mark Andrews%.checkdir:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington @if [ ! -d $($*) ] ; then \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
abf32d940f8f674b3971ef41b306a01b3da8d2cfMark Andrews fi
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
eaccf5e805405de257b5a4840256c580fefe00e3Mark Andrews# Pattern rule for checking to see if a variable with a file exists
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews%.checkfil:
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @if [ ! -f $($*) ] ; then \
eaccf5e805405de257b5a4840256c580fefe00e3Mark Andrews $(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# Misc notes on help
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsnotes_help:
eaccf5e805405de257b5a4840256c580fefe00e3Mark Andrews @$(ECHO) "\
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington--- Notes --- \n\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews- All builds use same output directory unless overridden with \n\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews \t ALT_OUTPUTDIR=<dir>, changing from product to fastdebug you may want \n\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews \t to use the clean target first. \n\
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington- JDK_IMPORT_PATH must refer to a compatible build, not all past promoted \n\
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington \t builds or previous release JDK builds will work. \n\
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington- The fastest builds have been when the sources and the BOOTDIR are on \n\
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews \t local disk. \n\
83a810eba60ae87341a2d177ff60d834e26d7a90Mark Andrews"
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington
821d2613356f81e5bb5c107288d6d5cf35c2a1e8Mark Andrewsexamples_help:
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(ECHO) "\
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews--- Examples --- \n\
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews $(MAKE) fastdebug_build \n\
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews $(MAKE) ALT_OUTPUTDIR=/tmp/foobar all \n\
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews $(MAKE) ALT_OUTPUTDIR=/tmp/foobar fastdebug_build \n\
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews $(MAKE) ALT_OUTPUTDIR=/tmp/foobar all \n\
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews $(MAKE) ALT_BOOTDIR=/opt/java/jdk1.5.0 \n\
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews $(MAKE) ALT_JDK_IMPORT_PATH=/opt/java/jdk1.6.0 \n\
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews"
83a810eba60ae87341a2d177ff60d834e26d7a90Mark Andrews
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews################################################################
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# Source bundling
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews################################################################
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsifeq ($(BUNDLE_RULES_AVAILABLE), true)
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews include $(BUNDLE_RULES)
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewsendif
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews################################################################
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews# rule to test
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews################################################################
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews.NOTPARALLEL: test_run
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrewstest:
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington $(MAKE) test_run
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrewstest_run: test_clean test_start test_summary
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtontest_start:
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(ECHO) "Tests started at `$(DATE)`"
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtontest_clean:
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(RM) $(OUTPUTDIR)/test_failures.txt $(OUTPUTDIR)/test_log.txt
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewstest_summary: $(OUTPUTDIR)/test_failures.txt
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(ECHO) "#################################################"
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews @$(ECHO) "Tests completed at `$(DATE)`"
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews @( $(EGREP) '^TEST STATS:' $(OUTPUTDIR)/test_log.txt \
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews || $(ECHO) "No TEST STATS seen in log" )
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews @$(ECHO) "For complete details see: $(OUTPUTDIR)/test_log.txt"
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews @$(ECHO) "#################################################"
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews @if [ -s $< ] ; then \
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews $(ECHO) "ERROR: Test failure count: `$(CAT) $< | $(WC) -l`"; \
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews $(CAT) $<; \
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews exit 1; \
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews else \
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews $(ECHO) "Success! No failures detected"; \
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews fi
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews# Get failure list from log
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews$(OUTPUTDIR)/test_failures.txt: $(OUTPUTDIR)/test_log.txt
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews @$(RM) $@
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews @( $(EGREP) '^FAILED:' $< || $(ECHO) "" ) | $(NAWK) 'length>0' > $@
3a9a66b32adf379e680d18e92428058910880119Mark Andrews
48b492d73ae5328c5efef4b9e0f22063e0ab058aMark Andrews# Get log file of all tests run
48b492d73ae5328c5efef4b9e0f22063e0ab058aMark AndrewsJDK_TO_TEST := $(shell \
48b492d73ae5328c5efef4b9e0f22063e0ab058aMark Andrews if [ -d "$(ABS_OUTPUTDIR)/j2sdk-image" ] ; then \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(ECHO) "$(ABS_OUTPUTDIR)/j2sdk-image"; \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews elif [ -d "$(ABS_OUTPUTDIR)/bin" ] ; then \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(ECHO) "$(ABS_OUTPUTDIR)"; \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington elif [ "$(PRODUCT_HOME)" != "" -a -d "$(PRODUCT_HOME)/bin" ] ; then \
3a9a66b32adf379e680d18e92428058910880119Mark Andrews $(ECHO) "$(PRODUCT_HOME)"; \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews fi \
7e5b2100ea65658a7ec3795919b4ecd29a6f118aMark Andrews)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian WellingtonTEST_TARGETS=all
ca9a8f6d0b0f2a400a96f868193471510364336fMark Andrews$(OUTPUTDIR)/test_log.txt:
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews $(RM) $@
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews ( $(CD) test && \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews $(MAKE) NO_STOPPING=- PRODUCT_HOME=$(JDK_TO_TEST) $(TEST_TARGETS) \
3a9a66b32adf379e680d18e92428058910880119Mark Andrews ) | tee $@
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews
2da2220fe7af2c45724b50b0187523b1fab0cf08Rob Austein################################################################
7e5b2100ea65658a7ec3795919b4ecd29a6f118aMark Andrews# JPRT rule to build
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington################################################################
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsinclude ./make/jprt.gmk
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews################################################################
3a9a66b32adf379e680d18e92428058910880119Mark Andrews# PHONY
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews################################################################
7e5b2100ea65658a7ec3795919b4ecd29a6f118aMark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington.PHONY: all test test_run test_start test_summary test_clean \
3a9a66b32adf379e680d18e92428058910880119Mark Andrews generic_build_repo_series \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington what clobber insane \
3a9a66b32adf379e680d18e92428058910880119Mark Andrews dev dev-build dev-sanity dev-clobber \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews product_build \
3a9a66b32adf379e680d18e92428058910880119Mark Andrews fastdebug_build \
7e5b2100ea65658a7ec3795919b4ecd29a6f118aMark Andrews debug_build \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews build_product_image \
abf32d940f8f674b3971ef41b306a01b3da8d2cfMark Andrews build_debug_image \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews build_fastdebug_image \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington create_fresh_product_bootdir \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington create_fresh_debug_bootdir \
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark Andrews create_fresh_fastdebug_bootdir \
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews generic_debug_build
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Force target
75216e007570b8ea36b3ac9cca096bf70c0ca6f6Mark AndrewsFRC:
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington