X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=aclocal.m4;h=c184d52461a784b5446d47ff6759c37ba51e369c;hp=9011dfdd6dc4e9c43d233b2123564cb653a4f103;hb=092f1e4b79bca1d1cd3e24baa7abc3ad4cea8420;hpb=4060536b87c0e484b2c0633978766a109bc763f0 diff --git a/aclocal.m4 b/aclocal.m4 index 9011dfdd..c184d524 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,5 +1,5 @@ dnl*************************************************************************** -dnl Copyright (c) 1998-2014,2015 Free Software Foundation, Inc. * +dnl Copyright (c) 1998-2015,2016 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 * @@ -28,7 +28,7 @@ dnl*************************************************************************** dnl dnl Author: Thomas E. Dickey 1995-on dnl -dnl $Id: aclocal.m4,v 1.762 2015/08/15 22:39:55 tom Exp $ +dnl $Id: aclocal.m4,v 1.788 2016/02/20 23:46:28 tom Exp $ dnl Macros used in NCURSES auto-configuration script. dnl dnl These macros are maintained separately from NCURSES. The copyright on @@ -423,15 +423,19 @@ ifelse([$3],,[ :]dnl ])dnl ])])dnl dnl --------------------------------------------------------------------------- -dnl CF_AR_FLAGS version: 5 updated: 2010/05/20 20:24:29 +dnl CF_AR_FLAGS version: 6 updated: 2015/10/10 15:25:05 dnl ----------- dnl Check for suitable "ar" (archiver) options for updating an archive. +dnl +dnl In particular, handle some obsolete cases where the "-" might be omitted, +dnl as well as a workaround for breakage of make's archive rules by the GNU +dnl binutils "ar" program. AC_DEFUN([CF_AR_FLAGS],[ AC_REQUIRE([CF_PROG_AR]) AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[ cf_cv_ar_flags=unknown - for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv + for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv do # check if $ARFLAGS already contains this choice @@ -1009,6 +1013,149 @@ then fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_CHECK_WCWIDTH_GRAPHICS version: 1 updated: 2015/12/19 17:47:56 +dnl ------------------------- +dnl Most "modern" terminal emulators are based to some degree on VT100, and +dnl should support line-drawing. Even with Unicode. There is a problem. +dnl +dnl While most of the VT100 graphics characters were incorporated into Unicode, +dnl all of those were combined into a page of useful graphics characters. +dnl +dnl So far, so good. +dnl +dnl However, while they are useful, there are other considerations. CJK +dnl is (because of poor device resolution) often rendered as double-width +dnl characters. So... for these generally-useful characters, what should +dnl be the width (to make them consistent with adjacent characters)? +dnl +dnl The obvious choice would have been to make this locale-dependent, and use +dnl wcwidth() to tell applications what the actual width is. That was too +dnl obvious. Instead, we have a slew of "ambiguous-width" characters. +dnl See for example +dnl http://www.unicode.org/reports/tr11/tr11-29.html +dnl http://www.cl.cam.ac.uk/~mgk25/ucs/scw-proposal.html +dnl +dnl The EastAsianWidth-6.2.0.txt file from the Unicode organization lists +dnl more than 22,000 characters, with 1281 of those as ambiguous-width. For +dnl instance, it lists half (44/96) of the Latin-1 characters as +dnl ambiguous-width. Also, all of the box-characters at 0x2500 are ambiguous. +dnl +dnl What this means for the implementor is that on some systems wcwidth() can +dnl give bad advice. On Solaris, some of the ambiguous widths are returned as +dnl 1 (the Latin-1 characters), while others are returned as 2 (line-drawing +dnl characters). These do not necessarily match the behavior of the terminal +dnl emulator. xterm, for instance, does an optional startup check to find if +dnl this problem (or similar) exists with the system's locale tables, rejecting +dnl them if they are too unreliable. +AC_DEFUN([CF_CHECK_WCWIDTH_GRAPHICS],[ +AC_CACHE_CHECK(if wcwidth agrees graphics are single-width, cf_cv_wcwidth_graphics,[ +cat >conftest.in < +#include +#include + +#define MY_LEN 80 + +int +main(void) +{ + FILE *fp; + int value; + char buffer[MY_LEN + 1]; + char notes[MY_LEN + 1]; + int totals = 0; + int passed = 0; + + if (setlocale(LC_ALL, "en_US.UTF8") || + setlocale(LC_ALL, "en_US.UTF-8") || + setlocale(LC_ALL, "en_US.utf8") || + setlocale(LC_ALL, "en_US.utf-8")) { + if ((fp = fopen("conftest.in", "r")) != 0) { + while (fgets(buffer, MY_LEN, fp) != 0) { + if (*buffer == '-') { + fprintf(stderr, "\t%s", buffer); + } else if (sscanf(buffer, "%x %s", &value, notes) == 2) { + ++totals; + if (wcwidth(value) == 1) + ++passed; + fprintf(stderr, "%d\t%s", wcwidth(value), buffer); + } else { + fprintf(stderr, "?\t%s", buffer); + } + } + } + } + fprintf(stderr, "%d/%d passed wcwidth/graphics check\n", passed, totals); + return (totals == passed) ? 0 : 1; +} +], +[cf_cv_wcwidth_graphics=yes], +[cf_cv_wcwidth_graphics=no], +[cf_cv_wcwidth_graphics=unknown]) +]) +])dnl +dnl --------------------------------------------------------------------------- dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35 dnl ----------------- dnl Check if the given compiler is really clang. clang's C driver defines @@ -1373,7 +1520,7 @@ if test "$cf_disable_rpath_hack" = no ; then fi ]) dnl --------------------------------------------------------------------------- -dnl CF_ENABLE_PC_FILES version: 12 updated: 2015/04/17 21:13:04 +dnl CF_ENABLE_PC_FILES version: 13 updated: 2015/11/01 05:27:39 dnl ------------------ dnl This is the "--enable-pc-files" option, which is available if there is a dnl pkg-config configuration on the local machine. @@ -1396,14 +1543,13 @@ AC_MSG_RESULT($enable_pc_files) if test "x$enable_pc_files" != xno then + MAKE_PC_FILES= case "x$PKG_CONFIG_LIBDIR" in (xno|xyes) AC_MSG_WARN(no PKG_CONFIG_LIBDIR was found) - MAKE_PC_FILES="#" ;; (*) CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR) - MAKE_PC_FILES= ;; esac else @@ -1693,7 +1839,7 @@ unset ac_ct_$1 unset $1 ])dnl dnl --------------------------------------------------------------------------- -dnl CF_FUNC_DLSYM version: 3 updated: 2012/10/06 11:17:15 +dnl CF_FUNC_DLSYM version: 4 updated: 2015/09/12 14:46:44 dnl ------------- dnl Test for dlsym() and related functions, as well as libdl. dnl @@ -1710,7 +1856,7 @@ AC_CHECK_LIB(dl,dlsym,[ cf_have_libdl=yes])]) if test "$cf_have_dlsym" = yes ; then - test "$cf_have_libdl" = yes && CF_ADD_LIB(dl) + test "$cf_have_libdl" = yes && { CF_ADD_LIB(dl) } AC_MSG_CHECKING(whether able to link to dl*() functions) AC_TRY_LINK([#include ],[ @@ -1793,7 +1939,7 @@ int main() { test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()]) ]) dnl --------------------------------------------------------------------------- -dnl CF_FUNC_OPENPTY version: 4 updated: 2015/04/18 08:56:57 +dnl CF_FUNC_OPENPTY version: 5 updated: 2015/09/12 14:46:50 dnl --------------- dnl Check for openpty() function, along with header. It may need the dnl "util" library as well. @@ -1802,7 +1948,7 @@ AC_DEFUN([CF_FUNC_OPENPTY], AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no) AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[ cf_save_LIBS="$LIBS" - test $cf_cv_lib_util = yes && CF_ADD_LIB(util) + test $cf_cv_lib_util = yes && { CF_ADD_LIB(util) } for cf_header in pty.h libutil.h util.h do AC_TRY_LINK([ @@ -1821,11 +1967,12 @@ AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[ ]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_FUNC_POLL version: 8 updated: 2012/10/04 05:24:07 +dnl CF_FUNC_POLL version: 9 updated: 2015/10/10 13:27:32 dnl ------------ dnl See if the poll function really works. Some platforms have poll(), but dnl it does not work for terminals or files. AC_DEFUN([CF_FUNC_POLL],[ +tty 2>&1 >/dev/null || { AC_CHECK_FUNCS(posix_openpt) } AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[ AC_TRY_RUN([ #include @@ -1837,7 +1984,7 @@ AC_TRY_RUN([ #else #include #endif -int main() { +int main(void) { struct pollfd myfds; int ret; @@ -1857,6 +2004,11 @@ int main() { if (!isatty(fd)) { fd = open("/dev/tty", 2); /* O_RDWR */ } +#ifdef HAVE_POSIX_OPENPT + if (fd < 0) { + fd = posix_openpt(O_RDWR); + } +#endif if (fd >= 0) { /* also check with standard input */ @@ -3116,7 +3268,7 @@ AC_SUBST(LDFLAGS_STATIC) AC_SUBST(LDFLAGS_SHARED) ]) dnl --------------------------------------------------------------------------- -dnl CF_LD_RPATH_OPT version: 6 updated: 2015/04/12 15:39:00 +dnl CF_LD_RPATH_OPT version: 7 updated: 2016/02/20 18:01:19 dnl --------------- dnl For the given system and compiler, find the compiler flags to pass to the dnl loader to use the "rpath" feature. @@ -3134,13 +3286,13 @@ case $cf_cv_system_name in LD_RPATH_OPT="-rpath " fi ;; -(linux*|gnu*|k*bsd*-gnu) +(linux*|gnu*|k*bsd*-gnu|freebsd*) LD_RPATH_OPT="-Wl,-rpath," ;; (openbsd[[2-9]].*|mirbsd*) LD_RPATH_OPT="-Wl,-rpath," ;; -(dragonfly*|freebsd*) +(dragonfly*) LD_RPATH_OPT="-rpath " ;; (netbsd*) @@ -3211,7 +3363,7 @@ fi test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version ])dnl dnl --------------------------------------------------------------------------- -dnl CF_LIB_PREFIX version: 11 updated: 2015/04/18 08:56:57 +dnl CF_LIB_PREFIX version: 12 updated: 2015/10/17 19:03:33 dnl ------------- dnl Compute the library-prefix for the given host system dnl $1 = variable to set @@ -3219,7 +3371,11 @@ define([CF_LIB_PREFIX], [ case $cf_cv_system_name in (OS/2*|os2*) - LIB_PREFIX='' + if test "$DFT_LWR_MODEL" = libtool; then + LIB_PREFIX='lib' + else + LIB_PREFIX='' + fi ;; (*) LIB_PREFIX='lib' ;; @@ -3228,7 +3384,7 @@ ifelse($1,,,[$1=$LIB_PREFIX]) AC_SUBST(LIB_PREFIX) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_LIB_RULES version: 83 updated: 2015/08/05 20:44:28 +dnl CF_LIB_RULES version: 86 updated: 2015/11/07 20:01:34 dnl ------------ dnl Append definitions and rules for the given models to the subdirectory dnl Makefiles, and the recursion rule for the top-level Makefile. If the @@ -3280,28 +3436,35 @@ do SHARED_LIB= Libs_To_Make= - - cf_sed_options= + cf_awk_program= if test -n "${cf_cv_abi_version}" && test "x${cf_cv_abi_version}" != "x5" then - cf_sed_options="$cf_sed_options -e \"s/NCURSES\\([[WT]]\\+\\)\?_/NCURSES\\1${cf_cv_abi_version}_/g\"" - cf_sed_options="$cf_sed_options -e \"/deprecated in ABI${cf_cv_abi_version}/d\"" + cf_awk_program="$cf_awk_program\ +/deprecated in ABI${cf_cv_abi_version}/ { next; }\ +{ sub(\"NCURSES([[WT]]+)?\", \"&${cf_cv_abi_version}\"); }\ +" fi if test "x$WILDCARD_SYMS" = xno then - cf_sed_options="$cf_sed_options -e \"s/_\*;//g\"" + cf_awk_program="$cf_awk_program\ +/[[ ]]_\\*;/ { skip=1; next; }\ +" fi - if test "x$cf_sed_options" != "x" + if test "x$cf_awk_program" != "x" then cat >>$cf_dir/Makefile <\[$]@ + $AWK 'BEGIN { skip = 1; last=""; } \ +$cf_awk_program \ +{ if ( last != "" && ( skip == 0 || \[$]\[$]0 !~ /}/ ) ) { print last; }\ + skip = 0; last = \[$]\[$]0; } \ +END { print last; }' < $UNALTERED_SYMS >\[$]@ -clean:: +distclean:: rm -f resulting.map CF_EOF fi @@ -4812,6 +4975,26 @@ if test "${with_abi_version+set}" != set; then fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_NCURSES_WITH_ABI_VERSION version: 2 updated: 2015/12/19 17:51:52 +dnl --------------------------- +dnl Allow ncurses's ABI to be overridden. Generally this happens when a +dnl packager has incremented the ABI 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 a corresponding {package}_ABI +dnl symbol. +AC_DEFUN([CF_NCURSES_WITH_ABI_VERSION],[ +CF_WITH_ABI_VERSION($1) +if test "x$cf_cv_abi_version" != "x$with_abi_version" +then + case $cf_cv_rel_version in + (5.*) + cf_cv_rel_version=$with_abi_version.0 + ;; + esac +fi +])dnl +dnl --------------------------------------------------------------------------- dnl CF_NO_LEAKS_OPTION version: 6 updated: 2015/04/12 15:39:00 dnl ------------------ dnl see CF_WITH_NO_LEAKS @@ -6247,33 +6430,55 @@ if test -n "$ADA_SUBDIRS"; then fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_STDCPP_LIBRARY version: 8 updated: 2015/04/17 21:13:04 +dnl CF_STDCPP_LIBRARY version: 11 updated: 2015/10/17 19:03:33 dnl ----------------- dnl Check for -lstdc++, which is GNU's standard C++ library. +dnl If $CXXLIBS is set, add that to the libraries used for test-linking. +dnl If -lstdc++ was not already added to $LIBS or $CXXLIBS, and is needed, +dnl add it to $CXXLIBS. AC_DEFUN([CF_STDCPP_LIBRARY], [ if test -n "$GXX" ; then -case $cf_cv_system_name in -(os2*) - cf_stdcpp_libname=stdcpp - ;; -(*) - cf_stdcpp_libname=stdc++ - ;; -esac -AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[ + cf_save="$LIBS" - CF_ADD_LIB($cf_stdcpp_libname) -AC_TRY_LINK([ -#include ],[ -char buf[80]; -strstreambuf foo(buf, sizeof(buf)) -], - [cf_cv_libstdcpp=yes], - [cf_cv_libstdcpp=no]) + LIBS="$LIBS $CXXLIBS" + AC_MSG_CHECKING(if we already have C++ library) + AC_TRY_LINK([ + #include ],[ + std::cout << "Hello World!" << std::endl;], + [cf_have_libstdcpp=yes], + [cf_have_libstdcpp=no]) + AC_MSG_RESULT($cf_have_libstdcpp) LIBS="$cf_save" -]) -test "$cf_cv_libstdcpp" = yes && CF_ADD_LIB($cf_stdcpp_libname,CXXLIBS) + + if test $cf_have_libstdcpp != yes + then + case $cf_cv_system_name in + (os2*) + if test -z "`g++ -dM -E - < /dev/null | grep __KLIBC__`"; then + cf_stdcpp_libname=stdcpp + else + cf_stdcpp_libname=stdc++ + fi + ;; + (*) + cf_stdcpp_libname=stdc++ + ;; + esac + + AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[ + cf_save="$LIBS" + LIBS="$LIBS $CXXLIBS" + CF_ADD_LIB($cf_stdcpp_libname) + AC_TRY_LINK([ + #include ],[ + std::cout << "Hello World!" << std::endl;], + [cf_cv_libstdcpp=yes], + [cf_cv_libstdcpp=no]) + LIBS="$cf_save" + ]) + test "$cf_cv_libstdcpp" = yes && { CF_ADD_LIB($cf_stdcpp_libname,CXXLIBS) } + fi fi ])dnl dnl --------------------------------------------------------------------------- @@ -6839,28 +7044,6 @@ $1_ABI=$cf_cv_abi_version ]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_NCURSES_WITH_ABI_VERSION version: 1 updated: 2015/06/06 13:49:58 -dnl --------------------------- -dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49 -dnl ------------------- -dnl Allow ncurses's ABI to be overridden. Generally this happens when a -dnl packager has incremented the ABI 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 a corresponding {package}_ABI -dnl symbol. -AC_DEFUN([CF_NCURSES_WITH_ABI_VERSION],[ -CF_WITH_ABI_VERSION($1) -if test "x$cf_cv_abi_version" != "x$with_abi_version" -then - case $cf_cv_rel_version in - (5.*) - cf_cv_rel_version=$with_abi_version.0 - ;; - esac -fi -])dnl -dnl --------------------------------------------------------------------------- dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58 dnl -------------------- dnl Command-line option to specify the Ada95 compiler. @@ -7019,7 +7202,7 @@ if test "$with_gpm" != no ; then fi ]) dnl --------------------------------------------------------------------------- -dnl CF_WITH_LIBTOOL version: 32 updated: 2015/04/17 21:13:04 +dnl CF_WITH_LIBTOOL version: 33 updated: 2015/10/17 19:03:33 dnl --------------- dnl Provide a configure option to incorporate libtool. Define several useful dnl symbols for the makefile rules. @@ -7117,7 +7300,7 @@ ifdef([AC_PROG_LIBTOOL],[ # special hack to add -no-undefined (which libtool should do for itself) LT_UNDEF= case "$cf_cv_system_name" in - (cygwin*|msys*|mingw32*|uwin*|aix[[4-7]]) + (cygwin*|msys*|mingw32*|os2*|uwin*|aix[[4-7]]) LT_UNDEF=-no-undefined ;; esac @@ -7282,19 +7465,25 @@ AC_SUBST($3)dnl ])dnl dnl --------------------------------------------------------------------------- -dnl CF_WITH_PKG_CONFIG_LIBDIR version: 9 updated: 2015/06/06 19:26:44 +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],[ -if test "x$PKG_CONFIG" = xnone ; then - PKG_CONFIG_LIBDIR=no -else + +case $PKG_CONFIG in +(no|none|yes) + AC_MSG_CHECKING(for pkg-config library directory) + ;; +(*) AC_MSG_CHECKING(for $PKG_CONFIG library directory) - AC_ARG_WITH(pkg-config-libdir, - [ --with-pkg-config-libdir=XXX use given directory for installing pc-files], - [PKG_CONFIG_LIBDIR=$withval], - [PKG_CONFIG_LIBDIR=yes]) -fi + ;; +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/*) @@ -7350,7 +7539,7 @@ case x$PKG_CONFIG_LIBDIR in ;; esac -if test "x$PKG_CONFIG" != xnone ; then +if test "x$PKG_CONFIG_LIBDIR" != xno ; then AC_MSG_RESULT($PKG_CONFIG_LIBDIR) fi @@ -7482,7 +7671,7 @@ CF_NO_LEAKS_OPTION(valgrind, [USE_VALGRIND]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_WITH_VERSIONED_SYMS version: 5 updated: 2015/04/17 21:13:04 +dnl CF_WITH_VERSIONED_SYMS version: 7 updated: 2015/10/24 20:50:26 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 @@ -7596,8 +7785,8 @@ EOF # compile source, make library if make -f conftest.mk 2>&AC_FD_CC >/dev/null then - # test for missing symbol - cf_missing=`nm -P conftest.so 2>&AC_FD_CC |fgrep _ismissing | egrep '[[ ]]T[[ ]]'` + # 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) @@ -7609,7 +7798,7 @@ AC_SUBST(VERSIONED_SYMS) AC_SUBST(WILDCARD_SYMS) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_XOPEN_SOURCE version: 49 updated: 2015/04/12 15:39:00 +dnl CF_XOPEN_SOURCE version: 50 updated: 2015/10/17 19:03:33 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, @@ -7679,6 +7868,9 @@ case $host_os in (openbsd*) # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw ;; +(os2*) + cf_XOPEN_SOURCE= + ;; (osf[[45]]*) cf_xopen_source="-D_OSF_SOURCE" ;;