diff m4/acinclude.m4 @ 29367:8608b7e50720

maint: sort m4 macros alphabetically in acinclude.m4. * acinclude.m4: Sort AC_DEFUN macros alphabetically.
author Rik <rik@octave.org>
date Sat, 13 Feb 2021 11:48:09 -0800
parents 8224cb664385
children d35ed8538d69
line wrap: on
line diff
--- a/m4/acinclude.m4	Sat Feb 13 11:13:10 2021 -0800
+++ b/m4/acinclude.m4	Sat Feb 13 11:48:09 2021 -0800
@@ -100,6 +100,74 @@
   fi
 ])
 dnl
+dnl Check if pthread stack size accounts for thread-local storage.
+dnl
+dnl This program should succeed if the pthread library allocates memory
+dnl for thread-local (__thread) variables independently of the
+dnl requested thread stack size.
+dnl
+dnl It will fail if (as in the current version of glibc) the storage
+dnl for thread-local variables is subtracted from the memory allocated
+dnl for the thread stack.  (This can cause problems for Java and for
+dnl other libraries.)
+dnl
+dnl This bug is tracked in glibc at:
+dnl https://sourceware.org/bugzilla/show_bug.cgi?id=11787
+dnl
+AC_DEFUN([OCTAVE_CHECK_BROKEN_PTHREAD_STACKSIZE], [
+  AC_CACHE_CHECK([whether pthread stack size does not account for thread-local storage],
+    [octave_cv_broken_pthread_stacksize],
+    [AC_LANG_PUSH(C)
+    AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <stdio.h>
+#include <string.h>
+#include <pthread.h>
+
+static char __thread data[100 * 1024];
+
+static void * threadfunc(void *arg)
+{
+    return data;
+}
+      ]], [[
+  pthread_attr_t attr;
+  pthread_t thread;
+  int errnum;
+
+  pthread_attr_init (&attr);
+  errnum = pthread_attr_setstacksize (&attr, 64 * 1024);
+  if (errnum != 0)
+  {
+    fprintf (stderr, "pthread_attr_setstacksize: %s\n", strerror(errnum));
+    return 1;
+  }
+  errnum = pthread_create (&thread, &attr, &threadfunc, NULL);
+  if (errnum != 0)
+  {
+    fprintf (stderr, "pthread_create: %s\n", strerror(errnum));
+    return 1;
+  }
+  errnum = pthread_join (thread, NULL);
+  if (errnum != 0)
+  {
+    fprintf (stderr, "pthread_join: %s\n", strerror(errnum));
+    return 1;
+  }
+
+  pthread_attr_destroy (&attr);
+  return 0;
+    ]])],
+    octave_cv_broken_pthread_stacksize=no,
+    octave_cv_broken_pthread_stacksize=yes,
+    octave_cv_broken_pthread_stacksize=no)
+    AC_LANG_POP(C)
+  ])
+  if test $octave_cv_broken_pthread_stacksize = yes; then
+    AC_DEFINE(HAVE_BROKEN_PTHREAD_STACKSIZE, 1,
+      [Define to 1 if pthread stack size does not account for thread-local storage.])
+  fi
+])
+dnl
 dnl Check for broken stl_algo.h header file in gcc versions 4.8.0, 4.8.1, 4.8.2
 dnl which leads to failures in nth_element.
 dnl
@@ -187,74 +255,6 @@
   fi
 ])
 dnl
-dnl Check if pthread stack size accounts for thread-local storage.
-dnl
-dnl This program should succeed if the pthread library allocates memory
-dnl for thread-local (__thread) variables independently of the
-dnl requested thread stack size.
-dnl
-dnl It will fail if (as in the current version of glibc) the storage
-dnl for thread-local variables is subtracted from the memory allocated
-dnl for the thread stack.  (This can cause problems for Java and for
-dnl other libraries.)
-dnl
-dnl This bug is tracked in glibc at:
-dnl https://sourceware.org/bugzilla/show_bug.cgi?id=11787
-dnl
-AC_DEFUN([OCTAVE_CHECK_BROKEN_PTHREAD_STACKSIZE], [
-  AC_CACHE_CHECK([whether pthread stack size does not account for thread-local storage],
-    [octave_cv_broken_pthread_stacksize],
-    [AC_LANG_PUSH(C)
-    AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#include <stdio.h>
-#include <string.h>
-#include <pthread.h>
-
-static char __thread data[100 * 1024];
-
-static void * threadfunc(void *arg)
-{
-    return data;
-}
-      ]], [[
-  pthread_attr_t attr;
-  pthread_t thread;
-  int errnum;
-
-  pthread_attr_init (&attr);
-  errnum = pthread_attr_setstacksize (&attr, 64 * 1024);
-  if (errnum != 0)
-  {
-    fprintf (stderr, "pthread_attr_setstacksize: %s\n", strerror(errnum));
-    return 1;
-  }
-  errnum = pthread_create (&thread, &attr, &threadfunc, NULL);
-  if (errnum != 0)
-  {
-    fprintf (stderr, "pthread_create: %s\n", strerror(errnum));
-    return 1;
-  }
-  errnum = pthread_join (thread, NULL);
-  if (errnum != 0)
-  {
-    fprintf (stderr, "pthread_join: %s\n", strerror(errnum));
-    return 1;
-  }
-
-  pthread_attr_destroy (&attr);
-  return 0;
-    ]])],
-    octave_cv_broken_pthread_stacksize=no,
-    octave_cv_broken_pthread_stacksize=yes,
-    octave_cv_broken_pthread_stacksize=no)
-    AC_LANG_POP(C)
-  ])
-  if test $octave_cv_broken_pthread_stacksize = yes; then
-    AC_DEFINE(HAVE_BROKEN_PTHREAD_STACKSIZE, 1,
-      [Define to 1 if pthread stack size does not account for thread-local storage.])
-  fi
-])
-dnl
 dnl Check whether CXSparse is version 2.2 or later
 dnl FIXME: This test uses a version number.  It potentially could
 dnl        be re-written to actually call a function, but is it worth it?
@@ -343,6 +343,83 @@
   LIBS="$ac_octave_save_LIBS"
 ])
 dnl
+dnl OCTAVE_CHECK_FORTRAN_SYMBOL_AND_CALLING_CONVENTIONS
+dnl
+dnl Set variables related to Fortran symbol names (append underscore,
+dnl use uppercase names, etc.) and calling convention (mostly used for
+dnl determining how character strings are passed).
+dnl
+AC_DEFUN([OCTAVE_CHECK_FORTRAN_SYMBOL_AND_CALLING_CONVENTIONS], [
+  F77_TOLOWER=yes
+  F77_APPEND_UNDERSCORE=yes
+  F77_APPEND_EXTRA_UNDERSCORE=yes
+
+  case $ac_cv_f77_mangling in
+    "upper case") F77_TOLOWER=no ;;
+  esac
+  case $ac_cv_f77_mangling in
+    "no underscore") F77_APPEND_UNDERSCORE=no ;;
+  esac
+  case $ac_cv_f77_mangling in
+    "no extra underscore") F77_APPEND_EXTRA_UNDERSCORE=no ;;
+  esac
+
+  case $canonical_host_type in
+    i[[3456789]]86-*-*)
+      if test $ac_cv_f77_compiler_gnu = yes; then
+        OCTAVE_F77_FLAG([-mieee-fp])
+      fi
+    ;;
+    alpha*-*-*)
+      if test $ac_cv_f77_compiler_gnu = yes; then
+        OCTAVE_F77_FLAG([-mieee])
+      else
+        OCTAVE_F77_FLAG([-ieee])
+        OCTAVE_F77_FLAG([-fpe1])
+      fi
+    ;;
+    powerpc-apple-machten*)
+      FFLAGS=
+    ;;
+  esac
+
+  if test $ac_cv_f77_compiler_gnu = yes; then
+    FORTRAN_CALLING_CONVENTION=gfortran
+  else
+    FORTRAN_CALLING_CONVENTION=unknown
+  fi
+  AC_ARG_ENABLE([fortran-calling-convention],
+    [AS_HELP_STRING([--enable-fortran-calling-convention=OPTION],
+      [Select C++ to Fortran calling convention.  "gfortran" should be detected automatically.  Other options are "cray", "visual-fortran", or "f2c".])],
+    [FORTRAN_CALLING_CONVENTION="$enableval"], [])
+
+  case $FORTRAN_CALLING_CONVENTION in
+    gfortran)
+      AC_DEFINE(F77_USES_GFORTRAN_CALLING_CONVENTION, 1, [Define to 1 if calling Fortran from C++ should use the gfortran calling convention.])
+    ;;
+    cray)
+      AC_DEFINE(F77_USES_CRAY_CALLING_CONVENTION, 1, [Define to 1 if calling Fortran from C++ should use the Cray Fortran calling convention.])
+    ;;
+    visual-fortran)
+      AC_DEFINE(F77_USES_VISUAL_FORTRAN_CALLING_CONVENTION, 1, [Define to 1 if calling Fortran from C++ should use the Visual Fortran calling convention.])
+    ;;
+    f2c)
+      AC_DEFINE(F77_USES_F2C_CALLING_CONVENTION, 1, [Define to 1 if calling Fortran from C++ should use the f2c calling convention.])
+    ;;
+    *)
+      AC_MSG_ERROR([to build Octave, the C++ to Fortran calling convention must be known.])
+    ;;
+  esac
+
+  if test -n "$FFLAGS"; then
+    AC_MSG_NOTICE([defining FFLAGS to be $FFLAGS])
+  fi
+
+  AC_SUBST(F77_TOLOWER)
+  AC_SUBST(F77_APPEND_UNDERSCORE)
+  AC_SUBST(F77_APPEND_EXTRA_UNDERSCORE)
+])
+dnl
 dnl Check if function gluTessCallback is called with "(...)".
 dnl
 AC_DEFUN([OCTAVE_CHECK_FUNC_GLUTESSCALLBACK_THREEDOTS], [
@@ -369,6 +446,39 @@
   fi
 ])
 dnl
