提交 5a6cea19 编写于 作者: I ihse

8027566: Remove the old build system

Reviewed-by: erikj, tbell
上级 205aa6bd
此差异已折叠。
#
# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# This must be the first rule
default:
# Inclusion of this pseudo-target will cause make to execute this file
# serially, regardless of -j. Recursively called makefiles will not be
# affected, however. This is required for correct dependency management.
.NOTPARALLEL:
# The shell code below will be executed on /usr/ccs/bin/make on Solaris, but not in GNU make.
# /usr/ccs/bin/make lacks basically every other flow control mechanism.
TEST_FOR_NON_GNUMAKE:sh=echo You are not using GNU make/gmake, this is a requirement. Check your path. 1>&2 && exit 1
# Assume we have GNU make, but check version.
ifeq ($(strip $(foreach v, 3.81% 3.82% 4.%, $(filter $v, $(MAKE_VERSION)))), )
$(error This version of GNU Make is too low ($(MAKE_VERSION)). Check your path, or upgrade to 3.81 or newer.)
endif
# Locate this Makefile
ifeq ($(filter /%,$(lastword $(MAKEFILE_LIST))),)
makefile_path:=$(CURDIR)/$(lastword $(MAKEFILE_LIST))
else
makefile_path:=$(lastword $(MAKEFILE_LIST))
endif
root_dir:=$(dir $(makefile_path))
# ... and then we can include our helper functions
include $(root_dir)/common/makefiles/MakeHelpers.gmk
$(eval $(call ParseLogLevel))
$(eval $(call ParseConfAndSpec))
# Now determine if we have zero, one or several configurations to build.
ifeq ($(SPEC),)
# Since we got past ParseConfAndSpec, we must be building a global target. Do nothing.
else
ifeq ($(words $(SPEC)),1)
# We are building a single configuration. This is the normal case. Execute the Main.gmk file.
include $(root_dir)/common/makefiles/Main.gmk
else
# We are building multiple configurations.
# First, find out the valid targets
# Run the makefile with an arbitrary SPEC using -p -q (quiet dry-run and dump rules) to find
# available PHONY targets. Use this list as valid targets to pass on to the repeated calls.
all_phony_targets=$(filter-out $(global_targets) bundles-only, $(strip $(shell \
$(MAKE) -p -q -f common/makefiles/Main.gmk FRC SPEC=$(firstword $(SPEC)) | \
grep ^.PHONY: | head -n 1 | cut -d " " -f 2-)))
$(all_phony_targets):
@$(foreach spec,$(SPEC),($(MAKE) -f NewMakefile.gmk SPEC=$(spec) \
$(VERBOSE) VERBOSE=$(VERBOSE) LOG_LEVEL=$(LOG_LEVEL) $@) &&) true
.PHONY: $(all_phony_targets)
endif
endif
# Include this after a potential spec file has been included so that the bundles target
# has access to the spec variables.
include $(root_dir)/common/makefiles/Jprt.gmk
# Here are "global" targets, i.e. targets that can be executed without specifying a single configuration.
# If you addd more global targets, please update the variable global_targets in MakeHelpers.
help:
$(info )
$(info OpenJDK Makefile help)
$(info =====================)
$(info )
$(info Common make targets)
$(info . make [default] # Compile all product in langtools, hotspot, jaxp, jaxws,)
$(info . # corba and jdk)
$(info . make all # Compile everything, all repos and images)
$(info . make images # Create complete j2sdk and j2re images)
$(info . make docs # Create javadocs)
$(info . make overlay-images # Create limited images for sparc 64 bit platforms)
$(info . make profiles # Create complete j2re compact profile images)
$(info . make bootcycle-images # Build images twice, second time with newly build JDK)
$(info . make install # Install the generated images locally)
$(info . make clean # Remove all files generated by make, but not those)
$(info . # generated by configure)
$(info . make dist-clean # Remove all files, including configuration)
$(info . make help # Give some help on using make)
$(info . make test # Run tests, default is all tests (see TEST below))
$(info )
$(info Targets for specific components)
$(info (Component is any of langtools, corba, jaxp, jaxws, hotspot, jdk, nashorn, images, overlay-images, docs or test))
$(info . make <component> # Build <component> and everything it depends on. )
$(info . make <component>-only # Build <component> only, without dependencies. This)
$(info . # is faster but can result in incorrect build results!)
$(info . make clean-<component> # Remove files generated by make for <component>)
$(info )
$(info Useful make variables)
$(info . make CONF= # Build all configurations (note, assignment is empty))
$(info . make CONF=<substring> # Build the configuration(s) with a name matching)
$(info . # <substring>)
$(info )
$(info . make LOG=<loglevel> # Change the log level from warn to <loglevel>)
$(info . # Available log levels are:)
$(info . # 'warn' (default), 'info', 'debug' and 'trace')
$(info . # To see executed command lines, use LOG=debug)
$(info )
$(info . make JOBS=<n> # Run <n> parallel make jobs)
$(info . # Note that -jN does not work as expected!)
$(info )
$(info . make test TEST=<test> # Only run the given test or tests, e.g.)
$(info . # make test TEST="jdk_lang jdk_net")
$(info )
.PHONY: help
......@@ -24,4 +24,4 @@
# This Makefile was generated by configure @DATE_WHEN_CONFIGURED@
# GENERATED FILE, DO NOT EDIT
SPEC:=@OUTPUT_ROOT@/spec.gmk
include @SRC_ROOT@/NewMakefile.gmk
include @SRC_ROOT@/Makefile
......@@ -412,7 +412,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
# Test from where we are running configure, in or outside of src root.
if test "x$CURDIR" = "x$SRC_ROOT" || test "x$CURDIR" = "x$SRC_ROOT/common" \
|| test "x$CURDIR" = "x$SRC_ROOT/common/autoconf" \
|| test "x$CURDIR" = "x$SRC_ROOT/common/makefiles" ; then
|| test "x$CURDIR" = "x$SRC_ROOT/make" ; then
# We are running configure from the src root.
# Create a default ./build/target-variant-debuglevel output root.
if test "x${CONF_NAME}" = x; then
......
......@@ -3865,7 +3865,7 @@ fi
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
DATE_WHEN_GENERATED=1383151988
DATE_WHEN_GENERATED=1384422786
###############################################################################
#
......@@ -8042,7 +8042,7 @@ fi
# Test from where we are running configure, in or outside of src root.
if test "x$CURDIR" = "x$SRC_ROOT" || test "x$CURDIR" = "x$SRC_ROOT/common" \
|| test "x$CURDIR" = "x$SRC_ROOT/common/autoconf" \
|| test "x$CURDIR" = "x$SRC_ROOT/common/makefiles" ; then
|| test "x$CURDIR" = "x$SRC_ROOT/make" ; then
# We are running configure from the src root.
# Create a default ./build/target-variant-debuglevel output root.
if test "x${CONF_NAME}" = x; then
......@@ -16201,32 +16201,25 @@ fi
cd "$CURDIR"
# Verify that the addon source root does not have any root makefiles.
# If it does, then it is usually an error, prevent this.
if test -f $with_add_source_root/langtools/makefiles/Makefile || \
test -f $with_add_source_root/langtools/make/Makefile; then
if test -f $with_add_source_root/langtools/make/Makefile; then
as_fn_error $? "Your add source root seems to contain a full langtools repo! An add source root should only contain additional sources." "$LINENO" 5
fi
if test -f $with_add_source_root/corba/makefiles/Makefile || \
test -f $with_add_source_root/corba/make/Makefile; then
if test -f $with_add_source_root/corba/make/Makefile; then
as_fn_error $? "Your add source root seems to contain a full corba repo! An add source root should only contain additional sources." "$LINENO" 5
fi
if test -f $with_add_source_root/jaxp/makefiles/Makefile || \
test -f $with_add_source_root/jaxp/make/Makefile; then
if test -f $with_add_source_root/jaxp/make/Makefile; then
as_fn_error $? "Your add source root seems to contain a full jaxp repo! An add source root should only contain additional sources." "$LINENO" 5
fi
if test -f $with_add_source_root/jaxws/makefiles/Makefile || \
test -f $with_add_source_root/jaxws/make/Makefile; then
if test -f $with_add_source_root/jaxws/make/Makefile; then
as_fn_error $? "Your add source root seems to contain a full jaxws repo! An add source root should only contain additional sources." "$LINENO" 5
fi
if test -f $with_add_source_root/hotspot/makefiles/Makefile || \
test -f $with_add_source_root/hotspot/make/Makefile; then
if test -f $with_add_source_root/hotspot/make/Makefile; then
as_fn_error $? "Your add source root seems to contain a full hotspot repo! An add source root should only contain additional sources." "$LINENO" 5
fi
if test -f $with_add_source_root/nashorn/makefiles/Makefile || \
test -f $with_add_source_root/nashorn/make/Makefile; then
if test -f $with_add_source_root/nashorn/make/Makefile; then
as_fn_error $? "Your add source root seems to contain a full nashorn repo! An add source root should only contain additional sources." "$LINENO" 5
fi
if test -f $with_add_source_root/jdk/makefiles/Makefile || \
test -f $with_add_source_root/jdk/make/Makefile; then
if test -f $with_add_source_root/jdk/make/Makefile; then
as_fn_error $? "Your add source root seems to contain a full JDK repo! An add source root should only contain additional sources." "$LINENO" 5
fi
fi
......@@ -16240,32 +16233,25 @@ fi
cd "$with_override_source_root"
OVERRIDE_SRC_ROOT="`pwd`"
cd "$CURDIR"
if test -f $with_override_source_root/langtools/makefiles/Makefile || \
test -f $with_override_source_root/langtools/make/Makefile; then
if test -f $with_override_source_root/langtools/make/Makefile; then
as_fn_error $? "Your override source root seems to contain a full langtools repo! An override source root should only contain sources that override." "$LINENO" 5
fi
if test -f $with_override_source_root/corba/makefiles/Makefile || \
test -f $with_override_source_root/corba/make/Makefile; then
if test -f $with_override_source_root/corba/make/Makefile; then
as_fn_error $? "Your override source root seems to contain a full corba repo! An override source root should only contain sources that override." "$LINENO" 5
fi
if test -f $with_override_source_root/jaxp/makefiles/Makefile || \
test -f $with_override_source_root/jaxp/make/Makefile; then
if test -f $with_override_source_root/jaxp/make/Makefile; then
as_fn_error $? "Your override source root seems to contain a full jaxp repo! An override source root should only contain sources that override." "$LINENO" 5
fi
if test -f $with_override_source_root/jaxws/makefiles/Makefile || \
test -f $with_override_source_root/jaxws/make/Makefile; then
if test -f $with_override_source_root/jaxws/make/Makefile; then
as_fn_error $? "Your override source root seems to contain a full jaxws repo! An override source root should only contain sources that override." "$LINENO" 5
fi
if test -f $with_override_source_root/hotspot/makefiles/Makefile || \
test -f $with_override_source_root/hotspot/make/Makefile; then
if test -f $with_override_source_root/hotspot/make/Makefile; then
as_fn_error $? "Your override source root seems to contain a full hotspot repo! An override source root should only contain sources that override." "$LINENO" 5
fi
if test -f $with_override_source_root/nashorn/makefiles/Makefile || \
test -f $with_override_source_root/nashorn/make/Makefile; then
if test -f $with_override_source_root/nashorn/make/Makefile; then
as_fn_error $? "Your override source root seems to contain a full nashorn repo! An override source root should only contain sources that override." "$LINENO" 5
fi
if test -f $with_override_source_root/jdk/makefiles/Makefile || \
test -f $with_override_source_root/jdk/make/Makefile; then
if test -f $with_override_source_root/jdk/make/Makefile; then
as_fn_error $? "Your override source root seems to contain a full JDK repo! An override source root should only contain sources that override." "$LINENO" 5
fi
fi
......@@ -16344,7 +16330,7 @@ fi
cd "$with_override_langtools"
LANGTOOLS_TOPDIR="`pwd`"
cd "$CURDIR"
if ! test -f $LANGTOOLS_TOPDIR/makefiles/Makefile; then
if ! test -f $LANGTOOLS_TOPDIR/make/Makefile; then
as_fn_error $? "You have to override langtools with a full langtools repo!" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if langtools should be overridden" >&5
......@@ -16357,7 +16343,7 @@ $as_echo "yes with $LANGTOOLS_TOPDIR" >&6; }
cd "$with_override_corba"
CORBA_TOPDIR="`pwd`"
cd "$CURDIR"
if ! test -f $CORBA_TOPDIR/makefiles/Makefile; then
if ! test -f $CORBA_TOPDIR/make/Makefile; then
as_fn_error $? "You have to override corba with a full corba repo!" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if corba should be overridden" >&5
......@@ -16370,7 +16356,7 @@ $as_echo "yes with $CORBA_TOPDIR" >&6; }
cd "$with_override_jaxp"
JAXP_TOPDIR="`pwd`"
cd "$CURDIR"
if ! test -f $JAXP_TOPDIR/makefiles/Makefile; then
if ! test -f $JAXP_TOPDIR/make/Makefile; then
as_fn_error $? "You have to override jaxp with a full jaxp repo!" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if jaxp should be overridden" >&5
......@@ -16383,7 +16369,7 @@ $as_echo "yes with $JAXP_TOPDIR" >&6; }
cd "$with_override_jaxws"
JAXWS_TOPDIR="`pwd`"
cd "$CURDIR"
if ! test -f $JAXWS_TOPDIR/makefiles/Makefile; then
if ! test -f $JAXWS_TOPDIR/make/Makefile; then
as_fn_error $? "You have to override jaxws with a full jaxws repo!" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if jaxws should be overridden" >&5
......@@ -16396,8 +16382,7 @@ $as_echo "yes with $JAXWS_TOPDIR" >&6; }
cd "$with_override_hotspot"
HOTSPOT_TOPDIR="`pwd`"
cd "$CURDIR"
if ! test -f $HOTSPOT_TOPDIR/make/Makefile && \
! test -f $HOTSPOT_TOPDIR/makefiles/Makefile; then
if ! test -f $HOTSPOT_TOPDIR/make/Makefile; then
as_fn_error $? "You have to override hotspot with a full hotspot repo!" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if hotspot should be overridden" >&5
......@@ -16410,7 +16395,7 @@ $as_echo "yes with $HOTSPOT_TOPDIR" >&6; }
cd "$with_override_nashorn"
NASHORN_TOPDIR="`pwd`"
cd "$CURDIR"
if ! test -f $NASHORN_TOPDIR/makefiles/Makefile; then
if ! test -f $NASHORN_TOPDIR/make/Makefile; then
as_fn_error $? "You have to override nashorn with a full nashorn repo!" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if nashorn should be overridden" >&5
......@@ -16423,7 +16408,7 @@ $as_echo "yes with $NASHORN_TOPDIR" >&6; }
cd "$with_override_jdk"
JDK_TOPDIR="`pwd`"
cd "$CURDIR"
if ! test -f $JDK_TOPDIR/makefiles/Makefile; then
if ! test -f $JDK_TOPDIR/make/Makefile; then
as_fn_error $? "You have to override JDK with a full JDK repo!" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if JDK should be overridden" >&5
......@@ -129,4 +129,4 @@ endif
# Sneak this in via the spec.gmk file, since we don't want to mess around too much with the Hotspot make files.
# This is needed to get the LOG setting to work properly.
include $(SRC_ROOT)/common/makefiles/MakeBase.gmk
include $(SRC_ROOT)/make/common/MakeBase.gmk
......@@ -80,32 +80,25 @@ AC_DEFUN_ONCE([SRCDIRS_SETUP_ALTERNATIVE_TOPDIRS],
cd "$CURDIR"
# Verify that the addon source root does not have any root makefiles.
# If it does, then it is usually an error, prevent this.
if test -f $with_add_source_root/langtools/makefiles/Makefile || \
test -f $with_add_source_root/langtools/make/Makefile; then
if test -f $with_add_source_root/langtools/make/Makefile; then
AC_MSG_ERROR([Your add source root seems to contain a full langtools repo! An add source root should only contain additional sources.])
fi
if test -f $with_add_source_root/corba/makefiles/Makefile || \
test -f $with_add_source_root/corba/make/Makefile; then
if test -f $with_add_source_root/corba/make/Makefile; then
AC_MSG_ERROR([Your add source root seems to contain a full corba repo! An add source root should only contain additional sources.])
fi
if test -f $with_add_source_root/jaxp/makefiles/Makefile || \
test -f $with_add_source_root/jaxp/make/Makefile; then
if test -f $with_add_source_root/jaxp/make/Makefile; then
AC_MSG_ERROR([Your add source root seems to contain a full jaxp repo! An add source root should only contain additional sources.])
fi
if test -f $with_add_source_root/jaxws/makefiles/Makefile || \
test -f $with_add_source_root/jaxws/make/Makefile; then
if test -f $with_add_source_root/jaxws/make/Makefile; then
AC_MSG_ERROR([Your add source root seems to contain a full jaxws repo! An add source root should only contain additional sources.])
fi
if test -f $with_add_source_root/hotspot/makefiles/Makefile || \
test -f $with_add_source_root/hotspot/make/Makefile; then
if test -f $with_add_source_root/hotspot/make/Makefile; then
AC_MSG_ERROR([Your add source root seems to contain a full hotspot repo! An add source root should only contain additional sources.])
fi
if test -f $with_add_source_root/nashorn/makefiles/Makefile || \
test -f $with_add_source_root/nashorn/make/Makefile; then
if test -f $with_add_source_root/nashorn/make/Makefile; then
AC_MSG_ERROR([Your add source root seems to contain a full nashorn repo! An add source root should only contain additional sources.])
fi
if test -f $with_add_source_root/jdk/makefiles/Makefile || \
test -f $with_add_source_root/jdk/make/Makefile; then
if test -f $with_add_source_root/jdk/make/Makefile; then
AC_MSG_ERROR([Your add source root seems to contain a full JDK repo! An add source root should only contain additional sources.])
fi
fi
......@@ -119,32 +112,25 @@ AC_DEFUN_ONCE([SRCDIRS_SETUP_ALTERNATIVE_TOPDIRS],
cd "$with_override_source_root"
OVERRIDE_SRC_ROOT="`pwd`"
cd "$CURDIR"
if test -f $with_override_source_root/langtools/makefiles/Makefile || \
test -f $with_override_source_root/langtools/make/Makefile; then
if test -f $with_override_source_root/langtools/make/Makefile; then
AC_MSG_ERROR([Your override source root seems to contain a full langtools repo! An override source root should only contain sources that override.])
fi
if test -f $with_override_source_root/corba/makefiles/Makefile || \
test -f $with_override_source_root/corba/make/Makefile; then
if test -f $with_override_source_root/corba/make/Makefile; then
AC_MSG_ERROR([Your override source root seems to contain a full corba repo! An override source root should only contain sources that override.])
fi
if test -f $with_override_source_root/jaxp/makefiles/Makefile || \
test -f $with_override_source_root/jaxp/make/Makefile; then
if test -f $with_override_source_root/jaxp/make/Makefile; then
AC_MSG_ERROR([Your override source root seems to contain a full jaxp repo! An override source root should only contain sources that override.])
fi
if test -f $with_override_source_root/jaxws/makefiles/Makefile || \
test -f $with_override_source_root/jaxws/make/Makefile; then
if test -f $with_override_source_root/jaxws/make/Makefile; then
AC_MSG_ERROR([Your override source root seems to contain a full jaxws repo! An override source root should only contain sources that override.])
fi
if test -f $with_override_source_root/hotspot/makefiles/Makefile || \
test -f $with_override_source_root/hotspot/make/Makefile; then
if test -f $with_override_source_root/hotspot/make/Makefile; then
AC_MSG_ERROR([Your override source root seems to contain a full hotspot repo! An override source root should only contain sources that override.])
fi
if test -f $with_override_source_root/nashorn/makefiles/Makefile || \
test -f $with_override_source_root/nashorn/make/Makefile; then
if test -f $with_override_source_root/nashorn/make/Makefile; then
AC_MSG_ERROR([Your override source root seems to contain a full nashorn repo! An override source root should only contain sources that override.])
fi
if test -f $with_override_source_root/jdk/makefiles/Makefile || \
test -f $with_override_source_root/jdk/make/Makefile; then
if test -f $with_override_source_root/jdk/make/Makefile; then
AC_MSG_ERROR([Your override source root seems to contain a full JDK repo! An override source root should only contain sources that override.])
fi
fi
......@@ -195,7 +181,7 @@ AC_DEFUN_ONCE([SRCDIRS_SETUP_ALTERNATIVE_TOPDIRS],
cd "$with_override_langtools"
LANGTOOLS_TOPDIR="`pwd`"
cd "$CURDIR"
if ! test -f $LANGTOOLS_TOPDIR/makefiles/Makefile; then
if ! test -f $LANGTOOLS_TOPDIR/make/Makefile; then
AC_MSG_ERROR([You have to override langtools with a full langtools repo!])
fi
AC_MSG_CHECKING([if langtools should be overridden])
......@@ -206,7 +192,7 @@ AC_DEFUN_ONCE([SRCDIRS_SETUP_ALTERNATIVE_TOPDIRS],
cd "$with_override_corba"
CORBA_TOPDIR="`pwd`"
cd "$CURDIR"
if ! test -f $CORBA_TOPDIR/makefiles/Makefile; then
if ! test -f $CORBA_TOPDIR/make/Makefile; then
AC_MSG_ERROR([You have to override corba with a full corba repo!])
fi
AC_MSG_CHECKING([if corba should be overridden])
......@@ -217,7 +203,7 @@ AC_DEFUN_ONCE([SRCDIRS_SETUP_ALTERNATIVE_TOPDIRS],
cd "$with_override_jaxp"
JAXP_TOPDIR="`pwd`"
cd "$CURDIR"
if ! test -f $JAXP_TOPDIR/makefiles/Makefile; then
if ! test -f $JAXP_TOPDIR/make/Makefile; then
AC_MSG_ERROR([You have to override jaxp with a full jaxp repo!])
fi
AC_MSG_CHECKING([if jaxp should be overridden])
......@@ -228,7 +214,7 @@ AC_DEFUN_ONCE([SRCDIRS_SETUP_ALTERNATIVE_TOPDIRS],
cd "$with_override_jaxws"
JAXWS_TOPDIR="`pwd`"
cd "$CURDIR"
if ! test -f $JAXWS_TOPDIR/makefiles/Makefile; then
if ! test -f $JAXWS_TOPDIR/make/Makefile; then
AC_MSG_ERROR([You have to override jaxws with a full jaxws repo!])
fi
AC_MSG_CHECKING([if jaxws should be overridden])
......@@ -239,8 +225,7 @@ AC_DEFUN_ONCE([SRCDIRS_SETUP_ALTERNATIVE_TOPDIRS],
cd "$with_override_hotspot"
HOTSPOT_TOPDIR="`pwd`"
cd "$CURDIR"
if ! test -f $HOTSPOT_TOPDIR/make/Makefile && \
! test -f $HOTSPOT_TOPDIR/makefiles/Makefile; then
if ! test -f $HOTSPOT_TOPDIR/make/Makefile; then
AC_MSG_ERROR([You have to override hotspot with a full hotspot repo!])
fi
AC_MSG_CHECKING([if hotspot should be overridden])
......@@ -251,7 +236,7 @@ AC_DEFUN_ONCE([SRCDIRS_SETUP_ALTERNATIVE_TOPDIRS],
cd "$with_override_nashorn"
NASHORN_TOPDIR="`pwd`"
cd "$CURDIR"
if ! test -f $NASHORN_TOPDIR/makefiles/Makefile; then
if ! test -f $NASHORN_TOPDIR/make/Makefile; then
AC_MSG_ERROR([You have to override nashorn with a full nashorn repo!])
fi
AC_MSG_CHECKING([if nashorn should be overridden])
......@@ -262,7 +247,7 @@ AC_DEFUN_ONCE([SRCDIRS_SETUP_ALTERNATIVE_TOPDIRS],
cd "$with_override_jdk"
JDK_TOPDIR="`pwd`"
cd "$CURDIR"
if ! test -f $JDK_TOPDIR/makefiles/Makefile; then
if ! test -f $JDK_TOPDIR/make/Makefile; then
AC_MSG_ERROR([You have to override JDK with a full JDK repo!])
fi
AC_MSG_CHECKING([if JDK should be overridden])
......
......@@ -65,8 +65,8 @@ ifeq (,$(findstring -R,$(MAKE)))
endif
# Specify where the common include directory for makefiles is.
ifeq (,$(findstring -I @SRC_ROOT@/common/makefiles,$(MAKE)))
MAKE:=$(MAKE) -I @SRC_ROOT@/common/makefiles
ifeq (,$(findstring -I @SRC_ROOT@/make/common,$(MAKE)))
MAKE:=$(MAKE) -I @SRC_ROOT@/make/common
endif
# The "human readable" name of this configuration
......
......@@ -1113,14 +1113,15 @@ fi
if [ -d "$THIS/install/j2sdk-image" ]; then
THIS_J2SDK="$THIS/install/j2sdk-image"
THIS_J2RE="$THIS/install/j2re-image"
echo "Comparing install images"
echo "Selecting install images in this build"
elif [ -d "$THIS/deploy/j2sdk-image" ]; then
THIS_J2SDK="$THIS/deploy/j2sdk-image"
THIS_J2RE="$THIS/deploy/j2re-image"
echo "Comparing deploy images"
echo "Selecting deploy images in this build"
elif [ -d "$THIS/images/j2sdk-image" ]; then
THIS_J2SDK="$THIS/images/j2sdk-image"
THIS_J2RE="$THIS/images/j2re-image"
echo "Selecting jdk images in this build"
fi
if [ -d "$THIS/images/j2sdk-overlay-image" ]; then
......@@ -1128,15 +1129,18 @@ if [ -d "$THIS/images/j2sdk-overlay-image" ]; then
# If there is an install image, prefer that, it's also overlay
THIS_J2SDK_OVERLAY="$THIS/install/j2sdk-image"
THIS_J2RE_OVERLAY="$THIS/install/j2re-image"
echo "Selecting install overlay images in this build"
else
THIS_J2SDK_OVERLAY="$THIS/images/j2sdk-overlay-image"
THIS_J2RE_OVERLAY="$THIS/images/j2re-overlay-image"
echo "Selecting jdk overlay images in this build"
fi
fi
if [ -d "$THIS/images/j2sdk-bundle" ]; then
THIS_J2SDK_BUNDLE="$THIS/images/j2sdk-bundle"
THIS_J2RE_BUNDLE="$THIS/images/j2re-bundle"
echo "Selecting bundles in this build"
fi
# Figure out the layout of the other build (old or new, normal or overlay image)
......@@ -1144,21 +1148,34 @@ if [ -d "$OTHER/j2sdk-image" ]; then
if [ -f "$OTHER/j2sdk-image/LICENSE" ]; then
OTHER_J2SDK="$OTHER/j2sdk-image"
OTHER_J2RE="$OTHER/j2re-image"
echo "Selecting old-style images in other build"
else
OTHER_J2SDK_OVERLAY="$OTHER/j2sdk-image"
OTHER_J2RE_OVERLAY="$OTHER/j2re-image"
fi
echo "Selecting overlay images in other build"
fi
elif [ -d "$OTHER/install/j2sdk-image" ]; then
OTHER_J2SDK="$OTHER/install/j2sdk-image"
OTHER_J2RE="$OTHER/install/j2re-image"
echo "Selecting install images in other build"
elif [ -d "$OTHER/deploy/j2sdk-image" ]; then
OTHER_J2SDK="$OTHER/deploy/j2sdk-image"
OTHER_J2RE="$OTHER/deploy/j2re-image"
echo "Selecting deploy images in other build"
elif [ -d "$OTHER/images/j2sdk-image" ]; then
OTHER_J2SDK="$OTHER/images/j2sdk-image"
OTHER_J2RE="$OTHER/images/j2re-image"
echo "Selecting jdk images in other build"
fi
if [ -d "$OTHER/j2sdk-bundle" ]; then
OTHER_J2SDK_BUNDLE="$OTHER/j2sdk-bundle"
OTHER_J2RE_BUNDLE="$OTHER/j2re-bundle"
echo "Selecting bundles in other build"
elif [ -d "$OTHER/images/j2sdk-bundle" ]; then
OTHER_J2SDK_BUNDLE="$OTHER/images/j2sdk-bundle"
OTHER_J2RE_BUNDLE="$OTHER/images/j2re-bundle"
echo "Selecting jdk bundles in other build"
fi
if [ -z "$THIS_J2SDK" ] || [ -z "$THIS_J2RE" ]; then
......
#
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
include ../../NewMakefile.gmk
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Doc Process Notes</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h3><a name="REGEXP"></a><br>
REGEXP</h3>
<p> REGEXP is a list of wildcard patterns that determines which packages listed
in CORE_PKGS.gmk go into which summary-table on the main API index page. It
was motivated by the need to divide the world into &quot;core packages&quot;
(java.*) and &quot;extension packages&quot; (javax.*). In time, the distinction
went away. The whole table is now called &quot;Platform Packages&quot;--which
eliminated the need for this list of regular expressions. But it lingered on,
accreting all of the packages in the JVM, one by one. I pruned it back to &quot;*&quot;,
so it now covers every package in the Java platform API docs. If some separation
is needed in the future, it can grow back into a colon-separated list, starting
with this, which is in all respects equivalent to &quot;*&quot; at this point
in time:</p>
<blockquote>
<pre>REGEXP = &quot;java.*:javax.*:org.ietf*:org.omg.</pre>
</blockquote>
<h3><a name="releaseTargets"></a><br>
Release Targets</h3>
<p> (Thanks to Kelly O'Hair for this info.)</p>
<p> The <tt>rel-coredocs</tt> and <tt>rel-docs</tt> targets were added by Eric
Armstrong. <tt>rel-coredocs</tt> assumes the kind of large, 32-bit machine used
in the javapubs group's docs-release process. It specifies memory settings accordingly
to maximize performance.</p>
<p> The performance settings, like the sanity check, are most important for the
core docs--the platform APIs. Running javadoc on those APIs takes a significant
amount of time and memory. Setting the initial heap size as large as possible
is important to prevent thrashing as the heap grows. Setting the maximum as
large as necessary is also important to keep the job from failing.</p>
<blockquote>
<p> <tt>-J-Xmx512</tt> sets a maximum of 512, which became necessary in 6.0<br>
<tt>-J-Xms256</tt> sets starting size to 256 (default is 8)</p>
</blockquote>
<p> <tt>rel-coredocs</tt> also includes a sanity check to help ensure that <tt>BUILD_NUMBER</tt>
and <tt>MILESTONE</tt> are specified properly when docs are built outside of
the normal release engineering process, with the intention of releasing them
on the web or in a downloaded docs bundle. (When invoked in release engineering's
control build, the values are always set properly. But when the targets are
run by themselves, they default to b00 and &quot;internal&quot;--which silently
sabotage the result of a build that can take many hours to complete.</p>
</body>
</html>
#
# Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
#
# Common variables used by all the Java makefiles. This file should
# not contain rules.
#
# The build times report is turned off by setting REPORT_BUILD_TIMES to nothing.
# This is necessary for the target clobber/clean which will erase the
# directories where the buildtimes are stored.
REPORT_BUILD_TIMES=1
# Store the build times in this directory.
BUILDTIMESDIR=$(ABS_OUTPUTDIR)/tmp/buildtimes
# Record starting time for build of a sub repository.
define RecordStartTime
$(MKDIR) -p $(BUILDTIMESDIR)
$(DATE) '+%Y %m %d %H %M %S' | $(NAWK) '{ print $$1,$$2,$$3,$$4,$$5,$$6,($$4*3600+$$5*60+$$6) }' > $(BUILDTIMESDIR)/build_time_start_$1
$(DATE) '+%Y-%m-%d %H:%M:%S' > $(BUILDTIMESDIR)/build_time_start_$1_human_readable
endef
# Indicate that we started to build a sub repository and record starting time.
define MakeStart
$(call RecordStartTime,$1)
$(PRINTF) "\n\n%s\n%s\n##### %-60.60s #####\n%s\n\n" \
"########################################################################" \
"########################################################################" \
"Entering $1 for target(s) $2" \
"########################################################################"
endef
# Record ending time and calculate the difference and store it in a
# easy to read format. Handles builds that cross midnight. Expects
# that a build will never take 24 hours or more.
define RecordEndTime
$(DATE) '+%Y %m %d %H %M %S' | $(NAWK) '{ print $$1,$$2,$$3,$$4,$$5,$$6,($$4*3600+$$5*60+$$6) }' > $(BUILDTIMESDIR)/build_time_end_$1
$(DATE) '+%Y-%m-%d %H:%M:%S' > $(BUILDTIMESDIR)/build_time_end_$1_human_readable
$(ECHO) `$(CAT) $(BUILDTIMESDIR)/build_time_start_$1` `$(CAT) $(BUILDTIMESDIR)/build_time_end_$1` $1 | \
$(NAWK) '{ F=$$7; T=$$14; if (F > T) { T+=3600*24 }; D=T-F; H=int(D/3600); \
M=int((D-H*3600)/60); S=D-H*3600-M*60; printf("%02d:%02d:%02d %s\n",H,M,S,$$15); }' \
> $(BUILDTIMESDIR)/build_time_diff_$1
endef
# Indicate that we are done.
# Record ending time and print out the total time it took to build.
define MakeFinish
$(if $(REPORT_BUILD_TIMES),$(call RecordEndTime,$1),)
$(PRINTF) "%s\n##### %-60.60s #####\n%s\n##### %-60.60s #####\n%s\n\n" \
"########################################################################" \
"Leaving $1 for target(s) $2" \
"########################################################################" \
$(if $(REPORT_BUILD_TIMES),"Build time `$(CAT) $(BUILDTIMESDIR)/build_time_diff_$1` for target(s) $2","") \
"########################################################################"
endef
# Find all build_time_* files and print their contents in a list sorted
# on the name of the sub repository.
define ReportBuildTimes
$(PRINTF) -- "-- Build times ----------\nTarget %s\nStart %s\nEnd %s\n%s\n%s\n-------------------------\n" \
$1 \
"`$(CAT) $(BUILDTIMESDIR)/build_time_start_TOTAL_human_readable`" \
"`$(CAT) $(BUILDTIMESDIR)/build_time_end_TOTAL_human_readable`" \
"`$(LS) $(BUILDTIMESDIR)/build_time_diff_* | $(GREP) -v _TOTAL | $(XARGS) $(CAT) | $(SORT) -k 2`" \
"`$(CAT) $(BUILDTIMESDIR)/build_time_diff_TOTAL`"
endef
ifdef OPENJDK
ifneq ($(OPENJDK),true)
x:=$(error "OPENJDK (if defined) can only be set to true")
endif
endif
# Define absolute paths to TOPDIRs
ABS_LANGTOOLS_TOPDIR:=$(call OptFullPath,"$(LANGTOOLS_TOPDIR)")
ABS_CORBA_TOPDIR:=$(call OptFullPath,"$(CORBA_TOPDIR)")
ABS_JAXP_TOPDIR:=$(call OptFullPath,"$(JAXP_TOPDIR)")
ABS_JAXWS_TOPDIR:=$(call OptFullPath,"$(JAXWS_TOPDIR)")
ABS_JDK_TOPDIR:=$(call OptFullPath,"$(JDK_TOPDIR)")
ABS_HOTSPOT_TOPDIR:=$(call OptFullPath,"$(HOTSPOT_TOPDIR)")
ABS_NASHORN_TOPDIR:=$(call OptFullPath,"$(NASHORN_TOPDIR)")
ABS_INSTALL_TOPDIR:=$(call OptFullPath,"$(INSTALL_TOPDIR)")
ABS_SPONSORS_TOPDIR:=$(call OptFullPath,"$(SPONSORS_TOPDIR)")
ABS_DEPLOY_TOPDIR:=$(call OptFullPath,"$(DEPLOY_TOPDIR)")
# Macro to return true or false if a file exists and is readable
define MkExists
$(shell if [ -r $1 ]; then $(ECHO) true; else $(ECHO) false; fi)
endef
HOTSPOT_SRC_AVAILABLE := $(call MkExists,$(HOTSPOT_TOPDIR)/make/Makefile)
ifndef BUILD_HOTSPOT
ifdef ALT_HOTSPOT_IMPORT_PATH
BUILD_HOTSPOT := false
else
BUILD_HOTSPOT := $(HOTSPOT_SRC_AVAILABLE)
endif
endif
LANGTOOLS_SRC_AVAILABLE := $(call MkExists,$(LANGTOOLS_TOPDIR)/make/Makefile)
ifndef BUILD_LANGTOOLS
ifdef ALT_LANGTOOLS_DIST
BUILD_LANGTOOLS := false
else
BUILD_LANGTOOLS := $(LANGTOOLS_SRC_AVAILABLE)
endif
endif
CORBA_SRC_AVAILABLE := $(call MkExists,$(CORBA_TOPDIR)/make/Makefile)
ifndef BUILD_CORBA
ifdef ALT_CORBA_DIST
BUILD_CORBA := false
else
BUILD_CORBA := $(CORBA_SRC_AVAILABLE)
endif
endif
JAXP_SRC_AVAILABLE := $(call MkExists,$(JAXP_TOPDIR)/make/Makefile)
ifndef BUILD_JAXP
ifdef ALT_JAXP_DIST
BUILD_JAXP := false
else
BUILD_JAXP := $(JAXP_SRC_AVAILABLE)
endif
endif
JAXWS_SRC_AVAILABLE := $(call MkExists,$(JAXWS_TOPDIR)/make/Makefile)
ifndef BUILD_JAXWS
ifdef ALT_JAXWS_DIST
BUILD_JAXWS := false
else
BUILD_JAXWS := $(JAXWS_SRC_AVAILABLE)
endif
endif
JDK_SRC_AVAILABLE := $(call MkExists,$(JDK_TOPDIR)/make/Makefile)
ifndef BUILD_JDK
BUILD_JDK := $(JDK_SRC_AVAILABLE)
endif
ifeq ($(JDK_SRC_AVAILABLE),true)
JDK_CLOSED_SRC_AVAILABLE := $(call MkExists,$(JDK_TOPDIR)/src/closed)
ifeq ($(JDK_CLOSED_SRC_AVAILABLE),false)
OPENJDK = true
endif
endif
NASHORN_SRC_AVAILABLE := $(call MkExists,$(NASHORN_TOPDIR)/make/Makefile)
ifndef BUILD_NASHORN
ifdef ALT_NASHORN_DIST
BUILD_NASHORN := false
else
BUILD_NASHORN := $(NASHORN_SRC_AVAILABLE)
endif
endif
DEPLOY_SRC_AVAILABLE := $(call MkExists,$(DEPLOY_TOPDIR)/make/Makefile)
ifndef BUILD_DEPLOY
BUILD_DEPLOY := $(DEPLOY_SRC_AVAILABLE)
endif
INSTALL_SRC_AVAILABLE := $(call MkExists,$(INSTALL_TOPDIR)/make/Makefile)
ifndef BUILD_INSTALL
ifdef DEV_ONLY
BUILD_INSTALL := false
else
BUILD_INSTALL := $(INSTALL_SRC_AVAILABLE)
endif
endif
SPONSORS_SRC_AVAILABLE := $(call MkExists,$(SPONSORS_TOPDIR)/make/Makefile)
ifndef BUILD_SPONSORS
ifdef DEV_ONLY
BUILD_SPONSORS := false
else
BUILD_SPONSORS := $(SPONSORS_SRC_AVAILABLE)
endif
endif
# Do we build the source bundles?
BUNDLE_RULES = $(JDK_TOPDIR)/make/closed/bundles.gmk
ifeq ($(SKIP_BUNDLES_BUILD), true)
BUNDLE_RULES_AVAILABLE := false
else
BUNDLE_RULES_AVAILABLE := $(call MkExists,$(BUNDLE_RULES))
endif
# Current things we do NOT build for OPENJDK
ifdef OPENJDK
BUILD_DEPLOY = false
BUILD_INSTALL = false
BUILD_SPONSORS = false
BUNDLE_RULES_AVAILABLE := false
# These could be over-ridden on the command line or in environment
ifndef SKIP_FASTDEBUG_BUILD
SKIP_FASTDEBUG_BUILD = true
endif
ifndef SKIP_DEBUG_BUILD
SKIP_DEBUG_BUILD = true
endif
ifndef SKIP_COMPARE_IMAGES
SKIP_COMPARE_IMAGES = true
endif
else
# Various non-OPENJDK reasons to NOT build the deploy repository
ifeq ($(ARCH), ia64)
BUILD_DEPLOY=false
endif
ifeq ($(ARCH), sparcv9)
BUILD_DEPLOY=false
endif
ifeq ($(ARCH), amd64)
ifeq ($(PLATFORM), solaris)
BUILD_DEPLOY=false
endif
endif
endif
ifndef SKIP_PRODUCT_BUILD
SKIP_PRODUCT_BUILD = false
endif
# Many reasons why we would want to skip the comparison to previous jdk
ifndef SKIP_COMPARE_IMAGES
ifeq ($(BUILD_JDK), false)
SKIP_COMPARE_IMAGES = true
endif
ifeq ($(BUILD_DEPLOY), false)
SKIP_COMPARE_IMAGES = true
endif
ifeq ($(BUILD_INSTALL), false)
SKIP_COMPARE_IMAGES = true
endif
ifdef DEV_ONLY
SKIP_COMPARE_IMAGES = true
endif
endif
# Select defaults if these are not set to true or false
ifndef SKIP_DEBUG_BUILD
SKIP_DEBUG_BUILD=true
endif
ifndef SKIP_FASTDEBUG_BUILD
SKIP_FASTDEBUG_BUILD=true
endif
# Select javadoc setting GENERATE_DOCS
ifndef NO_DOCS
# Default value (we want javadoc run)
GENERATE_DOCS=true
# No DOCS build when JDK_UPDATE_VERSION set on non-OPENJDK builds
ifndef OPENJDK
ifdef JDK_UPDATE_VERSION
GENERATE_DOCS=false
endif
endif
# If langtools, corba, jaxp, and jaxws are not being built,
# a full jdk javadoc is not possible
ifneq ($(BUILD_LANGTOOLS), true)
GENERATE_DOCS=false
endif
ifneq ($(BUILD_CORBA), true)
GENERATE_DOCS=false
endif
ifneq ($(BUILD_JAXP), true)
GENERATE_DOCS=false
endif
ifneq ($(BUILD_JAXWS), true)
GENERATE_DOCS=false
endif
ifeq ($(GENERATE_DOCS),false)
NO_DOCS=true
endif
else
GENERATE_DOCS=false
endif
# Output directory for hotspot build
HOTSPOT_DIR = $(ABS_OUTPUTDIR)/hotspot
# If we are building components
ifndef ALT_LANGTOOLS_DIST
LANGTOOLS_OUTPUTDIR = $(ABS_OUTPUTDIR)/langtools
ABS_LANGTOOLS_DIST = $(LANGTOOLS_OUTPUTDIR)/dist
endif
ifndef ALT_CORBA_DIST
CORBA_OUTPUTDIR = $(ABS_OUTPUTDIR)/corba
ABS_CORBA_DIST = $(CORBA_OUTPUTDIR)/dist
endif
ifndef ALT_JAXP_DIST
JAXP_OUTPUTDIR = $(ABS_OUTPUTDIR)/jaxp
ABS_JAXP_DIST = $(JAXP_OUTPUTDIR)/dist
endif
ifndef ALT_JAXWS_DIST
JAXWS_OUTPUTDIR = $(ABS_OUTPUTDIR)/jaxws
ABS_JAXWS_DIST = $(JAXWS_OUTPUTDIR)/dist
endif
ifndef ALT_NASHORN_DIST
NASHORN_OUTPUTDIR = $(ABS_OUTPUTDIR)/nashorn
ABS_NASHORN_DIST = $(NASHORN_OUTPUTDIR)/dist
endif
# Common make arguments (supplied to all component builds)
COMMON_BUILD_ARGUMENTS = \
JDK_TOPDIR=$(ABS_JDK_TOPDIR) \
JDK_MAKE_SHARED_DIR=$(ABS_JDK_TOPDIR)/make/common/shared \
EXTERNALSANITYCONTROL=true \
SOURCE_LANGUAGE_VERSION=$(SOURCE_LANGUAGE_VERSION) \
TARGET_CLASS_VERSION=$(TARGET_CLASS_VERSION) \
MILESTONE=$(MILESTONE) \
BUILD_NUMBER=$(BUILD_NUMBER) \
JDK_BUILD_NUMBER=$(JDK_BUILD_NUMBER) \
FULL_VERSION=$(FULL_VERSION) \
PREVIOUS_JDK_VERSION=$(PREVIOUS_JDK_VERSION) \
JDK_VERSION=$(JDK_VERSION) \
JDK_MKTG_VERSION=$(JDK_MKTG_VERSION) \
JDK_MAJOR_VERSION=$(JDK_MAJOR_VERSION) \
JDK_MINOR_VERSION=$(JDK_MINOR_VERSION) \
JDK_MICRO_VERSION=$(JDK_MICRO_VERSION) \
PREVIOUS_MAJOR_VERSION=$(PREVIOUS_MAJOR_VERSION) \
PREVIOUS_MINOR_VERSION=$(PREVIOUS_MINOR_VERSION) \
PREVIOUS_MICRO_VERSION=$(PREVIOUS_MICRO_VERSION)
ifdef OPENJDK
COMMON_BUILD_ARGUMENTS += OPENJDK=$(OPENJDK)
endif
ifdef ARCH_DATA_MODEL
COMMON_BUILD_ARGUMENTS += ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)
endif
ifeq ($(DEBUG_NAME), debug)
COMMON_BUILD_ARGUMENTS += VARIANT=DBG DEBUG_CLASSFILES=true
endif
ifeq ($(DEBUG_NAME), fastdebug)
COMMON_BUILD_ARGUMENTS += VARIANT=DBG FASTDEBUG=true DEBUG_CLASSFILES=true
endif
ifdef COOKED_JDK_UPDATE_VERSION
COMMON_BUILD_ARGUMENTS += COOKED_JDK_UPDATE_VERSION=$(COOKED_JDK_UPDATE_VERSION)
endif
ifdef COOKED_BUILD_NUMBER
COMMON_BUILD_ARGUMENTS += COOKED_BUILD_NUMBER=$(COOKED_BUILD_NUMBER)
endif
ifdef ANT_HOME
COMMON_BUILD_ARGUMENTS += ANT_HOME="$(ANT_HOME)"
endif
# When all repos support FULL_DEBUG_SYMBOLS and ZIP_DEBUGINFO_FILES,
# then these can be set here:
#ifdef FULL_DEBUG_SYMBOLS
# COMMON_BUILD_ARGUMENTS += FULL_DEBUG_SYMBOLS=$(FULL_DEBUG_SYMBOLS)
#endif
#
#ifdef ZIP_DEBUGINFO_FILES
# COMMON_BUILD_ARGUMENTS += ZIP_DEBUGINFO_FILES="$(ZIP_DEBUGINFO_FILES)"
#endif
......@@ -266,7 +266,7 @@ COMMON_JAVADOCFLAGS = \
-use \
-keywords \
-Xdoclint:none \
-Xprofilespath $(JDK_TOPDIR)/makefiles/profile-rtjar-includes.txt \
-Xprofilespath $(JDK_TOPDIR)/make/profile-rtjar-includes.txt \
$(ADDITIONAL_JAVADOCFLAGS)
ifdef OPENJDK
......@@ -1158,6 +1158,28 @@ $(DIRECTORY_CACHE): $(ALL_EXISTING_SOURCE_DIRS)
#############################################################
#release version of core packages ########
# The rel-coredocs and rel-docs targets were added by Eric Armstrong. rel-coredocs
# assumes the kind of large, 32-bit machine used in the javapubs group's docs-release
# process. It specifies memory settings accordingly to maximize performance.
#
# The performance settings, like the sanity check, are most important for the core
# docs--the platform APIs. Running javadoc on those APIs takes a significant amount
# of time and memory. Setting the initial heap size as large as possible is important
# to prevent thrashing as the heap grows. Setting the maximum as large as necessary
# is also important to keep the job from failing.
#
# -J-Xmx512 sets a maximum of 512, which became necessary in 6.0
# -J-Xms256 sets starting size to 256 (default is 8)
#
# rel-coredocs also includes a sanity check to help ensure that BUILD_NUMBER and
# MILESTONE are specified properly when docs are built outside of the normal release
# engineering process, with the intention of releasing them on the web or in a downloaded
# docs bundle. (When invoked in release engineering's control build, the values are always
# set properly. But when the targets are run by themselves, they default to b00 and
# "internal"--which silently sabotage the result of a build that can take many hours
# to complete.
# Maximize performance and ensure that build number & milestone are set.
rel-coredocs: sanitycheckcoredocs
......
......@@ -69,7 +69,7 @@ ifeq ($(SKIP_BOOT_CYCLE),false)
BRIDGE_TARGETS += bootcycle-images
endif
bridgeBuild: bridge2configure
@cd $(root_dir) && $(MAKE) -f NewMakefile.gmk $(BRIDGE_TARGETS)
@cd $(root_dir) && $(MAKE) -f Makefile $(BRIDGE_TARGETS)
# Bridge from old Makefile ALT settings to configure options
bridge2configure: $(BUILD_DIR_ROOT)/.bridge2configureOpts
......
......@@ -29,7 +29,7 @@
include $(SPEC)
# Load the vital tools for all the makefiles.
include $(SRC_ROOT)/common/makefiles/MakeBase.gmk
include $(SRC_ROOT)/make/common/MakeBase.gmk
# Include the corresponding custom file, if present.
-include $(CUSTOM_MAKE_DIR)/Main.gmk
......@@ -81,51 +81,51 @@ start-make: $(SPEC)
langtools: langtools-only
langtools-only: start-make
@$(call TargetEnter)
@($(CD) $(LANGTOOLS_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildLangtools.gmk)
@($(CD) $(LANGTOOLS_TOPDIR)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildLangtools.gmk)
@$(call TargetExit)
corba: langtools corba-only
corba-only: start-make
@$(call TargetEnter)
@($(CD) $(CORBA_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildCorba.gmk)
@($(CD) $(CORBA_TOPDIR)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildCorba.gmk)
@$(call TargetExit)
jaxp: langtools jaxp-only
jaxp-only: start-make
@$(call TargetEnter)
@($(CD) $(JAXP_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJaxp.gmk)
@($(CD) $(JAXP_TOPDIR)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJaxp.gmk)
@$(call TargetExit)
jaxws: langtools jaxp jaxws-only
jaxws-only: start-make
@$(call TargetEnter)
@($(CD) $(JAXWS_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJaxws.gmk)
@($(CD) $(JAXWS_TOPDIR)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJaxws.gmk)
@$(call TargetExit)
ifeq ($(BUILD_HOTSPOT),true)
hotspot: hotspot-only
hotspot-only: start-make
@$(call TargetEnter)
@($(CD) $(SRC_ROOT)/common/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f HotspotWrapper.gmk)
@($(CD) $(SRC_ROOT)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f HotspotWrapper.gmk)
@$(call TargetExit)
endif
jdk: langtools hotspot corba jaxp jaxws jdk-only
jdk-only: start-make
@$(call TargetEnter)
@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk $(JDK_TARGET))
@($(CD) $(JDK_TOPDIR)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk $(JDK_TARGET))
@$(call TargetExit)
nashorn: jdk nashorn-only
nashorn-only: start-make
@$(call TargetEnter)
@($(CD) $(NASHORN_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildNashorn.gmk)
@($(CD) $(NASHORN_TOPDIR)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildNashorn.gmk)
@$(call TargetExit)
demos: jdk demos-only
demos-only: start-make
@$(call TargetEnter)
@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk demos)
@($(CD) $(JDK_TOPDIR)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk demos)
@$(call TargetExit)
# Note: This double-colon rule is intentional, to support
......@@ -133,19 +133,19 @@ demos-only: start-make
images:: source-tips demos nashorn images-only
images-only: start-make
@$(call TargetEnter)
@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk images)
@($(CD) $(JDK_TOPDIR)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk images)
@$(call TargetExit)
overlay-images: source-tips demos overlay-images-only
overlay-images-only: start-make
@$(call TargetEnter)
@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk overlay-images)
@($(CD) $(JDK_TOPDIR)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk overlay-images)
@$(call TargetExit)
profiles: profiles-oscheck source-tips jdk hotspot profiles-only
profiles-only: start-make
@$(call TargetEnter)
@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk profiles)
@($(CD) $(JDK_TOPDIR)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk profiles)
@$(call TargetExit)
profiles-oscheck:
......@@ -156,25 +156,25 @@ profiles-oscheck:
install: images install-only
install-only: start-make
@$(call TargetEnter)
@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk install)
@($(CD) $(JDK_TOPDIR)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk install)
@$(call TargetExit)
docs: jdk docs-only
docs-only: start-make
@$(call TargetEnter)
@($(CD) $(SRC_ROOT)/common/makefiles/javadoc && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk docs)
@($(CD) $(SRC_ROOT)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk docs)
@$(call TargetExit)
sign-jars: jdk sign-jars-only
sign-jars-only: start-make
@$(call TargetEnter)
@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk sign-jars)
@($(CD) $(JDK_TOPDIR)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk sign-jars)
@$(call TargetExit)
bootcycle-images: images bootcycle-images-only
bootcycle-images-only: start-make
@$(ECHO) Boot cycle build step 2: Building a new JDK image using previously built image
@($(CD) $(SRC_ROOT)/common/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) SPEC=$(dir $(SPEC))bootcycle-spec.gmk images)
@($(CD) $(SRC_ROOT) && $(BUILD_LOG_WRAPPER) $(MAKE) SPEC=$(dir $(SPEC))bootcycle-spec.gmk images)
test: images test-only
test-only: start-make
......
README-pre-components:
---------------------
Current pre-components are langtools, jaxws, jaxp, and corba.
Pre-components can use ant to build but must have a make/Makefile for
building (a GNU make Makefile).
All ant knowledge is being isolated in the workspaces that use it.
Also for various reasons it is nice to have a Makefile wrapper over the
running of ant, but in general having to do
anything with shell commands is much easier to do in a Makefile
than in an ant script.
The make/makefile rules are:
Variables:
ALT_BOOTDIR The jdk home to use to build, if provided
ALT_LANGTOOLS_DIST The dist area from a langtools build to use, if provided
ALT_OUTPUTDIR Parent dir of build and dist directories, if provided
VARIANT If DBG, debug build, if OPT, optimized build
TARGET_CLASS_VERSION The classfile version number (currently 7)
ANT_HOME Home of ant to use, if provided
QUIET If defined, be quiet
VERBOSE If defined, be verbose
JDK_VERSION Version being built
FULL_VERSION Full version string for this jdk build
MILESTONE fcs, beta, internal or empty
BUILD_NUMBER Number of the jdk build
JPRT_ARCHIVE_BUNDLE Path to zip bundle to create for JPRT
Targets:
all Build everything, including dist
build Build build area
clean Clean up
clobber Same as clean (don't ask)
sanity Perform any sanity checks, exit non-zero if errors
jprt_build_product JPRT product build, zip results into JPRT_ARCHIVE_BUNDLE
jprt_build_debug JPRT debug build, zip results into JPRT_ARCHIVE_BUNDLE
jprt_build_fastdebug JPRT fastdebug build, zip results into JPRT_ARCHIVE_BUNDLE
Then of course we expect a dist/lib/classes.jar, dist/lib/src.zip and dist/lib/bin.zip.
......@@ -339,7 +339,7 @@ define add_file_to_copy_and_clean
$$($1_BIN)$$($2_TARGET) : $2
$(MKDIR) -p $$(@D)
$(CAT) $$< | $(SED) -e 's/\([^\\]\):/\1\\:/g' -e 's/\([^\\]\)=/\1\\=/g' -e 's/#.*/#/g' \
| $(SED) -f "$(SRC_ROOT)/common/makefiles/support/unicode2x.sed" \
| $(SED) -f "$(SRC_ROOT)/make/common/support/unicode2x.sed" \
| $(SED) -e '/^#/d' -e '/^$$$$/d' \
-e :a -e '/\\$$$$/N; s/\\\n//; ta' \
-e 's/^[ \t]*//;s/[ \t]*$$$$//' \
......
......@@ -38,8 +38,8 @@ _MAKEBASE_GMK := 1
# Then you need to use ListPathsSafely, which optimistically splits the output into several shell
# calls as well as use compression on recurrent file paths segments, to get around the potential
# command line length problem that exists in cygwin and other shells.
compress_pre:=$(strip $(shell $(CAT) $(SRC_ROOT)/common/makefiles/support/ListPathsSafely-pre-compress.incl))
compress_post:=$(strip $(shell $(CAT) $(SRC_ROOT)/common/makefiles/support/ListPathsSafely-post-compress.incl))
compress_pre:=$(strip $(shell $(CAT) $(SRC_ROOT)/make/common/support/ListPathsSafely-pre-compress.incl))
compress_post:=$(strip $(shell $(CAT) $(SRC_ROOT)/make/common/support/ListPathsSafely-post-compress.incl))
compress_paths=$(compress_pre)\
$(subst $(SRC_ROOT),X97,\
$(subst $(OUTPUT_ROOT),X98,\
......@@ -47,7 +47,7 @@ $(subst X,X00,\
$(subst $(SPACE),\n,$(strip $1)))))\
$(compress_post)
decompress_paths=$(SED) -f $(SRC_ROOT)/common/makefiles/support/ListPathsSafely-uncompress.sed -e 's|X99|\\n|g' \
decompress_paths=$(SED) -f $(SRC_ROOT)/make/common/support/ListPathsSafely-uncompress.sed -e 's|X99|\\n|g' \
-e 's|X98|$(OUTPUT_ROOT)|g' -e 's|X97|$(SRC_ROOT)|g' \
-e 's|X00|X|g' | tr '\n' '$2'
......
#
# Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################
# CORBA TARGETS
################################################################
CORBA_BUILD_ARGUMENTS = \
$(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(CORBA_OUTPUTDIR) \
ALT_BOOTDIR=$(BOOTDIR) \
ALT_JDK_IMPORT_PATH=$(JDK_IMPORT_PATH)
ifeq ($(BUILD_LANGTOOLS), true)
CORBA_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
corba: corba-build
corba-build:
$(MKDIR) -p $(CORBA_OUTPUTDIR)
@$(call MakeStart,corba,all)
($(CD) $(CORBA_TOPDIR)/make && \
$(MAKE) $(CORBA_BUILD_ARGUMENTS) all)
@$(call MakeFinish,corba,all)
corba-clobber::
$(MKDIR) -p $(CORBA_OUTPUTDIR)
@$(call MakeStart,corba,clobber)
($(CD) $(CORBA_TOPDIR)/make && \
$(MAKE) $(CORBA_BUILD_ARGUMENTS) clobber)
@$(call MakeFinish,corba,clobber)
.PHONY: corba corba-build corba-clobber
#
# Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################
# DEPLOY TARGETS
################################################################
deploy: deploy-build
DEPLOY = deploy
# put the generated bundles in their own place in OUTPUTDIR
DEPLOY_OUTPUTDIR = $(ABS_OUTPUTDIR)
# NO_IMAGES may be set in conjunction with DEV_ONLY
ifdef NO_IMAGES
IMAGES_TARGET =
else
IMAGES_TARGET = images
endif
DEPLOY_BUILD_TARGETS = sanity deploy
ifneq ($(JQS), off)
ifeq ($(ARCH_DATA_MODEL), 32)
ifeq ($(PLATFORM), windows)
DEPLOY_BUILD_TARGETS += jqs-all
endif
endif
endif
ifndef DEV_ONLY
DEPLOY_BUILD_TARGETS += images
else
DEPLOY_BUILD_TARGETS += $(IMAGES_TARGET)
endif
DEPLOY_BUILD_ARGUMENTS = $(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(DEPLOY_OUTPUTDIR)
ifeq ($(BUILD_LANGTOOLS), true)
DEPLOY_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
ifdef ALT_IMAGE_DIR
DEPLOY_BUILD_ARGUMENTS += ALT_IMAGE_DIR=$(ALT_IMAGE_DIR)
endif
ifdef ALT_BUNDLE_DATE
DEPLOY_BUILD_ARGUMENTS += ALT_BUNDLE_DATE=$(ALT_BUNDLE_DATE)
endif
ifdef ALT_JAVAWS_BOOTDIR
DEPLOY_BUILD_ARGUMENTS += ALT_JAVAWS_BOOTDIR=$(ALT_JAVAWS_BOOTDIR)
endif
ifdef CERT
DEPLOY_BUILD_ARGUMENTS += CERT=$(CERT)
endif
ifdef PKEY
DEPLOY_BUILD_ARGUMENTS += PKEY=$(PKEY)
endif
deploy-build:
ifeq ($(BUILD_DEPLOY), true)
@$(call MakeStart,deploy,$(DEPLOY_BUILD_TARGETS))
($(CD) $(DEPLOY_TOPDIR)/make && \
$(MAKE) $(DEPLOY_BUILD_TARGETS) $(DEPLOY_BUILD_ARGUMENTS))
@$(call MakeFinish,deploy,$(DEPLOY_BUILD_TARGETS))
endif
deploy-clobber::
ifeq ($(BUILD_DEPLOY), true)
@$(call MakeStart,deploy,clobber)
($(CD) $(DEPLOY_TOPDIR)/make && \
$(MAKE) clobber $(DEPLOY_BUILD_ARGUMENTS))
@$(call MakeFinish,deploy,clobber)
endif
deploy-sanity::
ifeq ($(BUILD_DEPLOY), true)
($(CD) $(DEPLOY_TOPDIR)/make && \
$(MAKE) sanity $(DEPLOY_BUILD_ARGUMENTS))
endif
.PHONY: deploy deploy-build deploy-clobber deploy-sanity
#
# Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################
# HOTSPOT TARGETS
################################################################
# All the output from a hotspot build should be re-located to the
# build output area.
#
HOTSPOT_OUTPUTDIR = $(HOTSPOT_DIR)/outputdir
# HOTSPOT_EXPORT_PATH points to a dir that contains files
# that are needed in an SDK build, in the same relative positions as
# these files are in an SDK image.
# The SDK java/redist/Makefile will copy files from HOTSPOT_EXPORT_PATH
# into the SDK being built.
# This is the export path supplied to the hotspot makefiles.
#
HOTSPOT_EXPORT_PATH = $(HOTSPOT_DIR)/import
# Default targets
HOTSPOT = hotspot-sanity hotspot-build
hotspot:: $(HOTSPOT)
# Hotspot clobber removes the output directory and exported files
hotspot-clobber::
$(RM) -r $(HOTSPOT_OUTPUTDIR)
$(RM) -r $(HOTSPOT_EXPORT_PATH)
hotspot-sanity::
@$(MKDIR) -p $(HOTSPOT_OUTPUTDIR)
@$(MKDIR) -p $(HOTSPOT_EXPORT_PATH)
@$(ECHO) "Hotspot Settings: \n" \
" HOTSPOT_BUILD_JOBS = $(HOTSPOT_BUILD_JOBS) \n" \
" HOTSPOT_OUTPUTDIR = $(HOTSPOT_OUTPUTDIR) \n" \
" HOTSPOT_EXPORT_PATH = $(HOTSPOT_EXPORT_PATH) \n" \
"\n" >> $(MESSAGE_FILE)
#
# Basic hotspot build and export of it's files
#
HOTSPOT_TARGET = all_product
ifeq ($(DEBUG_NAME), debug)
HOTSPOT_TARGET = all_debug
endif
ifeq ($(DEBUG_NAME), fastdebug)
HOTSPOT_TARGET = all_fastdebug
endif
BUILD_FLAVOR=$(HOTSPOT_TARGET:all_%=%)
ifeq ($(ZERO_BUILD), true)
ifeq ($(SHARK_BUILD), true)
HOTSPOT_TARGET := $(HOTSPOT_TARGET)shark
else
HOTSPOT_TARGET := $(HOTSPOT_TARGET)zero
endif
endif
HOTSPOT_BUILD_ARGUMENTS += $(COMMON_BUILD_ARGUMENTS)
HOTSPOT_BUILD_ARGUMENTS += ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR)
HOTSPOT_BUILD_ARGUMENTS += ALT_EXPORT_PATH=$(HOTSPOT_EXPORT_PATH)
HOTSPOT_BUILD_ARGUMENTS += BUILD_FLAVOR=$(BUILD_FLAVOR)
# Why do these need to be passed in? Because of windows nmake? and MAKEFLAGS=?
# Or is there something wrong with hotspot/make/Makefile?
HOTSPOT_BUILD_ARGUMENTS += ALT_SLASH_JAVA=$(SLASH_JAVA)
HOTSPOT_BUILD_ARGUMENTS += ALT_BOOTDIR=$(BOOTDIR)
ifeq ($(BUILD_LANGTOOLS), true)
HOTSPOT_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
# Move to COMMON_BUILD_ARGUMENTS when all repos support
# FULL_DEBUG_SYMBOLS and ZIP_DEBUGINFO_FILES:
ifdef FULL_DEBUG_SYMBOLS
HOTSPOT_BUILD_ARGUMENTS += FULL_DEBUG_SYMBOLS=$(FULL_DEBUG_SYMBOLS)
endif
ifdef ZIP_DEBUGINFO_FILES
HOTSPOT_BUILD_ARGUMENTS += ZIP_DEBUGINFO_FILES="$(ZIP_DEBUGINFO_FILES)"
endif
hotspot-build::
$(MKDIR) -p $(HOTSPOT_OUTPUTDIR)
$(MKDIR) -p $(HOTSPOT_EXPORT_PATH)
@$(call MakeStart,hotspot,$(HOTSPOT_TARGET))
$(CD) $(HOTSPOT_TOPDIR)/make && \
$(MAKE) $(HOTSPOT_BUILD_ARGUMENTS) $(HOTSPOT_TARGET)
@$(call MakeFinish,hotspot,$(HOTSPOT_TARGET))
#####################
# .PHONY
#####################
.PHONY: hotspot-build hotspot-clobber hotspot-sanity
#
# Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################
# INSTALL TARGETS
################################################################
install: install-build
# The generated java files are generated as a set, so instead of
# setting the INSTALL variable to that list of files, set it to
# the .PHONY target that generates the set of files.
INSTALL = install
# put the generated patch in their own place in OUTPUTDIR
INSTALL_OUTPUTDIR = $(ABS_OUTPUTDIR)
INSTALL_DEBUG_NAME=fastdebug
INSTALL_BUILD_TARGETS = sanity all
INSTALL_BUILD_ARGUMENTS = $(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(INSTALL_OUTPUTDIR) \
ALT_RTPATCH_DIR=$(ALT_RTPATCH_DIR) \
ALT_BASE_IMAGE_ZIP=$(ALT_BASE_IMAGE_ZIP) \
ALT_BASE_IMAGE_DIR=$(ALT_BASE_IMAGE_DIR) \
ALT_NEW_IMAGE_DIR=$(ALT_NEW_IMAGE_DIR) \
ALT_BUNDLE_DATE=$(BUNDLE_DATE) \
INSTALL_DEBUG_NAME=$(INSTALL_DEBUG_NAME)
ifeq ($(BUILD_LANGTOOLS), true)
INSTALL_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
install: install-build
install-build:
ifeq ($(BUILD_INSTALL), true)
@$(call MakeStart,install,$(INSTALL_BUILD_TARGETS))
($(CD) $(INSTALL_TOPDIR)/make && \
$(MAKE) $(INSTALL_BUILD_TARGETS) $(INSTALL_BUILD_ARGUMENTS))
@$(call MakeFinish,install,$(INSTALL_BUILD_TARGETS))
endif
update-patcher:
ifeq ($(BUILD_INSTALL), true)
if [ -r $(INSTALL_TOPDIR)/make/update/Makefile ]; then \
$(call MakeStart,install_update,all); \
( $(CD) $(INSTALL_TOPDIR)/make/update && \
$(MAKE) all $(INSTALL_BUILD_ARGUMENTS) ); \
$(call MakeFinish,install_update,all); \
fi
endif
update-patchgen:
ifeq ($(BUILD_INSTALL), true)
if [ -r $(INSTALL_TOPDIR)/make/update/Makefile ]; then \
$(call MakeStart,install_update,patchgen); \
( $(CD) $(INSTALL_TOPDIR)/make/update && \
$(MAKE) patchgen $(INSTALL_BUILD_ARGUMENTS) ); \
$(call MakeFinish,install_update,patchgen); \
fi
endif
installer:
ifeq ($(BUILD_INSTALL), true)
if [ -r $(INSTALL_TOPDIR)/make/installer/Makefile ]; then \
$(call MakeStart,install_installer,all); \
( $(CD) $(INSTALL_TOPDIR)/make/installer && \
$(MAKE) all $(INSTALL_BUILD_ARGUMENTS) ); \
$(call MakeFinish,install_installer,all); \
fi
endif
combo_build:
@$(ECHO) $@ installer combo build started: `$(DATE) '+%y-%m-%d %H:%M'`
$(CD) $(INSTALL_TOPDIR)/make/installer/bundles/windows/ishield/wrapper/wrapper.jreboth ; $(MAKE) all
$(CD) $(INSTALL_TOPDIR)/make/installer/bundles/windows/ishield/jre ; $(MAKE) au_combo
$(CD) $(INSTALL_TOPDIR)/make/installer/bundles/windows/xmlinffile ; $(MAKE) all
install-clobber:
ifeq ($(BUILD_INSTALL), true)
@$(call MakeStart,install,clobber)
($(CD) $(INSTALL_TOPDIR)/make && \
$(MAKE) clobber $(INSTALL_BUILD_ARGUMENTS))
@$(call MakeFinish,install,clobber)
endif
install-sanity::
ifeq ($(BUILD_INSTALL), true)
($(CD) $(INSTALL_TOPDIR)/make && \
$(MAKE) sanity $(INSTALL_BUILD_ARGUMENTS))
endif
######################################
# Rules for making the install
######################################
.PHONY: install install-build install-clobber install-sanity \
update-installer update-patchgen installer
#
# Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################
# JAXP TARGETS
################################################################
JAXP_BUILD_ARGUMENTS = \
$(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(JAXP_OUTPUTDIR) \
ALT_BOOTDIR=$(BOOTDIR) \
ALT_JDK_IMPORT_PATH=$(JDK_IMPORT_PATH)
ifeq ($(BUILD_LANGTOOLS), true)
JAXP_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
jaxp: jaxp-build
jaxp-build:
$(MKDIR) -p $(JAXP_OUTPUTDIR)
@$(call MakeStart,jaxp,all)
($(CD) $(JAXP_TOPDIR)/make && \
$(MAKE) $(JAXP_BUILD_ARGUMENTS) all)
@$(call MakeFinish,jaxp,all)
jaxp-clobber::
$(MKDIR) -p $(JAXP_OUTPUTDIR)
@$(call MakeStart,jaxp,clobber)
($(CD) $(JAXP_TOPDIR)/make && \
$(MAKE) $(JAXP_BUILD_ARGUMENTS) clobber)
@$(call MakeFinish,jaxp,clobber)
.PHONY: jaxp jaxp-build jaxp-clobber
#
# Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################
# JAXWS TARGETS
################################################################
JAXWS_BUILD_ARGUMENTS = \
$(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(JAXWS_OUTPUTDIR) \
ALT_BOOTDIR=$(BOOTDIR) \
ALT_JDK_IMPORT_PATH=$(JDK_IMPORT_PATH)
ifeq ($(BUILD_LANGTOOLS), true)
JAXWS_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
jaxws: jaxws-build
jaxws-build:
$(MKDIR) -p $(JAXWS_OUTPUTDIR)
@$(call MakeStart,jaxws,all)
($(CD) $(JAXWS_TOPDIR)/make && \
$(MAKE) $(JAXWS_BUILD_ARGUMENTS) all)
@$(call MakeFinish,jaxws,all)
jaxws-clobber::
$(MKDIR) -p $(JAXWS_OUTPUTDIR)
@$(call MakeStart,jaxws,clobber)
($(CD) $(JAXWS_TOPDIR)/make && \
$(MAKE) $(JAXWS_BUILD_ARGUMENTS) clobber)
@$(call MakeFinish,jaxws,clobber)
.PHONY: jaxws jaxws-build jaxws-clobber
#
# Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################
# JDK TARGETS
################################################################
JDK_JAVA_EXE = $(OUTPUTDIR)/bin/java$(EXE_SUFFIX)
# NO_IMAGES may be set in conjunction with DEV_ONLY
IMAGES_TARGET = images
ifdef DEV_ONLY
ifdef NO_IMAGES
IMAGES_TARGET =
endif
endif
# GENERATE_DOCS determines if we ask for the docs target
DOCS_TARGET = docs
ifeq ($(GENERATE_DOCS),false)
DOCS_TARGET =
endif
JDK_BUILD_TARGETS = sanity all $(DOCS_TARGET) $(IMAGES_TARGET)
JDK_CLOBBER_TARGETS = clobber
JDK_BUILD_ARGUMENTS = $(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)
ifeq ($(BUILD_LANGTOOLS), true)
JDK_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
ifeq ($(BUILD_CORBA), true)
JDK_BUILD_ARGUMENTS += ALT_CORBA_DIST=$(ABS_CORBA_DIST)
endif
ifeq ($(BUILD_JAXP), true)
JDK_BUILD_ARGUMENTS += ALT_JAXP_DIST=$(ABS_JAXP_DIST)
endif
ifeq ($(BUILD_JAXWS), true)
JDK_BUILD_ARGUMENTS += ALT_JAXWS_DIST=$(ABS_JAXWS_DIST)
endif
ifeq ($(BUILD_NASHORN), true)
JDK_BUILD_ARGUMENTS += ALT_NASHORN_DIST=$(ABS_NASHORN_DIST)
endif
ifeq ($(BUILD_HOTSPOT), true)
JDK_BUILD_ARGUMENTS += ALT_HOTSPOT_IMPORT_PATH=$(HOTSPOT_DIR)/import
endif
JDK_BUILD_ARGUMENTS += \
BUILD_HOTSPOT=$(BUILD_HOTSPOT)
# Move to COMMON_BUILD_ARGUMENTS when all repos support
# FULL_DEBUG_SYMBOLS and ZIP_DEBUGINFO_FILES:
ifdef FULL_DEBUG_SYMBOLS
JDK_BUILD_ARGUMENTS += FULL_DEBUG_SYMBOLS=$(FULL_DEBUG_SYMBOLS)
endif
ifdef ZIP_DEBUGINFO_FILES
JDK_BUILD_ARGUMENTS += ZIP_DEBUGINFO_FILES="$(ZIP_DEBUGINFO_FILES)"
endif
$(JDK_JAVA_EXE):: jdk-build
jdk: jdk-build
jdk-build:
@$(call MakeStart,jdk,$(JDK_BUILD_TARGETS))
( $(CD) $(JDK_TOPDIR)/make && \
$(MAKE) $(JDK_BUILD_TARGETS) $(JDK_BUILD_ARGUMENTS) ; )
@$(call MakeFinish,jdk,$(JDK_BUILD_TARGETS))
jdk-clobber::
@$(call MakeStart,jdk,$(JDK_CLOBBER_TARGETS))
( $(CD) $(JDK_TOPDIR)/make && \
$(MAKE) $(JDK_CLOBBER_TARGETS) $(JDK_BUILD_ARGUMENTS) ; )
@$(call MakeFinish,jdk,$(JDK_CLOBBER_TARGETS))
jdk-sanity::
( $(CD) $(JDK_TOPDIR)/make && \
$(MAKE) sanity HOTSPOT_IMPORT_CHECK=false $(JDK_BUILD_ARGUMENTS) ; )
compare-images: compare-image
compare-image:
@$(call MakeStart,jdk,compare-image)
( $(CD) $(JDK_TOPDIR)/make && \
$(MAKE) ALT_OUTPUTDIR=$(ABS_OUTPUTDIR) compare-image )
@$(call MakeFinish,jdk,compare-image)
compare-images-clobber: compare-image-clobber
compare-image-clobber:
@$(call MakeStart,jdk,compare-image-clobber)
( $(CD) $(JDK_TOPDIR)/make && \
$(MAKE) ALT_OUTPUTDIR=$(ABS_OUTPUTDIR) compare-image-clobber )
@$(call MakeFinish,jdk,compare-image-clobber)
.PHONY: jdk jdk-build jdk-clobber jdk-sanity
#
# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################
# JPRT rule to build
################################################################
# To get all the bundles from JPRT, use:
# jprt submit -buildenv HAVE_JPRT_SAVE_BUNDLES=true -control "..." ...
DEFAULT_BUILD_FLAVOR=product
# JPRT will define these when it builds
JPRT_ARCHIVE_BUNDLE=$(ABS_OUTPUTDIR)/$(DEFAULT_BUILD_FLAVOR)-bundle.zip
JPRT_ARCHIVE_INSTALL_BUNDLE=$(ABS_OUTPUTDIR)/$(DEFAULT_BUILD_FLAVOR)-install-bundle.zip
ifeq ($(PLATFORM),windows)
ZIPFLAGS=-q
else
# store symbolic links as the link
ZIPFLAGS=-q -y
endif
jprt_build_product: sanity all_product_build
( $(CD) $(OUTPUTDIR)/$(JDK_IMAGE_DIRNAME) && \
$(ZIPEXE) $(ZIPFLAGS) -r $(JPRT_ARCHIVE_BUNDLE) . )
ifdef HAVE_JPRT_SAVE_BUNDLES
( $(CD) $(OUTPUTDIR)/bundles && \
$(ZIPEXE) $(ZIPFLAGS) -r $(JPRT_ARCHIVE_INSTALL_BUNDLE) . )
endif
jprt_build_fastdebug: fastdebug_build
( $(CD) $(OUTPUTDIR)/$(REL_JDK_FASTDEBUG_IMAGE_DIR) && \
$(ZIPEXE) $(ZIPFLAGS) -r $(JPRT_ARCHIVE_BUNDLE) . )
jprt_build_debug: debug_build
( $(CD) $(OUTPUTDIR)/$(REL_JDK_DEBUG_IMAGE_DIR) && \
$(ZIPEXE) $(ZIPFLAGS) -r $(JPRT_ARCHIVE_BUNDLE) . )
################################################################
# PHONY
################################################################
.PHONY: jprt_build_product jprt_build_fastdebug jprt_build_debug
#
# Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################
# LANGTOOLS TARGETS
################################################################
LANGTOOLS_BUILD_ARGUMENTS = \
$(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(LANGTOOLS_OUTPUTDIR) \
ALT_BOOTDIR=$(BOOTDIR)
langtools: langtools-build
langtools-build:
$(MKDIR) -p $(LANGTOOLS_OUTPUTDIR)
@$(call MakeStart,langtools,all)
($(CD) $(LANGTOOLS_TOPDIR)/make && \
$(MAKE) $(LANGTOOLS_BUILD_ARGUMENTS) all)
@$(call MakeFinish,langtools,all)
langtools-clobber::
$(MKDIR) -p $(LANGTOOLS_OUTPUTDIR)
@$(call MakeStart,langtools,clobber)
($(CD) $(LANGTOOLS_TOPDIR)/make && \
$(MAKE) $(LANGTOOLS_BUILD_ARGUMENTS) clobber)
@$(call MakeFinish,langtools,clobber)
.PHONY: langtools langtools-build langtools-clobber
#
# Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################
# NASHORN TARGETS
################################################################
NASHORN_BUILD_ARGUMENTS = \
$(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(NASHORN_OUTPUTDIR) \
ALT_BOOTDIR=$(BOOTDIR) \
ALT_JDK_IMPORT_PATH=$(JDK_IMPORT_PATH)
ifeq ($(BUILD_LANGTOOLS), true)
NASHORN_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
# Default targets
NASHORN = nashorn-build
nashorn: nashorn-build
nashorn-build:
$(MKDIR) -p $(NASHORN_OUTPUTDIR)
@$(call MakeStart,nashorn,all)
($(CD) $(NASHORN_TOPDIR)/make && \
$(MAKE) $(NASHORN_BUILD_ARGUMENTS) all)
@$(call MakeFinish,nashorn,all)
nashorn-clobber::
$(MKDIR) -p $(NASHORN_OUTPUTDIR)
@$(call MakeStart,nashorn,clobber)
($(CD) $(NASHORN_TOPDIR)/make && \
$(MAKE) $(NASHORN_BUILD_ARGUMENTS) clobber)
@$(call MakeFinish,nashorn,clobber)
.PHONY: nashorn nashorn-build nashorn-clobber
#
# Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################
# SANITY
################################################################
sanity:: pre-sanity settings insane environment
ifeq ($(BUILD_HOTSPOT), true)
sanity:: hotspot-sanity
endif
ifeq ($(BUILD_DEPLOY), true)
sanity:: deploy-sanity
endif
ifeq ($(BUILD_JDK), true)
sanity:: jdk-sanity
endif
# Only need these sanity rules when not doing a debug build
ifeq ($(DEBUG_NAME),)
ifeq ($(BUILD_INSTALL), true)
sanity:: install-sanity
endif
ifeq ($(BUILD_SPONSORS), true)
sanity:: sponsors-sanity
endif
endif
sanity:: post-sanity
source-sanity : pre-sanity post-sanity
$(ERROR_FILE) $(WARNING_FILE) $(MESSAGE_FILE):
@$(prep-target)
purge-sanity: $(ERROR_FILE) $(WARNING_FILE) $(MESSAGE_FILE)
-@$(RM) $(ERROR_FILE) $(WARNING_FILE) $(MESSAGE_FILE)
pre-sanity: purge-sanity
# this should be the last rule in any target's sanity rule.
post-sanity post-sanity-hotspot post-sanity-jdk post-sanity-install post-sanity-deploy:
@if [ -r $(MESSAGE_FILE) ]; then \
$(ECHO) "" ; \
$(CAT) $(MESSAGE_FILE) ; \
fi
@if [ -r $(WARNING_FILE) ]; then \
$(CAT) $(WARNING_FILE) ; \
fi
@if [ "x$(INSANE)" != x ]; then \
$(ECHO) "INSANE mode requested. \n" \
"Sanity will not force a build termination, even with errors.\n" \
"" >> $(ERROR_FILE); \
fi
@if [ -r $(ERROR_FILE) ]; then \
if [ "x$(INSANE)" = x ]; then \
$(ECHO) "Exiting because of the above error(s). \n" \
"">> $(ERROR_FILE); \
fi ; \
$(CAT) $(ERROR_FILE) ; \
if [ "x$(INSANE)" = x ]; then \
exit 1 ; \
fi ; \
fi
ifdef PEDANTIC
@if [ -r $(WARNING_FILE) ]; then \
$(ECHO) "PEDANTIC mode requested. \n" \
"Exiting because of the above warning(s). \n" \
"" >> $(ERROR_FILE); \
$(CAT) $(ERROR_FILE) ; \
exit 1 ; \
fi
endif
@if [ ! -r $(ERROR_FILE) ]; then \
$(ECHO) "Sanity check passed." ; \
fi
insane:
ifdef INSANE
@$(ECHO) "WARNING: You are building in 'INSANE' mode. You \n" \
" should not use this mode, and in fact, \n" \
" it may be removed at any time. If you \n" \
" have build problems as a result of using \n" \
" INSANE mode, then you should not expect \n" \
" assistance from anyone with the problems \n" \
" or consequences you experience. \n" \
"" >> $(WARNING_FILE)
endif
# Get list of environment variables set that we do not want set
ifdef ALT_HOTSPOT_SERVER_PATH
DO_NOT_SET_LIST += ALT_HOTSPOT_SERVER_PATH
endif
ifdef ALT_HOTSPOT_CLIENT_PATH
DO_NOT_SET_LIST += ALT_HOTSPOT_CLIENT_PATH
endif
ifdef ALT_HOTSPOT_LIB_PATH
DO_NOT_SET_LIST += ALT_HOTSPOT_LIB_PATH
endif
# Error message for environment variable set that should not be
%.do_not_set:
@$(ECHO) "ERROR: Your build environment has the variable\n" \
" $* defined. Please unset it and restart your build. \n" \
"" >> $(ERROR_FILE)
# Check the environment variables
environment: $(DO_NOT_SET_LIST:%=%.do_not_set)
ifeq ($(LANGTOOLS_SRC_AVAILABLE), true)
ifneq ($(BUILD_LANGTOOLS), true)
@$(ECHO) "WARNING: You are not building the LANGTOOLS sources.\n" \
" Lang tools (javac) will be obtained from \n" \
" the location set in ALT_JDK_IMPORT_PATH. \n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(JAXP_SRC_AVAILABLE), true)
ifneq ($(BUILD_JAXP), true)
@$(ECHO) "WARNING: You are not building the JAXP sources.\n" \
" The jaxp files will be obtained from \n" \
" the location set in ALT_JDK_IMPORT_PATH. \n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(JAXWS_SRC_AVAILABLE), true)
ifneq ($(BUILD_JAXWS), true)
@$(ECHO) "WARNING: You are not building the JAXWS sources.\n" \
" The jaxws files will be obtained from \n" \
" the location set in ALT_JDK_IMPORT_PATH. \n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(CORBA_SRC_AVAILABLE), true)
ifneq ($(BUILD_CORBA), true)
@$(ECHO) "WARNING: You are not building the CORBA sources.\n" \
" The corba files will be obtained from \n" \
" the location set in ALT_JDK_IMPORT_PATH. \n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(HOTSPOT_SRC_AVAILABLE), true)
ifneq ($(BUILD_HOTSPOT), true)
@$(ECHO) "WARNING: You are not building the HOTSPOT sources.\n" \
" Hotspot libs will be obtained from \n" \
" the location set in ALT_HOTSPOT_IMPORT_PATH. \n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(JDK_SRC_AVAILABLE), true)
ifneq ($(BUILD_JDK), true)
@$(ECHO) "WARNING: You are not building the JDK sources.\n" \
" This will result in a development-only\n" \
" build of the JDK , lacking the jdk binaries.\n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(NASHORN_SRC_AVAILABLE), true)
ifneq ($(BUILD_NASHORN), true)
@$(ECHO) "WARNING: You are not building the NASHORN sources.\n" \
" The nashorn files will be obtained from \n" \
" the location set in ALT_JDK_IMPORT_PATH. \n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(DEPLOY_SRC_AVAILABLE), true)
ifneq ($(BUILD_DEPLOY), true)
@$(ECHO) "WARNING: You are not building the DEPLOY sources.\n" \
" This will result in a development-only\n" \
" build of the JDK, lacking the plugin and javaws binaries.\n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(INSTALL_SRC_AVAILABLE), true)
ifneq ($(BUILD_INSTALL), true)
@$(ECHO) "WARNING: You are not building the INSTALL sources.\n" \
" This will result in a development-only\n" \
" build of the JDK, lacking the installation bundles\n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(SPONSORS_SRC_AVAILABLE), true)
ifneq ($(BUILD_SPONSORS), true)
@$(ECHO) "WARNING: You are not building the SPONSORS sources.\n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(GENERATE_DOCS),false)
@$(ECHO) "WARNING: This build does not include generating javadoc.\n" \
"" >> $(WARNING_FILE)
endif
ifdef NO_DEMOS
@$(ECHO) "WARNING: This build and any install images will not include demos.\n" \
"" >> $(WARNING_FILE)
endif
ifdef NO_SAMPLES
@$(ECHO) "WARNING: This build and any install images will not include samples.\n" \
"" >> $(WARNING_FILE)
endif
ifdef NO_IMAGES
@$(ECHO) "WARNING: Your build environment has the variable NO_IMAGES\n" \
" defined. This will result in a development-only\n" \
" build of the JDK, lacking the install images\n" \
" and bundles.\n" \
"" >> $(WARNING_FILE)
endif
ifdef DEV_ONLY
@$(ECHO) "WARNING: Your build environment has the variable DEV_ONLY\n" \
" defined. This will result in a development-only\n" \
" build of the JDK, lacking the documentation\n" \
" build and installation bundles.\n" \
"" >> $(WARNING_FILE)
endif
######################################################
# dump out the variable settings...
######################################################
ifneq ($(PLATFORM), windows)
ifndef HOSTNAME
HOSTNAME := $(shell hostname)
endif
endif
settings::
@$(ECHO) "Build Machine Information:" >> $(MESSAGE_FILE)
ifeq ($(PLATFORM), windows)
@$(ECHO) " build machine = $(COMPUTERNAME)" >> $(MESSAGE_FILE)
else
@$(ECHO) " build machine = $(HOSTNAME)" >> $(MESSAGE_FILE)
endif
@$(ECHO) "" >> $(MESSAGE_FILE)
@$(ECHO) "Build Directory Structure:" >> $(MESSAGE_FILE)
@$(ECHO) " CWD = `$(PWD)`" >> $(MESSAGE_FILE)
@$(ECHO) " TOPDIR = $(TOPDIR)" >> $(MESSAGE_FILE)
ifeq ($(LANGTOOLS_SRC_AVAILABLE), true)
@$(ECHO) " LANGTOOLS_TOPDIR = $(LANGTOOLS_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(JAXP_SRC_AVAILABLE), true)
@$(ECHO) " JAXP_TOPDIR = $(JAXP_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(JAXWS_SRC_AVAILABLE), true)
@$(ECHO) " JAXWS_TOPDIR = $(JAXWS_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(CORBA_SRC_AVAILABLE), true)
@$(ECHO) " CORBA_TOPDIR = $(CORBA_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(HOTSPOT_SRC_AVAILABLE), true)
@$(ECHO) " HOTSPOT_TOPDIR = $(HOTSPOT_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(JDK_SRC_AVAILABLE), true)
@$(ECHO) " JDK_TOPDIR = $(JDK_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(NASHORN_SRC_AVAILABLE), true)
@$(ECHO) " NASHORN_TOPDIR = $(NASHORN_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(DEPLOY_SRC_AVAILABLE), true)
@$(ECHO) " DEPLOY_TOPDIR = $(DEPLOY_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(INSTALL_SRC_AVAILABLE), true)
@$(ECHO) " INSTALL_TOPDIR = $(INSTALL_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(SPONSORS_SRC_AVAILABLE), true)
@$(ECHO) " SPONSORS_TOPDIR = $(SPONSORS_TOPDIR)" >> $(MESSAGE_FILE)
endif
@$(ECHO) "" >> $(MESSAGE_FILE)
ifneq ($(SKIP_COMPARE_IMAGES), true)
@$(ECHO) "External File/Binary Locations:" >> $(MESSAGE_FILE)
@$(ECHO) " PREVIOUS_JRE_BUNDLE = $(PREVIOUS_JRE_BUNDLE) " >> $(MESSAGE_FILE)
@$(ECHO) " PREVIOUS_JDK_BUNDLE = $(PREVIOUS_JDK_BUNDLE) " >> $(MESSAGE_FILE)
@$(ECHO) "" >> $(MESSAGE_FILE)
endif
@$(ECHO) "Build Directives:" >> $(MESSAGE_FILE)
ifeq ($(LANGTOOLS_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_LANGTOOLS = $(BUILD_LANGTOOLS) " >> $(MESSAGE_FILE)
endif
ifeq ($(JAXP_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_JAXP = $(BUILD_JAXP) " >> $(MESSAGE_FILE)
endif
ifeq ($(JAXWS_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_JAXWS = $(BUILD_JAXWS) " >> $(MESSAGE_FILE)
endif
ifeq ($(CORBA_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_CORBA = $(BUILD_CORBA) " >> $(MESSAGE_FILE)
endif
ifeq ($(HOTSPOT_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_HOTSPOT = $(BUILD_HOTSPOT) " >> $(MESSAGE_FILE)
endif
ifeq ($(JDK_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_JDK = $(BUILD_JDK) " >> $(MESSAGE_FILE)
endif
ifeq ($(NASHORN_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_NASHORN = $(BUILD_NASHORN) " >> $(MESSAGE_FILE)
endif
ifeq ($(DEPLOY_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_DEPLOY = $(BUILD_DEPLOY) " >> $(MESSAGE_FILE)
endif
ifeq ($(INSTALL_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_INSTALL = $(BUILD_INSTALL) " >> $(MESSAGE_FILE)
endif
ifeq ($(SPONSORS_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_SPONSORS = $(BUILD_SPONSORS) " >> $(MESSAGE_FILE)
endif
@$(ECHO) " DEBUG_CLASSFILES = $(DEBUG_CLASSFILES) " >> $(MESSAGE_FILE)
@$(ECHO) " DEBUG_BINARIES = $(DEBUG_BINARIES) " >> $(MESSAGE_FILE)
@$(ECHO) "" >> $(MESSAGE_FILE)
.PHONY: sanity settings pre-sanity insane \
post-sanity post-sanity-hotspot post-sanity-jdk \
post-sanity-install post-sanity-deploy \
environment
#!/bin/perl
#
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# Crunch down the input(s) to Windows short (mangled) form.
# Any elements not actually found in the filesystem will be dropped.
#
# This script needs three modes:
# 1) DOS mode with drive letter followed by : and ; path separator
# 2) Cygwin mode with /cygdrive/<drive letter>/ and : path separator
# 3) MinGW/MSYS mode with /<drive letter>/ and : path separator
use strict;
use warnings;
use Getopt::Std;
sub Usage() {
print ("Usage:\n $0 -d | -c | -m \<PATH\>\n");
print (" -d DOS style (drive letter, :, and ; path separator)\n");
print (" -c Cywgin style (/cygdrive/drive/ and : path separator)\n");
print (" -m MinGW style (/drive/ and : path separator)\n");
exit 1;
}
# Process command line options:
my %opts;
getopts('dcm', \%opts) || Usage();
if (scalar(@ARGV) != 1) {Usage()};
# Translate drive letters such as C:/
# if MSDOS, Win32::GetShortPathName() does the work (see below).
# if Cygwin, use the /cygdrive/c/ form.
# if MinGW, use the /c/ form.
my $path0;
my $sep2;
if (defined ($opts{'d'})) {
#MSDOS
$path0 = '';
$sep2 = ';';
} elsif (defined ($opts{'c'})) {
#Cygwin
$path0 = '/cygdrive';
$sep2 = ':';
} elsif (defined ($opts{'m'})) {
#MinGW/MSYS
$path0 = '';
$sep2 = ':';
} else {
Usage();
}
my $input = $ARGV[0];
my $sep1;
# Is the input ';' separated, or ':' separated, or a simple string?
if (($input =~ tr/;/;/) > 0) {
# One or more ';' implies Windows style path.
$sep1 = ';';
} elsif (($input =~ tr/:/:/) > 1) {
# Two or more ':' implies Cygwin or MinGW/MSYS style path.
$sep1 = ':';
} else {
# Otherwise, this is not a path - take up to the end of string in
# one piece.
$sep1 = '/$/';
}
# Split the input on $sep1 PATH separator and process the pieces.
my @pieces;
for (split($sep1, $input)) {
my $try = $_;
if (($try =~ /^\/cygdrive\/(.)\/(.*)$/) || ($try =~ /^\/(.)\/(.*)$/)) {
# Special case #1: This is a Cygwin /cygrive/<drive letter/ path.
# Special case #2: This is a MinGW/MSYS /<drive letter/ path.
$try = $1.':/'.$2;
} elsif ($try =~ /^\/(.*)$/) {
# Special case #3: check for a Cygwin or MinGW/MSYS form with a
# leading '/' for example '/usr/bin/bash'.
# Look up where this is mounted and rebuild the
# $try string with that information
my $cmd = "df --portability --all --human-readable $try";
my $line = qx ($cmd);
my $status = $?;
if ($status == 0) {
my @lines = split ('\n', $line);
my ($device, $junk, $mountpoint);
# $lines[0] is the df header.
# Example string for split - we want the first and last elements:
# C:\jprt\products\P1\MinGW\msys\1.0 200G 78G 123G 39% /usr
($device, $junk, $junk, $junk, $junk, $mountpoint) = split (/\s+/, $lines[1]);
# Replace $mountpoint with $device/ in the original string
$try =~ s|$mountpoint|$device/|;
} else {
printf ("Error %d from command %s\n%s\n", $status, $cmd, $line);
}
}
my $str = Win32::GetShortPathName($try);
if (!defined($str)){
# Special case #4: If the lookup did not work, loop through
# adding extensions listed in PATHEXT, looking for the first
# match.
for (split(';', $ENV{'PATHEXT'})) {
$str = Win32::GetShortPathName($try.$_);
if (defined($str)) {
last;
}
}
}
if (defined($str)){
if (!defined($opts{'d'})) {
# If not MSDOS, change C: to [/cygdrive]/c/
if ($str =~ /^(\S):(.*)$/) {
my $path1 = $1;
my $path2 = $2;
$str = $path0 . '/' . $path1 . '/' . $path2;
}
}
push (@pieces, $str);
}
}
# If input was a PATH, join the pieces back together with $sep2 path
# separator.
my $result;
if (scalar(@pieces > 1)) {
$result = join ($sep2, @pieces);
} else {
$result = $pieces[0];
}
if (defined ($result)) {
# Change all '\' to '/'
$result =~ s/\\/\//g;
# Remove duplicate '/'
$result =~ s/\/\//\//g;
# Map to lower case
$result =~ tr/A-Z/a-z/;
print ("$result\n");
}
#!/bin/sh
#
# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# This file should be used to set the Visual Studio environment
# variables normally set by the vcvars32.bat or vcvars64.bat file or
# SetEnv.cmd for older SDKs.
########################################################################
# Error functions
msg() # message
{
echo "$1" 1>&2
}
error() # message
{
msg "ERROR: $1"
exit 1
}
warning() # message
{
msg "WARNING: $1"
}
envpath() # path
{
if [ "${fixpath}" != "" -a -d "$1" ] ; then
${fixpath} "$1"
else
echo "$1"
fi
}
########################################################################
# Defaults settings
debug="false"
verbose="false"
set -e
CYGWIN="nodosfilewarning ntsec"
export CYGWIN
# pathsepIn is always ; because the input strings are coming from
# vcvarsxx.bat. This is true under all of MKS, Cygwin, MINGW/msys
pathsepIn=';'
OS="`uname -s`"
case "${OS}" in
CYGWIN*)
pathflag='-c'
devnull=/dev/null
pathsepOut=':'
;;
MINGW*)
pathflag='-m'
devnull=/dev/null
pathsepOut=':'
;;
*)
# MKS?
# Continue using dosname -s
pathflag='-s'
fixpath="dosname ${pathflag}"
fixpath_windows="${fixpath}"
fixpath_path="echo"
devnull=NUL
pathsepOut=';'
;;
esac
case "${OS}" in
CYGWIN*|MINGW*)
t=`dirname ${0}`
wd=`cd ${t} 2> ${devnull} && pwd`
fixpath_script="${wd}/fixpath.pl"
if [ ! -f "${fixpath_script}" ] ; then
error "Does not exist: ${fixpath_script}"
fi
fixpath="perl ${fixpath_script} ${pathflag}"
fixpath_windows="perl ${fixpath_script} -d"
fixpath_path="${fixpath_windows}"
;;
esac
shellStyle="sh"
## As far as I can tell from hg history, this has not worked
## for a long time because PPID is unset. When run under Cygwin
## the script quits due to the 1 return from grep.
##parentCsh="` ps -p ${PPID} 2> ${devnull} | grep csh `"
##if [ "${parentCsh}" != "" ] ; then
## shellStyle="csh"
##fi
# Check environment first
if [ "${PROGRAMFILES}" != "" ] ; then
progfiles=`envpath "${PROGRAMFILES}"`
elif [ "${ProgramFiles}" != "" ] ; then
progfiles=`envpath "${ProgramFiles}"`
elif [ "${SYSTEMDRIVE}" != "" ] ; then
progfiles=`envpath "${SYSTEMDRIVE}/Program Files"`
elif [ "${SystemDrive}" != "" ] ; then
progfiles=`envpath "${SystemDrive}/Program Files"`
else
error "No PROGRAMFILES or SYSTEMDRIVE defined in environment"
fi
# Arch data model
if [ "${PROCESSOR_IDENTIFIER}" != "" ] ; then
arch=`echo "${PROCESSOR_IDENTIFIER}" | cut -d' ' -f1`
else
if [ "${MACHTYPE}" != "" ] ; then
if [ "`echo ${MACHTYPE} | grep 64`" != "" ] ; then
# Assume this is X64, not IA64
arch="x64"
else
arch="x86"
fi
else
arch="`uname -m`"
fi
PROCESSOR_IDENTIFIER="${arch}"
export PROCESSOR_IDENTIFIER
fi
if [ "${arch}" = "X86" -o \
"${arch}" = "386" -o "${arch}" = "i386" -o \
"${arch}" = "486" -o "${arch}" = "i486" -o \
"${arch}" = "586" -o "${arch}" = "i586" -o \
"${arch}" = "686" -o "${arch}" = "i686" -o \
"${arch}" = "86" ] ; then
arch="x86"
fi
if [ "${arch}" = "X64" -o \
"${arch}" = "8664" -o "${arch}" = "i8664" -o \
"${arch}" = "amd64" -o "${arch}" = "AMD64" -o \
"${arch}" = "EM64T" -o "${arch}" = "emt64t" -o \
"${arch}" = "intel64" -o "${arch}" = "Intel64" -o \
"${arch}" = "64" ] ; then
arch="x64"
binarch64="\\amd64"
fi
if [ "${arch}" = "IA64" ] ; then
arch="ia64"
binarch64="\\ia64"
fi
if [ "${arch}" != "x86" -a "${arch}" != "x64" -a "${arch}" != "ia64" ] ; then
error "No PROCESSOR_IDENTIFIER or MACHTYPE environment variables and uname -m is not helping"
fi
if [ "${arch}" = "x86" ] ; then
arch_data_model=32
progfiles32="${progfiles}"
progfiles64="${progfiles}"
else
arch_data_model=64
progfiles32="${progfiles}"
if [ "${PROGRAMW6432}" != "" ] ; then
progfiles64=`envpath "${PROGRAMW6432}"`
else
progfiles64=`envpath "C:/Program Files"`
fi
fi
# VS2012 (VC11)
if [ "${VS110COMNTOOLS}" = "" ] ; then
VS110COMNTOOLS="${progfiles32}/Microsoft Visual Studio 11.0/Common7/Tools/"
export VS110COMNTOOLS
fi
vc11Bin32Dir=`envpath "${VS110COMNTOOLS}"`/../../VC/Bin
vc11Bin64Dir="${vc11Bin32Dir}"
vc11vars32Bat="vcvars32.bat"
vc11vars64Bat="vcvars64.bat"
# VS2010 (VC10)
if [ "${VS100COMNTOOLS}" = "" ] ; then
VS100COMNTOOLS="${progfiles32}/Microsoft Visual Studio 10.0/Common7/Tools/"
export VS100COMNTOOLS
fi
vc10Bin32Dir=`envpath "${VS100COMNTOOLS}"`/../../VC/Bin
vc10Bin64Dir="${vc10Bin32Dir}${binarch64}"
vc10vars32Bat="vcvars32.bat"
vc10vars64Bat="vcvars64.bat"
# VS2008 (VC9)
if [ "${VS90COMNTOOLS}" = "" ] ; then
VS90COMNTOOLS="${progfiles32}/Microsoft Visual Studio 9.0/Common7/Tools/"
export VS90COMNTOOLS
fi
vc9Bin32Dir=`envpath "${VS90COMNTOOLS}"`/../../VC/Bin
vc9Bin64Dir="${vc9Bin32Dir}"
vc9vars32Bat="vcvars32.bat"
vc9vars64Bat="vcvars64.bat"
# VS2005 (VC8)
if [ "${VS80COMNTOOLS}" = "" ] ; then
VS80COMNTOOLS="${progfiles32}/Microsoft Visual Studio 8.0/Common7/Tools/"
export VS80COMNTOOLS
fi
vc8Bin32Dir=`envpath "${VS80COMNTOOLS}"`/../../VC/Bin
vc8Bin64Dir="${progfiles64}/Microsoft Platform SDK"
vc8vars32Bat="vcvars32.bat"
vc8vars64Bat="SetEnv.cmd /X64"
# VS2003 (VC7)
if [ "${VS71COMNTOOLS}" = "" ] ; then
VS71COMNTOOLS="${progfiles32}/Microsoft Visual Studio .NET 2003/Common7/Tools/"
export VS71COMNTOOLS
fi
vc7Bin32Dir=`envpath "${VS71COMNTOOLS}"`/../../VC7/Bin
vc7Bin64Dir="${progfiles64}/Microsoft Platform SDK"
vc7vars32Bat="vcvars32.bat"
vc7vars64Bat="SetEnv.cmd /X64"
# Force user to select
vcSelection=""
# Parse options
usage="Usage: $0 [-help] [-debug] [-v] [-c] [-s] [-p] [-v11] [-v10] [-v9] [-v8] [-v7] [-32] [-64]"
while [ $# -gt 0 ] ; do
if [ "$1" = "-help" ] ; then
msg "${usage}"
msg " -help Print out this help message"
msg " -debug Print out extra env variables to help debug this script"
msg " -v Verbose output warns about missing directories"
msg " -c Print out csh style output"
msg " -s Print out sh style output"
msg " -p Print out properties style output"
msg " -v11 Use Visual Studio 11 VS2012"
msg " -v10 Use Visual Studio 10 VS2010"
msg " -v9 Use Visual Studio 9 VS2008"
msg " -v8 Use Visual Studio 8 VS2005"
msg " -v7 Use Visual Studio 7 VS2003"
msg " -32 Force 32bit"
msg " -64 Force 64bit"
exit 0
elif [ "$1" = "-debug" ] ; then
debug="true"
shift
elif [ "$1" = "-v" ] ; then
verbose="true"
shift
elif [ "$1" = "-c" ] ; then
shellStyle="csh"
shift
elif [ "$1" = "-s" ] ; then
shellStyle="sh"
shift
elif [ "$1" = "-p" ] ; then
shellStyle="props"
shift
elif [ "$1" = "-v11" ] ; then
vcBin32Dir="${vc11Bin32Dir}"
vcBin64Dir="${vc11Bin64Dir}"
vcvars32Bat="${vc11vars32Bat}"
vcvars64Bat="${vc11vars64Bat}"
vcSelection="11"
shift
elif [ "$1" = "-v10" ] ; then
vcBin32Dir="${vc10Bin32Dir}"
vcBin64Dir="${vc10Bin64Dir}"
vcvars32Bat="${vc10vars32Bat}"
vcvars64Bat="${vc10vars64Bat}"
vcSelection="10"
shift
elif [ "$1" = "-v9" ] ; then
vcBin32Dir="${vc9Bin32Dir}"
vcBin64Dir="${vc9Bin64Dir}"
vcvars32Bat="${vc9vars32Bat}"
vcvars64Bat="${vc9vars64Bat}"
vcSelection="9"
shift
elif [ "$1" = "-v8" ] ; then
vcBin32Dir="${vc8Bin32Dir}"
vcBin64Dir="${vc8Bin64Dir}"
vcvars32Bat="${vc8vars32Bat}"
vcvars64Bat="${vc8vars64Bat}"
vcSelection="8"
shift
elif [ "$1" = "-v7" ] ; then
vcBin32Dir="${vc7Bin32Dir}"
vcBin64Dir="${vc7Bin64Dir}"
vcvars32Bat="${vc7vars32Bat}"
vcvars64Bat="${vc7vars64Bat}"
vcSelection="7"
shift
elif [ "$1" = "-32" ] ; then
arch_data_model=32
shift
elif [ "$1" = "-64" ] ; then
arch_data_model=64
shift
else
msg "${usage}"
error "Unknown option: $1"
fi
done
# Need to pick
if [ "${vcSelection}" = "" ] ; then
msg "${usage}"
error "You must pick the version"
fi
# Which vcvars bat file to run
if [ "${arch_data_model}" = "32" ] ; then
vcBinDir="${vcBin32Dir}"
vcvarsBat="${vcvars32Bat}"
fi
if [ "${arch_data_model}" = "64" ] ; then
vcBinDir="${vcBin64Dir}"
vcvarsBat="${vcvars64Bat}"
fi
# Do not allow any error returns
set -e
# Different systems have different awk's
if [ -f /usr/bin/nawk ] ; then
awk="nawk"
elif [ -f /usr/bin/gawk ] ; then
awk="gawk"
else
awk="awk"
fi
if [ "${verbose}" = "true" ] ; then
echo "# Welcome to verbose mode"
set -x
fi
if [ "${debug}" = "true" ] ; then
echo "# Welcome to debug mode"
set -x
fi
# Temp file area
tmp="/tmp/vsvars.$$"
rm -f -r ${tmp}
mkdir -p ${tmp}
# Check paths
checkPaths() # var path sep
{
set -e
sep="$3"
checklist="${tmp}/checklist"
printf "%s\n" "$2" | \
sed -e 's@\\@/@g' | \
sed -e 's@//@/@g' | \
${awk} -F"${sep}" '{for(i=1;i<=NF;i++){printf "%s\n",$i;}}' \
> ${checklist}
cat ${checklist} | while read orig; do
if [ "${orig}" != "" ] ; then
if [ ! -d "${orig}" ] ; then
warning "Directory in $1 does not exist: ${orig}"
fi
fi
done
}
# Remove all duplicate entries
removeDeadDups() # string sepIn sepOut
{
set -e
sepIn="$2"
sepOut="$3"
pathlist="${tmp}/pathlist"
printf "%s\n" "$1" | \
sed -e 's@\\@/@g' | \
sed -e 's@//@/@g' | \
${awk} -F"${sepIn}" '{for(i=1;i<=NF;i++){printf "%s\n",$i;}}' \
> ${pathlist}
upaths="${tmp}/upaths"
cat ${pathlist} | while read orig; do
p="${orig}"
if [ "${fixpath}" != "" ] ; then
if [ "${p}" != "" ] ; then
if [ -d "${p}" ] ; then
short=`${fixpath} "${p}"`
if [ "${short}" != "" -a -d "${short}" ] ; then
p="${short}"
fi
echo "${p}" >> ${upaths}
fi
fi
fi
done
newpaths=""
for i in `cat ${upaths}` ; do
# For some reason, \r characters can get into this
i=`echo "${i}" | tr -d '\r' | sed -e 's@/$@@'`
if [ "${newpaths}" = "" ] ; then
newpaths="${i}"
else
newpaths="${newpaths}${sepOut}${i}"
fi
done
printf "%s\n" "${newpaths}" | \
${awk} -F"${sepOut}" \
'{a[$1];printf "%s",$1;for(i=2;i<=NF;i++){if(!($i in a)){a[$i];printf "%s%s",FS,$i;}};printf "\n";}'
}
# Create bat file to process Visual Studio vcvars*.bat files
createBat() # batfile bindir command
{
bat="$1"
bindir="$2"
command="$3"
stdout="${bat}.stdout"
rm -f ${bat} ${stdout}
echo "Output from: ${command}" > ${stdout}
bdir=`envpath "${bindir}"`
cat > ${bat} << EOF
REM Pick the right vcvars bat file
REM Empty these out so we only get the additions we want
set INCLUDE=
set LIB=
set LIBPATH=
set MSVCDIR=
set MSSdk=
set Mstools=
set DevEnvDir=
set VCINSTALLDIR=
set VSINSTALLDIR=
set WindowsSdkDir=
REM Run the vcvars bat file, send all output to stderr
call `${fixpath_windows} ${bdir}`\\${command} > `${fixpath_windows} "${stdout}"`
REM Echo out env var settings
echo VS_VS71COMNTOOLS="%VS71COMNTOOLS%"
echo export VS_VS71COMNTOOLS
echo VS_VS80COMNTOOLS="%VS80COMNTOOLS%"
echo export VS_VS80COMNTOOLS
echo VS_VS90COMNTOOLS="%VS90COMNTOOLS%"
echo export VS_VS90COMNTOOLS
echo VS_VS100COMNTOOLS="%VS100COMNTOOLS%"
echo export VS_VS100COMNTOOLS
echo VS_VS110COMNTOOLS="%VS110COMNTOOLS%"
echo export VS_VS110COMNTOOLS
echo VS_VCINSTALLDIR="%VCINSTALLDIR%"
echo export VS_VCINSTALLDIR
echo VS_VSINSTALLDIR="%VSINSTALLDIR%"
echo export VS_VSINSTALLDIR
echo VS_DEVENVDIR="%DevEnvDir%"
echo export VS_DEVENVDIR
echo VS_MSVCDIR="%MSVCDIR%"
echo export VS_MSVCDIR
echo VS_MSSDK="%MSSdk%"
echo export VS_MSSDK
echo VS_MSTOOLS="%Mstools%"
echo export VS_MSTOOLS
echo VS_WINDOWSSDKDIR="%WindowsSdkDir%"
echo export VS_WINDOWSSDKDIR
echo VS_INCLUDE="%INCLUDE%"
echo export VS_INCLUDE
echo VS_LIB="%LIB%"
echo export VS_LIB
echo VS_LIBPATH="%LIBPATH%"
echo export VS_LIBPATH
echo VS_WPATH="%PATH%"
echo export VS_WPATH
EOF
chmod a+x ${bat}
}
# Create env file
createEnv() # batfile envfile
{
rm -f ${1}.stdout ${1}.temp1 ${1}.temp2
batfile=`${fixpath} ${1}`
cmd.exe -Q -C < "$batfile" 1> ${1}.temp1 2> ${1}.temp2
cat ${1}.temp1 | \
sed -e 's@^Microsoft.*@@' \
-e 's@^.*Copyright.*@@' \
-e 's@^.*>REM.*@@' \
-e 's@^.*>set.*@@' \
-e 's@^.*>echo.*@@' \
-e 's@^.*>call.*@@' \
-e 's@^.*>$@@' \
-e 's@\\@/@g' | \
sed -e 's@//@/@g' > $2
if [ -f "${1}.stdout" ] ; then
cat ${1}.stdout 1>&2
fi
chmod a+x $2
}
printEnv() # name pname vsname val
{
name="$1"
pname="$2"
vsname="$3"
val="$4"
if [ "${val}" != "" ] ; then
if [ "${shellStyle}" = "csh" ] ; then
if [ "${debug}" = "true" ] ; then
echo "setenv ${vsname} \"${val}\";"
fi
echo "setenv ${name} \"${val}\";"
elif [ "${shellStyle}" = "sh" ] ; then
if [ "${debug}" = "true" ] ; then
echo "${vsname}=\"${val}\";"
echo "export ${vsname};"
fi
echo "${name}=\"${val}\";"
echo "export ${name};"
elif [ "${shellStyle}" = "props" ] ; then
echo "vs.${pname}=${val}"
fi
fi
}
#############################################################################
# Get Visual Studio settings
if [ "${fixpath}" != "" ] ; then
# Create bat file to run
batfile="${tmp}/vs-to-env.bat"
if [ ! -d "${vcBinDir}" ] ; then
error "Does not exist: ${vcBinDir}"
elif [ "${vcvarsBat}" = "" ] ; then
error "No vcvars script: ${vcvarsBat}"
else
createBat "${batfile}" "${vcBinDir}" "${vcvarsBat}"
fi
# Run bat file to create environment variable settings
envfile="${tmp}/env.sh"
createEnv "${batfile}" "${envfile}"
# Read in the VS_* settings
. ${envfile}
# Derive unix style path, save old, and define new (remove dups)
VS_UPATH=`${fixpath_path} "${VS_WPATH}"`
export VS_UPATH
VS_OPATH=`printf "%s" "${PATH}" | sed -e 's@\\\\@/@g'`
export VS_OPATH
VS_PATH=`removeDeadDups "${VS_UPATH}${pathsepIn}${VS_OPATH}" "${pathsepIn}" "${pathsepOut}"`
export VS_PATH
fi
# Adjustments due to differences in vcvars*bat files
if [ "${VS_MSVCDIR}" = "" ] ; then
VS_MSVCDIR="${VS_VCINSTALLDIR}"
fi
if [ "${VS_DEVENVDIR}" = "" ] ; then
VS_DEVENVDIR="${VS_VSINSTALLDIR}"
fi
# Print env settings
# env vs.prop vs env value
# ------- ------- ---------- -----
printEnv INCLUDE include VS_INCLUDE "${VS_INCLUDE}"
printEnv LIB lib VS_LIB "${VS_LIB}"
printEnv LIBPATH libpath VS_LIBPATH "${VS_LIBPATH}"
if [ "${debug}" = "true" ] ; then
printEnv UPATH upath VS_UPATH "${VS_UPATH}"
printEnv WPATH wpath VS_WPATH "${VS_WPATH}"
printEnv OPATH opath VS_OPATH "${VS_OPATH}"
fi
printEnv PATH path VS_PATH "${VS_PATH}"
printEnv VCINSTALLDIR vcinstalldir VS_VCINSTALLDIR "${VS_VCINSTALLDIR}"
printEnv VSINSTALLDIR vsinstalldir VS_VSINSTALLDIR "${VS_VSINSTALLDIR}"
printEnv MSVCDIR msvcdir VS_MSVCDIR "${VS_MSVCDIR}"
printEnv MSSDK mssdk VS_MSSDK "${VS_MSSDK}"
printEnv MSTOOLS mstools VS_MSTOOLS "${VS_MSTOOLS}"
printEnv DEVENVDIR devenvdir VS_DEVENVDIR "${VS_DEVENVDIR}"
printEnv WINDOWSSDKDIR windowssdkdir VS_WINDOWSSDKDIR "${VS_WINDOWSSDKDIR}"
if [ "${vcSelection}" = "11" ] ; then
printEnv VS110COMNTOOLS vs110comntools VS_VS110COMNTOOLS "${VS_VS110COMNTOOLS}"
elif [ "${vcSelection}" = "10" ] ; then
printEnv VS100COMNTOOLS vs100comntools VS_VS100COMNTOOLS "${VS_VS100COMNTOOLS}"
elif [ "${vcSelection}" = "9" ] ; then
printEnv VS90COMNTOOLS vs90comntools VS_VS90COMNTOOLS "${VS_VS90COMNTOOLS}"
elif [ "${vcSelection}" = "7" ] ; then
printEnv VS71COMNTOOLS vs71comntools VS_VS71COMNTOOLS "${VS_VS71COMNTOOLS}"
elif [ "${vcSelection}" = "8" ] ; then
printEnv VS80COMNTOOLS vs80comntools VS_VS80COMNTOOLS "${VS_VS80COMNTOOLS}"
fi
# Check final settings
if [ "${verbose}" = "true" ] ; then
checkPaths "Windows PATH" "${VS_WPATH}" ";"
checkPaths LIB "${VS_LIB}" ";"
checkPaths INCLUDE "${VS_INCLUDE}" ";"
checkPaths PATH "${VS_PATH}" "${pathsepIn}"
fi
# Remove all temp files
if [ "${debug}" != "true" ] ; then
rm -f -r ${tmp}
fi
exit 0
#
# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################
# SPONSORS TARGETS
################################################################
ifeq ($(PLATFORM)-$(ARCH), windows-i586)
sponsors: sponsors-build
else
sponsors:
endif
# The generated java files are generated as a set, so instead of
# setting the SPONSORS variable to that list of files, set it to
# the .PHONY target that generates the set of files.
SPONSORS = sponsors
# put the generated patch in their own place in OUTPUTDIR
SPONSORS_OUTPUTDIR = $(ABS_OUTPUTDIR)
SPONSORS_BUILD_TARGETS = dll installer
SPONSORS_BUILD_ARGUMENTS = \
MAKEFLAGS= \
$(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(SPONSORS_OUTPUTDIR) \
ALT_RTPATCH_DIR=$(ALT_RTPATCH_DIR) \
ALT_BASE_IMAGE_ZIP=$(ALT_BASE_IMAGE_ZIP) \
ALT_BASE_IMAGE_DIR=$(ALT_BASE_IMAGE_DIR) \
ALT_NEW_IMAGE_DIR=$(ALT_NEW_IMAGE_DIR) \
ALT_BUNDLE_DATE=$(BUNDLE_DATE)
ifeq ($(BUILD_LANGTOOLS), true)
SPONSORS_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
sponsors-build:
ifeq ($(ARCH_DATA_MODEL), 32)
ifeq ($(BUILD_SPONSORS), true)
@$(call MakeStart,sponsors,$(SPONSORS_BUILD_TARGETS))
($(CD) $(SPONSORS_TOPDIR)/make && \
$(MAKE) $(SPONSORS_BUILD_TARGETS) $(SPONSORS_BUILD_ARGUMENTS))
@$(call MakeFinish,sponsors,$(SPONSORS_BUILD_TARGETS))
endif
endif
sponsors-sanity:
sponsors-clobber::
.PHONY: sponsors sponsors-build sponsors-sanity sponsors-clobber
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册