--- a/.hgtags-top-repo Thu Apr 09 17:38:28 2015 -0700
+++ b/.hgtags-top-repo Wed Jul 05 20:27:50 2017 +0200
@@ -301,3 +301,4 @@
eb7febe45865ba6b81f2ea68082262d0708a0b22 jdk9-b56
f25ee9f62427a9ba27418e5531a89754791a305b jdk9-b57
6e78dd9b121037719a065fe8fb25b936babdfecb jdk9-b58
+39e8a131289e8386aa4c3e4b184faa812a7c0421 jdk9-b59
--- a/common/autoconf/basics.m4 Thu Apr 09 17:38:28 2015 -0700
+++ b/common/autoconf/basics.m4 Wed Jul 05 20:27:50 2017 +0200
@@ -658,6 +658,8 @@
fi
OUTPUT_ROOT="$SRC_ROOT/build/${CONF_NAME}"
$MKDIR -p "$OUTPUT_ROOT"
+ CONFIGURESUPPORT_OUTPUTDIR="$OUTPUT_ROOT/configure-support"
+ $MKDIR -p "$CONFIGURESUPPORT_OUTPUTDIR"
if test ! -d "$OUTPUT_ROOT"; then
AC_MSG_ERROR([Could not create build directory $OUTPUT_ROOT])
fi
@@ -703,6 +705,7 @@
AC_SUBST(SPEC, $OUTPUT_ROOT/spec.gmk)
AC_SUBST(CONF_NAME, $CONF_NAME)
AC_SUBST(OUTPUT_ROOT, $OUTPUT_ROOT)
+ AC_SUBST(CONFIGURESUPPORT_OUTPUTDIR)
# The spec.gmk file contains all variables for the make system.
AC_CONFIG_FILES([$OUTPUT_ROOT/spec.gmk:$AUTOCONF_DIR/spec.gmk.in])
--- a/common/autoconf/basics_windows.m4 Thu Apr 09 17:38:28 2015 -0700
+++ b/common/autoconf/basics_windows.m4 Wed Jul 05 20:27:50 2017 +0200
@@ -383,45 +383,46 @@
if test "x$OPENJDK_BUILD_OS" = xwindows; then
AC_MSG_CHECKING([if fixpath can be created])
FIXPATH_SRC="$SRC_ROOT/common/src/fixpath.c"
- FIXPATH_BIN="$OUTPUT_ROOT/fixpath.exe"
+ FIXPATH_BIN="$CONFIGURESUPPORT_OUTPUTDIR/bin/fixpath.exe"
+ FIXPATH_DIR="$CONFIGURESUPPORT_OUTPUTDIR/fixpath"
if test "x$OPENJDK_BUILD_OS_ENV" = xwindows.cygwin; then
- FIXPATH_SRC=`$CYGPATH -m $FIXPATH_SRC`
- FIXPATH_BIN=`$CYGPATH -m $FIXPATH_BIN`
# Important to keep the .exe suffix on Cygwin for Hotspot makefiles
- FIXPATH="$OUTPUT_ROOT/fixpath.exe -c"
+ FIXPATH="$FIXPATH_BIN -c"
elif test "x$OPENJDK_BUILD_OS_ENV" = xwindows.msys; then
- FIXPATH_SRC=`cmd //c echo $FIXPATH_SRC`
- FIXPATH_BIN=`cmd //c echo $FIXPATH_BIN`
-
# Take all collected prefixes and turn them into a -m/c/foo@/c/bar@... command line
# @ was chosen as separator to minimize risk of other tools messing around with it
- all_unique_prefixes=`echo "${all_fixpath_prefixes@<:@@@:>@}" | tr ' ' '\n' | grep '^/./' | sort | uniq`
+ all_unique_prefixes=`echo "${all_fixpath_prefixes@<:@@@:>@}" \
+ | tr ' ' '\n' | grep '^/./' | sort | uniq`
fixpath_argument_list=`echo $all_unique_prefixes | tr ' ' '@'`
-
- FIXPATH="$OUTPUT_ROOT/fixpath -m$fixpath_argument_list"
+ FIXPATH="$FIXPATH_BIN -m$fixpath_argument_list"
fi
- rm -f $OUTPUT_ROOT/fixpath*
- cd $OUTPUT_ROOT
- $CC $FIXPATH_SRC -Fe$FIXPATH_BIN > $OUTPUT_ROOT/fixpath1.log 2>&1
+ FIXPATH_SRC_W="$FIXPATH_SRC"
+ FIXPATH_BIN_W="$FIXPATH_BIN"
+ BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([FIXPATH_SRC_W])
+ BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([FIXPATH_BIN_W])
+ $RM -rf $FIXPATH_BIN $FIXPATH_DIR
+ $MKDIR -p $FIXPATH_DIR $CONFIGURESUPPORT_OUTPUTDIR/bin
+ cd $FIXPATH_DIR
+ $CC $FIXPATH_SRC_W -Fe$FIXPATH_BIN_W > $FIXPATH_DIR/fixpath1.log 2>&1
cd $CURDIR
- if test ! -x $OUTPUT_ROOT/fixpath.exe; then
+ if test ! -x $FIXPATH_BIN; then
AC_MSG_RESULT([no])
- cat $OUTPUT_ROOT/fixpath1.log
- AC_MSG_ERROR([Could not create $OUTPUT_ROOT/fixpath.exe])
+ cat $FIXPATH_DIR/fixpath1.log
+ AC_MSG_ERROR([Could not create $FIXPATH_BIN])
fi
AC_MSG_RESULT([yes])
AC_MSG_CHECKING([if fixpath.exe works])
- cd $OUTPUT_ROOT
- $FIXPATH $CC $SRC_ROOT/common/src/fixpath.c -Fe$OUTPUT_ROOT/fixpath2.exe > $OUTPUT_ROOT/fixpath2.log 2>&1
+ cd $FIXPATH_DIR
+ $FIXPATH $CC $FIXPATH_SRC -Fe$FIXPATH_DIR/fixpath2.exe \
+ > $FIXPATH_DIR/fixpath2.log 2>&1
cd $CURDIR
- if test ! -x $OUTPUT_ROOT/fixpath2.exe; then
+ if test ! -x $FIXPATH_DIR/fixpath2.exe; then
AC_MSG_RESULT([no])
- cat $OUTPUT_ROOT/fixpath2.log
+ cat $FIXPATH_DIR/fixpath2.log
AC_MSG_ERROR([fixpath did not work!])
fi
AC_MSG_RESULT([yes])
- rm -f $OUTPUT_ROOT/fixpath?.??? $OUTPUT_ROOT/fixpath.obj
fi
AC_SUBST(FIXPATH)
--- a/common/autoconf/build-performance.m4 Thu Apr 09 17:38:28 2015 -0700
+++ b/common/autoconf/build-performance.m4 Wed Jul 05 20:27:50 2017 +0200
@@ -336,11 +336,4 @@
AC_MSG_CHECKING([whether to use sjavac])
AC_MSG_RESULT([$ENABLE_SJAVAC])
AC_SUBST(ENABLE_SJAVAC)
-
- if test "x$ENABLE_SJAVAC" = xyes; then
- SJAVAC_SERVER_DIR="$OUTPUT_ROOT/javacservers"
- else
- SJAVAC_SERVER_DIR=
- fi
- AC_SUBST(SJAVAC_SERVER_DIR)
])
--- a/common/autoconf/configure.ac Thu Apr 09 17:38:28 2015 -0700
+++ b/common/autoconf/configure.ac Wed Jul 05 20:27:50 2017 +0200
@@ -261,7 +261,7 @@
# We're messing a bit with internal autoconf variables to put the config.status
# in the output directory instead of the current directory.
-CONFIG_STATUS="$OUTPUT_ROOT/config.status"
+CONFIG_STATUS="$CONFIGURESUPPORT_OUTPUTDIR/config.status"
# Create the actual output files. Now the main work of configure is done.
AC_OUTPUT
@@ -269,7 +269,7 @@
# Try to move the config.log file to the output directory.
if test -e ./config.log; then
- $MV -f ./config.log "$OUTPUT_ROOT/config.log" 2> /dev/null
+ $MV -f ./config.log "$CONFIGURESUPPORT_OUTPUTDIR/config.log" 2> /dev/null
fi
# Make the compare script executable
--- a/common/autoconf/generated-configure.sh Thu Apr 09 17:38:28 2015 -0700
+++ b/common/autoconf/generated-configure.sh Wed Jul 05 20:27:50 2017 +0200
@@ -632,7 +632,6 @@
CFLAGS_CCACHE
CCACHE
USE_PRECOMPILED_HEADER
-SJAVAC_SERVER_DIR
ENABLE_SJAVAC
SJAVAC_SERVER_JAVA_FLAGS
SJAVAC_SERVER_JAVA
@@ -884,6 +883,7 @@
CHECK_MAKE
CHECK_GMAKE
PKGHANDLER
+CONFIGURESUPPORT_OUTPUTDIR
OUTPUT_ROOT
CONF_NAME
SPEC
@@ -4365,7 +4365,7 @@
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1428017006
+DATE_WHEN_GENERATED=1428676283
###############################################################################
#
@@ -15266,6 +15266,8 @@
fi
OUTPUT_ROOT="$SRC_ROOT/build/${CONF_NAME}"
$MKDIR -p "$OUTPUT_ROOT"
+ CONFIGURESUPPORT_OUTPUTDIR="$OUTPUT_ROOT/configure-support"
+ $MKDIR -p "$CONFIGURESUPPORT_OUTPUTDIR"
if test ! -d "$OUTPUT_ROOT"; then
as_fn_error $? "Could not create build directory $OUTPUT_ROOT" "$LINENO" 5
fi
@@ -15450,6 +15452,7 @@
OUTPUT_ROOT=$OUTPUT_ROOT
+
# The spec.gmk file contains all variables for the make system.
ac_config_files="$ac_config_files $OUTPUT_ROOT/spec.gmk:$AUTOCONF_DIR/spec.gmk.in"
@@ -27622,7 +27625,7 @@
$as_echo "$as_me: Trying to extract Visual Studio environment variables" >&6;}
# We need to create a couple of temporary files.
- VS_ENV_TMP_DIR="$OUTPUT_ROOT/vs-env"
+ VS_ENV_TMP_DIR="$CONFIGURESUPPORT_OUTPUTDIR/vs-env"
$MKDIR -p $VS_ENV_TMP_DIR
# Cannot use the VS10 setup script directly (since it only updates the DOS subshell environment).
@@ -43136,50 +43139,69 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if fixpath can be created" >&5
$as_echo_n "checking if fixpath can be created... " >&6; }
FIXPATH_SRC="$SRC_ROOT/common/src/fixpath.c"
- FIXPATH_BIN="$OUTPUT_ROOT/fixpath.exe"
+ FIXPATH_BIN="$CONFIGURESUPPORT_OUTPUTDIR/bin/fixpath.exe"
+ FIXPATH_DIR="$CONFIGURESUPPORT_OUTPUTDIR/fixpath"
if test "x$OPENJDK_BUILD_OS_ENV" = xwindows.cygwin; then
- FIXPATH_SRC=`$CYGPATH -m $FIXPATH_SRC`
- FIXPATH_BIN=`$CYGPATH -m $FIXPATH_BIN`
# Important to keep the .exe suffix on Cygwin for Hotspot makefiles
- FIXPATH="$OUTPUT_ROOT/fixpath.exe -c"
+ FIXPATH="$FIXPATH_BIN -c"
elif test "x$OPENJDK_BUILD_OS_ENV" = xwindows.msys; then
- FIXPATH_SRC=`cmd //c echo $FIXPATH_SRC`
- FIXPATH_BIN=`cmd //c echo $FIXPATH_BIN`
-
# Take all collected prefixes and turn them into a -m/c/foo@/c/bar@... command line
# @ was chosen as separator to minimize risk of other tools messing around with it
- all_unique_prefixes=`echo "${all_fixpath_prefixes[@]}" | tr ' ' '\n' | grep '^/./' | sort | uniq`
+ all_unique_prefixes=`echo "${all_fixpath_prefixes[@]}" \
+ | tr ' ' '\n' | grep '^/./' | sort | uniq`
fixpath_argument_list=`echo $all_unique_prefixes | tr ' ' '@'`
-
- FIXPATH="$OUTPUT_ROOT/fixpath -m$fixpath_argument_list"
- fi
- rm -f $OUTPUT_ROOT/fixpath*
- cd $OUTPUT_ROOT
- $CC $FIXPATH_SRC -Fe$FIXPATH_BIN > $OUTPUT_ROOT/fixpath1.log 2>&1
+ FIXPATH="$FIXPATH_BIN -m$fixpath_argument_list"
+ fi
+ FIXPATH_SRC_W="$FIXPATH_SRC"
+ FIXPATH_BIN_W="$FIXPATH_BIN"
+
+ unix_path="$FIXPATH_SRC_W"
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+ windows_path=`$CYGPATH -m "$unix_path"`
+ FIXPATH_SRC_W="$windows_path"
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+ windows_path=`cmd //c echo $unix_path`
+ FIXPATH_SRC_W="$windows_path"
+ fi
+
+
+ unix_path="$FIXPATH_BIN_W"
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+ windows_path=`$CYGPATH -m "$unix_path"`
+ FIXPATH_BIN_W="$windows_path"
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+ windows_path=`cmd //c echo $unix_path`
+ FIXPATH_BIN_W="$windows_path"
+ fi
+
+ $RM -rf $FIXPATH_BIN $FIXPATH_DIR
+ $MKDIR -p $FIXPATH_DIR $CONFIGURESUPPORT_OUTPUTDIR/bin
+ cd $FIXPATH_DIR
+ $CC $FIXPATH_SRC_W -Fe$FIXPATH_BIN_W > $FIXPATH_DIR/fixpath1.log 2>&1
cd $CURDIR
- if test ! -x $OUTPUT_ROOT/fixpath.exe; then
+ if test ! -x $FIXPATH_BIN; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- cat $OUTPUT_ROOT/fixpath1.log
- as_fn_error $? "Could not create $OUTPUT_ROOT/fixpath.exe" "$LINENO" 5
+ cat $FIXPATH_DIR/fixpath1.log
+ as_fn_error $? "Could not create $FIXPATH_BIN" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if fixpath.exe works" >&5
$as_echo_n "checking if fixpath.exe works... " >&6; }
- cd $OUTPUT_ROOT
- $FIXPATH $CC $SRC_ROOT/common/src/fixpath.c -Fe$OUTPUT_ROOT/fixpath2.exe > $OUTPUT_ROOT/fixpath2.log 2>&1
+ cd $FIXPATH_DIR
+ $FIXPATH $CC $FIXPATH_SRC -Fe$FIXPATH_DIR/fixpath2.exe \
+ > $FIXPATH_DIR/fixpath2.log 2>&1
cd $CURDIR
- if test ! -x $OUTPUT_ROOT/fixpath2.exe; then
+ if test ! -x $FIXPATH_DIR/fixpath2.exe; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- cat $OUTPUT_ROOT/fixpath2.log
+ cat $FIXPATH_DIR/fixpath2.log
as_fn_error $? "fixpath did not work!" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- rm -f $OUTPUT_ROOT/fixpath?.??? $OUTPUT_ROOT/fixpath.obj
fi
@@ -51415,13 +51437,6 @@
$as_echo "$ENABLE_SJAVAC" >&6; }
- if test "x$ENABLE_SJAVAC" = xyes; then
- SJAVAC_SERVER_DIR="$OUTPUT_ROOT/javacservers"
- else
- SJAVAC_SERVER_DIR=
- fi
-
-
# Can the C/C++ compiler use precompiled headers?
@@ -51849,7 +51864,7 @@
# We're messing a bit with internal autoconf variables to put the config.status
# in the output directory instead of the current directory.
-CONFIG_STATUS="$OUTPUT_ROOT/config.status"
+CONFIG_STATUS="$CONFIGURESUPPORT_OUTPUTDIR/config.status"
# Create the actual output files. Now the main work of configure is done.
cat >confcache <<\_ACEOF
@@ -53017,7 +53032,7 @@
# Try to move the config.log file to the output directory.
if test -e ./config.log; then
- $MV -f ./config.log "$OUTPUT_ROOT/config.log" 2> /dev/null
+ $MV -f ./config.log "$CONFIGURESUPPORT_OUTPUTDIR/config.log" 2> /dev/null
fi
# Make the compare script executable
--- a/common/autoconf/spec.gmk.in Thu Apr 09 17:38:28 2015 -0700
+++ b/common/autoconf/spec.gmk.in Wed Jul 05 20:27:50 2017 +0200
@@ -59,7 +59,7 @@
MAKE := @MAKE@
# The default make arguments
-MAKE_ARGS = $(MAKE_LOG_FLAGS) -R -I $(TOPDIR)/make/common SPEC=$(SPEC) \
+MAKE_ARGS = $(MAKE_LOG_FLAGS) -r -R -I $(TOPDIR)/make/common SPEC=$(SPEC) \
MAKE_LOG_FLAGS="$(MAKE_LOG_FLAGS)" LOG_LEVEL=$(LOG_LEVEL)
OUTPUT_SYNC_SUPPORTED:=@OUTPUT_SYNC_SUPPORTED@
@@ -231,13 +231,14 @@
# Colon left out to be able to override IMAGES_OUTPUTDIR for bootcycle-images
SUPPORT_OUTPUTDIR=$(BUILD_OUTPUT)/support
BUILDTOOLS_OUTPUTDIR=$(BUILD_OUTPUT)/buildtools
-MAKESUPPORT_OUTPUTDIR=$(BUILD_OUTPUT)/makesupport
HOTSPOT_OUTPUTDIR=$(BUILD_OUTPUT)/hotspot
JDK_OUTPUTDIR=$(BUILD_OUTPUT)/jdk
IMAGES_OUTPUTDIR=$(BUILD_OUTPUT)/images
TESTMAKE_OUTPUTDIR=$(BUILD_OUTPUT)/test-make
MAKESUPPORT_OUTPUTDIR=$(BUILD_OUTPUT)/make-support
+# This does not get overridden in a bootcycle build
+CONFIGURESUPPORT_OUTPUTDIR:=@CONFIGURESUPPORT_OUTPUTDIR@
HOTSPOT_DIST=@HOTSPOT_DIST@
@@ -259,7 +260,7 @@
ENABLE_SJAVAC:=@ENABLE_SJAVAC@
# Store sjavac server synchronization files here, and
# the sjavac server log files.
-SJAVAC_SERVER_DIR:=@SJAVAC_SERVER_DIR@
+SJAVAC_SERVER_DIR=$(MAKESUPPORT_OUTPUTDIR)/javacservers
# Number of parallel jobs to use for compilation
JOBS?=@JOBS@
--- a/common/autoconf/toolchain_windows.m4 Thu Apr 09 17:38:28 2015 -0700
+++ b/common/autoconf/toolchain_windows.m4 Wed Jul 05 20:27:50 2017 +0200
@@ -270,7 +270,7 @@
AC_MSG_NOTICE([Trying to extract Visual Studio environment variables])
# We need to create a couple of temporary files.
- VS_ENV_TMP_DIR="$OUTPUT_ROOT/vs-env"
+ VS_ENV_TMP_DIR="$CONFIGURESUPPORT_OUTPUTDIR/vs-env"
$MKDIR -p $VS_ENV_TMP_DIR
# Cannot use the VS10 setup script directly (since it only updates the DOS subshell environment).
--- a/make/Help.gmk Thu Apr 09 17:38:28 2015 -0700
+++ b/make/Help.gmk Wed Jul 05 20:27:50 2017 +0200
@@ -88,28 +88,15 @@
$(info $(_) # make test TEST="jdk_lang jdk_net")
$(info )
$(if $(all_confs), $(info Available configurations in $(build_dir):) $(foreach var,$(all_confs),$(info * $(var))),\
- $(info No configurations were found in $(build_dir).) $(info Run 'bash configure' to create a configuration))
+ $(info No configurations were found in $(build_dir).) $(info Run 'bash configure' to create a configuration.))
# We need a dummy rule otherwise make will complain
@true
-print-targets:
- $(if $(any_spec_file), ,\
- @echo "Note: More targets will be available when at least one configuration exists." 1>&2\
- )
- @echo $(ALL_TARGETS)
-
-print-modules:
- $(if $(any_spec_file), \
- @$(MAKE) -s -f $(topdir)/make/Main.gmk -I $(topdir)/make/common SPEC=$(any_spec_file) print-modules \
- , \
- @echo print-modules can currently only be run when at least one configuration exists \
- )
-
print-configurations:
$(foreach var, $(all_confs), $(info $(var)))
# We need a dummy rule otherwise make will complain
@true
-ALL_GLOBAL_TARGETS := help print-modules print-targets print-configurations
+ALL_GLOBAL_TARGETS := help print-configurations
.PHONY: $(ALL_GLOBAL_TARGETS)
--- a/make/Init.gmk Thu Apr 09 17:38:28 2015 -0700
+++ b/make/Init.gmk Wed Jul 05 20:27:50 2017 +0200
@@ -37,84 +37,102 @@
# serially, regardless of -j.
.NOTPARALLEL:
-# If included from the top-level Makefile then topdir is set, but not when
-# recursively calling ourself with a spec.
-ifeq ($(topdir),)
- topdir := $(strip $(patsubst %/make/, %, $(dir $(lastword $(MAKEFILE_LIST)))))
-endif
-
-# Our helper functions. Will include $(SPEC) if $(HAS_SPEC) is true.
-include $(topdir)/make/InitSupport.gmk
-
-# Here are "global" targets, i.e. targets that can be executed without having a configuration.
-# This will define ALL_GLOBAL_TARGETS.
-include $(topdir)/make/Help.gmk
-
-# Extract main targets from Main.gmk.
-ifneq ($(any_spec_file), )
- ifeq ($(wildcard $(dir $(any_spec_file))/make-support/module-deps.gmk),)
- # If make-support does not exist, we need to build the genmodules java tool first.
- $(info Creating data for first make execution in new configuration...)
- ignore_output := $(shell $(MAKE) -r -R -f $(topdir)/make/Main.gmk \
- -I $(topdir)/make/common SPEC=$(any_spec_file) NO_RECIPES=true FRC)
- $(info Done)
- endif
- ALL_MAIN_TARGETS := $(shell $(MAKE) -r -R -f $(topdir)/make/Main.gmk \
- -I $(topdir)/make/common SPEC=$(any_spec_file) NO_RECIPES=true print-targets)
-else
- # Without at least a single valid configuration, we cannot extract any real
- # targets. To provide a helpful error message about the missing configuration
- # later on, accept whatever targets the user has provided for now.
- ALL_MAIN_TARGETS := $(if $(MAKECMDGOALS), $(MAKECMDGOALS), default)
-endif
-
-# Targets provided by this file.
-ALL_INIT_TARGETS := reconfigure
-
-ALL_TARGETS := $(sort $(ALL_GLOBAL_TARGETS) $(ALL_MAIN_TARGETS) $(ALL_INIT_TARGETS))
-
-ifneq ($(findstring qp, $(MAKEFLAGS)),)
+ifeq ($(HAS_SPEC),)
##############################################################################
- # When called with -qp, assume an external part (e.g. bash completion) is trying
- # to understand our targets. Just list our targets and do no more checking.
+ # This is the default mode. We have not been recursively called with a SPEC.
##############################################################################
- $(ALL_TARGETS):
-
- .PHONY: $(ALL_TARGETS)
-
-else ifeq ($(HAS_SPEC),)
-
- ##############################################################################
- # This is the normal case, we have been called from the command line by the
- # user and we need to call ourself back with a proper SPEC.
- ##############################################################################
+ # Include our helper functions.
+ include $(topdir)/make/InitSupport.gmk
- $(eval $(call CheckControlVariables))
- $(eval $(call CheckDeprecatedEnvironment))
- $(eval $(call CheckInvalidMakeFlags))
-
- $(eval $(call ParseConfCheckOption))
+ # Here are "global" targets, i.e. targets that can be executed without having
+ # a configuration. This will define ALL_GLOBAL_TARGETS.
+ include $(topdir)/make/Help.gmk
- # Check that the LOG given is valid, and set LOG_LEVEL, LOG_NOFILE and MAKE_LOG_FLAGS.
- $(eval $(call ParseLogLevel))
-
- ifneq ($(findstring $(LOG_LEVEL),info debug trace),)
- $(info Running make as '$(strip $(MAKE) $(MFLAGS) $(COMMAND_LINE_VARIABLES) $(MAKECMDGOALS))')
- endif
+ # Targets provided by Init.gmk.
+ ALL_INIT_TARGETS := print-modules print-targets reconfigure
# CALLED_TARGETS is the list of targets that the user provided,
# or "default" if unspecified.
CALLED_TARGETS := $(if $(MAKECMDGOALS), $(MAKECMDGOALS), default)
- CALLED_SPEC_TARGETS := $(filter $(ALL_MAIN_TARGETS) $(ALL_INIT_TARGETS), $(CALLED_TARGETS))
- ifneq ($(CALLED_SPEC_TARGETS),)
- # We have at least one non-global target, which need a SPEC
+
+ # Extract non-global targets that require a spec file.
+ CALLED_SPEC_TARGETS := $(filter-out $(ALL_GLOBAL_TARGETS), $(CALLED_TARGETS))
+
+ # If we have only global targets, or if we are called with -qp (assuming an
+ # external part, e.g. bash completion, is trying to understand our targets),
+ # we will skip SPEC location and the sanity checks.
+ ifeq ($(CALLED_SPEC_TARGETS), )
+ ONLY_GLOBAL_TARGETS := true
+ endif
+ ifneq ($(findstring qp, $(MAKEFLAGS)),)
+ ONLY_GLOBAL_TARGETS := true
+ endif
+
+ ifeq ($(ONLY_GLOBAL_TARGETS), true)
+ ############################################################################
+ # We have only global targets, or are called with -pq.
+ ############################################################################
+
+ ifeq ($(wildcard $(SPEC)), )
+ # If we have no SPEC provided, we will just make a "best effort" target list.
+ # First try to grab any available pre-existing main-targets.gmk.
+ main_targets_file := $(firstword $(wildcard $(build_dir)/*/make-support/main-targets.gmk))
+ ifneq ($(main_targets_file), )
+ # Extract the SPEC that corresponds to this main-targets.gmk file.
+ SPEC := $(patsubst %/make-support/main-targets.gmk, %/spec.gmk, $(main_targets_file))
+ else
+ # None found, pick an arbitrary SPEC for which to generate a file
+ SPEC := $(firstword $(all_spec_files))
+ endif
+ endif
+
+ ifneq ($(wildcard $(SPEC)), )
+ $(eval $(call DefineMainTargets, LAZY, $(SPEC)))
+ else
+ # If we have no configurations we can not provide any main targets.
+ ALL_MAIN_TARGETS :=
+ endif
+
+ ALL_TARGETS := $(sort $(ALL_GLOBAL_TARGETS) $(ALL_MAIN_TARGETS) $(ALL_INIT_TARGETS))
+
+ # Just list all our targets.
+ $(ALL_TARGETS):
+
+ .PHONY: $(ALL_TARGETS)
+
+ else
+ ############################################################################
+ # This is the normal case, we have been called from the command line by the
+ # user and we need to call ourself back with a proper SPEC.
+ # We have at least one non-global target, so we need to find a spec file.
+ ############################################################################
+
+ # Basic checks on environment and command line.
+ $(eval $(call CheckControlVariables))
+ $(eval $(call CheckDeprecatedEnvironment))
+ $(eval $(call CheckInvalidMakeFlags))
+
+ # Check that CONF_CHECK is valid.
+ $(eval $(call ParseConfCheckOption))
+
+ # Check that the LOG given is valid, and set LOG_LEVEL, LOG_NOFILE and MAKE_LOG_FLAGS.
+ $(eval $(call ParseLogLevel))
+
+ # After this SPECS contain 1..N spec files (otherwise ParseConfAndSpec fails).
$(eval $(call ParseConfAndSpec))
- # Now SPECS contain 1..N spec files (otherwise ParseConfAndSpec fails)
+ # Extract main targets from Main.gmk using the spec(s) provided. In theory,
+ # with multiple specs, we should find the intersection of targets provided
+ # by all specs, but we approximate this by an arbitrary spec from the list.
+ # This will setup ALL_MAIN_TARGETS.
+ $(eval $(call DefineMainTargets, FORCE, $(firstword $(SPECS))))
+
+ # Separate called targets depending on type.
INIT_TARGETS := $(filter $(ALL_INIT_TARGETS), $(CALLED_SPEC_TARGETS))
- SEQUENTIAL_TARGETS := $(filter dist-clean clean%, $(CALLED_SPEC_TARGETS))
- PARALLEL_TARGETS := $(filter-out $(INIT_TARGETS) $(SEQUENTIAL_TARGETS), $(CALLED_SPEC_TARGETS))
+ MAIN_TARGETS := $(filter $(ALL_MAIN_TARGETS), $(CALLED_SPEC_TARGETS))
+ SEQUENTIAL_TARGETS := $(filter dist-clean clean%, $(MAIN_TARGETS))
+ PARALLEL_TARGETS := $(filter-out $(SEQUENTIAL_TARGETS), $(MAIN_TARGETS))
# The spec files depend on the autoconf source code. This check makes sure
# the configuration is up to date after changes to configure.
@@ -126,30 +144,41 @@
else ifeq ($(CONF_CHECK), auto)
@echo "Note: The configuration is not up to date for '$(lastword $(subst /, , $(dir $@)))'."
@( cd $(topdir) && \
- $(MAKE) $(MFLAGS) $(MAKE_LOG_FLAGS) -f $(topdir)/make/Init.gmk SPEC=$@ HAS_SPEC=true \
+ $(MAKE) $(MFLAGS) $(MAKE_LOG_FLAGS) -r -R -f $(topdir)/make/Init.gmk \
+ SPEC=$@ HAS_SPEC=true ACTUAL_TOPDIR=$(topdir) \
reconfigure )
else ifeq ($(CONF_CHECK), ignore)
# Do nothing
endif
- # Unless reconfigure is explicitely called, let all targets depend on the spec files to be up to date.
- ifeq ($(findstring reconfigure, $(CALLED_SPEC_TARGETS)), )
- $(CALLED_SPEC_TARGETS): $(SPECS)
+ # Unless reconfigure is explicitely called, let all main targets depend on
+ # the spec files to be up to date.
+ ifeq ($(findstring reconfigure, $(INIT_TARGETS)), )
+ $(MAIN_TARGETS): $(SPECS)
endif
- # The recipe will be run once for every target specified, but we only want to execute the
- # recipe a single time, hence the TARGET_DONE with a dummy command if true.
- $(ALL_MAIN_TARGETS) $(ALL_INIT_TARGETS):
+ make-info:
+ ifneq ($(findstring $(LOG_LEVEL),info debug trace),)
+ $(info Running make as '$(strip $(MAKE) $(MFLAGS) \
+ $(COMMAND_LINE_VARIABLES) $(MAKECMDGOALS))')
+ endif
+
+ # Now the init and main targets will be called, once for each SPEC. The
+ # recipe will be run once for every target specified, but we only want to
+ # execute the recipe a single time, hence the TARGET_DONE with a dummy
+ # command if true.
+ $(ALL_INIT_TARGETS) $(ALL_MAIN_TARGETS): make-info
@$(if $(TARGET_DONE), \
true \
, \
$(foreach spec, $(SPECS), \
( cd $(topdir) && \
- $(MAKE) $(MFLAGS) $(MAKE_LOG_FLAGS) -j 1 -f $(topdir)/make/Init.gmk \
- SPEC=$(spec) HAS_SPEC=true \
+ $(MAKE) $(MFLAGS) $(MAKE_LOG_FLAGS) -r -R -j 1 -f $(topdir)/make/Init.gmk \
+ SPEC=$(spec) HAS_SPEC=true ACTUAL_TOPDIR=$(topdir) \
USER_MAKE_VARS="$(USER_MAKE_VARS)" MAKE_LOG_FLAGS=$(MAKE_LOG_FLAGS) \
LOG_LEVEL=$(LOG_LEVEL) LOG_NOFILE=$(LOG_NOFILE) \
- INIT_TARGETS="$(INIT_TARGETS)" SEQUENTIAL_TARGETS="$(SEQUENTIAL_TARGETS)" \
+ INIT_TARGETS="$(INIT_TARGETS)" \
+ SEQUENTIAL_TARGETS="$(SEQUENTIAL_TARGETS)" \
PARALLEL_TARGETS="$(PARALLEL_TARGETS)" \
main ) && \
) true \
@@ -158,7 +187,7 @@
.PHONY: $(ALL_MAIN_TARGETS) $(ALL_INIT_TARGETS)
- endif # has $(CALLED_SPEC_TARGETS)
+ endif # $(ONLY_GLOBAL_TARGETS)!=true
else # HAS_SPEC=true
@@ -168,6 +197,14 @@
# file.
##############################################################################
+ include $(SPEC)
+
+ # Our helper functions.
+ include $(TOPDIR)/make/InitSupport.gmk
+
+ # Verify that the spec file we included seems okay.
+ $(eval $(call CheckSpecSanity))
+
ifeq ($(LOG_NOFILE), true)
# Disable log wrapper if LOG=[level,]nofile was given
override BUILD_LOG_WRAPPER :=
@@ -177,7 +214,19 @@
OUTPUT_SYNC_FLAG := -O$(OUTPUT_SYNC)
endif
- $(eval $(call CheckSpecSanity))
+ ##############################################################################
+ # Init targets
+ ##############################################################################
+
+ print-modules:
+ ( cd $(TOPDIR) && \
+ $(MAKE) $(MAKE_ARGS) -j 1 -f make/Main.gmk $(USER_MAKE_VARS) \
+ NO_RECIPES=true print-modules )
+
+ print-targets:
+ ( cd $(TOPDIR) && \
+ $(MAKE) $(MAKE_ARGS) -j 1 -f make/Main.gmk $(USER_MAKE_VARS) \
+ NO_RECIPES=true print-targets )
reconfigure:
ifneq ($(CONFIGURE_COMMAND_LINE), )
@@ -188,42 +237,43 @@
( cd $(OUTPUT_ROOT) && PATH="$(ORIGINAL_PATH)" \
$(BASH) $(TOPDIR)/configure $(CONFIGURE_COMMAND_LINE) )
- main-init:
- $(call RotateLogFiles)
- $(BUILD_LOG_WRAPPER) $(PRINTF) "Building target(s) '$(strip \
- $(INIT_TARGETS) $(SEQUENTIAL_TARGETS) $(PARALLEL_TARGETS) \
- )' in configuration '$(CONF_NAME)'\n"
+ ##############################################################################
+ # The main target, for delegating into Main.gmk
+ ##############################################################################
+ MAIN_TARGETS := $(SEQUENTIAL_TARGETS) $(PARALLEL_TARGETS)
+ TARGET_DESCRIPTION := target$(if $(word 2, $(MAIN_TARGETS)),s) \
+ '$(strip $(MAIN_TARGETS))' in configuration '$(CONF_NAME)'
# MAKEOVERRIDES is automatically set and propagated by Make to sub-Make calls.
# We need to clear it of the init-specific variables. The user-specified
# variables are explicitely propagated using $(USER_MAKE_VARS).
main: MAKEOVERRIDES :=
- main: $(INIT_TARGETS) main-init
- ifneq ($(SEQUENTIAL_TARGETS), )
- # Don't touch build output dir since we might be cleaning. That means
- # no log wrapper.
- ( cd $(TOPDIR) && \
- $(MAKE) $(MAKE_ARGS) -j 1 -f make/Main.gmk $(USER_MAKE_VARS) \
- $(SEQUENTIAL_TARGETS) \
- )
+ main: $(INIT_TARGETS)
+ ifneq ($(SEQUENTIAL_TARGETS)$(PARALLEL_TARGETS), )
+ $(call RotateLogFiles)
+ $(BUILD_LOG_WRAPPER) $(PRINTF) "Building $(TARGET_DESCRIPTION)\n"
+ ifneq ($(SEQUENTIAL_TARGETS), )
+ # Don't touch build output dir since we might be cleaning. That
+ # means no log wrapper.
+ ( cd $(TOPDIR) && \
+ $(MAKE) $(MAKE_ARGS) -j 1 -f make/Main.gmk $(USER_MAKE_VARS) \
+ $(SEQUENTIAL_TARGETS) )
+ endif
+ ifneq ($(PARALLEL_TARGETS), )
+ $(call StartGlobalTimer)
+ $(call PrepareSmartJavac)
+ ( cd $(TOPDIR) && \
+ $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) $(OUTPUT_SYNC_FLAG) \
+ -j $(JOBS) -f make/Main.gmk $(USER_MAKE_VARS) \
+ $(PARALLEL_TARGETS) )
+ $(call CleanupSmartJavac)
+ $(call StopGlobalTimer)
+ $(call ReportBuildTimes)
+ endif
+ $(BUILD_LOG_WRAPPER) $(PRINTF) "Finished building $(TARGET_DESCRIPTION)\n"
endif
- ifneq ($(PARALLEL_TARGETS), )
- $(call StartGlobalTimer)
- $(call PrepareSmartJavac)
- ( cd $(TOPDIR) && \
- $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) $(OUTPUT_SYNC_FLAG) \
- -j $(JOBS) -f make/Main.gmk $(USER_MAKE_VARS) \
- $(PARALLEL_TARGETS) \
- )
- $(call CleanupSmartJavac)
- $(call StopGlobalTimer)
- $(call ReportBuildTimes)
- endif
- $(BUILD_LOG_WRAPPER) $(PRINTF) "Finished building target(s) '$(strip \
- $(INIT_TARGETS) $(SEQUENTIAL_TARGETS) $(PARALLEL_TARGETS) \
- )' in configuration '$(CONF_NAME)'\n"
- .PHONY: reconfigure main-init main
+ .PHONY: print-targets print-modules reconfigure main
endif
--- a/make/InitSupport.gmk Thu Apr 09 17:38:28 2015 -0700
+++ b/make/InitSupport.gmk Wed Jul 05 20:27:50 2017 +0200
@@ -32,13 +32,6 @@
ifndef _INITSUPPORT_GMK
_INITSUPPORT_GMK := 1
-# Setup information about available configurations, if any.
-build_dir=$(topdir)/build
-all_spec_files=$(wildcard $(build_dir)/*/spec.gmk)
-# Extract the configuration names from the path
-all_confs=$(patsubst %/spec.gmk, %, $(patsubst $(build_dir)/%, %, $(all_spec_files)))
-any_spec_file=$(firstword $(all_spec_files))
-
ifeq ($(HAS_SPEC),)
##############################################################################
# Helper functions for the initial part of Init.gmk, before the spec file is
@@ -62,17 +55,24 @@
# line, but in reverse order to what the user entered.
COMMAND_LINE_VARIABLES := $(subst \#,\ , $(call reverse, $(subst \ ,\#,$(MAKEOVERRIDES))))
- # A list like FOO="val1" BAR="val2" containing all user-supplied make variables
- # that we should propagate.
+ # A list like FOO="val1" BAR="val2" containing all user-supplied make
+ # variables that we should propagate.
USER_MAKE_VARS := $(filter-out $(addsuffix =%, $(INIT_CONTROL_VARIABLES)), \
$(MAKEOVERRIDES))
+ # Setup information about available configurations, if any.
+ build_dir=$(topdir)/build
+ all_spec_files=$(wildcard $(build_dir)/*/spec.gmk)
+ # Extract the configuration names from the path
+ all_confs=$(patsubst %/spec.gmk, %, $(patsubst $(build_dir)/%, %, $(all_spec_files)))
+
# Check for unknown command-line variables
define CheckControlVariables
command_line_variables := $$(strip $$(foreach var, \
$$(subst \ ,_,$$(MAKEOVERRIDES)), \
$$(firstword $$(subst =, , $$(var)))))
- unknown_command_line_variables := $$(strip $$(filter-out $$(MAKE_CONTROL_VARIABLES), $$(command_line_variables)))
+ unknown_command_line_variables := $$(strip \
+ $$(filter-out $$(MAKE_CONTROL_VARIABLES), $$(command_line_variables)))
ifneq ($$(unknown_command_line_variables), )
$$(info Note: Command line contains non-control variables:)
$$(foreach var, $$(unknown_command_line_variables), $$(info * $$(var)=$$($$(var))))
@@ -182,7 +182,7 @@
override SPEC :=
else
# Use spec.gmk files in the build output directory
- ifeq ($$(any_spec_file),)
+ ifeq ($$(all_spec_files),)
$$(info Error: No configurations found for $$(topdir).)
$$(info Please run 'bash configure' to create a configuration.)
$$(info )
@@ -196,7 +196,8 @@
matching_confs := $$(strip $$(all_confs))
else
# Otherwise select those that contain the given CONF string
- matching_confs := $$(strip $$(foreach var, $$(all_confs), $$(if $$(findstring $$(CONF), $$(var)), $$(var))))
+ matching_confs := $$(strip $$(foreach var, $$(all_confs), \
+ $$(if $$(findstring $$(CONF), $$(var)), $$(var))))
endif
ifeq ($$(matching_confs),)
$$(info Error: No configurations found matching CONF=$$(CONF).)
@@ -231,6 +232,37 @@
endif
endef
+ # Extract main targets from Main.gmk using the spec provided in $2.
+ #
+ # Param 1: FORCE = force generation of main-targets.gmk or LAZY = do not force.
+ # Param 2: The SPEC file to use.
+ define DefineMainTargets
+
+ # We will start by making sure the main-targets.gmk file is removed, if
+ # make has not been restarted. By the -include, we will trigger the
+ # rule for generating the file (which is never there since we removed it),
+ # thus generating it fresh, and make will restart, incrementing the restart
+ # count.
+ main_targets_file := $$(dir $(strip $2))make-support/main-targets.gmk
+
+ ifeq ($$(MAKE_RESTARTS),)
+ # Only do this if make has not been restarted, and if we do not force it.
+ ifeq ($(strip $1), FORCE)
+ $$(shell rm -f $$(main_targets_file))
+ endif
+ endif
+
+ $$(main_targets_file):
+ @( cd $$(topdir) && \
+ $$(MAKE) $$(MAKE_LOG_FLAGS) -r -R -f $$(topdir)/make/Main.gmk \
+ -I $$(topdir)/make/common SPEC=$(strip $2) NO_RECIPES=true \
+ LOG_LEVEL=$$(LOG_LEVEL) \
+ create-main-targets-include )
+
+ # Now include main-targets.gmk. This will define ALL_MAIN_TARGETS.
+ -include $$(main_targets_file)
+ endef
+
define PrintConfCheckFailed
@echo ' '
@echo "Please rerun configure! Easiest way to do this is by running"
@@ -242,10 +274,9 @@
else # $(HAS_SPEC)=true
##############################################################################
# Helper functions for the 'main' target. These functions assume a single,
- # proper and existing SPEC is provided, and will load it.
+ # proper and existing SPEC is included.
##############################################################################
- include $(SPEC)
include $(SRC_ROOT)/make/common/MakeBase.gmk
# Define basic logging setup
@@ -263,11 +294,11 @@
# Sanity check the spec file, so it matches this source code
define CheckSpecSanity
- ifneq ($$(topdir), $$(TOPDIR))
- ifneq ($$(topdir), $$(ORIGINAL_TOPDIR))
- ifneq ($$(topdir), $$(CANONICAL_TOPDIR))
+ ifneq ($$(ACTUAL_TOPDIR), $$(TOPDIR))
+ ifneq ($$(ACTUAL_TOPDIR), $$(ORIGINAL_TOPDIR))
+ ifneq ($$(ACTUAL_TOPDIR), $$(CANONICAL_TOPDIR))
$$(info Error: SPEC mismatch! Current working directory)
- $$(info $$(topdir))
+ $$(info $$(ACTUAL_TOPDIR))
$$(info does not match either TOPDIR, ORIGINAL_TOPDIR or CANONICAL_TOPDIR)
$$(info $$(TOPDIR))
$$(info $$(ORIGINAL_TOPDIR))
--- a/make/Main.gmk Thu Apr 09 17:38:28 2015 -0700
+++ b/make/Main.gmk Wed Jul 05 20:27:50 2017 +0200
@@ -541,7 +541,7 @@
CLEAN_DIR_TARGETS := $(addprefix clean-, $(CLEAN_DIRS))
CLEAN_TESTS += hotspot-jtreg-native jdk-jtreg-native
CLEAN_TEST_TARGETS += $(addprefix clean-test-, $(CLEAN_TESTS))
-CLEAN_PHASES := gensrc java native include
+CLEAN_PHASES := gensrc java native include docs
CLEAN_PHASE_TARGETS := $(addprefix clean-, $(CLEAN_PHASES))
CLEAN_MODULE_TARGETS := $(addprefix clean-, $(ALL_MODULES))
# Construct targets of the form clean-$module-$phase
@@ -550,7 +550,7 @@
# Remove everything, except the output from configure.
clean: $(CLEAN_DIR_TARGETS)
- ($(CD) $(OUTPUT_ROOT) && $(RM) -r source_tips build.log* build-trace*.log*)
+ ($(CD) $(OUTPUT_ROOT) && $(RM) -r build*.log*)
$(ECHO) Cleaned all build artifacts.
$(CLEAN_DIR_TARGETS):
@@ -574,13 +574,11 @@
# while classes and touch files end up in jdk.
clean-support: clean-jdk
-clean-docs: clean-docstemp
-
-# Remove everything, including configure configuration.
-# If the output directory was created by configure and now becomes empty, remove it as well.
+# Remove everything, including configure configuration. If the output
+# directory was created by configure and now becomes empty, remove it as well.
dist-clean: clean
- ($(CD) $(OUTPUT_ROOT) && $(RM) -r *spec.gmk config.* configure-arguments \
- Makefile compare.sh tmp javacservers)
+ ($(CD) $(OUTPUT_ROOT) && \
+ $(RM) -r *spec.gmk $(CONFIGURESUPPORT_OUTPUTDIR) Makefile compare.sh ide)
$(if $(filter $(CONF_NAME),$(notdir $(OUTPUT_ROOT))), \
if test "x`$(LS) $(OUTPUT_ROOT)`" != x; then \
$(ECHO) "Warning: Not removing non-empty configuration directory for '$(CONF_NAME)'" ; \
@@ -607,14 +605,19 @@
################################################################################
+# The following targets are intentionally not added to ALL_TARGETS since they
+# are internal only, to support Init.gmk.
+
print-targets:
@$(ECHO) $(sort $(ALL_TARGETS))
print-modules:
@$(ECHO) $(sort $(ALL_MODULES))
-# print-* targets intentionally not added to ALL_TARGETS since they are internal only.
-# The corresponding external targets are in Help.gmk
+create-main-targets-include:
+ @$(ECHO) $(LOG_INFO) Generating main target list
+ @$(ECHO) ALL_MAIN_TARGETS := $(sort $(ALL_TARGETS)) > \
+ $(MAKESUPPORT_OUTPUTDIR)/main-targets.gmk
################################################################################
--- a/make/MainSupport.gmk Thu Apr 09 17:38:28 2015 -0700
+++ b/make/MainSupport.gmk Wed Jul 05 20:27:50 2017 +0200
@@ -41,46 +41,60 @@
# Cleans the dir given as $1
define CleanDir
@$(PRINTF) "Cleaning $(strip $1) build artifacts ..."
- @($(CD) $(OUTPUT_ROOT) && $(RM) -r $1)
+ @$(PRINTF) "\n" $(LOG_DEBUG)
+ ($(CD) $(OUTPUT_ROOT) && $(RM) -r $1)
@$(PRINTF) " done\n"
endef
define CleanTest
@$(PRINTF) "Cleaning test $(strip $1) ..."
- @$(RM) -r $(SUPPORT_OUTPUTDIR)/test/$(strip $(subst -,/,$1))
+ @$(PRINTF) "\n" $(LOG_DEBUG)
+ $(RM) -r $(SUPPORT_OUTPUTDIR)/test/$(strip $(subst -,/,$1))
@$(PRINTF) " done\n"
endef
define Clean-gensrc
@$(PRINTF) "Cleaning gensrc $(if $1,for $(strip $1) )..."
- @$(RM) -r $(SUPPORT_OUTPUTDIR)/gensrc/$(strip $1)
- @$(RM) -r $(SUPPORT_OUTPUTDIR)/gensrc_no_docs/$(strip $1)
+ @$(PRINTF) "\n" $(LOG_DEBUG)
+ $(RM) -r $(SUPPORT_OUTPUTDIR)/gensrc/$(strip $1)
+ $(RM) -r $(SUPPORT_OUTPUTDIR)/gensrc_no_docs/$(strip $1)
@$(PRINTF) " done\n"
endef
define Clean-java
@$(PRINTF) "Cleaning java $(if $1,for $(strip $1) )..."
- @$(RM) -r $(JDK_OUTPUTDIR)/modules/$(strip $1)
- @$(RM) -r $(SUPPORT_OUTPUTDIR)/misc/$(strip $1)
- @$(PRINTF) " done\n"
- @$(PRINTF) "Cleaning headers $(if $1,for $(strip $1)) ..."
- @$(RM) -r $(SUPPORT_OUTPUTDIR)/headers/$(strip $1)
+ @$(PRINTF) "\n" $(LOG_DEBUG)
+ $(RM) -r $(JDK_OUTPUTDIR)/modules/$(strip $1)
+ $(RM) -r $(SUPPORT_OUTPUTDIR)/misc/$(strip $1)
+ $(PRINTF) " done\n"
+ $(PRINTF) "Cleaning headers $(if $1,for $(strip $1)) ..."
+ $(RM) -r $(SUPPORT_OUTPUTDIR)/headers/$(strip $1)
@$(PRINTF) " done\n"
endef
define Clean-native
@$(PRINTF) "Cleaning native $(if $1,for $(strip $1) )..."
- @$(RM) -r $(SUPPORT_OUTPUTDIR)/native/$(strip $1)
- @$(RM) -r $(SUPPORT_OUTPUTDIR)/modules_libs/$(strip $1)
- @$(RM) -r $(SUPPORT_OUTPUTDIR)/modules_libs-stripped/$(strip $1)
- @$(RM) -r $(SUPPORT_OUTPUTDIR)/modules_cmds/$(strip $1)
- @$(RM) -r $(SUPPORT_OUTPUTDIR)/modules_cmds-stripped/$(strip $1)
+ @$(PRINTF) "\n" $(LOG_DEBUG)
+ $(RM) -r $(SUPPORT_OUTPUTDIR)/native/$(strip $1)
+ $(RM) -r $(SUPPORT_OUTPUTDIR)/modules_libs/$(strip $1)
+ $(RM) -r $(SUPPORT_OUTPUTDIR)/modules_libs-stripped/$(strip $1)
+ $(RM) -r $(SUPPORT_OUTPUTDIR)/modules_cmds/$(strip $1)
+ $(RM) -r $(SUPPORT_OUTPUTDIR)/modules_cmds-stripped/$(strip $1)
@$(PRINTF) " done\n"
endef
define Clean-include
@$(PRINTF) "Cleaning include $(if $1,for $(strip $1) )..."
- @$(RM) -r $(SUPPORT_OUTPUTDIR)/modules_include/$(strip $1)
+ @$(PRINTF) "\n" $(LOG_DEBUG)
+ $(RM) -r $(SUPPORT_OUTPUTDIR)/modules_include/$(strip $1)
+ @$(PRINTF) " done\n"
+endef
+
+define Clean-docs
+ @$(PRINTF) "Cleaning docs ..."
+ @$(PRINTF) "\n" $(LOG_DEBUG)
+ $(RM) -r $(SUPPORT_OUTPUTDIR)/docs
+ $(RM) -r $(IMAGES_OUTPUTDIR)/docs
@$(PRINTF) " done\n"
endef