+dnl Check whether the Qt class QList has a constructor that accepts
+dnl a pair of iterators.  This constructor was introduced in Qt 5.14.
+dnl
+AC_DEFUN([OCTAVE_CHECK_FUNC_QFONTMETRICS_HORIZONTAL_ADVANCE], [
+  AC_CACHE_CHECK([for QFontMetrics::horizontalAdvance function],
+    [octave_cv_func_qfontmetrics_horizontal_advance],
+    [AC_LANG_PUSH(C++)
+    ac_octave_save_CPPFLAGS="$CPPFLAGS"
+    ac_octave_save_CXXFLAGS="$CXXFLAGS"
+    CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
+    CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+        #include <QFont>
+        #include <QFontMetrics>
+        #include <QString>
+        ]], [[
+        QFont font;
+        QFontMetrics fm (font);
+        fm.horizontalAdvance ('x');
+        fm.horizontalAdvance (QString ("string"));
+        ]])],
+      octave_cv_func_qfontmetrics_horizontal_advance=yes,
+      octave_cv_func_qfontmetrics_horizontal_advance=no)
+    CPPFLAGS="$ac_octave_save_CPPFLAGS"
+    CXXFLAGS="$ac_octave_save_CXXFLAGS"
+    AC_LANG_POP(C++)
+  ])
+  if test $octave_cv_func_qfontmetrics_horizontal_advance = yes; then
+    AC_DEFINE(HAVE_QFONTMETRICS_HORIZONTAL_ADVANCE, 1,
+      [Define to 1 if you have the `QFontMetrics::horizontalAdvance' function.])
+  fi
+])
+dnl
 dnl Check whether the Qt QGuiApplication class has the setDesktopFileName
 dnl static member function.  This function was introduced in Qt 5.7.
 dnl
@@ -399,6 +509,41 @@
   fi
 ])
 dnl
+dnl Check whether the Qt class QHelpEngine has the documentsForIdentifier
+dnl function.  dnl This member function was introduced in Qt 5.15.
+dnl
+AC_DEFUN([OCTAVE_CHECK_FUNC_QHELPENGINE_DOCUMENTSFORIDENTIFIER], [
+  AC_CACHE_CHECK([for QHelpEngine::documentsForIdentifier in <QHelpEngine>],
+    [octave_cv_func_qhelpengine_documentsforidentifier],
+    [AC_LANG_PUSH(C++)
+    ac_octave_save_CPPFLAGS="$CPPFLAGS"
+    ac_octave_save_CXXFLAGS="$CXXFLAGS"
+    CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
+    CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+        #include <QHelpEngine>
+        #include <QHelpLink>
+        #include <QList>
+        #include <QString>
+        #include <QUrl>
+        ]], [[
+        QString collection_file;
+        QHelpEngine eng (collection_file);
+        QString id;
+        eng.documentsForIdentifier (id);
+        ]])],
+      octave_cv_func_qhelpengine_documentsforidentifier=yes,
+      octave_cv_func_qhelpengine_documentsforidentifier=no)
+    CPPFLAGS="$ac_octave_save_CPPFLAGS"
+    CXXFLAGS="$ac_octave_save_CXXFLAGS"
+    AC_LANG_POP(C++)
+  ])
+  if test $octave_cv_func_qhelpengine_documentsforidentifier = yes; then
+    AC_DEFINE(HAVE_QHELPENGINE_DOCUMENTSFORIDENTIFIER, 1,
+      [Define to 1 if you have the `QHelpEngine::documentsForIdentifier' member function.])
+  fi
+])
+dnl
 dnl Check whether the Qt QHelpSearchQueryWidget class has the searchInput
 dnl member function.  This function was introduced in Qt 5.9.
 dnl
@@ -431,35 +576,32 @@
   fi
 ])
 dnl
-dnl Check whether new API is used with QHelpIndexWidget.
-dnl Under new API, QHelpIndexWidget emits documentActivates.
-dnl Under old API, QHelpIndexWidget emits linkActivated.
-dnl New structure/signal API was introduced in Qt 5.15.
+dnl Check whether the Qt class QList has a constructor that accepts
+dnl a pair of iterators.  This constructor was introduced in Qt 5.14.
 dnl
-dnl FIXME: Delete this entirely when we drop support for Qt 5.14 or older.
-dnl
-AC_DEFUN([OCTAVE_CHECK_NEW_QHELPINDEXWIDGET_API], [
-  AC_CACHE_CHECK([for new QHelpIndexWidget API],
-    [octave_cv_new_qhelpindexwidget_api],
+AC_DEFUN([OCTAVE_CHECK_FUNC_QLIST_ITERATOR_CONSTRUCTOR], [
+  AC_CACHE_CHECK([for QList<T>::QList (iterator, iterator) constructor],
+    [octave_cv_func_qlist_iterator_constructor],
     [AC_LANG_PUSH(C++)
     ac_octave_save_CPPFLAGS="$CPPFLAGS"
     ac_octave_save_CXXFLAGS="$CXXFLAGS"
     CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
-    CXXFLAGS="$CXXPICFLAG $CPPFLAGS"
+    CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-        #include <QHelpLink>
+        #include <QList>
         ]], [[
-        QHelpLink link;
+        QList<int> lst_one;
+        QList<int> lst_two (lst_one.begin (), lst_one.end ());
         ]])],
-      octave_cv_new_qhelpindexwidget_api=yes,
-      octave_cv_new_qhelpindexwidget_api=no)
+      octave_cv_func_qlist_iterator_constructor=yes,
+      octave_cv_func_qlist_iterator_constructor=no)
     CPPFLAGS="$ac_octave_save_CPPFLAGS"
     CXXFLAGS="$ac_octave_save_CXXFLAGS"
     AC_LANG_POP(C++)
   ])
-  if test $octave_cv_new_qhelpindexwidget_api = yes; then
-    AC_DEFINE(HAVE_NEW_QHELPINDEXWIDGET_API, 1,
-      [Define to 1 if using new QHelpIndexWidget API.])
+  if test $octave_cv_func_qlist_iterator_constructor = yes; then
+    AC_DEFINE(HAVE_QLIST_ITERATOR_CONSTRUCTOR, 1,
+      [Define to 1 if you have the `QList<T>::QList (iterator, iterator)' constructor.])
   fi
 ])
 dnl
@@ -527,41 +669,6 @@
   fi
 ])
 dnl
-dnl Check whether the Qt class QHelpEngine has the documentsForIdentifier
-dnl function.  dnl This member function was introduced in Qt 5.15.
-dnl
-AC_DEFUN([OCTAVE_CHECK_FUNC_QHELPENGINE_DOCUMENTSFORIDENTIFIER], [
-  AC_CACHE_CHECK([for QHelpEngine::documentsForIdentifier in <QHelpEngine>],
-    [octave_cv_func_qhelpengine_documentsforidentifier],
-    [AC_LANG_PUSH(C++)
-    ac_octave_save_CPPFLAGS="$CPPFLAGS"
-    ac_octave_save_CXXFLAGS="$CXXFLAGS"
-    CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
-    CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
-    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-        #include <QHelpEngine>
-        #include <QHelpLink>
-        #include <QList>
-        #include <QString>
-        #include <QUrl>
-        ]], [[
-        QString collection_file;
-        QHelpEngine eng (collection_file);
-        QString id;
-        eng.documentsForIdentifier (id);
-        ]])],
-      octave_cv_func_qhelpengine_documentsforidentifier=yes,
-      octave_cv_func_qhelpengine_documentsforidentifier=no)
-    CPPFLAGS="$ac_octave_save_CPPFLAGS"
-    CXXFLAGS="$ac_octave_save_CXXFLAGS"
-    AC_LANG_POP(C++)
-  ])
-  if test $octave_cv_func_qhelpengine_documentsforidentifier = yes; then
-    AC_DEFINE(HAVE_QHELPENGINE_DOCUMENTSFORIDENTIFIER, 1,
-      [Define to 1 if you have the `QHelpEngine::documentsForIdentifier' member function.])
-  fi
-])
-dnl
 dnl Check whether the Qt class QWheelEvent has the angleDelta member function.
 dnl This member function was introduced in Qt 5.
 dnl
