]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - test/aclocal.m4
ncurses 6.1 - patch 20180616
[ncurses.git] / test / aclocal.m4
index 1a710ab271339bc789b9f52de12ef9bdaef11292..e7c9afb2aac2fdfd2bb75771469b9e7ff0cd9cb4 100644 (file)
@@ -1,5 +1,5 @@
 dnl***************************************************************************
-dnl Copyright (c) 2003-2016,2017 Free Software Foundation, Inc.              *
+dnl Copyright (c) 2003-2017,2018 Free Software Foundation, Inc.              *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@ dnl sale, use or other dealings in this Software without prior written       *
 dnl authorization.                                                           *
 dnl***************************************************************************
 dnl
-dnl $Id: aclocal.m4,v 1.149 2017/12/26 22:17:17 tom Exp $
+dnl $Id: aclocal.m4,v 1.157 2018/06/16 23:11:00 tom Exp $
 dnl
 dnl Author: Thomas E. Dickey
 dnl
@@ -490,17 +490,61 @@ AC_TRY_LINK([#include <stdio.h>],[printf("Hello world");],,
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_CURSES_LIB version: 1 updated: 2015/04/25 20:53:11
+dnl CF_CHECK_CURSES_LIB version: 2 updated: 2018/01/03 04:47:33
 dnl -------------------
 dnl $1 = nominal library name, used also for header lookup
 dnl $2 = suffix to append to library name
 dnl $3 = function to check for using AC_CHECK_LIB
+dnl $4 = optional parameter list for $3
 AC_DEFUN([CF_CHECK_CURSES_LIB],
 [
-AC_CHECK_LIB($1$2,$3,[
-CF_UPPER(cf_upper,have_lib$1)
-CF_ADD_LIBS(-l$1$2)
-AC_DEFINE_UNQUOTED($cf_upper,1)])
+AC_REQUIRE([CF_PKG_CONFIG])
+
+cf_have_curses_lib=no
+
+: ${NCURSES_CONFIG_PKG:=none}
+if test "x${NCURSES_CONFIG_PKG}" = xnone; then
+       :
+elif test "x${PKG_CONFIG:=none}" != xnone; then
+       AC_MSG_CHECKING(pkg-config for $1$2)
+       if "$PKG_CONFIG" --exists $1$2 ; then
+               AC_MSG_RESULT(yes)
+
+               AC_MSG_CHECKING(if the $1$2 package files work)
+
+               cf_save_CPPFLAGS="$CPPFLAGS"
+               cf_save_LIBS="$LIBS"
+
+               CF_ADD_CFLAGS(`$PKG_CONFIG --cflags $1$2`)
+               CF_ADD_LIBS(`$PKG_CONFIG --libs $1$2`)
+
+               AC_TRY_LINK([#include <$1.h>],
+                       [(void) $3 ( ]ifelse([$4],,,[[$4]])[ );],
+                       [AC_TRY_RUN([#include <$1.h>
+                               int main(void)
+                               { (void) $3 ( ]ifelse([$4],,,[[$4]])[ ); return 0; }],
+                               [cf_have_curses_lib=yes],
+                               [cf_have_curses_lib=no],
+                               [cf_have_curses_lib=maybe])],
+                       [cf_have_curses_lib=no])
+               AC_MSG_RESULT($cf_have_curses_lib)
+               test "$cf_have_curses_lib" = maybe && cf_have_curses_lib=yes
+               if test "$cf_have_curses_lib" != "yes"
+               then
+                       CPPFLAGS="$cf_save_CPPFLAGS"
+                       LIBS="$cf_save_LIBS"
+               else
+                       CF_UPPER(cf_upper,have_lib$1)
+                       AC_DEFINE_UNQUOTED($cf_upper,1)
+               fi
+       fi
+fi
+if test "$cf_have_curses_lib" = no; then
+       AC_CHECK_LIB($1$2,$3,[
+               CF_UPPER(cf_upper,have_lib$1)
+               CF_ADD_LIBS(-l$1$2)
+               AC_DEFINE_UNQUOTED($cf_upper,1)])
+fi
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
@@ -557,7 +601,7 @@ done
 test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map,[Define as needed to override ncurses prefix _nc_])
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_CHECK_DATA version: 6 updated: 2017/07/28 19:05:31
+dnl CF_CURSES_CHECK_DATA version: 7 updated: 2018/01/03 04:47:33
 dnl --------------------
 dnl Check if curses.h defines the given data/variable.
 dnl Use this after CF_NCURSES_CONFIG or CF_CURSES_CONFIG.
@@ -589,7 +633,7 @@ extern char $cf_data;
 int main(void)
 {
        void *foo = &($cf_data);
-       fprintf(stderr, "testing linkage of $cf_data:%p\n", foo);
+       fprintf(stderr, "testing linkage of $cf_data:%p\n", (void *)foo);
        ${cf_cv_main_return:-return}(foo == 0);
 }],[cf_result=yes
 ],[cf_result=no],[
@@ -598,7 +642,7 @@ int main(void)
 [extern char $cf_data;],[
        do {
                void *foo = &($cf_data);
-               fprintf(stderr, "testing linkage of $cf_data:%p\n", foo);
+               fprintf(stderr, "testing linkage of $cf_data:%p\n", (void *)foo);
                ${cf_cv_main_return:-return}(foo == 0);
        } while (0)
 ],[cf_result=yes],[cf_result=no])
@@ -678,7 +722,7 @@ CF_CURSES_HEADER
 CF_TERM_HEADER
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_FUNCS version: 18 updated: 2014/07/19 18:44:41
+dnl CF_CURSES_FUNCS version: 19 updated: 2018/01/03 04:47:33
 dnl ---------------
 dnl Curses-functions are a little complicated, since a lot of them are macros.
 AC_DEFUN([CF_CURSES_FUNCS],
@@ -699,9 +743,9 @@ do
                        [
 #ifndef ${cf_func}
 long foo = (long)(&${cf_func});
-fprintf(stderr, "testing linkage of $cf_func:%p\n", foo);
-if (foo + 1234 > 5678)
-       ${cf_cv_main_return:-return}(foo);
+fprintf(stderr, "testing linkage of $cf_func:%p\n", (void *)foo);
+if (foo + 1234L > 5678L)
+       ${cf_cv_main_return:-return}(foo != 0);
 #endif
                        ],
                        [cf_result=yes],
@@ -745,7 +789,7 @@ fi
 AC_CHECK_HEADERS($cf_cv_ncurses_header)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_LIBS version: 40 updated: 2017/09/07 17:06:24
+dnl CF_CURSES_LIBS version: 41 updated: 2017/12/31 19:23:43
 dnl --------------
 dnl Look for the curses libraries.  Older curses implementations may require
 dnl termcap/termlib to be linked as well.  Call CF_CURSES_CPPFLAGS first.
@@ -827,7 +871,10 @@ if test ".$ac_cv_func_initscr" != .yes ; then
                AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
                        for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown
                        do
-                               AC_CHECK_LIB($cf_term_lib,tgoto,[break])
+                               AC_CHECK_LIB($cf_term_lib,tgoto,[
+                                       : ${cf_nculib_root:=$cf_term_lib}
+                                       break
+                               ])
                        done
                ])
        fi
@@ -1699,7 +1746,7 @@ if test $cf_cv_getopt_header = getopt.h ; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GNU_SOURCE version: 7 updated: 2016/08/05 05:15:37
+dnl CF_GNU_SOURCE version: 8 updated: 2018/06/16 19:05:13
 dnl -------------
 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
@@ -1707,38 +1754,98 @@ dnl (or misfeature) of glibc2, which breaks portability of many applications,
 dnl since it is interwoven with GNU extensions.
 dnl
 dnl Well, yes we could work around it...
+dnl
+dnl Parameters:
+dnl    $1 is the nominal value for _XOPEN_SOURCE
 AC_DEFUN([CF_GNU_SOURCE],
 [
-AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
+cf_gnu_xopen_source=ifelse($1,,500,$1)
+
+AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
 AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifndef _XOPEN_SOURCE
-make an error
-#endif],
-       [cf_cv_gnu_source=no],
-       [cf_save="$CPPFLAGS"
-        CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
-        AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifdef _XOPEN_SOURCE
-make an error
-#endif],
-       [cf_cv_gnu_source=no],
-       [cf_cv_gnu_source=yes])
-       CPPFLAGS="$cf_save"
-       ])
+       #if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
+               return 0;
+       #else
+       #       error not GNU C library
+       #endif],
+       [cf_cv_gnu_library=yes],
+       [cf_cv_gnu_library=no])
 ])
 
