2.0.1: 2026-10-08T18:24:59-0400

  [ENHANCEMENT]

    * MST_BATS_REQUIRE_VENDOR, called before MST_BATS, is for packages
      whose distributions must always include Bats

        * --enable-dist-vendor-bats defaults to yes, so Bats from PATH is
          vendored too

        * with --disable-dist-vendor-bats, configure succeeds, but
          make dist fails

2.0.0: 2026-10-08T16:48:07-0400

  [ENHANCEMENT]

    * MST_POD_GEN_DOCS: added test for pod2text

    * MST_BATS([MINIMUM-VERSION], [NAME, FUNCTIONS, HINT]...) finds Bats
      and the add-ons a test suite needs.  It uses a tests/bats
      installation in the source or build tree before searching PATH,
      and adds the --with-bats and --enable-dist-vendor-bats configure
      options.

        * MINIMUM-VERSION, if given, is the oldest acceptable bats-core.

        * Each add-on must load and define FUNCTIONS.  Add-ons have no
          version to check, so FUNCTIONS stands in for one.  HINT, the
          add-on version which provides them, is shown if they are
          missing.

        * Every missing or outdated add-on is reported.

        * --with-bats accepts either a directory of release archives or a
          list of archives in any order.  Archives are matched to bats-core
          and the required add-ons by name; a directory may also hold
          archives the package doesn't need.  bats-core and each add-on are
          installed from their separate distributions, with their licenses.

        * Bats in tests/bats, whether bundled in the source tree or
          installed by --with-bats, is included in distributions by
          default.  --enable-dist-vendor-bats also copies Bats from PATH,
          with the required add-ons, into tests/bats and includes that;
          --disable-dist-vendor-bats never includes Bats.

        * MST_BATS verifies that the selected Bats runner works even when no
          add-ons are requested.  It honors an existing BATS_LIB_PATH for
          Bats found in PATH and substitutes the complete search path.

        * Bats installed by --with-bats, or copied from PATH, is checked,
          including its version and its add-ons' functions, before it
          replaces tests/bats.

        * Failed archive installation or replacement leaves an existing
          tests/bats installation untouched.

        * MST_BATS is documented in the Autoconf Archive style.

    * MST_AM_INIT requires GNU make, found as $MAKE, make, gmake, or
      gnumake, and substitutes MAKE with it; configure fails without it

    * MST_POD_GEN_DOCS: use groff to generate PDF directly if it used
      to generate output and is new enough, otherwise fall back to
      ps2pdf

    * mst_cxx_have_shared_ptr.m4: remove use of obsolete Autoconf Archive CXX macro

    * MST_CHECK_LUA can use LuaJIT, chosen with a new --with-luajit
      configure option or the package's own LUAJIT Automake conditional.
      LuaJIT implements Lua 5.1, so it is only offered or accepted if
      the requested version range includes 5.1.
      It uses ax_lua.m4 from the 2024.10.16 Autoconf Archive, which also
      finds Lua 5.4, and now requires Automake's AM_CONDITIONAL and
      AM_COND_IF, which aclocal provides; autoconf fails without them.

    * MST_AM_INIT, MST_BATS, MST_CHECK_LUA, MST_DOSUBST, and
      MST_INIT_DOXYGEN make autoconf report the Autoconf Archive macros
      they use as undefined if they aren't available, rather than leaving
      them in configure to fail obscurely

    * MST_CHECK_LIB_PCRE2([WIDTH]) checks for PCRE2, using the
      libpcre2-WIDTH pkg-config module or pcre2-config.  PCRE 1, which
      MST_CHECK_LIB_PCRE checks for, is no longer maintained.

  [BUGFIX]

    * MST_INIT_DOXYGEN ran DX_INIT_DOXYGEN twice, once before the
      feature defaults were set, so its checks and warnings appeared
      twice.  Its documentation now describes its "norecurse" argument,
      and it warns about other arguments.

    * MST_CHECK_LIB_PCRE reports what is missing rather than "error: no"

    * MST_FORTRAN_CHARLEN_T never detected a missing GNU Fortran
      compiler, and chose the character length type from the C
      compiler's version.  It now requires the Fortran compiler, chooses
      size_t or int from the GNU Fortran version, and its header
      includes <stddef.h>.

    * MST_CXX_HAVE_SHARED_PTR defines HAVE_SHARED_PTR as 1 rather than
      as empty, so "#if HAVE_SHARED_PTR" works as well as "#ifdef"

    * MST_GNU_FORTRAN_VERSION reports a non-Fortran language when
      autoconf runs

    * MST_PERL_USELIB: --disable-uselib produced 'use lib "no";'

    * MST_CHECK_LIB_LUA linked with the long-gone -llualib when there is
      no pkg-config module, so it could never succeed for Lua 5.1 and
      later

    * MST_CHECK_LIB added its extra libraries only to the link test,
      not to LIBS; MST_CHECK_LIB_CPGPLOT added -lcpgplot to LIBS rather
      than to cpgplot_LIBS

    * MST_GTEST failed when cross compiling, could pick up a nested
      COPYING file as googletest's license, and failed on archive paths
      with spaces

    * MST_PROG_PATCH: --without-patch tried to run a program called "no"

    * MST_PROG_PROVE_EXEC replaced configure's exit trap, so conftest
      files weren't cleaned up and config.log lacked configure's exit
      status, and didn't set PROVE when its result was cached.  It now
      uses a conftest file rather than its own temporary directory.

    * MST_CHECK_LUA reports missing version arguments when autoconf
      runs, rather than when configure runs

    * MST_CHECK_LIB_CONFIG reported a missing library as
      "_MST_CHECK_LIB_ERR" rather than with its error message

    * MST_POD_GEN_DOCS, MST_PROG_USAGE, MST_PROG_LUA_MODULES, and
      MST_DOSUBST printed their messages in literal double quotes

    * AC_CONFIG_PKGCONFIG_IN is removed.  The Autoconf Archive retired
      it long ago; write a .pc.in template and list it in
      AC_CONFIG_FILES instead.

    * AC_PROG_PERL_MODULES is replaced by the Autoconf Archive's
      AX_PROG_PERL_MODULES (ax_prog_perl_modules.m4, 2024.10.16), which
      it was renamed to; the old name still works, but autoconf warns
      that it is obsolete

  [BUILD]

    * install the Autoconf Archive macros required by MST_BATS,
      MST_AM_INIT, MST_CHECK_LUA (ax_lua.m4), and MST_INIT_DOXYGEN
      (ax_prog_doxygen.m4), so installed copies work without the
      source-tree m4 directory or a separate Autoconf Archive

    * out-of-tree builds work with Autoconf support files installed in
      the configured build-aux directory

    * bootstrap script added for environments without mstbuild 

    * the test suite requires bats-core 1.12 or later, bats-assert 2.2.0
      or later, bats-file 0.4.0 or later, and bats-support; configure
      fails with a message naming the add-on if one is too old

    * tests run with the Bats chosen by configure;
      make check BATS_LOG_FLAGS='--jobs N' runs the tests in each file
      in parallel (requires GNU parallel)

  [TESTS]

    * switch to BATS test framework from local testlib_sh

    * use bats-assert and bats-file assertions throughout; failed tests
      show configure's output and the end of config.log

    * a test is generated for each macro test input, and each
      combination in the MST_CHECK and MST_TESTDEP tests is a separate
      test

    * configure --with-gtest=/path/to/googletest.zip makes make check
      also test MST_GTEST with a real googletest release, building and
      running a test program with it

    * the tests pass in an MST environment.  mst_dev.bats

        * passed its fake MST_ROOT in the environment, which broke a perl
          wrapper that uses MST_ROOT, and so autoconf

        * loaded the environment's config.site, which runs
          $MST_SIMUL_ROOT/bin/sysarch, after clearing MST_SIMUL_ROOT

    * the tests use the build directory's aclocal.m4, even if an in-tree
      build left an older one in the source directory

    * macro test inputs which need software an MST environment provides
      are marked "dnl test-requires: mst-environment".  When MST_ROOT is
      set they must configure without errors or warnings; otherwise they
      are skipped.  The macros' logic is tested everywhere with fake
      tools, libraries, and MST trees.