@@ -624,136 +731,6 @@
   fi
 ])
 dnl
-dnl Check whether the Qt class QList has a constructor that accepts
-dnl a pair of iterators.  This constructor was introduced in Qt 5.14.
-dnl
-AC_DEFUN([OCTAVE_CHECK_FUNC_QLIST_ITERATOR_CONSTRUCTOR], [
-  AC_CACHE_CHECK([for QList<T>::QList (iterator, iterator) constructor],
-    [octave_cv_func_qlist_iterator_constructor],
-    [AC_LANG_PUSH(C++)
-    ac_octave_save_CPPFLAGS="$CPPFLAGS"
-    ac_octave_save_CXXFLAGS="$CXXFLAGS"
-    CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
-    CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
-    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-        #include <QList>
-        ]], [[
-        QList<int> lst_one;
-        QList<int> lst_two (lst_one.begin (), lst_one.end ());
-        ]])],
-      octave_cv_func_qlist_iterator_constructor=yes,
-      octave_cv_func_qlist_iterator_constructor=no)
-    CPPFLAGS="$ac_octave_save_CPPFLAGS"
-    CXXFLAGS="$ac_octave_save_CXXFLAGS"
-    AC_LANG_POP(C++)
-  ])
-  if test $octave_cv_func_qlist_iterator_constructor = yes; then
-    AC_DEFINE(HAVE_QLIST_ITERATOR_CONSTRUCTOR, 1,
-      [Define to 1 if you have the `QList<T>::QList (iterator, iterator)' constructor.])
-  fi
-])
-dnl
-dnl Check whether the Qt class QList has a constructor that accepts
-dnl a pair of iterators.  This constructor was introduced in Qt 5.14.
-dnl
-AC_DEFUN([OCTAVE_CHECK_FUNC_QFONTMETRICS_HORIZONTAL_ADVANCE], [
-  AC_CACHE_CHECK([for QFontMetrics::horizontalAdvance function],
-    [octave_cv_func_qfontmetrics_horizontal_advance],
-    [AC_LANG_PUSH(C++)
-    ac_octave_save_CPPFLAGS="$CPPFLAGS"
-    ac_octave_save_CXXFLAGS="$CXXFLAGS"
-    CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
-    CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
-    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-        #include <QFont>
-        #include <QFontMetrics>
-        #include <QString>
-        ]], [[
-        QFont font;
-        QFontMetrics fm (font);
-        fm.horizontalAdvance ('x');
-        fm.horizontalAdvance (QString ("string"));
-        ]])],
-      octave_cv_func_qfontmetrics_horizontal_advance=yes,
-      octave_cv_func_qfontmetrics_horizontal_advance=no)
-    CPPFLAGS="$ac_octave_save_CPPFLAGS"
-    CXXFLAGS="$ac_octave_save_CXXFLAGS"
-    AC_LANG_POP(C++)
-  ])
-  if test $octave_cv_func_qfontmetrics_horizontal_advance = yes; then
-    AC_DEFINE(HAVE_QFONTMETRICS_HORIZONTAL_ADVANCE, 1,
-      [Define to 1 if you have the `QFontMetrics::horizontalAdvance' function.])
-  fi
-])
-dnl
-dnl Check whether the Qt class QRegion has the iterators and related
-dnl functions introduced in Qt 5.8.
-dnl
-AC_DEFUN([OCTAVE_CHECK_QREGION_ITERATORS], [
-  AC_CACHE_CHECK([for QRegion iterators and related functions],
-    [octave_cv_qregion_iterators],
-    [AC_LANG_PUSH(C++)
-    ac_octave_save_CPPFLAGS="$CPPFLAGS"
-    ac_octave_save_CXXFLAGS="$CXXFLAGS"
-    CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
-    CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
-    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-        #include <QRegion>
-        ]], [[
-        QRegion region;
-        QRegion::const_iterator it;
-        it = region.begin ();
-        it = region.end ();
-        it = region.cbegin ();
-        it = region.cend ();
-        QRegion::const_reverse_iterator rit;
-        rit = region.rbegin ();
-        rit = region.rend ();
-        rit = region.crbegin ();
-        rit = region.crend ();
-        ]])],
-      octave_cv_qregion_iterators=yes,
-      octave_cv_qregion_iterators=no)
-    CPPFLAGS="$ac_octave_save_CPPFLAGS"
-    CXXFLAGS="$ac_octave_save_CXXFLAGS"
-    AC_LANG_POP(C++)
-  ])
-  if test $octave_cv_qregion_iterators = yes; then
-    AC_DEFINE(HAVE_QREGION_ITERATORS, 1,
-      [Define to 1 if you have the `QFontMetrics::horizontalAdvance' function.])
-  fi
-])
-dnl
-dnl Check whether the Qt::SplitBehavior enum exists and has
-dnl Qt::KeepEmptyParts and Qt::SkipEmptyParts members.  This enum
-dnl was introduced or modified in Qt 5.14.
-dnl
-AC_DEFUN([OCTAVE_CHECK_QT_SPLITBEHAVIOR_ENUM], [
-  AC_CACHE_CHECK([for Qt::SplitBehavior enum],
-    [octave_cv_qt_splitbehavior_enum],
-    [AC_LANG_PUSH(C++)
-    ac_octave_save_CPPFLAGS="$CPPFLAGS"
-    ac_octave_save_CXXFLAGS="$CXXFLAGS"
-    CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
-    CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
-    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-        #include <Qt>
-        ]], [[
-        Qt::SplitBehavior sb_keep = Qt::KeepEmptyParts;
-        Qt::SplitBehavior sb_skip = Qt::SkipEmptyParts;
-        ]])],
-      octave_cv_qt_splitbehavior_enum=yes,
-      octave_cv_qt_splitbehavior_enum=no)
-    CPPFLAGS="$ac_octave_save_CPPFLAGS"
-    CXXFLAGS="$ac_octave_save_CXXFLAGS"
-    AC_LANG_POP(C++)
-  ])
-  if test $octave_cv_qt_splitbehavior_enum = yes; then
-    AC_DEFINE(HAVE_QT_SPLITBEHAVIOR_ENUM, 1,
-      [Define to 1 if you have the `Qt::SplitBehavior' enum.])
-  fi
-])
-dnl
 dnl Check whether HDF5 library has version 1.6 API functions.
 dnl
 AC_DEFUN([OCTAVE_CHECK_HDF5_HAS_VER_16_API], [
@@ -1391,6 +1368,40 @@
   fi
 ])
 dnl
+dnl Check whether PCRE is compiled with --enable-utf.
+dnl
+AC_DEFUN([OCTAVE_CHECK_LIB_PCRE_OK], [
+  AC_CACHE_CHECK([whether PCRE library was compiled with UTF support],
+    [octave_cv_lib_pcre_ok],
+    [AC_LANG_PUSH(C++)
+    AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+        #include <stdio.h>
+        #if defined (HAVE_PCRE_H)
+        #  include <pcre.h>
+        #elif defined (HAVE_PCRE_PCRE_H)
+        #  include <pcre/pcre.h>
+        #endif
+        ]], [[
+        const char *pattern = "test";
+        const char *err;
+        int erroffset;
+        pcre *data = pcre_compile (pattern, PCRE_UTF8, &err, &erroffset, nullptr);
+        return (! data);
+      ]])],
+      octave_cv_lib_pcre_ok=yes,
+      octave_cv_lib_pcre_ok=no,
+      octave_cv_lib_pcre_ok=yes)
+    AC_LANG_POP(C++)
+  ])
+  if test $octave_cv_lib_pcre_ok = yes; then
+    $1
+    :
+  else
+    $2
+    :
+  fi
+])
+dnl
 dnl Check whether Qhull works (does not crash).
 dnl
 AC_DEFUN([OCTAVE_CHECK_LIB_QHULL_OK], [
@@ -1448,40 +1459,6 @@
   fi
 ])
 dnl
-dnl Check whether PCRE is compiled with --enable-utf.
-dnl
-AC_DEFUN([OCTAVE_CHECK_LIB_PCRE_OK], [
-  AC_CACHE_CHECK([whether PCRE library was compiled with UTF support],
-    [octave_cv_lib_pcre_ok],
-    [AC_LANG_PUSH(C++)
-    AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-        #include <stdio.h>
-        #if defined (HAVE_PCRE_H)
-        #  include <pcre.h>
-        #elif defined (HAVE_PCRE_PCRE_H)
-        #  include <pcre/pcre.h>
-        #endif
-        ]], [[
-        const char *pattern = "test";
-        const char *err;
-        int erroffset;
-        pcre *data = pcre_compile (pattern, PCRE_UTF8, &err, &erroffset, nullptr);
-        return (! data);
-      ]])],
-      octave_cv_lib_pcre_ok=yes,
-      octave_cv_lib_pcre_ok=no,
-      octave_cv_lib_pcre_ok=yes)
-    AC_LANG_POP(C++)
-  ])
-  if test $octave_cv_lib_pcre_ok = yes; then
-    $1
-    :
-  else
-    $2
-    :
-  fi
-])
-dnl
 dnl Check whether sndfile library is modern enough to include things like Ogg
 dnl
 AC_DEFUN([OCTAVE_CHECK_LIB_SNDFILE_OK], [
@@ -1535,6 +1512,38 @@
   AC_SUBST(TERM_LIBS)
 ])
 dnl
