+
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_WITH_PCRE2 version: 2 updated: 2018/07/14 16:47:56
+dnl -------------
+dnl Add PCRE2 (Perl-compatible regular expressions v2) to the build if it is
+dnl available and the user requests it. Assume the application will otherwise
+dnl use the POSIX interface.
+dnl
+dnl TODO allow $withval to specify package location
+AC_DEFUN([CF_WITH_PCRE2],
+[
+AC_REQUIRE([CF_PKG_CONFIG])
+
+AC_MSG_CHECKING(if you want to use PCRE2 for regular-expressions)
+AC_ARG_WITH(pcre2,
+ [ --with-pcre2 use PCRE2 for regular-expressions])
+test -z "$with_pcre2" && with_pcre2=no
+AC_MSG_RESULT($with_pcre2)
+
+if test "x$with_pcre2" != xno ; then
+ CF_TRY_PKG_CONFIG(libpcre2,,[
+ CF_TRY_PKG_CONFIG(libpcre,,[
+ AC_MSG_ERROR(Cannot find PCRE2 library)])])
+
+ AC_DEFINE(HAVE_LIB_PCRE2,1,[Define to 1 if we can/should compile with the PCRE2 library])
+
+ # if pkgconfig gave no results, look for the libraries directly
+ case $LIBS in
+ (*pcre2-posix*|*pcreposix*)
+ ;;
+ (*)
+ AC_CHECK_LIB(pcre2-posix,regcomp,[
+ CF_ADD_LIB(pcre2-posix)],
+ [AC_CHECK_LIB(pcreposix,regcomp,[
+ CF_ADD_LIB(pcreposix)
+ ],[AC_MSG_ERROR(Cannot find PCRE2 POSIX library)])])
+ ;;
+ esac
+
+ # either way, check for the library header files
+ AC_CHECK_HEADERS(pcre2-posix.h pcreposix.h)
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_WITH_PKG_CONFIG_LIBDIR version: 10 updated: 2015/08/22 17:10:56
+dnl -------------------------
+dnl Allow the choice of the pkg-config library directory to be overridden.
+AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
+
+case $PKG_CONFIG in
+(no|none|yes)
+ AC_MSG_CHECKING(for pkg-config library directory)
+ ;;
+(*)
+ AC_MSG_CHECKING(for $PKG_CONFIG library directory)
+ ;;
+esac
+
+PKG_CONFIG_LIBDIR=no
+AC_ARG_WITH(pkg-config-libdir,
+ [ --with-pkg-config-libdir=XXX use given directory for installing pc-files],
+ [PKG_CONFIG_LIBDIR=$withval],
+ [test "x$PKG_CONFIG" != xnone && PKG_CONFIG_LIBDIR=yes])
+
+case x$PKG_CONFIG_LIBDIR in
+(x/*)
+ ;;
+(xyes)
+ # Look for the library directory using the same prefix as the executable
+ if test "x$PKG_CONFIG" = xnone
+ then
+ cf_path=$prefix
+ else
+ cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`
+ fi
+
+ # If you don't like using the default architecture, you have to specify the
+ # intended library directory and corresponding compiler/linker options.
+ #
+ # This case allows for Debian's 2014-flavor of multiarch, along with the
+ # most common variations before that point. Some other variants spell the
+ # directory differently, e.g., "pkg-config", and put it in unusual places.
+ # pkg-config has always been poorly standardized, which is ironic...
+ case x`(arch) 2>/dev/null` in
+ (*64)
+ cf_search_path="\
+ $cf_path/lib/*64-linux-gnu \
+ $cf_path/share \
+ $cf_path/lib64 \
+ $cf_path/lib32 \
+ $cf_path/lib"
+ ;;
+ (*)
+ cf_search_path="\
+ $cf_path/lib/*-linux-gnu \
+ $cf_path/share \
+ $cf_path/lib32 \
+ $cf_path/lib \
+ $cf_path/libdata"
+ ;;
+ esac
+
+ CF_VERBOSE(list...)
+ for cf_config in $cf_search_path
+ do
+ CF_VERBOSE(checking $cf_config/pkgconfig)
+ if test -d $cf_config/pkgconfig
+ then
+ PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
+ AC_MSG_CHECKING(done)
+ break
+ fi
+ done
+ ;;
+(*)
+ ;;
+esac
+
+if test "x$PKG_CONFIG_LIBDIR" != xno ; then
+ AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
+fi
+
+AC_SUBST(PKG_CONFIG_LIBDIR)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_WITH_PTHREAD version: 7 updated: 2015/04/18 08:56:57
+dnl ---------------
+dnl Check for POSIX thread library.
+AC_DEFUN([CF_WITH_PTHREAD],
+[
+AC_MSG_CHECKING(if you want to link with the pthread library)
+AC_ARG_WITH(pthread,
+ [ --with-pthread use POSIX thread library],
+ [with_pthread=$withval],
+ [with_pthread=no])
+AC_MSG_RESULT($with_pthread)
+
+if test "$with_pthread" != no ; then
+ AC_CHECK_HEADER(pthread.h,[
+ AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
+
+ for cf_lib_pthread in pthread c_r
+ do
+ AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
+ cf_save_LIBS="$LIBS"
+ CF_ADD_LIB($cf_lib_pthread)
+ AC_TRY_LINK([
+#include <pthread.h>
+],[
+ int rc = pthread_create(0,0,0,0);
+ int r2 = pthread_mutexattr_settype(0, 0);
+],[with_pthread=yes],[with_pthread=no])
+ LIBS="$cf_save_LIBS"
+ AC_MSG_RESULT($with_pthread)
+ test "$with_pthread" = yes && break
+ done
+
+ if test "$with_pthread" = yes ; then
+ CF_ADD_LIB($cf_lib_pthread)
+ AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
+ else
+ AC_MSG_ERROR(Cannot link with pthread library)
+ fi
+ ])
+fi
+])
+dnl ---------------------------------------------------------------------------
+dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
+dnl -------------------
+dnl Allow library's release-version to be overridden. Generally this happens when a
+dnl packager has incremented the release-version past that used in the original package,
+dnl and wishes to keep doing this.
+dnl
+dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
+dnl and {package}_MINOR symbols
+dnl symbol.
+AC_DEFUN([CF_WITH_REL_VERSION],[
+test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
+AC_ARG_WITH(rel-version,
+[ --with-rel-version=XXX override derived release version],
+[AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
+ cf_cv_rel_version=$withval])
+ifelse($1,,[
+ CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
+],[
+ $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
+ $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
+ CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
+ CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
+])
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_WITH_SYSMOUSE version: 3 updated: 2012/10/06 17:56:13
+dnl ----------------
+dnl If we can compile with sysmouse, make it available unless it is not wanted.
+AC_DEFUN([CF_WITH_SYSMOUSE],[
+# not everyone has "test -c"
+if test -c /dev/sysmouse 2>/dev/null ; then
+AC_MSG_CHECKING(if you want to use sysmouse)
+AC_ARG_WITH(sysmouse,
+ [ --with-sysmouse use sysmouse (FreeBSD console)],
+ [cf_with_sysmouse=$withval],
+ [cf_with_sysmouse=maybe])
+ if test "$cf_with_sysmouse" != no ; then
+ AC_TRY_COMPILE([
+#include <osreldate.h>
+#if (__FreeBSD_version >= 400017)
+#include <sys/consio.h>
+#include <sys/fbio.h>
+#else
+#include <machine/console.h>
+#endif
+],[
+ struct mouse_info the_mouse;
+ ioctl(0, CONS_MOUSECTL, &the_mouse);
+],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
+ fi
+AC_MSG_RESULT($cf_with_sysmouse)
+test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE,1,[Define to 1 if we can/should use the sysmouse interface])
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
+dnl ---------------
+dnl For testing, override the derived host system-type which is used to decide
+dnl things such as the linker commands used to build shared libraries. This is
+dnl normally chosen automatically based on the type of system which you are
+dnl building on. We use it for testing the configure script.
+dnl
+dnl This is different from the --host option: it is used only for testing parts
+dnl of the configure script which would not be reachable with --host since that
+dnl relies on the build environment being real, rather than mocked up.
+AC_DEFUN([CF_WITH_SYSTYPE],[
+CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
+AC_ARG_WITH(system-type,
+ [ --with-system-type=XXX test: override derived host system-type],
+[AC_MSG_WARN(overriding system type to $withval)
+ cf_cv_system_name=$withval
+ host_os=$withval
+])
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
+dnl ----------------
+AC_DEFUN([CF_WITH_VALGRIND],[
+CF_NO_LEAKS_OPTION(valgrind,
+ [ --with-valgrind test: use valgrind],
+ [USE_VALGRIND])
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_WITH_VERSIONED_SYMS version: 8 updated: 2018/10/20 20:24:34
+dnl ----------------------
+dnl Use this when building shared library with ELF, to markup symbols with the
+dnl version identifier from the given input file. Generally that identifier is
+dnl the same as the SONAME at which the symbol was first introduced.
+dnl
+dnl $1 = basename of the ".map" file (default $PACKAGE)
+AC_DEFUN([CF_WITH_VERSIONED_SYMS],
+[
+AC_MSG_CHECKING(if versioned-symbols file should be used)
+AC_ARG_WITH(versioned-syms,
+ [ --with-versioned-syms=X markup versioned symbols using ld],
+ [with_versioned_syms=$withval],
+ [with_versioned_syms=no])
+case "x$with_versioned_syms" in
+(xyes)
+ with_versioned_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).map'
+ AC_SUBST(PACKAGE)
+ ;;
+(xno)
+ ;;
+(x/*)
+ test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms)
+ ;;
+(*)
+ test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms)
+ with_versioned_syms=`pwd`/"$with_versioned_syms"
+ ;;
+esac
+AC_MSG_RESULT($with_versioned_syms)
+
+RESULTING_SYMS=
+VERSIONED_SYMS=
+WILDCARD_SYMS=
+
+if test "x$with_versioned_syms" != xno
+then
+ RESULTING_SYMS=$with_versioned_syms
+ case "x$MK_SHARED_LIB" in
+ (*-Wl,*)
+ VERSIONED_SYMS="-Wl,--version-script,\${RESULTING_SYMS}"
+ MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-Wl,%\\[$]{VERSIONED_SYMS} -Wl,%"`
+ CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
+ ;;
+ (*-dy\ *)
+ VERSIONED_SYMS="-Wl,-M,\${RESULTING_SYMS}"
+ MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-dy%\\[$]{VERSIONED_SYMS} -dy%"`
+ CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
+ ;;
+ (*)
+ AC_MSG_WARN(this system does not support versioned-symbols)
+ ;;
+ esac
+
+ # Linux ld can selectively override scope, e.g., of symbols beginning with
+ # "_" by first declaring some as global, and then using a wildcard to
+ # declare the others as local. Some other loaders cannot do this. Check
+ # by constructing a (very) simple shared library and inspecting its
+ # symbols.
+ if test "x$VERSIONED_SYMS" != "x"
+ then
+ AC_MSG_CHECKING(if wildcards can be used to selectively omit symbols)
+ WILDCARD_SYMS=no
+
+ # make sources
+ rm -f conftest.*
+
+ cat >conftest.ver <<EOF
+module_1.0 {
+global:
+ globalf1;
+local:
+ localf1;
+};
+module_2.0 {
+global:
+ globalf2;
+local:
+ localf2;
+ _*;
+} module_1.0;
+submodule_1.0 {
+global:
+ subglobalf1;
+ _ismissing;
+local:
+ sublocalf1;
+};
+submodule_2.0 {
+global:
+ subglobalf2;
+local:
+ sublocalf2;
+ _*;
+} submodule_1.0;
+EOF
+ cat >conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+int _ismissing(void) { return 1; }
+int _localf1(void) { return 1; }
+int _localf2(void) { return 2; }
+int globalf1(void) { return 1; }
+int globalf2(void) { return 2; }
+int _sublocalf1(void) { return 1; }
+int _sublocalf2(void) { return 2; }
+int subglobalf1(void) { return 1; }
+int subglobalf2(void) { return 2; }
+EOF
+ cat >conftest.mk <<EOF
+CC=${CC}
+CFLAGS=${CFLAGS}
+CPPFLAGS=${CPPFLAGS}
+LDFLAGS=${LDFLAGS}
+LIBS=${LIBS}
+VERSIONED_SYMS=${VERSIONED_SYMS}
+RESULTING_SYMS=conftest.ver
+MK_SHARED_LIB=${MK_SHARED_LIB}
+conftest.so: conftest.$ac_cv_objext
+ \$(MK_SHARED_LIB) conftest.$ac_cv_objext
+EOF
+
+ # compile source, make library
+ if make -f conftest.mk 2>&AC_FD_CC >/dev/null
+ then
+ # test for missing symbol in either Data or Text section
+ cf_missing=`nm -P conftest.so 2>&AC_FD_CC |fgrep _ismissing | egrep '[[ ]][[DT]][[ ]]'`
+ test -n "$cf_missing" && WILDCARD_SYMS=yes
+ fi
+ AC_MSG_RESULT($WILDCARD_SYMS)
+ rm -f conftest.*
+ fi
+fi
+AC_SUBST(RESULTING_SYMS)
+AC_SUBST(VERSIONED_SYMS)
+AC_SUBST(WILDCARD_SYMS)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_WITH_X11_RGB version: 1 updated: 2017/11/25 17:32:16
+dnl ---------------
+dnl Handle configure option "--with-x11-rgb", setting these shell
+dnl variables:
+dnl
+dnl $RGB_PATH is the option value, used for finding the X11 rgb file.
+dnl $no_x11_rgb is a "#" (comment) if "--without-x11-rgb" is given.
+dnl
+dnl Most Linux's use this:
+dnl /usr/share/X11/rgb.txt
+dnl Debian uses this:
+dnl /etc/X11/rgb.txt
+dnl DragonFlyBSD ports uses this:
+dnl /usr/pkg/lib/X11/rgb.txt
+dnl FreeBSD ports use these:
+dnl /usr/local/lib/X11/rgb.txt
+dnl /usr/local/share/X11/rgb.txt
+dnl Mandriva has these:
+dnl /usr/lib/X11/rgb.txt
+dnl /usr/lib64/X11/rgb.txt
+dnl NetBSD has these
+dnl /usr/X11R7/lib/X11/rgb.txt
+dnl OpenSolaris uses
+dnl 32-bit:
+dnl /usr/X11/etc/X11/rgb.txt
+dnl /usr/X11/share/X11/rgb.txt
+dnl /usr/X11/lib/X11/rgb.txt
+dnl OSX uses
+dnl /opt/local/share/X11/rgb.txt (MacPorts)
+dnl /opt/X11/share/X11/rgb.txt (non-ports)
+dnl 64-bit:
+dnl /usr/X11/etc/X11/rgb.txt
+dnl /usr/X11/share/X11/rgb.txt (perhaps)
+dnl /usr/X11/lib/amd64/X11/rgb.txt
+dnl Solaris10 uses (in this order):
+dnl /usr/openwin/lib/X11/rgb.txt
+dnl /usr/X11/lib/X11/rgb.txt
+AC_DEFUN([CF_WITH_X11_RGB],[
+AC_MSG_CHECKING(for X11 rgb file)
+AC_ARG_WITH(x11-rgb,
+ [ --with-x11-rgb=FILE file containing X11 rgb information (EPREFIX/lib/X11/rgb.txt)],
+ [RGB_PATH=$withval],
+ [RGB_PATH=auto])
+
+if test "x[$]RGB_PATH" = xauto
+then
+ RGB_PATH='${exec_prefix}/lib/X11/rgb.txt'
+ for cf_path in \
+ /opt/local/share/X11/rgb.txt \
+ /opt/X11/share/X11/rgb.txt \
+ /usr/share/X11/rgb.txt \
+ /usr/X11/share/X11/rgb.txt \
+ /usr/X11/lib/X11/rgb.txt \
+ /usr/lib/X11/rgb.txt \
+ /etc/X11/rgb.txt \
+ /usr/pkg/lib/X11/rgb.txt \
+ /usr/X11R7/lib/X11/rgb.txt \
+ /usr/X11R6/lib/X11/rgb.txt \
+ /usr/X11R5/lib/X11/rgb.txt \
+ /usr/X11R4/lib/X11/rgb.txt \
+ /usr/local/lib/X11/rgb.txt \
+ /usr/local/share/X11/rgb.txt \
+ /usr/lib64/X11/rgb.txt
+ do
+ if test -f "$cf_path" ; then
+ RGB_PATH="$cf_path"
+ break
+ fi
+ done
+else
+ cf_path=$RGB_PATH
+ CF_PATH_SYNTAX(cf_path)
+fi
+
+AC_MSG_RESULT($RGB_PATH)
+AC_SUBST(RGB_PATH)
+AC_DEFINE_UNQUOTED(RGB_PATH,"$cf_path")
+
+no_x11_rgb=
+if test "$RGB_PATH" = no
+then
+ no_x11_rgb="#"
+fi
+AC_SUBST(no_x11_rgb)