Update to reflect upstream repository 'https://github.com:nestlabs/nlbuild-autotools' at tag '1.6.9'.
diff --git a/third_party/nlbuild-autotools/repo/.default-version b/third_party/nlbuild-autotools/repo/.default-version
index 9f05f9f..15d45d4 100644
--- a/third_party/nlbuild-autotools/repo/.default-version
+++ b/third_party/nlbuild-autotools/repo/.default-version
@@ -1 +1 @@
-1.6.5
+1.6.9
diff --git a/third_party/nlbuild-autotools/repo/CHANGES b/third_party/nlbuild-autotools/repo/CHANGES
index 516c8f1..330109f 100644
--- a/third_party/nlbuild-autotools/repo/CHANGES
+++ b/third_party/nlbuild-autotools/repo/CHANGES
@@ -1,3 +1,39 @@
+1.6.9 (2019-04-30)
+
+ * Now that both automake and pure make headers and footers are
+ co-mingled, address an issues in which the .DEFAULT_GOAL
+ specifications in the repos.mak footer were conflicting with
+ makefiles that wanted a different default goal by moving
+ those .DEFAULT_GOAL specifications to Makefile-bootstrap.
+
+1.6.8 (2019-04-29)
+
+ * Downgraded m4 from 1.4.17 to 1.4.5 since 1.4.5 seems to be the
+ last version of m4 that does not abort on invocation in the m4
+ *rintf and friends compatibility and portability library.
+
+ * Leverage both automake and pure make headers and footers by
+ including the latter in the former.
+
+ * Reworked how verbose progress is handled to simplify
+ specification of progress macros.
+
+ * Rebased several automake header macros implementations on their
+ pure make equivalents.
+
+1.6.7 (2019-04-26)
+
+ * Addressed issues with NL_FILTERED_CANONICAL in which the desired
+ content to be filtered was not filtering correctly and in which
+ the desired filtered canonical variables were not emitted in
+ makefiles.
+
+1.6.6 (2019-04-09)
+
+ * Added code coverage support for clang, which uses a link flag
+ --coverage instead of linking to a library(-lgov) as gcc does
+ for code coverage functions.
+
1.6.5 (2018-11-19)
* Addressed an issue in which the failure to make the 'repos-warning'
diff --git a/third_party/nlbuild-autotools/repo/autoconf/m4/nl_enable_coverage.m4 b/third_party/nlbuild-autotools/repo/autoconf/m4/nl_enable_coverage.m4
index b60c4bb..7a62a53 100644
--- a/third_party/nlbuild-autotools/repo/autoconf/m4/nl_enable_coverage.m4
+++ b/third_party/nlbuild-autotools/repo/autoconf/m4/nl_enable_coverage.m4
@@ -58,7 +58,7 @@
AC_ARG_ENABLE(coverage,
[AS_HELP_STRING([--enable-coverage],[Enable the generation of code-coverage instances @<:@default=$1@:>@.])],
[
- case "${enableval}" in
+ case "${enableval}" in
no|yes)
nl_cv_build_coverage=${enableval}
@@ -78,21 +78,23 @@
if test "${nl_cv_build_optimized}" = "yes"; then
AC_MSG_WARN([--enable-optimization was specified, coverage disabled])
nl_cv_build_coverage=no
-
+
else
nl_cv_build_coverage=$1
-
+
fi
])
- if test "${nl_cv_build_coverage}" = "yes"; then
+ if test "${nl_cv_build_coverage}" = "yes"; then
if test "${GCC}" != "yes"; then
AC_MSG_ERROR([GCC or a GCC-compatible toolchain is required for --enable-coverage])
-
else
NL_COVERAGE_CPPFLAGS="--coverage"
- NL_COVERAGE_LIBS="-lgcov"
-
+ if ${CC} --version | grep -q clang; then
+ NL_COVERAGE_LDFLAGS="--coverage"
+ else
+ NL_COVERAGE_LIBS="-lgcov"
+ fi
fi
fi
])
diff --git a/third_party/nlbuild-autotools/repo/autoconf/m4/nl_filtered_canonical.m4 b/third_party/nlbuild-autotools/repo/autoconf/m4/nl_filtered_canonical.m4
index aafdb3c..d3d2eb1 100644
--- a/third_party/nlbuild-autotools/repo/autoconf/m4/nl_filtered_canonical.m4
+++ b/third_party/nlbuild-autotools/repo/autoconf/m4/nl_filtered_canonical.m4
@@ -1,4 +1,5 @@
#
+# Copyright 2019 Google LLC. All Rights Reserved.
# Copyright 2015-2016 Nest Labs Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,6 +26,59 @@
#
#
+# _NL_FILTERED_CANONICAL_SPLIT(name)
+#
+# name - The existing autoconf variable to split
+#
+# This splits, by CPU architecture, vendor, and OS, the filtered
+# tuples otherwise created by autotools, creating:
+#
+# nl_filtered_<name>
+# nl_filtered_<name>_cpu
+# nl_filtered_<name>_os
+# nl_filtered_<name>_vendor
+#
+# filtered of the versioning cruft on the vendor component that most
+# users of these variables rarely care about.
+#
+# The resulting values are available both in configure.ac as well
+# as in makefiles.
+#
+_NL_FILTERED_CANONICAL_SPLIT(name)
+AC_DEFUN([_NL_FILTERED_CANONICAL_SPLIT],
+[
+ case ${nl_cv_filtered_$1} in
+
+ *-*-*) ;;
+ *) AC_MSG_ERROR([invalid value of canonical $1]);;
+
+ esac
+
+ AC_SUBST([nl_filtered_$1], [$nl_cv_filtered_$1])
+
+ nl_save_IFS=$IFS; IFS='-'
+ set x $nl_cv_filtered_$1
+ shift
+
+ AC_SUBST([nl_filtered_$1_cpu], [$[1]])
+ AC_SUBST([nl_filtered_$1_vendor], [$[2]])
+
+ shift; shift
+ [# Remember, the first character of IFS is used to create $]*,
+ # except with old shells:
+ nl_filtered_$1_os=$[*]
+ IFS=$nl_save_IFS
+
+ case nl_filtered_$$1_os in
+
+ *\ *) nl_filtered_$1_os=`echo "$$1_os" | sed 's/ /-/g'`;;
+
+ esac
+
+ AC_SUBST([nl_filtered_$1_os])
+])
+
+#
# _NL_FILTERED_CANONICAL(name)
#
# name - The existing autoconf variable to filter
@@ -40,9 +94,11 @@
AC_DEFUN([_NL_FILTERED_CANONICAL],
[
AC_CACHE_CHECK([filtered $1 system type],
- nl_cv_filtered_$1,
- nl_cv_filtered_$1=`echo ${$1} | sed -e 's/[[[[:digit:].]]]*$//g'`
- nl_filtered_$1=${nl_cv_filtered_$1})
+ [nl_cv_filtered_$1],
+ [nl_cv_filtered_$1=`echo ${$1} | sed -e 's/[[[:digit:].]]*$//g'`
+ nl_filtered_$1=${nl_cv_filtered_$1}])
+
+ _NL_FILTERED_CANONICAL_SPLIT($1)
])
#
diff --git a/third_party/nlbuild-autotools/repo/automake/post.am b/third_party/nlbuild-autotools/repo/automake/post.am
index 245fa8a..2ad1e77 100644
--- a/third_party/nlbuild-autotools/repo/automake/post.am
+++ b/third_party/nlbuild-autotools/repo/automake/post.am
@@ -21,3 +21,5 @@
#
include $(abs_top_nlbuild_autotools_dir)/automake/post/rules.am
+
+include $(abs_top_nlbuild_autotools_dir)/make/post.mak
diff --git a/third_party/nlbuild-autotools/repo/automake/pre.am b/third_party/nlbuild-autotools/repo/automake/pre.am
index 2745b5a..04d0078 100644
--- a/third_party/nlbuild-autotools/repo/automake/pre.am
+++ b/third_party/nlbuild-autotools/repo/automake/pre.am
@@ -21,3 +21,5 @@
#
include $(abs_top_nlbuild_autotools_dir)/automake/pre/macros.am
+
+include $(abs_top_nlbuild_autotools_dir)/make/pre.mak
diff --git a/third_party/nlbuild-autotools/repo/automake/pre/macros.am b/third_party/nlbuild-autotools/repo/automake/pre/macros.am
index 8122bea..2e06b0a 100644
--- a/third_party/nlbuild-autotools/repo/automake/pre/macros.am
+++ b/third_party/nlbuild-autotools/repo/automake/pre/macros.am
@@ -1,4 +1,5 @@
#
+# Copyright 2019 Google LLC. All Rights Reserved.
# Copyright 2014-2016 Nest Labs Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -33,7 +34,7 @@
# Create the directory with the name of the $(@) variable.
#
define create-directory
-$(AM_V_MKDIR_P)$(MKDIR_P) $(@)
+$(call nl-create-dir,$(@))
endef # create-directory
#
@@ -43,7 +44,7 @@
# the destination of the $(@) variable.
#
define create-link
-$(AM_V_LN_S)$(LN_S) $(<) $(@)
+$(call nl-create-link)
endef # create-link
#
@@ -68,16 +69,7 @@
#
#
define check-file
-$(AM_V_at)set -e; \
-echo ' CHECK $(@)'; \
-$(MKDIR_P) $(dir $(@)); \
-$(call check-file-$(1),$(<),$(@).N); \
-if [ -r "$(@)" ] && $(CMP) -s "$(@)" "$(@).N"; then \
- rm -f "$(@).N"; \
-else \
- echo ' GEN $(@)'; \
- mv -f "$(@).N" "$(@)"; \
-fi
+$(call nl-check-file-with-subroutine,check-file,$(1))
endef # check-file
diff --git a/third_party/nlbuild-autotools/repo/examples/Makefile-bootstrap b/third_party/nlbuild-autotools/repo/examples/Makefile-bootstrap
index 592c354..e3e84b8 100644
--- a/third_party/nlbuild-autotools/repo/examples/Makefile-bootstrap
+++ b/third_party/nlbuild-autotools/repo/examples/Makefile-bootstrap
@@ -1,4 +1,5 @@
#
+# Copyright 2019 Google LLC. All Rights Reserved.
# Copyright 2017-2018 Nest Labs Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -57,6 +58,15 @@
include $(abs_top_nlbuild_autotools_dir)/make/pre.mak
include $(abs_top_nlbuild_autotools_dir)/make/host/tools/bootstrap.mak
+# If repos have been defined, create them as the default target goal;
+# otherwise, default to help.
+
+ifneq ($(REPOS),)
+.DEFAULT_GOAL := repos
+else
+.DEFAULT_GOAL := help
+endif # REPOS
+
#
# Add any project-specific bootstrap help commands to this
# 'help-hook' target.
diff --git a/third_party/nlbuild-autotools/repo/examples/configure.ac b/third_party/nlbuild-autotools/repo/examples/configure.ac
index 02bc83d..4de4270 100644
--- a/third_party/nlbuild-autotools/repo/examples/configure.ac
+++ b/third_party/nlbuild-autotools/repo/examples/configure.ac
@@ -292,14 +292,14 @@
# # configured nor built, so the normal checks we undertake for an
# # external package cannot be run here. Simply set the appropriate
# # variables and trust all will be well.
-#
+#
# NLUNIT_TEST_CPPFLAGS="-I\${abs_top_srcdir}/third_party/nlunit-test/repo/src"
# NLUNIT_TEST_LDFLAGS="-L${ac_pwd}/third_party/nlunit-test/repo/src"
# NLUNIT_TEST_LIBS="-lnlunit-test"
# ],
# [
# # Check for required nlunit-test headers.
-#
+#
# AC_CHECK_HEADERS([nlunit-test.h],
# [],
# [
@@ -312,7 +312,7 @@
# # location, its directory stem within this package needs to be set
# # accordingly. In addition, if the location is internal, then we need
# # to attempt to pull it down using the bootstrap makefile.
-#
+#
# if test "${nl_with_nlunit_test}" = "internal"; then
# maybe_nlunit_test_dirstem="nlunit-test/repo"
# nlunit_test_dirstem="third_party/${maybe_nlunit_test_dirstem}"
@@ -364,7 +364,7 @@
# this, as needed.
# # Add any nlunit-test CPPFLAGS, LDFLAGS, and LIBS
-#
+#
# CPPFLAGS="${CPPFLAGS} ${NLUNIT_TEST_CPPFLAGS}"
# LDFLAGS="${LDFLAGS} ${NLUNIT_TEST_LDFLAGS}"
# LIBS="${LIBS} ${NLUNIT_TEST_LIBS}"
@@ -373,6 +373,7 @@
CPPFLAGS="${CPPFLAGS} ${NL_COVERAGE_CPPFLAGS}"
LIBS="${LIBS} ${NL_COVERAGE_LIBS}"
+LDFLAGS="${LDFLAGS} ${NL_COVERAGE_LDFLAGS}"
# At this point, we can restore the compiler flags to whatever the
# user passed in, now that we're clear of any -Werror issues by
diff --git a/third_party/nlbuild-autotools/repo/make/host/tools/tools.mak b/third_party/nlbuild-autotools/repo/make/host/tools/tools.mak
index 2de99c9..dc3ae1b 100644
--- a/third_party/nlbuild-autotools/repo/make/host/tools/tools.mak
+++ b/third_party/nlbuild-autotools/repo/make/host/tools/tools.mak
@@ -1,5 +1,6 @@
#
-# Copyright 2018 Nest Labs Inc. All Rights Reserved.
+# Copyright (c) 2019 Google LLC. All Rights Reserved.
+# Copyright (c) 2018 Nest Labs Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -25,11 +26,13 @@
CHMOD ?= chmod
CMP ?= cmp
CUT ?= cut
+DIFF ?= diff
FIND ?= find
GIT ?= git
GREP ?= grep
GZIP ?= gzip
MKDIR ?= mkdir
+MKDIR_P ?= $(MKDIR) -p
MV ?= mv
RMFLAGS = -f
@@ -44,3 +47,106 @@
TAR ?= tar
UNIQ ?= uniq
XZ ?= xz
+
+#
+# nl-create-dir <directory>
+#
+# Create the specified directory, including any parent directories
+# that may not exist.
+#
+define nl-create-dir
+$(NL_V_PROGRESS_MKDIR)
+$(NL_V_AT)$(MKDIR_P) "$(1)"
+endef # nl-create-dir
+
+#
+# nl-remove-dir <directory>
+#
+# If the specified directory exists, then ensure all of the
+# directories are writable by the current user, and then forcibly
+# remove the directory and all of its contents, sleeping for five (5)
+# seconds and failure before trying the removal again.
+#
+define nl-remove-dir
+$(NL_V_PROGRESS_RMDIR)
+$(NL_V_AT)if [ -d "$(1)" ]; then \
+ $(FIND) "$(1)" -type d ! -perm -200 -exec $(CHMOD) u+w {} ';' \
+ && $(RM) -rf "$(1)" \
+ || { sleep 5 && $(RM) -rf "$(1)"; }; \
+fi
+endef # nl-remove-dir
+
+#
+# nl-check-file-with-subroutine <subroutine prefix> <macro suffix>
+#
+# Check whether a file, referenced by the $(@) variable, should be
+# updated / regenerated based on its dependencies, referenced by the
+# $(<) variable by running the make macro check-file-<macro suffix>.
+#
+# The $(<) is passed as the first argument if the macro wants to process
+# it and the prospective new output file, which the macro MUST
+# generate, as the second.
+#
+# This macro will ensure that any required parent directories are created
+# prior to invoking the subroutine <subroutine prefix>-<macro suffix>.
+#
+# This macro is similar to and inspired by that from Linux Kbuild and
+# elsewhere.
+#
+# <subroutine prefix> - The subroutine name, prefixed to "-<macro suffix>",
+# which, together with <macro suffix>, indicates the
+# make macro to invoke to actually check the file.
+#
+# <macro suffix> - The name, suffixed to "<subroutine prefix>-", which
+# together with <subroutine prefix>, indicates the
+# make macro to invoke to actually check the file.
+#
+#
+define nl-check-file-with-subroutine
+$(NL_V_AT)set -e; \
+$(_NL_PROGRESS) "CHECK" "$(@)"; \
+$(MKDIR_P) $(dir $(@)); \
+$(call $(1)-$(2),$(<),$(@).N); \
+if [ -r "$(@)" ] && $(CMP) -s "$(@)" "$(@).N"; then \
+ rm -f "$(@).N"; \
+else \
+ $(_NL_PROGRESS) "GEN" "$(@)"; \
+ mv -f "$(@).N" "$(@)"; \
+fi
+endef # nl-check-file
+
+#
+# nl-check-file <macro suffix>
+#
+# Check whether a file, referenced by the $(@) variable, should be
+# updated / regenerated based on its dependencies, referenced by the
+# $(<) variable by running the make macro check-file-<macro suffix>.
+#
+# The $(<) is passed as the first argument if the macro wants to process
+# it and the prospective new output file, which the macro MUST
+# generate, as the second.
+#
+# This macro will ensure that any required parent directories are created
+# prior to invoking check-file-<macro suffix>.
+#
+# This macro is similar to and inspired by that from Linux Kbuild and
+# elsewhere.
+#
+# <macro suffix> - The name, suffixed to "check-file-", which indicates
+# the make macro to invoke.
+#
+#
+define nl-check-file
+$(call nl-check-file-with-subroutine,nl-check-file,$(1))
+endef # nl-check-file
+
+#
+# nl-create-link
+#
+# Create the symbolic link with the source of the $(<) variable and
+# the destination of the $(@) variable, using the LN_S macro.
+#
+define nl-create-link
+$(NL_V_PROGRESS_LN_S)
+$(NL_V_AT)$(LN_S) $(<) $(@)
+endef # nl-create-link
diff --git a/third_party/nlbuild-autotools/repo/make/post/rules/bootstrap.mak b/third_party/nlbuild-autotools/repo/make/post/rules/bootstrap.mak
index 36f07f6..db56e0a 100644
--- a/third_party/nlbuild-autotools/repo/make/post/rules/bootstrap.mak
+++ b/third_party/nlbuild-autotools/repo/make/post/rules/bootstrap.mak
@@ -24,28 +24,35 @@
# the GNU autotools-based build system used by this package.
all check coverage dist distcheck doc docdist install install-headers pretty pretty-check: Makefile
- $(NL_V_MAKE)$(MAKE) -f $(<) --no-print-directory $(@)
+ $(NL_V_PROGRESS_MAKE)
+ $(MAKE) -f $(<) --no-print-directory $(@)
Makefile: $(top_srcdir)/Makefile.in $(top_srcdir)/configure
- $(NL_V_CONFIGURE)$(top_srcdir)/configure
+ $(NL_V_PROGRESS_CONFIGURE)
+ $(top_srcdir)/configure
$(top_srcdir)/configure: $(top_srcdir)/configure.ac
- $(NL_V_BOOTSTRAP_CONFIG)$(BOOTSTRAP) -w config
+ $(NL_V_PROGRESS_BOOTSTRAP_CONFIG)
+ $(BOOTSTRAP) -w config
Makefile.in: Makefile.am
- $(NL_V_BOOTSTRAP_MAKE)$(BOOTSTRAP) -w make
+ $(NL_V_PROGRESS_BOOTSTRAP_MAKE)
+ $(BOOTSTRAP) -w make
.PHONY: bootstrap
bootstrap:
- $(NL_V_BOOTSTRAP_ALL)$(BOOTSTRAP) -w all
+ $(NL_V_PROGRESS_BOOTSTRAP_ALL)
+ $(BOOTSTRAP) -w all
.PHONY: bootstrap-config
bootstrap-config:
- $(NL_V_BOOTSTRAP_CONFIG)$(BOOTSTRAP) -w config
+ $(NL_V_PROGRESS_BOOTSTRAP_CONFIG)
+ $(BOOTSTRAP) -w config
.PHONY: bootstrap-make
bootstrap-make:
- $(NL_V_BOOTSTRAP_MAKE)$(BOOTSTRAP) -w make
+ $(NL_V_PROGRESS_BOOTSTRAP_MAKE)
+ $(BOOTSTRAP) -w make
define PrintBootstrapHelp
$(NL_V_AT)echo " all"
diff --git a/third_party/nlbuild-autotools/repo/make/post/rules/repos.mak b/third_party/nlbuild-autotools/repo/make/post/rules/repos.mak
index 51e4121..96b24e9 100644
--- a/third_party/nlbuild-autotools/repo/make/post/rules/repos.mak
+++ b/third_party/nlbuild-autotools/repo/make/post/rules/repos.mak
@@ -120,7 +120,8 @@
endef # REPOS_template
$(REPOS_PACKAGE_GIT_PATH):
- $(NL_V_GIT_INIT)$(GIT) -C $(top_srcdir) init -q $(top_srcdir)
+ $(NL_V_PROGRESS_GIT_INIT)
+ $(GIT) -C $(top_srcdir) init -q $(top_srcdir)
$(NL_V_AT)touch $(REPOS_GIT_INIT_SENTINEL)
define PrintReposWarning
@@ -201,13 +202,11 @@
$(NL_V_AT)echo
endef # MaybePrintReposHelp
-.DEFAULT_GOAL := repos
else
define MaybePrintReposHelp
endef # MaybePrintReposHelp
-.DEFAULT_GOAL := help
endif # REPOS
define PrintReposHelp
diff --git a/third_party/nlbuild-autotools/repo/make/pre/macros/verbosity.mak b/third_party/nlbuild-autotools/repo/make/pre/macros/verbosity.mak
index 1fb5cb0..87ceda3 100644
--- a/third_party/nlbuild-autotools/repo/make/pre/macros/verbosity.mak
+++ b/third_party/nlbuild-autotools/repo/make/pre/macros/verbosity.mak
@@ -1,4 +1,5 @@
#
+# Copyright 2019 Google LLC. All Rights Reserved.
# Copyright 2017-2018 Nest Labs Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,57 +17,85 @@
#
# Description:
-# This file is a make "header" or pre make header that defines make macros
-# for controlling build verbosity.
+# This file is a make "header" or pre make header that defines
+# make macros for controlling build verbosity.
#
#
# Verbosity
#
+# The default build verbosity is 0 or none. Invoking 'make V=0' is
+# equivalent to 'make' with this default.
+
NL_DEFAULT_VERBOSITY ?= 0
+# Alias for the command echo suppression marker.
+
+NL_AT := @
+
+# Alias for a conditional command echo suppression marker, conditioned
+# on the build verbosity.
+
NL_V_AT = $(NL_V_AT_$(V))
NL_V_AT_ = $(NL_V_AT_$(NL_DEFAULT_VERBOSITY))
-NL_V_AT_0 = @
+NL_V_AT_0 = $(NL_AT)
NL_V_AT_1 =
-NL_V_BOOTSTRAP_ALL = $(NL_V_BOOTSTRAP_ALL_$(V))
-NL_V_BOOTSTRAP_ALL_ = $(NL_V_BOOTSTRAP_ALL_$(NL_DEFAULT_VERBOSITY))
-NL_V_BOOTSTRAP_ALL_0 = @echo " BOOTSTRAP all";
-NL_V_BOOTSTRAP_ALL_1 =
+#
+# Verbosity Build Progress Macros
+#
-NL_V_BOOTSTRAP_CONFIG = $(NL_V_BOOTSTRAP_CONFIG_$(V))
-NL_V_BOOTSTRAP_CONFIG_ = $(NL_V_BOOTSTRAP_CONFIG_$(NL_DEFAULT_VERBOSITY))
-NL_V_BOOTSTRAP_CONFIG_0 = @echo " BOOTSTRAP config";
-NL_V_BOOTSTRAP_CONFIG_1 =
+# Macro for emitting "<ACTION> <target | output>" oneline, succinct
+# build progress messages.
-NL_V_BOOTSTRAP_MAKE = $(NL_V_BOOTSTRAP_MAKE_$(V))
-NL_V_BOOTSTRAP_MAKE_ = $(NL_V_BOOTSTRAP_MAKE_$(NL_DEFAULT_VERBOSITY))
-NL_V_BOOTSTRAP_MAKE_0 = @echo " BOOTSTRAP make";
-NL_V_BOOTSTRAP_MAKE_1 =
+_NL_PROGRESS := printf " %-13s %s\n"
+NL_PROGRESS := $(NL_AT)$(_NL_PROGRESS)
-NL_V_CONFIGURE = $(NL_V_CONFIGURE_$(V))
-NL_V_CONFIGURE_ = $(NL_V_CONFIGURE_$(NL_DEFAULT_VERBOSITY))
-NL_V_CONFIGURE_0 = @echo " CONFIGURE";
-NL_V_CONFIGURE_1 =
+# Macro for emitting "<ACTION> <target | output>" oneline, succinct
+# build progress messages, conditioned on build verbosity.
-NL_V_GIT_INIT = $(NL_V_GIT_INIT_$(V))
-NL_V_GIT_INIT_ = $(NL_V_GIT_INIT_$(NL_DEFAULT_VERBOSITY))
-NL_V_GIT_INIT_0 = @echo " GIT INIT $(@)";
-NL_V_GIT_INIT_1 =
+NL_V_PROGRESS = $(NL_V_PROGRESS_$(V))
+NL_V_PROGRESS_ = $(NL_V_PROGRESS_$(NL_DEFAULT_VERBOSITY))
+NL_V_PROGRESS_0 = $(NL_PROGRESS)
+NL_V_PROGRESS_1 = $(NL_AT)true
-NL_V_MAKE = $(NL_V_MAKE_$(V))
-NL_V_MAKE_ = $(NL_V_MAKE_$(NL_DEFAULT_VERBOSITY))
-NL_V_MAKE_0 = @echo " MAKE $(@)";
-NL_V_MAKE_1 =
+# Common convenience progress message macros, conditioned on build
+# verbosity.
-NL_V_MKDIR_P = $(NL_V_MKDIR_P_$(V))
-NL_V_MKDIR_P_ = $(NL_V_MKDIR_P_$(NL_DEFAULT_VERBOSITY))
-NL_V_MKDIR_P_0 = @echo " MKDIR $(1)";
-NL_V_MKDIR_P_1 =
+NL_V_PROGRESS_BOOTSTRAP = $(NL_V_PROGRESS) "BOOTSTRAP" "$(1)";
+NL_V_PROGRESS_BOOTSTRAP_ALL = $(NL_V_BOOTSTRAP) "all";
+NL_V_PROGRESS_BOOTSTRAP_CONFIG = $(NL_V_BOOTSTRAP) "config";
+NL_V_PROGRESS_BOOTSTRAP_MAKE = $(NL_V_BOOTSTRAP) "make";
-NL_V_RMDIR = $(NL_V_RMDIR_$(V))
-NL_V_RMDIR_ = $(NL_V_RMDIR_$(NL_DEFAULT_VERBOSITY))
-NL_V_RMDIR_0 = @echo " RMDIR $(1)";
-NL_V_RMDIR_1 =
+NL_V_PROGRESS_CONFIGURE = $(NL_V_PROGRESS) "CONFIGURE"
+
+NL_V_PROGRESS_GIT_INIT = $(NL_V_PROGRESS) "GIT INIT" "$(@)";
+
+NL_V_PROGRESS_MAKE = $(NL_V_PROGRESS) "MAKE" "$(@)";
+
+NL_V_PROGRESS_LN_S = $(NL_V_PROGRESS) "LN" "$(@)";
+
+NL_V_PROGRESS_MKDIR = $(NL_V_PROGRESS) "MKDIR" "$(1)";
+NL_V_PROGRESS_MKDIR_P = $(NL_V_MKDIR)
+NL_V_PROGRESS_RMDIR = $(NL_V_PROGRESS) "RMDIR" "$(1)";
+
+NL_V_PROGRESS_GZIP = $(NL_V_PROGRESS) "GZIP" "$(@)";
+NL_V_PROGRESS_TAR = $(NL_V_PROGRESS) "TAR" "$(@)";
+NL_V_PROGRESS_TGZ = $(NL_V_PROGRESS) "TGZ" "$(@)";
+NL_V_PROGRESS_TXZ = $(NL_V_PROGRESS) "TXZ" "$(@)";
+NL_V_PROGRESS_XZ = $(NL_V_PROGRESS) "XZ" "$(@)";
+
+#
+# Verbosity Commands and Flags
+#
+
+# This is useful when we do not want submake to be chatty about what
+# it doing when verbosity is suppressed. However, when verbosity is
+# requested, -s (silent) would otherwise suppress all make verbose
+# output. Consequently, suppress -s when verbosity is requested.
+
+NL_V_MAKE_S = $(NL_V_MAKE_S_$(V))
+NL_V_MAKE_S_ = $(NL_V_MAKE_S_$(NL_DEFAULT_VERBOSITY))
+NL_V_MAKE_S_0 = $(MAKE) -s
+NL_V_MAKE_S_1 = $(MAKE)
diff --git a/third_party/nlbuild-autotools/repo/tools/packages/m4/m4.url b/third_party/nlbuild-autotools/repo/tools/packages/m4/m4.url
index 101b895..27cfb6c 100644
--- a/third_party/nlbuild-autotools/repo/tools/packages/m4/m4.url
+++ b/third_party/nlbuild-autotools/repo/tools/packages/m4/m4.url
@@ -1 +1 @@
-ftp://ftp.gnu.org/pub/gnu/m4/m4-1.4.17.tar.gz
+ftp://ftp.gnu.org/pub/gnu/m4/m4-1.4.5.tar.gz
diff --git a/third_party/nlbuild-autotools/repo/tools/packages/m4/m4.version b/third_party/nlbuild-autotools/repo/tools/packages/m4/m4.version
index 04e0d3f..e516bb9 100644
--- a/third_party/nlbuild-autotools/repo/tools/packages/m4/m4.version
+++ b/third_party/nlbuild-autotools/repo/tools/packages/m4/m4.version
@@ -1 +1 @@
-1.4.17
+1.4.5