+dnl Check whether new API is used with QHelpIndexWidget.
+dnl Under new API, QHelpIndexWidget emits documentActivates.
+dnl Under old API, QHelpIndexWidget emits linkActivated.
+dnl New structure/signal API was introduced in Qt 5.15.
+dnl
+dnl FIXME: Delete this entirely when we drop support for Qt 5.14 or older.
+dnl
+AC_DEFUN([OCTAVE_CHECK_NEW_QHELPINDEXWIDGET_API], [
+  AC_CACHE_CHECK([for new QHelpIndexWidget API],
+    [octave_cv_new_qhelpindexwidget_api],
+    [AC_LANG_PUSH(C++)
+    ac_octave_save_CPPFLAGS="$CPPFLAGS"
+    ac_octave_save_CXXFLAGS="$CXXFLAGS"
+    CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
+    CXXFLAGS="$CXXPICFLAG $CPPFLAGS"
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+        #include <QHelpLink>
+        ]], [[
+        QHelpLink link;
+        ]])],
+      octave_cv_new_qhelpindexwidget_api=yes,
+      octave_cv_new_qhelpindexwidget_api=no)
+    CPPFLAGS="$ac_octave_save_CPPFLAGS"
+    CXXFLAGS="$ac_octave_save_CXXFLAGS"
+    AC_LANG_POP(C++)
+  ])
+  if test $octave_cv_new_qhelpindexwidget_api = yes; then
+    AC_DEFINE(HAVE_NEW_QHELPINDEXWIDGET_API, 1,
+      [Define to 1 if using new QHelpIndexWidget API.])
+  fi
+])
+dnl
 dnl Check for the Qhull version.
 dnl
 AC_DEFUN([OCTAVE_CHECK_QHULL_VERSION], [
@@ -1580,6 +1589,44 @@
   fi
 ])
 dnl
+dnl Check whether the Qt class QRegion has the iterators and related
+dnl functions introduced in Qt 5.8.
+dnl
+AC_DEFUN([OCTAVE_CHECK_QREGION_ITERATORS], [
+  AC_CACHE_CHECK([for QRegion iterators and related functions],
+    [octave_cv_qregion_iterators],
+    [AC_LANG_PUSH(C++)
+    ac_octave_save_CPPFLAGS="$CPPFLAGS"
+    ac_octave_save_CXXFLAGS="$CXXFLAGS"
+    CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
+    CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+        #include <QRegion>
+        ]], [[
+        QRegion region;
+        QRegion::const_iterator it;
+        it = region.begin ();
+        it = region.end ();
+        it = region.cbegin ();
+        it = region.cend ();
+        QRegion::const_reverse_iterator rit;
+        rit = region.rbegin ();
+        rit = region.rend ();
+        rit = region.crbegin ();
+        rit = region.crend ();
+        ]])],
+      octave_cv_qregion_iterators=yes,
+      octave_cv_qregion_iterators=no)
+    CPPFLAGS="$ac_octave_save_CPPFLAGS"
+    CXXFLAGS="$ac_octave_save_CXXFLAGS"
+    AC_LANG_POP(C++)
+  ])
+  if test $octave_cv_qregion_iterators = yes; then
+    AC_DEFINE(HAVE_QREGION_ITERATORS, 1,
+      [Define to 1 if you have the `QFontMetrics::horizontalAdvance' function.])
+  fi
+])
+dnl
 dnl Check whether we have QScintilla for the given Qt VERSION.
 dnl
 AC_DEFUN([OCTAVE_CHECK_QSCINTILLA], [
@@ -1874,6 +1921,36 @@
   fi
 ])
 dnl
+dnl Check whether the Qt::SplitBehavior enum exists and has
+dnl Qt::KeepEmptyParts and Qt::SkipEmptyParts members.  This enum
+dnl was introduced or modified in Qt 5.14.
+dnl
+AC_DEFUN([OCTAVE_CHECK_QT_SPLITBEHAVIOR_ENUM], [
+  AC_CACHE_CHECK([for Qt::SplitBehavior enum],
+    [octave_cv_qt_splitbehavior_enum],
+    [AC_LANG_PUSH(C++)
+    ac_octave_save_CPPFLAGS="$CPPFLAGS"
+    ac_octave_save_CXXFLAGS="$CXXFLAGS"
+    CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
+    CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+        #include <Qt>
+        ]], [[
+        Qt::SplitBehavior sb_keep = Qt::KeepEmptyParts;
+        Qt::SplitBehavior sb_skip = Qt::SkipEmptyParts;
+        ]])],
+      octave_cv_qt_splitbehavior_enum=yes,
+      octave_cv_qt_splitbehavior_enum=no)
+    CPPFLAGS="$ac_octave_save_CPPFLAGS"
+    CXXFLAGS="$ac_octave_save_CXXFLAGS"
+    AC_LANG_POP(C++)
+  ])
+  if test $octave_cv_qt_splitbehavior_enum = yes; then
+    AC_DEFINE(HAVE_QT_SPLITBEHAVIOR_ENUM, 1,
+      [Define to 1 if you have the `Qt::SplitBehavior' enum.])
+  fi
+])
+dnl
 dnl OCTAVE_CHECK_QT_TOOL(TOOL)
 dnl
 AC_DEFUN([OCTAVE_CHECK_QT_TOOL], [
@@ -2187,6 +2264,22 @@
   fi
 ])
 dnl
+dnl Check whether SUNDIALS IDA library has the SUNLINSOL_DENSE linear solver.
+dnl
+AC_DEFUN([OCTAVE_CHECK_SUNDIALS_SUNLINSOL_DENSE], [
+  AC_CHECK_HEADERS([sunlinsol/sunlinsol_dense.h],
+      octave_cv_sundials_sunlinsol_dense=yes,
+      octave_cv_sundials_sunlinsol_dense=no)
+    ])
+  if test $octave_cv_sundials_sunlinsol_dense = yes; then
+    AC_DEFINE(HAVE_SUNDIALS_SUNLINSOL_DENSE, 1,
+      [Define to 1 if SUNDIALS IDA includes the SUNLINSOL_DENSE linear solver.])
+  else
+    warn_sundials_disabled="SUNDIALS IDA library does not include the SUNLINSOL_DENSE linear solver.  The solvers ode15i and ode15s will be disabled."
+    OCTAVE_CONFIGURE_WARNING([warn_sundials_disabled])
+  fi
+])
+dnl
 dnl Check whether SUNDIALS IDA library is configured with SUNLINSOL_KLU
 dnl enabled.
 dnl
@@ -2248,21 +2341,14 @@
   fi
 ])
 dnl
-dnl Check whether SUNDIALS IDA library has the SUNLINSOL_DENSE linear solver.
+dnl Like AC_CONFIG_FILES, but don't touch the output file if it already
+dnl exists and hasn't changed.
 dnl
-AC_DEFUN([OCTAVE_CHECK_SUNDIALS_SUNLINSOL_DENSE], [
-  AC_CHECK_HEADERS([sunlinsol/sunlinsol_dense.h],
-      octave_cv_sundials_sunlinsol_dense=yes,
-      octave_cv_sundials_sunlinsol_dense=no)
-    ])
-  if test $octave_cv_sundials_sunlinsol_dense = yes; then
-    AC_DEFINE(HAVE_SUNDIALS_SUNLINSOL_DENSE, 1,
-      [Define to 1 if SUNDIALS IDA includes the SUNLINSOL_DENSE linear solver.])
-  else
-    warn_sundials_disabled="SUNDIALS IDA library does not include the SUNLINSOL_DENSE linear solver.  The solvers ode15i and ode15s will be disabled."
-    OCTAVE_CONFIGURE_WARNING([warn_sundials_disabled])
-  fi
-])
+AC_DEFUN([OCTAVE_CONFIG_MOVE_IF_CHANGE_FILES], [
+  m4_foreach_w([elt], [$1], [
+    AC_CONFIG_FILES(elt[-tmp:]patsubst(elt, [.sh$], [.in.sh]))
+    AC_CONFIG_COMMANDS(elt,
+    [$SHELL $srcdir/build-aux/move-if-change ]elt[-tmp ]elt)])])
 dnl
 dnl Add warning to final summary.
 dnl
@@ -2281,15 +2367,6 @@
     fi])
 ])
 dnl
-dnl Like AC_CONFIG_FILES, but don't touch the output file if it already
-dnl exists and hasn't changed.
-dnl
-AC_DEFUN([OCTAVE_CONFIG_MOVE_IF_CHANGE_FILES], [
-  m4_foreach_w([elt], [$1], [
-    AC_CONFIG_FILES(elt[-tmp:]patsubst(elt, [.sh$], [.in.sh]))
-    AC_CONFIG_COMMANDS(elt,
-    [$SHELL $srcdir/build-aux/move-if-change ]elt[-tmp ]elt)])])
-dnl
 dnl Check if the C++ library has the bit_and, bit_or, and bit_xor
 dnl templates defined.
 dnl
