X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=aclocal.m4;h=806dec1c92ec52213e5e298d9f5361d8a313adbc;hp=0ede0092c712888182d325cbb88c872ab7f0db14;hb=603f0cb25b7acc8f04f4b18d2a2fe6f90039829a;hpb=5817afea017464ac3b89170fb205f21d99bec47c diff --git a/aclocal.m4 b/aclocal.m4 index 0ede0092..806dec1c 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.783 2015/11/01 10:29:05 tom Exp $ +dnl $Id: aclocal.m4,v 1.790 2016/05/29 00:35:34 tom Exp $ dnl Macros used in NCURSES auto-configuration script. dnl dnl These macros are maintained separately from NCURSES. The copyright on @@ -711,11 +711,15 @@ AC_SUBST(BUILD_EXEEXT) AC_SUBST(BUILD_OBJEXT) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_CC_ENV_FLAGS version: 2 updated: 2015/04/12 15:39:00 +dnl CF_CC_ENV_FLAGS version: 3 updated: 2016/05/21 18:10:17 dnl --------------- dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content dnl into CC. This will not help with broken scripts that wrap the compiler with dnl options, but eliminates a more common category of user confusion. +dnl +dnl Caveat: this also disallows blanks in the pathname for the compiler, but +dnl the nuisance of having inconsistent settings for compiler and preprocessor +dnl outweighs that limitation. AC_DEFUN([CF_CC_ENV_FLAGS], [ # This should have been defined by AC_PROG_CC @@ -723,13 +727,16 @@ AC_DEFUN([CF_CC_ENV_FLAGS], AC_MSG_CHECKING(\$CC variable) case "$CC" in -(*[[\ \ ]]-[[IUD]]*) +(*[[\ \ ]]-*) AC_MSG_RESULT(broken) AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options) # humor him... - cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'` + cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]][[ ]]*//'` CC=`echo "$CC" | sed -e 's/[[ ]].*//'` CF_ADD_CFLAGS($cf_flags) + CF_VERBOSE(resulting CC: '$CC') + CF_VERBOSE(resulting CFLAGS: '$CFLAGS') + CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS') ;; (*) AC_MSG_RESULT(ok) @@ -1013,6 +1020,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 @@ -3125,7 +3275,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. @@ -3143,13 +3293,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*) @@ -3241,7 +3391,7 @@ ifelse($1,,,[$1=$LIB_PREFIX]) AC_SUBST(LIB_PREFIX) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_LIB_RULES version: 85 updated: 2015/10/31 20:06:35 +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 @@ -3293,8 +3443,7 @@ do SHARED_LIB= Libs_To_Make= - - cf_awk_program="BEGIN { skip = 1; last=\"\"; }" + cf_awk_program= if test -n "${cf_cv_abi_version}" && test "x${cf_cv_abi_version}" != "x5" then cf_awk_program="$cf_awk_program\ @@ -3316,7 +3465,8 @@ do # Generated by CF_LIB_RULES resulting.map: $UNALTERED_SYMS - $AWK '$cf_awk_program \ + $AWK 'BEGIN { skip = 1; last=""; } \ +$cf_awk_program \ { if ( last != "" && ( skip == 0 || \[$]\[$]0 !~ /}/ ) ) { print last; }\ skip = 0; last = \[$]\[$]0; } \ END { print last; }' < $UNALTERED_SYMS >\[$]@ @@ -4832,6 +4982,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 @@ -5148,7 +5318,7 @@ CF_ACVERSION_CHECK(2.52, CF_CC_ENV_FLAGS ])dnl dnl --------------------------------------------------------------------------- -dnl CF_PROG_CC_C_O version: 3 updated: 2010/08/14 18:25:37 +dnl CF_PROG_CC_C_O version: 4 updated: 2016/05/21 18:08:09 dnl -------------- dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that dnl the output file can be renamed, and allows for a shell variable that can @@ -5156,13 +5326,15 @@ dnl be used later. The parameter is either CC or CXX. The result is the dnl cache variable: dnl $cf_cv_prog_CC_c_o dnl $cf_cv_prog_CXX_c_o +dnl +dnl $1 = compiler +dnl $2 = compiler options, if any AC_DEFUN([CF_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])dnl AC_MSG_CHECKING([whether [$]$1 understands -c and -o together]) AC_CACHE_VAL(cf_cv_prog_$1_c_o, [ cat > conftest.$ac_ext < int main() { ${cf_cv_main_return:-return}(0); @@ -5170,7 +5342,7 @@ int main() CF_EOF # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. -ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC' +ac_try='[$]$1 $2 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC' if AC_TRY_EVAL(ac_try) && test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try); then @@ -5274,11 +5446,11 @@ fi AC_SUBST(LDCONFIG) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14 +dnl CF_PROG_LINT version: 3 updated: 2016/05/22 15:25:54 dnl ------------ AC_DEFUN([CF_PROG_LINT], [ -AC_CHECK_PROGS(LINT, tdlint lint alint splint lclint) +AC_CHECK_PROGS(LINT, lint cppcheck splint) AC_SUBST(LINT_OPTS) ])dnl dnl --------------------------------------------------------------------------- @@ -6881,28 +7053,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. @@ -7028,7 +7178,7 @@ then fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_WITH_GPM version: 8 updated: 2012/10/06 17:56:13 +dnl CF_WITH_GPM version: 9 updated: 2016/05/28 20:33:31 dnl ----------- dnl dnl The option parameter (if neither yes/no) is assumed to be the name of @@ -7048,12 +7198,17 @@ if test "$with_gpm" != no ; then if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then CF_VERBOSE(assuming we really have GPM library) AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library]) + with_gpm=yes else AC_CHECK_LIB(gpm,Gpm_Open,[:],[ - AC_MSG_ERROR(Cannot link with GPM library) + if test "$with_gpm" = maybe; then + AC_MSG_WARN(Cannot link with GPM library) + with_gpm=no + else + AC_MSG_ERROR(Cannot link with GPM library) + fi + ]) fi - with_gpm=yes - ]) ],[ test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header) with_gpm=no