1.5.0 (2018-04-12)

        * Added support for pulling down remote package dependencies
          using git submodule.

        * Addressed an issue in which nl_enable_coverage.m4 did not work
          correctly on some Linux distributions by specifying coverage
          libraries under LIBS rather than LDFLAGS.

1.4.4 (2018-02-06)

        * Addressed an issue where 'mkskeleton' failed while trying to
          generate "third_party/Makefile.am".

1.4.3 (2018-02-01)

        * Addressed an issue with NL_{SAVE,RESTORE}_WERROR in which
          -Werror=<specific> was not handled.

1.4.2 (2017-06-20)

	* Addressed an issue with the 'make coverage' target where certain
	  make versions may have sensitivites to trailing slashes in order-
	  only targets.

1.4.1 (2017-06-19)

	* Refactored m4 and autotools auxilliary files to ensure that 
	  third-party content remains under third_party/....
	* Addressed issues with generating distributions on Mac OS X 
	  where GNU software, including wget, is not available in PATH.
	* Addressed issue with missing files in MANIFEST.

1.4 (2017-06-15)

	* Remove package archives and prebuilt in-package binaries.
	* Ensure that GNU tool build process is completely self-sufficient
	  and has no dependencies on installed host binaries.	
	* Add support for generating versioned core and prebuilt package binary
	  distributions.
	* Ensure that 'bootstrap' can work with either prebuilt in-package
	  binaries or with installed host binaries.
	
1.3.1 (2017-05-10)

	* Specify the correct m4 URL.

1.3 (2016-12-05)

	* Added the support for detection of supported C++ version.

1.2.2 (2016-08-29)

	* Use the arguments passed, as designed and intended, to
	  NL_PROG_LNDIR rather than hard-coded values for the GNU cp
	  fallback.

1.2.1 (2016-07-13)

	* Make the 'pretty' and 'pretty-check' targets dependent on
	  $(PRETTY_FILES) and then iterate on a filtered version of $(^) so
	  that make's VPATH engine can be leveraged to find sources and
	  headers that are not in directly stat-able paths listed in
	  $(PRETTY_FILES).

1.2 (2016-06-01)

	* Added support for coding style formatting and checking targets.

1.1.2 (2016-03-19)

	* Improve the code coverage generation process to cover an entire
	  project's source.

1.1.1 (2015-12-10)

	* Properly handle package optionality when using pkg-config to
	  detect external packages.

1.1 (2015-11-10)

	* Added support for a recursive 'install-headers' target to allow
	  packages that wish to leverage it to install their public headers
	  and only their public headers to DESTDIR on 'make install-headers'
	  without performing any additional build actions.

1.0.1 (2015-10-27)

	* Refactored NL_WITH_PACKAGE into NL_WITH_REQUIRED_EXTERNAL_PACKAGE,
	  NL_WITH_OPTIONAL_EXTERNAL_PACKAGE, NL_WITH_REQUIRED_INTERNAL_PACKAGE,
	  and NL_WITH_OPTIONAL_INTERNAL_PACKAGE.

1.0 (2015-03-19)

        * Initial revision with GNU m4 1.4.17, autoconf 2.68, automake 1.14.1,
          libtool 2.4.2, make 3.82, and coreutils 8.21.