@@ -2413,6 +2490,239 @@
   fi
 ])
 dnl
+dnl OCTAVE_DEFINE_MKOCTFILE_DYNAMIC_LINK_OPTIONS
+dnl
+dnl Requires the following variables to already be set:
+dnl
+dnl   AR
+dnl   CFLAGS
+dnl   CXX
+dnl   CXXFLAGS
+dnl   EXEEXT
+dnl   GCC
+dnl   GREP
+dnl   GXX
+dnl   LDFLAGS
+dnl   ac_cv_f77_compiler_gnu
+dnl   ac_top_build_prefix
+dnl   canonical_host_type
+dnl   have_msvc
+dnl
+AC_DEFUN_ONCE([OCTAVE_DEFINE_MKOCTFILE_DYNAMIC_LINK_OPTIONS], [
+  ### Set system-dependent options for building shared libraries.
+  ### These are used by mkoctfile to create dynamically loadable
+  ### .oct and .mex files.  It would be great if we could somehow
+  ### use libtool to get this information.
+
+  CPICFLAG=-fPIC
+  CXXPICFLAG=-fPIC
+  FPICFLAG=-fPIC
+  SH_LDFLAGS=-shared
+  DL_LDFLAGS="${SH_LDFLAGS}"
+  MKOCTFILE_DL_LDFLAGS="${DL_LDFLAGS}"
+  NO_OCT_FILE_STRIP=false
+  TEMPLATE_AR="${AR}"
+  TEMPLATE_ARFLAGS="${ARFLAGS}"
+  EXTERNAL_DLL_DEFS=
+  OCTAVE_DLL_DEFS=
+  OCTINTERP_DLL_DEFS=
+  OCTGUI_DLL_DEFS=
+  OCTGRAPHICS_DLL_DEFS=
+  library_path_var=LD_LIBRARY_PATH
+  ldpreloadsep=" "
+  case $canonical_host_type in
+    *-*-386bsd* | *-*-netbsd*)
+      SH_LDFLAGS=-Bshareable
+    ;;
+    *-*-openbsd*)
+      SH_LDFLAGS="-shared -fPIC"
+    ;;
+    *-*-freebsd*)
+      SH_LDFLAGS="-shared -Wl,-x"
+    ;;
+    alpha*-dec-osf*)
+      CPICFLAG=
+      CXXPICFLAG=
+      FPICFLAG=
+      SH_LDFLAGS="-shared -Wl,-expect_unresolved -Wl,'*'"
+    ;;
+    *-*-darwin*)
+      DL_LDFLAGS="-bundle -bundle_loader ${ac_top_build_prefix}libinterp/octave ${LDFLAGS}"
+      dnl Contains variables that are defined and undefined at this point, so use
+      dnl appropriate quoting to defer expansion of ${bindir} and ${version}.
+      MKOCTFILE_DL_LDFLAGS='-bundle -bundle_loader ${bindir}/octave-${version}'"${EXEEXT}"
+      SH_LDFLAGS="-dynamiclib -single_module ${LDFLAGS}"
+      case $canonical_host_type in
+        powerpc-*)
+          CXXPICFLAG=
+          CPICFLAG=
+          FPICFLAG=
+        ;;
+      esac
+      NO_OCT_FILE_STRIP=true
+      library_path_var=DYLD_LIBRARY_PATH
+    ;;
+    *-*-cygwin*)
+      CPICFLAG=
+      CXXPICFLAG=
+      FPICFLAG=
+      DL_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc"
+      SH_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-auto-image-base"
+      ldpreloadsep=":"
+    ;;
+    *-*-mingw*)
+      if test $have_msvc = yes; then
+        DL_LDFLAGS="-shared"
+        CPICFLAG=
+        CXXPICFLAG=
+        FPICFLAG=
+        SH_LDFLAGS="-shared"
+        if test -n "`echo $CFLAGS | $GREP -e '-g'`" || test -n "`echo $CXXFLAGS | $GREP -e '-g'`"; then
+          DL_LDFLAGS="$DL_LDFLAGS -g"
+          SH_LDFLAGS="$SH_LDFLAGS -g"
+        fi
+        NO_OCT_FILE_STRIP=true
+        library_path_var=PATH
+      else
+        CPICFLAG=
+        CXXPICFLAG=
+        FPICFLAG=
+        DL_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc"
+        SH_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-auto-image-base"
+        library_path_var=PATH
+      fi
+      ## Extra compilation flags.
+      EXTERNAL_DLL_DEFS="-DEXTERNAL_DLL"
+      OCTAVE_DLL_DEFS="-DOCTAVE_DLL"
+      OCTINTERP_DLL_DEFS="-DOCTINTERP_DLL"
+      OCTGUI_DLL_DEFS="-DOCTGUI_DLL"
+      OCTGRAPHICS_DLL_DEFS="-DOCTGRAPHICS_DLL"
+    ;;
+    *-*-msdosmsvc)
+      DL_LDFLAGS="-shared"
+      CPICFLAG=
+      CXXPICFLAG=
+      FPICFLAG=
+      SH_LDFLAGS="-shared"
+      if test -n "`echo $CFLAGS | $GREP -e '-g'`" || test -n "`echo $CXXFLAGS | $GREP -e '-g'`"; then
+        DL_LDFLAGS="$DL_LDFLAGS -g"
+        SH_LDFLAGS="$SH_LDFLAGS -g"
+      fi
+      NO_OCT_FILE_STRIP=true
+      library_path_var=PATH
+      ## Extra compilation flags.
+      EXTERNAL_DLL_DEFS="-DEXTERNAL_DLL"
+      OCTAVE_DLL_DEFS="-DOCTAVE_DLL"
+      OCTGUI_DLL_DEFS="-DOCTGUI_DLL"
+      OCTGRAPHICS_DLL_DEFS="-DOCTGRAPHICS_DLL"
+    ;;
+    *-*-linux* | *-*-gnu*)
+      MKOCTFILE_DL_LDFLAGS="-shared -Wl,-Bsymbolic"
+      EXTERNAL_DLL_DEFS="-DEXTERNAL_DLL"
+      OCTAVE_DLL_DEFS="-DOCTAVE_DLL"
+      OCTINTERP_DLL_DEFS="-DOCTINTERP_DLL"
+      OCTGUI_DLL_DEFS="-DOCTGUI_DLL"
+      OCTGRAPHICS_DLL_DEFS="-DOCTGRAPHICS_DLL"
+    ;;
+    i[[3456]]86-*-sco3.2v5*)
+      SH_LDFLAGS=-G
+    ;;
+    rs6000-ibm-aix* | powerpc-ibm-aix*)
+      CPICFLAG=
+      CXXPICFLAG=
+      FPICFLAG=
+      library_path_var=LIBPATH
+    ;;
+    hppa*-hp-hpux*)
+      if test $ac_cv_f77_compiler_gnu = yes; then
+        FPICFLAG=-fPIC
+      else
+        FPICFLAG=+Z
+      fi
+      SH_LDFLAGS="-shared -fPIC"
+      library_path_var=SHLIB_PATH
+    ;;
+    ia64*-hp-hpux*)
+      if test $ac_cv_f77_compiler_gnu = yes; then
+        FPICFLAG=-fPIC
+      else
+        FPICFLAG=+Z
+      fi
+      SH_LDFLAGS="-shared -fPIC"
+    ;;
+    *-sgi-*)
+      CPICFLAG=
+      CXXPICFLAG=
+      FPICFLAG=
+    ;;
+    sparc-sun-sunos4*)
+      if test $ac_cv_f77_compiler_gnu = yes; then
+        FPICFLAG=-fPIC
+      else
+        FPICFLAG=-PIC
+      fi
+      SH_LDFLAGS="-assert nodefinitions"
+    ;;
+    sparc-sun-solaris2* | i386-pc-solaris2*)
+      if test $ac_cv_f77_compiler_gnu = yes; then
+        FPICFLAG=-fPIC
+      else
+        FPICFLAG=-KPIC
+      fi
+      if test "$GCC" = yes; then
+        CPICFLAG=-fPIC
+      else
+        CPICFLAG=-KPIC
+      fi
+      if test "$GXX" = yes; then
+        CXXPICFLAG=-fPIC
+        SH_LDFLAGS=-shared
+      else
+        CXXPICFLAG=-KPIC
+        SH_LDFLAGS=-G
+      fi
+      ## Template closures in archive libraries need a different mechanism.
+      if test "$GXX" != yes; then
+        TEMPLATE_AR="${CXX}"
+        TEMPLATE_ARFLAGS="-xar -o"
+      fi
+    ;;
+  esac
+
+  AC_MSG_NOTICE([defining FPICFLAG to be $FPICFLAG])
+  AC_MSG_NOTICE([defining CPICFLAG to be $CPICFLAG])
+  AC_MSG_NOTICE([defining CXXPICFLAG to be $CXXPICFLAG])
+  AC_MSG_NOTICE([defining SH_LDFLAGS to be $SH_LDFLAGS])
+  AC_MSG_NOTICE([defining DL_LDFLAGS to be $DL_LDFLAGS])
+  AC_MSG_NOTICE([defining MKOCTFILE_DL_LDFLAGS to be $MKOCTFILE_DL_LDFLAGS])
+  AC_MSG_NOTICE([defining NO_OCT_FILE_STRIP to be $NO_OCT_FILE_STRIP])
+  AC_MSG_NOTICE([defining TEMPLATE_AR to be $TEMPLATE_AR])
+  AC_MSG_NOTICE([defining TEMPLATE_ARFLAGS to be $TEMPLATE_ARFLAGS])
+  AC_MSG_NOTICE([defining EXTERNAL_DLL_DEFS to be $EXTERNAL_DLL_DEFS])
+  AC_MSG_NOTICE([defining OCTAVE_DLL_DEFS to be $OCTAVE_DLL_DEFS])
+  AC_MSG_NOTICE([defining OCTINTERP_DLL_DEFS to be $OCTINTERP_DLL_DEFS])
+  AC_MSG_NOTICE([defining OCTGUI_DLL_DEFS to be $OCTGUI_DLL_DEFS])
+  AC_MSG_NOTICE([defining OCTGRAPHICS_DLL_DEFS to be $OCTGRAPHICS_DLL_DEFS])
+  AC_MSG_NOTICE([defining library_path_var to be $library_path_var])
+  AC_SUBST(FPICFLAG)
+  AC_SUBST(CPICFLAG)
+  AC_SUBST(CXXPICFLAG)
+  AC_SUBST(SH_LDFLAGS)
+  AC_SUBST(DL_LDFLAGS)
+  AC_SUBST(MKOCTFILE_DL_LDFLAGS)
+  AC_SUBST(NO_OCT_FILE_STRIP)
+  AC_SUBST(TEMPLATE_AR)
+  AC_SUBST(TEMPLATE_ARFLAGS)
+  AC_SUBST(EXTERNAL_DLL_DEFS)
+  AC_SUBST(OCTAVE_DLL_DEFS)
+  AC_SUBST(OCTINTERP_DLL_DEFS)
+  AC_SUBST(OCTGUI_DLL_DEFS)
+  AC_SUBST(OCTGRAPHICS_DLL_DEFS)
+  AC_SUBST(library_path_var)
+  AC_SUBST(ldpreloadsep)
+  AM_SUBST_NOTMAKE(ldpreloadsep)
+])
+dnl
 dnl Allow the user disable support for command line editing using GNU
 dnl readline.
 dnl
