]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - aclocal.m4
ncurses 6.0 - patch 20160402
[ncurses.git] / aclocal.m4
index 6644ff06b597b3e3a63866f51dc9f3f0ac4d8fce..c184d52461a784b5446d47ff6759c37ba51e369c 100644 (file)
@@ -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.770 2015/10/10 19:27:07 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
@@ -1013,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 <<CF_EOF
+-      VT100 symbols
+0x250c upper left corner
+0x2514 lower left corner
+0x2510 upper right corner
+0x2518 lower right corner
+0x251c tee pointing left
+0x2524 tee pointing right
+0x2534 tee pointing up
+0x252c tee pointing down
+0x2500 horizontal line
+0x2502 vertical line
+0x253c large plus or crossover
+0x23ba scan line 1
+0x23bd scan line 9
+0x25c6 diamond
+0x2592 checker board (stipple)
+0x00b0 degree symbol
+0x00b1 plus/minus
+0x00b7 bullet
+-      Teletype 5410v1 symbols
+0x2190 arrow pointing left
+0x2192 arrow pointing right
+0x2193 arrow pointing down
+0x2191 arrow pointing up
+0x2592 board of squares
+0x2603 lantern symbol
+0x25ae solid square block
+-      these defaults were invented for ncurses
+0x23bb scan line 3
+0x23bc scan line 7
+0x2264 less-than-or-equal-to
+0x2265 greater-than-or-equal-to
+0x03c0 greek pi
+0x2260 not-equal
+0x00a3 pound-sterling symbol
+-      thick-line-drawing
+0x250f upper left corner
+0x2517 lower left corner
+0x2513 upper right corner
+0x251b lower right corner
+0x2523 tee pointing left
+0x252b tee pointing right
+0x253b tee pointing up
+0x2533 tee pointing down
+0x2501 horizontal line
+0x2503 vertical line
+0x254b large plus or crossover
+-      double-line-drawing
+0x2554 upper left corner
+0x255a lower left corner
+0x2557 upper right corner
+0x255d lower right corner
+0x2563 tee pointing left
+0x2560 tee pointing right
+0x2569 tee pointing up
+0x2566 tee pointing down
+0x2550 horizontal line
+0x2551 vertical line
+0x256c large plus or crossover
+CF_EOF
+AC_TRY_RUN([
+#include <locale.h>
+#include <stdio.h>
+#include <wchar.h>
+
+#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
@@ -1377,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.
@@ -1400,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
@@ -3126,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.
@@ -3144,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*)
@@ -3221,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
@@ -3229,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'
                ;;
@@ -3238,7 +3384,7 @@ ifelse($1,,,[$1=$LIB_PREFIX])
        AC_SUBST(LIB_PREFIX)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_RULES version: 84 updated: 2015/09/26 17:54:46
+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
@@ -3290,26 +3436,33 @@ 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 <<CF_EOF
 
 # Generated by CF_LIB_RULES
 resulting.map: $UNALTERED_SYMS
-       sed $cf_sed_options < $UNALTERED_SYMS >\[$]@
+       $AWK 'BEGIN { skip = 1; last=""; } \
+$cf_awk_program \
+{ if ( last != "" && ( skip == 0 || \[$]\[$]0 !~ /}/ ) ) { print last; }\
+ skip = 0; last = \[$]\[$]0; } \
+END { print last; }' < $UNALTERED_SYMS >\[$]@
 
 distclean::
        rm -f resulting.map
@@ -4822,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
@@ -6257,7 +6430,7 @@ if test -n "$ADA_SUBDIRS"; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_STDCPP_LIBRARY version: 10 updated: 2015/09/12 15:53:39
+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.
@@ -6282,7 +6455,11 @@ if test -n "$GXX" ; then
        then
                case $cf_cv_system_name in
                (os2*)
-                       cf_stdcpp_libname=stdcpp
+                       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++
@@ -6867,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.
@@ -7047,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.
@@ -7145,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
@@ -7516,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
@@ -7630,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)
@@ -7643,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,
@@ -7713,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"
        ;;