1.4.43: 2026-06-09T12:30:16-0400

  [BUGFIX]

    * bats was only partially installed; use bats' native installation

1.4.42: 2026-06-04T17:54:48-0400

  [BUGFIX]

    * bats switched from LICENSE to LICENSE.md

1.4.41: 2025-12-03T17:12:38-0500

  [BUGFIX]

    * clang (Apple only?) defines __GNUC__ = 4, which confuses the __GNUC__ > 7 test
      in MST_FORTRAN_CHARLEN_T.  defined(__clang__) is now equivalent to __GNUC__ > 7

1.4.40: 2025-11-25T13:56:46-0500

  [ENHANCEMENT]

    * new macro, MST_FORTRAN_CHARLEN_T, creates C header file with a
      type for the length of strings passed to Fortran

1.4.39: 2023-06-23T12:28:41-0400

  [BUGFIX?]

    * revert change in 1.4.6 which removed the escaping of the leading
      '#' character in the STARTPERL autoconf macro.  This now breaks
      insertion of that macro into makefiles by automake, as that now
      looks like

        STARTPERL = #...

      and because make treats the '#' as starting a comment,
      essentially sets STARTPERL to nothing

1.4.38: Thu 08 Jun 2023 02:24:27 PM EDT

  [ENHANCEMENT]

    * add MST_SYBASE_VAR to mst_dev_init.m4