@@ -2644,6 +2954,95 @@
   fi
 ])
 dnl
+dnl Check for llvm::createAlwaysInlinerPass
+dnl
+AC_DEFUN([OCTAVE_LLVM_HAS_CREATEALWAYSINLINERPASS], [
+  AC_CACHE_CHECK([if llvm::createAlwaysInlinerPass exists],
+    [octave_cv_llvm_has_createalwaysinlinerpass],
+    [AC_LANG_PUSH(C++)
+      AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM([[
+          #include <llvm/Transforms/IPO.h>
+          ]], [[
+          llvm::Pass *p;
+          p = llvm::createAlwaysInlinerPass ();
+        ]])],
+        octave_cv_llvm_has_createalwaysinlinerpass=yes,
+        octave_cv_llvm_has_createalwaysinlinerpass=no)
+    AC_LANG_POP(C++)
+  ])
+  if test $octave_cv_llvm_has_createalwaysinlinerpass = yes; then
+    AC_DEFINE(LLVM_HAS_CREATEALWAYSINLINERPASS, 1,
+      [Define to 1 if llvm::createAlwaysInlinerPass exists.])
+  fi
+])
+dnl
+dnl Check llvm::IRBuilder API
+dnl
+AC_DEFUN([OCTAVE_LLVM_IRBUILDER_API], [
+  AC_CACHE_CHECK([if llvm::IRBuilder has two template arguments],
+    [octave_cv_llvm_irbuilder_has_two_template_args],
+    [AC_LANG_PUSH(C++)
+      AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM([[
+#if defined (HAVE_LLVM_IR_FUNCTION_H)
+          #include <llvm/IR/LLVMContext.h>
+#else
+          #include <llvm/LLVMContext.h>
+#endif
+#if defined (HAVE_LLVM_IR_IRBUILDER_H)
+          #include <llvm/IR/IRBuilder.h>
+#elif defined (HAVE_LLVM_SUPPORT_IRBUILDER_H)
+          #include <llvm/Support/IRBuilder.h>
+#else
+          #include <llvm/IRBuilder.h>
+#endif
+          using namespace llvm;
+          ]], [[
+          LLVMContext c;
+          IRBuilder<ConstantFolder,IRBuilderDefaultInserter>  irb (c);
+        ]])],
+        octave_cv_llvm_irbuilder_has_two_template_args=yes,
+        octave_cv_llvm_irbuilder_has_two_template_args=no)
+    AC_LANG_POP(C++)
+  ])
+  if test $octave_cv_llvm_irbuilder_has_two_template_args = yes; then
+    AC_DEFINE(LLVM_IRBUILDER_HAS_TWO_TEMPLATE_ARGS, 1,
+      [Define to 1 if llvm::IRBuilder has two template arguments.])
+  fi
+])
+dnl
+dnl Check llvm::IRBuilder::CreateConstInBoundsGEP1_32 API
+dbl
+AC_DEFUN([OCTAVE_LLVM_IRBUILDER_CREATECONSTINBOUNDSGEP1_32_API], [
+  AC_CACHE_CHECK([if llvm::IRBuilder::CreateConstInBoundsGEP1_32 requires a type argument],
+    [octave_cv_llvm_irbuilder_createconstinboundsgep1_32_requires_type],
+    [AC_LANG_PUSH(C++)
+      AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM([[
+#if defined (HAVE_LLVM_IR_IRBUILDER_H)
+          #include <llvm/IR/IRBuilder.h>
+#elif defined (HAVE_LLVM_SUPPORT_IRBUILDER_H)
+          #include <llvm/Support/IRBuilder.h>
+#else
+          #include <llvm/IRBuilder.h>
+#endif
+          ]], [[
+          llvm::LLVMContext c;
+          llvm::IRBuilder<>  irb (c);
+          llvm::Value *v;
+          v = irb.CreateConstInBoundsGEP1_32 ((llvm::Value *) nullptr, 0);
+        ]])],
+        octave_cv_llvm_irbuilder_createconstinboundsgep1_32_requires_type=no,
+        octave_cv_llvm_irbuilder_createconstinboundsgep1_32_requires_type=yes)
+    AC_LANG_POP(C++)
+  ])
+  if test $octave_cv_llvm_irbuilder_createconstinboundsgep1_32_requires_type = yes; then
+    AC_DEFINE(LLVM_IRBUILDER_CREATECONSTINBOUNDSGEP1_32_REQUIRES_TYPE, 1,
+      [Define to 1 if llvm::IRBuilder::CreateConstInBoundsGEP1_32 requires a type argument.])
+  fi
+])
+dnl
 dnl Check for legacy::PassManager API
 dnl
 AC_DEFUN([OCTAVE_LLVM_LEGACY_PASSMANAGER_API], [
@@ -2696,95 +3095,6 @@
   fi
 ])
 dnl