-if test "$cf_cv_gnu_source" = yes
-then
-AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
-CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
-       AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifdef _DEFAULT_SOURCE
-make an error
-#endif],
-               [cf_cv_default_source=no],
-               [cf_cv_default_source=yes])
+if test x$cf_cv_gnu_library = xyes; then
+
+       # With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
+       # was changed to help a little...
+       AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
+               cf_save="$CPPFLAGS"
+               CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE"
+               AC_TRY_COMPILE([#include <sys/types.h>],[
+                       #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
+                               return 0;
+                       #else
+                       #       error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
+                       #endif],
+                       [cf_cv_gnu_library_219=yes],
+                       [cf_cv_gnu_library_219=no])
+               CPPFLAGS="$cf_save"
        ])
-test "$cf_cv_default_source" = yes && CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE"
+
+       if test "x$cf_cv_gnu_library_219" = xyes; then
+               AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
+                       cf_save="$CPPFLAGS"
+                       CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source"
+                       AC_TRY_COMPILE([
+                               #include <limits.h>
+                               #include <sys/types.h>
+                               ],[
+                               #if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
+                                       return 0;
+                               #else
+                               #       error GNU C library is too old
+                               #endif],
+                               [cf_cv_gnu_dftsrc_219=yes],
+                               [cf_cv_gnu_dftsrc_219=no])
+                       ])
+               test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
+       else
+               cf_cv_gnu_dftsrc_219=maybe
+       fi
+
+       if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
+
+               AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
+               AC_TRY_COMPILE([#include <sys/types.h>],[
+                       #ifndef _XOPEN_SOURCE
+                       #error  expected _XOPEN_SOURCE to be defined
+                       #endif],
+                       [cf_cv_gnu_source=no],
+                       [cf_save="$CPPFLAGS"
+                        CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+                        AC_TRY_COMPILE([#include <sys/types.h>],[
+                               #ifdef _XOPEN_SOURCE
+                               #error  expected _XOPEN_SOURCE to be undefined
+                               #endif],
+                               [cf_cv_gnu_source=no],
+                               [cf_cv_gnu_source=yes])
+                       CPPFLAGS="$cf_save"
+                       ])
+               ])
+
+               if test "$cf_cv_gnu_source" = yes
+               then
+               AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
+                       CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+                       AC_TRY_COMPILE([#include <sys/types.h>],[
+                               #ifdef _DEFAULT_SOURCE
+                               #error  expected _DEFAULT_SOURCE to be undefined
+                               #endif],
+                               [cf_cv_default_source=no],
+                               [cf_cv_default_source=yes])
+                       ])
+                       test "$cf_cv_default_source" = yes && CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE"
+               fi
+       fi
+
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -1803,6 +1910,64 @@ AC_DEFUN([CF_INHERIT_SCRIPT],
 test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_INSTALL_OPTS version: 1 updated: 2014/07/21 18:19:51
+dnl ---------------
+dnl prompt for/fill-in useful install-program options
+AC_DEFUN([CF_INSTALL_OPTS],
+[
+CF_INSTALL_OPT_S
+CF_INSTALL_OPT_O
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_INSTALL_OPT_O version: 2 updated: 2015/05/15 19:45:35
+dnl ----------------
+dnl Almost all "install" programs default to the current user's ownership.
+dnl Almost - MINIX is an exception.
+AC_DEFUN([CF_INSTALL_OPT_O],
+[
+AC_MSG_CHECKING(if install needs to be told about ownership)
+case `$ac_config_guess` in
+(*minix)
+       with_install_o=yes
+       ;;
+(*)
+       with_install_o=no
+       ;;
+esac
+
+AC_MSG_RESULT($with_install_o)
+if test "x$with_install_o" = xyes
+then
+       INSTALL_OPT_O=`id root|sed -e 's/uid=[[0-9]]*(/ -o /' -e 's/gid=[[0-9]]*(/ -g /' -e 's/ [[^=[:space:]]][[^=[:space:]]]*=.*/ /' -e 's/)//g'`
+else
+       INSTALL_OPT_O=
+fi
+
+AC_SUBST(INSTALL_OPT_O)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_INSTALL_OPT_S version: 1 updated: 2014/07/21 18:19:51
+dnl ----------------
+dnl By default, we should strip executables which are installed, but leave the
+dnl ability to suppress that for unit-testing.
+AC_DEFUN([CF_INSTALL_OPT_S],
+[
+AC_MSG_CHECKING(if you want to install stripped executables)
+CF_ARG_DISABLE(stripping,
+       [  --disable-stripping     do not strip installed executables],
+       [with_stripping=no],
+       [with_stripping=yes])
+AC_MSG_RESULT($with_stripping)
+
+if test "$with_stripping" = yes
+then
+       INSTALL_OPT_S="-s"
+else
+       INSTALL_OPT_S=
+fi
+AC_SUBST(INSTALL_OPT_S)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_INTEL_COMPILER version: 7 updated: 2015/04/12 15:39:00
 dnl -----------------
 dnl Check if the given compiler is really the Intel compiler for Linux.  It
@@ -2057,7 +2222,7 @@ printf("old\n");
        ,[$1=no])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_CONFIG version: 18 updated: 2017/07/23 18:30:00
+dnl CF_NCURSES_CONFIG version: 20 updated: 2018/01/03 04:47:33
 dnl -----------------
 dnl Tie together the configure-script macros for ncurses, preferring these in
 dnl order:
@@ -2104,8 +2269,8 @@ if test "x${PKG_CONFIG:=none}" != xnone; then
                else
                        AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
                        NCURSES_CONFIG_PKG=$cf_ncuconfig_root
+                       CF_TERM_HEADER
                fi
-               CF_TERM_HEADER
 
        else
                AC_MSG_RESULT(no)
@@ -3602,7 +3767,7 @@ esac
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_SOURCE version: 52 updated: 2016/08/27 12:21:42
+dnl CF_XOPEN_SOURCE version: 53 updated: 2018/06/16 18:58:58
 dnl ---------------
 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
 dnl or adapt to the vendor's definitions to get equivalent functionality,
@@ -3651,7 +3816,7 @@ case $host_os in
        cf_XOPEN_SOURCE=
        ;;
 (linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
-       CF_GNU_SOURCE
+       CF_GNU_SOURCE($cf_XOPEN_SOURCE)
        ;;
 (minix*)
        cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...