1.4.37: 2022-10-12T20:20:18-0400

  [BUG FIX]
    * mst_test_support.m4: replace obsolete AC_HELP_STRING for AS_HELP_STRING

1.4.36: 2022-06-12T16:42:52-0400

  [ENHANCEMENT]

    * new macro: mst_gnu_fortran_version

1.4.35: 2020-10-21T14:06:58-0400

  [ENHANCEMENT/HACK]

    * MST_DOSUBST: dosubst routine now takes a repeatable --no-eval=<variable> option to
      avoid errors when eval'ing variable values which are actually complex shell scripts
      that contain things that aren't really values.

1.4.34: 2020-04-09T13:11:38-0400

  [BUG FIX]

    * forgot to update test for googetest 1.8.X

    * mst_bats.m4 mst_dosubst.pre mst_gtest.m4 mst_pod_gen_docs.m4
      mst_prog_doxygen.m4: add unique macros so makefiles which rely
      upon them can declare a dependency using UNIQUE_MACRO +=

1.4.33: 2019-09-09T15:34:29-0400

  [BUG FIX]

    * forgot to bump the serial # on mst_gtest.m4

1.4.32: 2019-09-09T15:07:09-0400

  [ENHANCEMENT / BREAKAGE]

    * mst_gtest now only supports Google Test 1.8.X

1.4.31: 2019-07-23T11:19:41-0400

  [ENHANCEMENT]

    * mst_prog_usage.m4: find support programs for converting
      POD into C/C++ code for embedding docs in code.

1.4.30: 2019-07-18T12:12:42-0400

  [ENHANCEMENT]

    * add local doxygen policy via MST_INIT_DOXYGEN

1.4.29: 2018-07-26T17:12:19-0400

  [ENHANCEMENT]

    * mst_perl_libdir.m4: new, sets perllibdir

1.4.28: 2018-07-16T16:47:21-0400

  [BUG FIX]

    * MST_CHECK_LUA's backup search for the lua package had
      incomplete shell quoting, leading to erroneous results.

1.4.27: 2017-11-17T14:50:53-0500

  [ENHANCEMENT]

    * new macro, MST_CXCPARAM_DIR, accepts env variable CXCPARAMDIR,
      sets output variable cxcparamdir

1.4.26: 2017-09-06T13:07:01-0400

  [ENHANCEMENT]

    * MST_TESTDEP_SETUP now takes an optiona boolean (yes/no) argument
      indicating whether test requirements are mandatory and cannot be
      disabled

1.4.25: 2017-07-20T13:39:36-0400

  [API CHANGE/ENHANCEMENT]

    * mst_prog_lua_modules.m4: add $LUAFLAGS to Lua command to find
      modules. don't look for Lua as we don't know which version is
      required.