-dnl Check llvm::IRBuilder API
-dnl
-AC_DEFUN([OCTAVE_LLVM_IRBUILDER_API], [
-  AC_CACHE_CHECK([if llvm::IRBuilder has two template arguments],
-    [octave_cv_llvm_irbuilder_has_two_template_args],
-    [AC_LANG_PUSH(C++)
-      AC_COMPILE_IFELSE(
-        [AC_LANG_PROGRAM([[
-#if defined (HAVE_LLVM_IR_FUNCTION_H)
-          #include <llvm/IR/LLVMContext.h>
-#else
-          #include <llvm/LLVMContext.h>
-#endif
-#if defined (HAVE_LLVM_IR_IRBUILDER_H)
-          #include <llvm/IR/IRBuilder.h>
-#elif defined (HAVE_LLVM_SUPPORT_IRBUILDER_H)
-          #include <llvm/Support/IRBuilder.h>
-#else
-          #include <llvm/IRBuilder.h>
-#endif
-          using namespace llvm;
-          ]], [[
-          LLVMContext c;
-          IRBuilder<ConstantFolder,IRBuilderDefaultInserter>  irb (c);
-        ]])],
-        octave_cv_llvm_irbuilder_has_two_template_args=yes,
-        octave_cv_llvm_irbuilder_has_two_template_args=no)
-    AC_LANG_POP(C++)
-  ])
-  if test $octave_cv_llvm_irbuilder_has_two_template_args = yes; then
-    AC_DEFINE(LLVM_IRBUILDER_HAS_TWO_TEMPLATE_ARGS, 1,
-      [Define to 1 if llvm::IRBuilder has two template arguments.])
-  fi
-])
-dnl
-dnl Check for llvm::createAlwaysInlinerPass
-dnl
-AC_DEFUN([OCTAVE_LLVM_HAS_CREATEALWAYSINLINERPASS], [
-  AC_CACHE_CHECK([if llvm::createAlwaysInlinerPass exists],
-    [octave_cv_llvm_has_createalwaysinlinerpass],
-    [AC_LANG_PUSH(C++)
-      AC_COMPILE_IFELSE(
-        [AC_LANG_PROGRAM([[
-          #include <llvm/Transforms/IPO.h>
-          ]], [[
-          llvm::Pass *p;
-          p = llvm::createAlwaysInlinerPass ();
-        ]])],
-        octave_cv_llvm_has_createalwaysinlinerpass=yes,
-        octave_cv_llvm_has_createalwaysinlinerpass=no)
-    AC_LANG_POP(C++)
-  ])
-  if test $octave_cv_llvm_has_createalwaysinlinerpass = yes; then
-    AC_DEFINE(LLVM_HAS_CREATEALWAYSINLINERPASS, 1,
-      [Define to 1 if llvm::createAlwaysInlinerPass exists.])
-  fi
-])
-dnl
-dnl Check llvm::IRBuilder::CreateConstInBoundsGEP1_32 API
-dbl
-AC_DEFUN([OCTAVE_LLVM_IRBUILDER_CREATECONSTINBOUNDSGEP1_32_API], [
-  AC_CACHE_CHECK([if llvm::IRBuilder::CreateConstInBoundsGEP1_32 requires a type argument],
-    [octave_cv_llvm_irbuilder_createconstinboundsgep1_32_requires_type],
-    [AC_LANG_PUSH(C++)
-      AC_COMPILE_IFELSE(
-        [AC_LANG_PROGRAM([[
-#if defined (HAVE_LLVM_IR_IRBUILDER_H)
-          #include <llvm/IR/IRBuilder.h>
-#elif defined (HAVE_LLVM_SUPPORT_IRBUILDER_H)
-          #include <llvm/Support/IRBuilder.h>
-#else
-          #include <llvm/IRBuilder.h>
-#endif
-          ]], [[
-          llvm::LLVMContext c;
-          llvm::IRBuilder<>  irb (c);
-          llvm::Value *v;
-          v = irb.CreateConstInBoundsGEP1_32 ((llvm::Value *) nullptr, 0);
-        ]])],
-        octave_cv_llvm_irbuilder_createconstinboundsgep1_32_requires_type=no,
-        octave_cv_llvm_irbuilder_createconstinboundsgep1_32_requires_type=yes)
-    AC_LANG_POP(C++)
-  ])
-  if test $octave_cv_llvm_irbuilder_createconstinboundsgep1_32_requires_type = yes; then
-    AC_DEFINE(LLVM_IRBUILDER_CREATECONSTINBOUNDSGEP1_32_REQUIRES_TYPE, 1,
-      [Define to 1 if llvm::IRBuilder::CreateConstInBoundsGEP1_32 requires a type argument.])
-  fi
-])
-dnl
 dnl Check if MIPS processor is target and quiet signalling NaN value is
 dnl opposite of IEEE 754-2008 standard used by all other architectures.
 dnl
@@ -2819,316 +3129,6 @@
   fi
 ])
 dnl