1.4.24: 2017-07-11T17:36:23-0400

  [ENHANCEMENT]

    * mst_check_lua: check for luac, add LUA_VERSION, lualibdir, lualiblcdir

1.4.23: 2017-06-28T13:16:12-0400

  [BUG FIX]

     * mst_cxx_have_shared_ptr.m4: wrong header included

1.4.22: 2017-02-23T12:02:45-0500

  [ENHANCEMENT]

    * mst_bats.m4: add github url to output message if package not found

1.4.21: 2017-02-23T11:17:18-0500

  [ENHANCEMENT]

    * mst_pod_gen_docs now checks for pod2readme and pod2markdown
    * all macro files now have a serial number

1.4.20: 2016-08-10T15:00:54-0400

  [ENHANCEMENT]

    * new macro MST_BATS: check for bats bash testing library

1.4.19:	2016-03-23T17:51:08-0400

  [CHANGE]

    * remove MST_BOOST, as we're using http://github.com/tsuna/boost.m4

    * Change F77 to FC in PGPLOT run, as HEAD linux boxes are mounting
      a *solaris* /opt/local/bin which has g77 in it.

1.4.18:	2015-10-28T15:12:39-04:00

  [ENHANCEMENT]

    * mst_gtest: don't depend upon a specific root path when unpacking
      googletest's archive.  allows using generic links to the archive.

1.4.17:	2015-07-07T17:47:56-04:00

  [ENHANCEMENT]

    * mst_check_lib_cxcparam : new macro. checks for cxcparam lib, creates
      a configure option to set paramdir.


  [BUG FIX]

    * MST_CHECK_LUA no longer worked, either because of a change in
      autoconf 2.69 or AX_PROG_LUA. fixed.

1.4.16:	2015-02-25T17:55-0500

  [BUG FIX]
    * values subsituted by the dosubst script may extend over several lines.

1.4.15:	2014-04-29T17:45-0400

  [ENHANCEMENT]

    * MST_CXX_HAVE_SHARED_PTR - AC_DEFINE's HAVE_SHARED_PTR if
      the compiler provides shared_ptr

1.4.14:	2014-04-29T15:17-0400

  [BUG FIX]

    * mst_gtest: googletest 1.7.0 has license in LICENSE, not
      COPYING. allow both

1.4.13:	2014-01-24T16:48-0500

  [ENHANCEMENT]

    * Since MST_DOSUBST relies upon Perl, it should look for it

1.4.12:	2014-01-09T11:38-0500

  [ENHANCEMENT]

    * MST_CHECK_LUA: check for Lua executable, headers, and libraries
      using pkg-config and AX_LUA macros

1.4.11:	2014-01-07T11:55-0500

  [ENHANCEMENT]

    * add MST_CHECK_TEST_PKG_MODULES to mst_check.m4 as a wrapper for
      PKG_CHECK_MODULES

1.4.10:	2014-01-07T11:34-0500

  [ENHANCEMENT]

    * add MST_CHECK_PKG_MODULES to mst_check.m4 as a wrapper
      for PKG_CHECK_MODULES

1.4.9:	2013-10-21T12:33-0400

  [ENHANCEMENT]

    * MST_AM_OVERRIDE_VAR (also submited to autoconf-archive as
      AX_AM_OVERRIDE_VAR)

    * MST_GTEST now uses AM_CXXFLAGS in addition to CXXFLAGS

1.4.8:	2013-07-22T17:09-0400

  [ENHANCEMENT]

    *  MST_POD_GEN_DOCS: check for pod conversion tools

    *  MST_BOOST: check for boost libraries and headers

1.4.7:	2013-05-23T15:38-0400

  [BUG FIX]

    * mk-dosubst/dosubst: correctly handle meta-characters in config
      values

  [BUILD]

    * newer autoconf required config.sub for testing PGPLOT macro;
      provide workaround

    * build is now VPATH safe

1.4.6:	2012-11-05T11:44-0500

    [ENHANCEMENT]

    * add a static Automake macro to remove mk-dosubst as part of MST_DOSUBST

1.4.5:	2012-11-01T18:46-0400

  [ENHANCEMENT]

    * MST_DOSUBST: create mk-dosubst script

1.4.4:	2012-06-08T17:19-0400

  [ENHANCEMENT]

    * MST_DEV_INIT: initialize MST developer environment

    * MST_DEV_ENV_VARS: set up MST environment variables. AC_REQUIRE
      only!

    * MST_DEV_PROG_SYSARCH: checks for sysarch (dies if not found)

  [BUG FIXES]

    * tests are more robust against stupid developer errors

1.4.3:	2012-02-23T22:14-0500

  [ENHANCEMENT]

    * mst_test_support MST_TESTDEP_FLAG - don't warn with message if
      message is blank


1.4.2:	2012-02-10T14:42-0500

  [ENHANCEMENT]

    * MST_CHECK_TESTPROG added to mst_test_support

1.4.1:	2011-09-08T15:01-0400

  [BUG FIX]

    * MST_CHECK_PROG improperly handled program names with hyphens

1.4.0:	2011-09-03T21:41-0400

  * add MST_CHECK family of routines.

1.3.0:	2011-08-24T17:47-0400

  * add mst_prog_lua_modules

1.2.0:	2011-05-05T11:27-0400

  * add MST_GTEST: unpack fused version of googletest source, or used
    bundled version

1.1.9:	2010-11-10T13:21-0500

  * add MST_PROG_PROVE_EXEC: look for Perl's prove command which
    handles --exec

1.1.8:	2009-08-07T15:09-0400

  * add local version of ac_prog_perl_modules which is version aware

  * mst_perl_uselib: allow specifying a directory to "use lib" with

  * mst_blib: initial support for blib (testing with blib dir)

1.1.7:	2009-07-16T16:09-0400

  * mst_perl_startperl: handle case where the startperl value has
    spaces

1.1.6:	2009-07-16T15:53-0400

  * added mst_perl_startperl to make Perl's startperl configuration
    variable available

1.1.5:	2009-06-29T18:04-0400

  * added ac_config_pkgconfig_in.ac. originally from the
    autoconf-archive, but it has since been removed from there. still
    needed.

1.1.4:	2009-06-29T17:44-0400

  * remove mst_vl_lib_readline.ac; now used patched version from
    autoconf-archive.  that's been submitted upstream, so in the
    future things should "just work"

  * the Lua library should be requested with a specific version. use
    5.1 in tests

1.1.3:	2007-05-04T15:51-0400

  * more MST_CHECK_LIB_PGPLOT work; improve finding png library

1.1.2:	2007-04-30T16:53-0400

  * further work on MST_CHECK_LIB_PGPLOT to fix X and F77 library
    problems

1.1.1:	2007-04-27T18:07-0400

  * fix X library checks in MST_CHECK_LIB_PGPLOT

  * add MST_AM_INIT

1.1.0:	2007-03-23T15:11-0400

  * added MST_TESTDEP macros as well as their tests

1.0.7:

  * portability fix to MST_CHECK_TESTSHELL

1.0.6:	2006-03-30T19:22-0500

  * MST_PROG_TESTSHELL now pays attention to the TESTSHELL
    environmental variable

1.0.5:	2006-03-16T18:46-0500

  * new macro: MST_CHECK_LIB_CONFIG; checks using pkg-config and
    ${lib}-config

1.0.4:	2006-03-15T17:39-0500

  * new macros: MST_CHECK_LIB, MST_CHECK_LIB_CFITSIO, MST_CHECK_LIB_LUA
    check using pkg-config as well as in the standard system locations

1.0.3:	2006-02-24T14:11-0500

  * fixed patched version of VL_LIB_READLINE from autoconf-archive so
    it would work on platforms without readline. duh.

1.0.2:	2006-02-24T11:58-0500

  * added patched version of VL_LIB_READLINE from autoconf-archive

1.0.1:	2006-02-12T01:44-0500

  * new macros MST_PROG_TESTPERL, MST_PROG_TESTSHELL

1.0.0: 	2006-02-11T10:48-0500

  * initial public release