-dnl OCTAVE_CHECK_FORTRAN_SYMBOL_AND_CALLING_CONVENTIONS
-dnl
-dnl Set variables related to Fortran symbol names (append underscore,
-dnl use uppercase names, etc.) and calling convention (mostly used for
-dnl determining how character strings are passed).
-dnl
-AC_DEFUN([OCTAVE_CHECK_FORTRAN_SYMBOL_AND_CALLING_CONVENTIONS], [
-  F77_TOLOWER=yes
-  F77_APPEND_UNDERSCORE=yes
-  F77_APPEND_EXTRA_UNDERSCORE=yes
-
-  case $ac_cv_f77_mangling in
-    "upper case") F77_TOLOWER=no ;;
-  esac
-  case $ac_cv_f77_mangling in
-    "no underscore") F77_APPEND_UNDERSCORE=no ;;
-  esac
-  case $ac_cv_f77_mangling in
-    "no extra underscore") F77_APPEND_EXTRA_UNDERSCORE=no ;;
-  esac
-
-  case $canonical_host_type in
-    i[[3456789]]86-*-*)
-      if test $ac_cv_f77_compiler_gnu = yes; then
-        OCTAVE_F77_FLAG([-mieee-fp])
-      fi
-    ;;
-    alpha*-*-*)
-      if test $ac_cv_f77_compiler_gnu = yes; then
-        OCTAVE_F77_FLAG([-mieee])
-      else
-        OCTAVE_F77_FLAG([-ieee])
-        OCTAVE_F77_FLAG([-fpe1])
-      fi
-    ;;
-    powerpc-apple-machten*)
-      FFLAGS=
-    ;;
-  esac
-
-  if test $ac_cv_f77_compiler_gnu = yes; then
-    FORTRAN_CALLING_CONVENTION=gfortran
-  else
-    FORTRAN_CALLING_CONVENTION=unknown
-  fi
-  AC_ARG_ENABLE([fortran-calling-convention],
-    [AS_HELP_STRING([--enable-fortran-calling-convention=OPTION],
-      [Select C++ to Fortran calling convention.  "gfortran" should be detected automatically.  Other options are "cray", "visual-fortran", or "f2c".])],
-    [FORTRAN_CALLING_CONVENTION="$enableval"], [])
-
-  case $FORTRAN_CALLING_CONVENTION in
-    gfortran)
-      AC_DEFINE(F77_USES_GFORTRAN_CALLING_CONVENTION, 1, [Define to 1 if calling Fortran from C++ should use the gfortran calling convention.])
-    ;;
-    cray)
-      AC_DEFINE(F77_USES_CRAY_CALLING_CONVENTION, 1, [Define to 1 if calling Fortran from C++ should use the Cray Fortran calling convention.])
-    ;;
-    visual-fortran)
-      AC_DEFINE(F77_USES_VISUAL_FORTRAN_CALLING_CONVENTION, 1, [Define to 1 if calling Fortran from C++ should use the Visual Fortran calling convention.])
-    ;;
-    f2c)
-      AC_DEFINE(F77_USES_F2C_CALLING_CONVENTION, 1, [Define to 1 if calling Fortran from C++ should use the f2c calling convention.])
-    ;;
-    *)
-      AC_MSG_ERROR([to build Octave, the C++ to Fortran calling convention must be known.])
-    ;;
-  esac
-
-  if test -n "$FFLAGS"; then
-    AC_MSG_NOTICE([defining FFLAGS to be $FFLAGS])
-  fi
-
-  AC_SUBST(F77_TOLOWER)
-  AC_SUBST(F77_APPEND_UNDERSCORE)
-  AC_SUBST(F77_APPEND_EXTRA_UNDERSCORE)
-])
-dnl
-dnl OCTAVE_DEFINE_MKOCTFILE_DYNAMIC_LINK_OPTIONS
-dnl
-dnl Requires the following variables to already be set:
-dnl
-dnl   AR
-dnl   CFLAGS
-dnl   CXX
-dnl   CXXFLAGS
-dnl   EXEEXT
-dnl   GCC
-dnl   GREP
-dnl   GXX
-dnl   LDFLAGS
-dnl   ac_cv_f77_compiler_gnu
-dnl   ac_top_build_prefix
-dnl   canonical_host_type
-dnl   have_msvc
-dnl
-AC_DEFUN_ONCE([OCTAVE_DEFINE_MKOCTFILE_DYNAMIC_LINK_OPTIONS], [
-  ### Set system-dependent options for building shared libraries.
-  ### These are used by mkoctfile to create dynamically loadable
-  ### .oct and .mex files.  It would be great if we could somehow
-  ### use libtool to get this information.
-
-  CPICFLAG=-fPIC
-  CXXPICFLAG=-fPIC
-  FPICFLAG=-fPIC
-  SH_LDFLAGS=-shared
-  DL_LDFLAGS="${SH_LDFLAGS}"
-  MKOCTFILE_DL_LDFLAGS="${DL_LDFLAGS}"
-  NO_OCT_FILE_STRIP=false
-  TEMPLATE_AR="${AR}"
-  TEMPLATE_ARFLAGS="${ARFLAGS}"
-  EXTERNAL_DLL_DEFS=
-  OCTAVE_DLL_DEFS=
-  OCTINTERP_DLL_DEFS=
-  OCTGUI_DLL_DEFS=
-  OCTGRAPHICS_DLL_DEFS=
-  library_path_var=LD_LIBRARY_PATH
-  ldpreloadsep=" "
-  case $canonical_host_type in
-    *-*-386bsd* | *-*-netbsd*)
-      SH_LDFLAGS=-Bshareable
-    ;;
-    *-*-openbsd*)
-      SH_LDFLAGS="-shared -fPIC"
-    ;;
-    *-*-freebsd*)
-      SH_LDFLAGS="-shared -Wl,-x"
-    ;;
-    alpha*-dec-osf*)
-      CPICFLAG=
-      CXXPICFLAG=
-      FPICFLAG=
-      SH_LDFLAGS="-shared -Wl,-expect_unresolved -Wl,'*'"
-    ;;
-    *-*-darwin*)
-      DL_LDFLAGS="-bundle -bundle_loader ${ac_top_build_prefix}libinterp/octave ${LDFLAGS}"
-      dnl Contains variables that are defined and undefined at this point, so use
-      dnl appropriate quoting to defer expansion of ${bindir} and ${version}.
-      MKOCTFILE_DL_LDFLAGS='-bundle -bundle_loader ${bindir}/octave-${version}'"${EXEEXT}"
-      SH_LDFLAGS="-dynamiclib -single_module ${LDFLAGS}"
-      case $canonical_host_type in
-        powerpc-*)
-          CXXPICFLAG=
-          CPICFLAG=
-          FPICFLAG=
-        ;;
-      esac
-      NO_OCT_FILE_STRIP=true
-      library_path_var=DYLD_LIBRARY_PATH
-    ;;
-    *-*-cygwin*)
-      CPICFLAG=
-      CXXPICFLAG=
-      FPICFLAG=
-      DL_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc"
-      SH_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-auto-image-base"
-      ldpreloadsep=":"
-    ;;
-    *-*-mingw*)
-      if test $have_msvc = yes; then
-        DL_LDFLAGS="-shared"
-        CPICFLAG=
-        CXXPICFLAG=
-        FPICFLAG=
-        SH_LDFLAGS="-shared"
-        if test -n "`echo $CFLAGS | $GREP -e '-g'`" || test -n "`echo $CXXFLAGS | $GREP -e '-g'`"; then
-          DL_LDFLAGS="$DL_LDFLAGS -g"
-          SH_LDFLAGS="$SH_LDFLAGS -g"
-        fi
-        NO_OCT_FILE_STRIP=true
-        library_path_var=PATH
-      else
-        CPICFLAG=
-        CXXPICFLAG=
-        FPICFLAG=
-        DL_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc"
-        SH_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-auto-image-base"
-        library_path_var=PATH
-      fi
-      ## Extra compilation flags.
-      EXTERNAL_DLL_DEFS="-DEXTERNAL_DLL"
-      OCTAVE_DLL_DEFS="-DOCTAVE_DLL"
-      OCTINTERP_DLL_DEFS="-DOCTINTERP_DLL"
-      OCTGUI_DLL_DEFS="-DOCTGUI_DLL"
-      OCTGRAPHICS_DLL_DEFS="-DOCTGRAPHICS_DLL"
-    ;;
-    *-*-msdosmsvc)
-      DL_LDFLAGS="-shared"
-      CPICFLAG=
-      CXXPICFLAG=
-      FPICFLAG=
-      SH_LDFLAGS="-shared"
-      if test -n "`echo $CFLAGS | $GREP -e '-g'`" || test -n "`echo $CXXFLAGS | $GREP -e '-g'`"; then
-        DL_LDFLAGS="$DL_LDFLAGS -g"
-        SH_LDFLAGS="$SH_LDFLAGS -g"
-      fi
-      NO_OCT_FILE_STRIP=true
-      library_path_var=PATH
-      ## Extra compilation flags.
-      EXTERNAL_DLL_DEFS="-DEXTERNAL_DLL"
-      OCTAVE_DLL_DEFS="-DOCTAVE_DLL"
-      OCTGUI_DLL_DEFS="-DOCTGUI_DLL"
-      OCTGRAPHICS_DLL_DEFS="-DOCTGRAPHICS_DLL"
-    ;;
-    *-*-linux* | *-*-gnu*)
-      MKOCTFILE_DL_LDFLAGS="-shared -Wl,-Bsymbolic"
-      EXTERNAL_DLL_DEFS="-DEXTERNAL_DLL"
-      OCTAVE_DLL_DEFS="-DOCTAVE_DLL"
-      OCTINTERP_DLL_DEFS="-DOCTINTERP_DLL"
-      OCTGUI_DLL_DEFS="-DOCTGUI_DLL"
-      OCTGRAPHICS_DLL_DEFS="-DOCTGRAPHICS_DLL"
-    ;;
-    i[[3456]]86-*-sco3.2v5*)
-      SH_LDFLAGS=-G
-    ;;
-    rs6000-ibm-aix* | powerpc-ibm-aix*)
-      CPICFLAG=
-      CXXPICFLAG=
-      FPICFLAG=
-      library_path_var=LIBPATH
-    ;;
-    hppa*-hp-hpux*)
-      if test $ac_cv_f77_compiler_gnu = yes; then
-        FPICFLAG=-fPIC
-      else
-        FPICFLAG=+Z
-      fi
-      SH_LDFLAGS="-shared -fPIC"
-      library_path_var=SHLIB_PATH
-    ;;
-    ia64*-hp-hpux*)
-      if test $ac_cv_f77_compiler_gnu = yes; then
-        FPICFLAG=-fPIC
-      else
-        FPICFLAG=+Z
-      fi
-      SH_LDFLAGS="-shared -fPIC"
-    ;;
-    *-sgi-*)
-      CPICFLAG=
-      CXXPICFLAG=
-      FPICFLAG=
-    ;;
-    sparc-sun-sunos4*)
-      if test $ac_cv_f77_compiler_gnu = yes; then
-        FPICFLAG=-fPIC
-      else
-        FPICFLAG=-PIC
-      fi
-      SH_LDFLAGS="-assert nodefinitions"
-    ;;
-    sparc-sun-solaris2* | i386-pc-solaris2*)
-      if test $ac_cv_f77_compiler_gnu = yes; then
-        FPICFLAG=-fPIC
-      else
-        FPICFLAG=-KPIC
-      fi
-      if test "$GCC" = yes; then
-        CPICFLAG=-fPIC
-      else
-        CPICFLAG=-KPIC
-      fi
-      if test "$GXX" = yes; then
-        CXXPICFLAG=-fPIC
-        SH_LDFLAGS=-shared
-      else
-        CXXPICFLAG=-KPIC
-        SH_LDFLAGS=-G
-      fi
-      ## Template closures in archive libraries need a different mechanism.
-      if test "$GXX" != yes; then
-        TEMPLATE_AR="${CXX}"
-        TEMPLATE_ARFLAGS="-xar -o"
-      fi
-    ;;
-  esac
-
-  AC_MSG_NOTICE([defining FPICFLAG to be $FPICFLAG])
-  AC_MSG_NOTICE([defining CPICFLAG to be $CPICFLAG])
-  AC_MSG_NOTICE([defining CXXPICFLAG to be $CXXPICFLAG])
-  AC_MSG_NOTICE([defining SH_LDFLAGS to be $SH_LDFLAGS])
-  AC_MSG_NOTICE([defining DL_LDFLAGS to be $DL_LDFLAGS])
-  AC_MSG_NOTICE([defining MKOCTFILE_DL_LDFLAGS to be $MKOCTFILE_DL_LDFLAGS])
-  AC_MSG_NOTICE([defining NO_OCT_FILE_STRIP to be $NO_OCT_FILE_STRIP])
-  AC_MSG_NOTICE([defining TEMPLATE_AR to be $TEMPLATE_AR])
-  AC_MSG_NOTICE([defining TEMPLATE_ARFLAGS to be $TEMPLATE_ARFLAGS])
-  AC_MSG_NOTICE([defining EXTERNAL_DLL_DEFS to be $EXTERNAL_DLL_DEFS])
-  AC_MSG_NOTICE([defining OCTAVE_DLL_DEFS to be $OCTAVE_DLL_DEFS])
-  AC_MSG_NOTICE([defining OCTINTERP_DLL_DEFS to be $OCTINTERP_DLL_DEFS])
-  AC_MSG_NOTICE([defining OCTGUI_DLL_DEFS to be $OCTGUI_DLL_DEFS])
-  AC_MSG_NOTICE([defining OCTGRAPHICS_DLL_DEFS to be $OCTGRAPHICS_DLL_DEFS])
-  AC_MSG_NOTICE([defining library_path_var to be $library_path_var])
-  AC_SUBST(FPICFLAG)
-  AC_SUBST(CPICFLAG)
-  AC_SUBST(CXXPICFLAG)
-  AC_SUBST(SH_LDFLAGS)
-  AC_SUBST(DL_LDFLAGS)
-  AC_SUBST(MKOCTFILE_DL_LDFLAGS)
-  AC_SUBST(NO_OCT_FILE_STRIP)
-  AC_SUBST(TEMPLATE_AR)
-  AC_SUBST(TEMPLATE_ARFLAGS)
-  AC_SUBST(EXTERNAL_DLL_DEFS)
-  AC_SUBST(OCTAVE_DLL_DEFS)
-  AC_SUBST(OCTINTERP_DLL_DEFS)
-  AC_SUBST(OCTGUI_DLL_DEFS)
-  AC_SUBST(OCTGRAPHICS_DLL_DEFS)
-  AC_SUBST(library_path_var)
-  AC_SUBST(ldpreloadsep)
-  AM_SUBST_NOTMAKE(ldpreloadsep)
-])
-dnl
 dnl Check for ar.
 dnl
 AC_DEFUN([OCTAVE_PROG_AR], [