diff options
| -rw-r--r-- | curses/m4/ax_with_curses.m4 | 582 | ||||
| -rw-r--r-- | curses/m4/iconv.m4 | 271 | ||||
| -rw-r--r-- | curses/m4/lib-ld.m4 | 119 | ||||
| -rw-r--r-- | curses/m4/lib-link.m4 | 777 | ||||
| -rw-r--r-- | curses/m4/lib-prefix.m4 | 224 | 
5 files changed, 1973 insertions, 0 deletions
| diff --git a/curses/m4/ax_with_curses.m4 b/curses/m4/ax_with_curses.m4 new file mode 100644 index 0000000..1a00810 --- /dev/null +++ b/curses/m4/ax_with_curses.m4 @@ -0,0 +1,582 @@ +# =========================================================================== +#      http://www.gnu.org/software/autoconf-archive/ax_with_curses.html +# =========================================================================== +# +# SYNOPSIS +# +#   AX_WITH_CURSES +# +# DESCRIPTION +# +#   This macro checks whether a SysV or X/Open-compatible Curses library is +#   present, along with the associated header file.  The NcursesW +#   (wide-character) library is searched for first, followed by Ncurses, +#   then the system-default plain Curses.  The first library found is the +#   one returned. Finding libraries will first be attempted by using +#   pkg-config, and should the pkg-config files not be available, will +#   fallback to combinations of known flags itself. +# +#   The following options are understood: --with-ncursesw, --with-ncurses, +#   --without-ncursesw, --without-ncurses.  The "--with" options force the +#   macro to use that particular library, terminating with an error if not +#   found.  The "--without" options simply skip the check for that library. +#   The effect on the search pattern is: +# +#     (no options)                           - NcursesW, Ncurses, Curses +#     --with-ncurses     --with-ncursesw     - NcursesW only [*] +#     --without-ncurses  --with-ncursesw     - NcursesW only [*] +#                        --with-ncursesw     - NcursesW only [*] +#     --with-ncurses     --without-ncursesw  - Ncurses only [*] +#     --with-ncurses                         - NcursesW, Ncurses [**] +#     --without-ncurses  --without-ncursesw  - Curses only +#                        --without-ncursesw  - Ncurses, Curses +#     --without-ncurses                      - NcursesW, Curses +# +#   [*]  If the library is not found, abort the configure script. +# +#   [**] If the second library (Ncurses) is not found, abort configure. +# +#   The following preprocessor symbols may be defined by this macro if the +#   appropriate conditions are met: +# +#     HAVE_CURSES             - if any SysV or X/Open Curses library found +#     HAVE_CURSES_ENHANCED    - if library supports X/Open Enhanced functions +#     HAVE_CURSES_COLOR       - if library supports color (enhanced functions) +#     HAVE_CURSES_OBSOLETE    - if library supports certain obsolete features +#     HAVE_NCURSESW           - if NcursesW (wide char) library is to be used +#     HAVE_NCURSES            - if the Ncurses library is to be used +# +#     HAVE_CURSES_H           - if <curses.h> is present and should be used +#     HAVE_NCURSESW_H         - if <ncursesw.h> should be used +#     HAVE_NCURSES_H          - if <ncurses.h> should be used +#     HAVE_NCURSESW_CURSES_H  - if <ncursesw/curses.h> should be used +#     HAVE_NCURSES_CURSES_H   - if <ncurses/curses.h> should be used +# +#   (These preprocessor symbols are discussed later in this document.) +# +#   The following output variables are defined by this macro; they are +#   precious and may be overridden on the ./configure command line: +# +#     CURSES_LIBS  - library to add to xxx_LDADD +#     CURSES_CFLAGS  - include paths to add to xxx_CPPFLAGS +# +#   In previous versions of this macro, the flags CURSES_LIB and +#   CURSES_CPPFLAGS were defined. These have been renamed, in keeping with +#   AX_WITH_CURSES's close bigger brother, PKG_CHECK_MODULES, which should +#   eventually supersede the use of AX_WITH_CURSES. Neither the library +#   listed in CURSES_LIBS, nor the flags in CURSES_CFLAGS are added to LIBS, +#   respectively CPPFLAGS, by default. You need to add both to the +#   appropriate xxx_LDADD/xxx_CPPFLAGS line in your Makefile.am. For +#   example: +# +#     prog_LDADD = @CURSES_LIBS@ +#     prog_CPPFLAGS = @CURSES_CFLAGS@ +# +#   If CURSES_LIBS is set on the configure command line (such as by running +#   "./configure CURSES_LIBS=-lmycurses"), then the only header searched for +#   is <curses.h>. If the user needs to specify an alternative path for a +#   library (such as for a non-standard NcurseW), the user should use the +#   LDFLAGS variable. +# +#   The following shell variables may be defined by this macro: +# +#     ax_cv_curses           - set to "yes" if any Curses library found +#     ax_cv_curses_enhanced  - set to "yes" if Enhanced functions present +#     ax_cv_curses_color     - set to "yes" if color functions present +#     ax_cv_curses_obsolete  - set to "yes" if obsolete features present +# +#     ax_cv_ncursesw      - set to "yes" if NcursesW library found +#     ax_cv_ncurses       - set to "yes" if Ncurses library found +#     ax_cv_plaincurses   - set to "yes" if plain Curses library found +#     ax_cv_curses_which  - set to "ncursesw", "ncurses", "plaincurses" or "no" +# +#   These variables can be used in your configure.ac to determine the level +#   of support you need from the Curses library.  For example, if you must +#   have either Ncurses or NcursesW, you could include: +# +#     AX_WITH_CURSES +#     if test "x$ax_cv_ncursesw" != xyes && test "x$ax_cv_ncurses" != xyes; then +#         AC_MSG_ERROR([requires either NcursesW or Ncurses library]) +#     fi +# +#   If any Curses library will do (but one must be present and must support +#   color), you could use: +# +#     AX_WITH_CURSES +#     if test "x$ax_cv_curses" != xyes || test "x$ax_cv_curses_color" != xyes; then +#         AC_MSG_ERROR([requires an X/Open-compatible Curses library with color]) +#     fi +# +#   Certain preprocessor symbols and shell variables defined by this macro +#   can be used to determine various features of the Curses library.  In +#   particular, HAVE_CURSES and ax_cv_curses are defined if the Curses +#   library found conforms to the traditional SysV and/or X/Open Base Curses +#   definition.  Any working Curses library conforms to this level. +# +#   HAVE_CURSES_ENHANCED and ax_cv_curses_enhanced are defined if the +#   library supports the X/Open Enhanced Curses definition.  In particular, +#   the wide-character types attr_t, cchar_t and wint_t, the functions +#   wattr_set() and wget_wch() and the macros WA_NORMAL and _XOPEN_CURSES +#   are checked.  The Ncurses library does NOT conform to this definition, +#   although NcursesW does. +# +#   HAVE_CURSES_COLOR and ax_cv_curses_color are defined if the library +#   supports color functions and macros such as COLOR_PAIR, A_COLOR, +#   COLOR_WHITE, COLOR_RED and init_pair().  These are NOT part of the +#   X/Open Base Curses definition, but are part of the Enhanced set of +#   functions.  The Ncurses library DOES support these functions, as does +#   NcursesW. +# +#   HAVE_CURSES_OBSOLETE and ax_cv_curses_obsolete are defined if the +#   library supports certain features present in SysV and BSD Curses but not +#   defined in the X/Open definition.  In particular, the functions +#   getattrs(), getcurx() and getmaxx() are checked. +# +#   To use the HAVE_xxx_H preprocessor symbols, insert the following into +#   your system.h (or equivalent) header file: +# +#     #if defined HAVE_NCURSESW_CURSES_H +#     #  include <ncursesw/curses.h> +#     #elif defined HAVE_NCURSESW_H +#     #  include <ncursesw.h> +#     #elif defined HAVE_NCURSES_CURSES_H +#     #  include <ncurses/curses.h> +#     #elif defined HAVE_NCURSES_H +#     #  include <ncurses.h> +#     #elif defined HAVE_CURSES_H +#     #  include <curses.h> +#     #else +#     #  error "SysV or X/Open-compatible Curses header file required" +#     #endif +# +#   For previous users of this macro: you should not need to change anything +#   in your configure.ac or Makefile.am, as the previous (serial 10) +#   semantics are still valid.  However, you should update your system.h (or +#   equivalent) header file to the fragment shown above. You are encouraged +#   also to make use of the extended functionality provided by this version +#   of AX_WITH_CURSES, as well as in the additional macros +#   AX_WITH_CURSES_PANEL, AX_WITH_CURSES_MENU and AX_WITH_CURSES_FORM. +# +# LICENSE +# +#   Copyright (c) 2009 Mark Pulford <mark@kyne.com.au> +#   Copyright (c) 2009 Damian Pietras <daper@daper.net> +#   Copyright (c) 2012 Reuben Thomas <rrt@sc3d.org> +#   Copyright (c) 2011 John Zaitseff <J.Zaitseff@zap.org.au> +# +#   This program is free software: you can redistribute it and/or modify it +#   under the terms of the GNU General Public License as published by the +#   Free Software Foundation, either version 3 of the License, or (at your +#   option) any later version. +# +#   This program is distributed in the hope that it will be useful, but +#   WITHOUT ANY WARRANTY; without even the implied warranty of +#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +#   Public License for more details. +# +#   You should have received a copy of the GNU General Public License along +#   with this program. If not, see <http://www.gnu.org/licenses/>. +# +#   As a special exception, the respective Autoconf Macro's copyright owner +#   gives unlimited permission to copy, distribute and modify the configure +#   scripts that are the output of Autoconf when processing the Macro. You +#   need not follow the terms of the GNU General Public License when using +#   or distributing such scripts, even though portions of the text of the +#   Macro appear in them. The GNU General Public License (GPL) does govern +#   all other use of the material that constitutes the Autoconf Macro. +# +#   This special exception to the GPL applies to versions of the Autoconf +#   Macro released by the Autoconf Archive. When you make and distribute a +#   modified version of the Autoconf Macro, you may extend this special +#   exception to the GPL to apply to your modified version as well. + +#serial 17 + +# internal function to factorize common code that is used by both ncurses +# and ncursesw +AC_DEFUN([_FIND_CURSES_FLAGS], [ +    AC_MSG_CHECKING([for $1 via pkg-config]) + +dnl    AX_REQUIRE_DEFINED([PKG_CHECK_EXISTS]) +    _PKG_CONFIG([_ax_cv_$1_libs], [libs], [$1]) +    _PKG_CONFIG([_ax_cv_$1_cppflags], [cflags], [$1]) + +    AS_IF([test "x$pkg_failed" = "xyes" || test "x$pkg_failed" = "xuntried"],[ +        AC_MSG_RESULT([no]) +        # No suitable .pc file found, have to find flags via fallback +        AC_CACHE_CHECK([for $1 via fallback], [ax_cv_$1], [ +            AS_ECHO() +            pkg_cv__ax_cv_$1_libs="-l$1" +            pkg_cv__ax_cv_$1_cppflags="-D_GNU_SOURCE $CURSES_CFLAGS" +            LIBS="$ax_saved_LIBS $pkg_cv__ax_cv_$1_libs" +            CPPFLAGS="$ax_saved_CPPFLAGS $pkg_cv__ax_cv_$1_cppflags" + +            AC_MSG_CHECKING([for initscr() with $pkg_cv__ax_cv_$1_libs]) +            AC_LINK_IFELSE([AC_LANG_CALL([], [initscr])], +                [ +                    AC_MSG_RESULT([yes]) +                    AC_MSG_CHECKING([for nodelay() with $pkg_cv__ax_cv_$1_libs]) +                    AC_LINK_IFELSE([AC_LANG_CALL([], [nodelay])],[ +                        ax_cv_$1=yes +                        ],[ +                        AC_MSG_RESULT([no]) +                        m4_if( +                            [$1],[ncursesw],[pkg_cv__ax_cv_$1_libs="$pkg_cv__ax_cv_$1_libs -ltinfow"], +                            [$1],[ncurses],[pkg_cv__ax_cv_$1_libs="$pkg_cv__ax_cv_$1_libs -ltinfo"] +                        ) +                        LIBS="$ax_saved_LIBS $pkg_cv__ax_cv_$1_libs" + +                        AC_MSG_CHECKING([for nodelay() with $pkg_cv__ax_cv_$1_libs]) +                        AC_LINK_IFELSE([AC_LANG_CALL([], [nodelay])],[ +                            ax_cv_$1=yes +                            ],[ +                            ax_cv_$1=no +                        ]) +                    ]) +                ],[ +                    ax_cv_$1=no +            ]) +        ]) +        ],[ +        AC_MSG_RESULT([yes]) +        # Found .pc file, using its information +        LIBS="$ax_saved_LIBS $pkg_cv__ax_cv_$1_libs" +        CPPFLAGS="$ax_saved_CPPFLAGS $pkg_cv__ax_cv_$1_cppflags" +        ax_cv_$1=yes +    ]) +]) + +AU_ALIAS([MP_WITH_CURSES], [AX_WITH_CURSES]) +AC_DEFUN([AX_WITH_CURSES], [ +    AC_ARG_VAR([CURSES_LIBS], [linker library for Curses, e.g. -lcurses]) +    AC_ARG_VAR([CURSES_CFLAGS], [preprocessor flags for Curses, e.g. -I/usr/include/ncursesw]) +    AC_ARG_WITH([ncurses], [AS_HELP_STRING([--with-ncurses], +        [force the use of Ncurses or NcursesW])], +        [], [with_ncurses=check]) +    AC_ARG_WITH([ncursesw], [AS_HELP_STRING([--without-ncursesw], +        [do not use NcursesW (wide character support)])], +        [], [with_ncursesw=check]) + +    ax_saved_LIBS=$LIBS +    ax_saved_CPPFLAGS=$CPPFLAGS + +    AS_IF([test "x$with_ncurses" = xyes || test "x$with_ncursesw" = xyes], +        [ax_with_plaincurses=no], [ax_with_plaincurses=check]) + +    ax_cv_curses_which=no + +    # Test for NcursesW +    AS_IF([test "x$CURSES_LIBS" = x && test "x$with_ncursesw" != xno], [ +        _FIND_CURSES_FLAGS([ncursesw]) + +        AS_IF([test "x$ax_cv_ncursesw" = xno && test "x$with_ncursesw" = xyes], [ +            AC_MSG_ERROR([--with-ncursesw specified but could not find NcursesW library]) +        ]) + +        AS_IF([test "x$ax_cv_ncursesw" = xyes], [ +            ax_cv_curses=yes +            ax_cv_curses_which=ncursesw +            CURSES_LIBS="$pkg_cv__ax_cv_ncursesw_libs" +            CURSES_CFLAGS="$pkg_cv__ax_cv_ncursesw_cppflags" +            AC_DEFINE([HAVE_NCURSESW], [1], [Define to 1 if the NcursesW library is present]) +            AC_DEFINE([HAVE_CURSES],   [1], [Define to 1 if a SysV or X/Open compatible Curses library is present]) + +            AC_CACHE_CHECK([for working ncursesw/curses.h], [ax_cv_header_ncursesw_curses_h], [ +                AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +                        @%:@define _XOPEN_SOURCE_EXTENDED 1 +                        @%:@include <ncursesw/curses.h> +                    ]], [[ +                        chtype a = A_BOLD; +                        int b = KEY_LEFT; +                        chtype c = COLOR_PAIR(1) & A_COLOR; +                        attr_t d = WA_NORMAL; +                        cchar_t e; +                        wint_t f; +                        int g = getattrs(stdscr); +                        int h = getcurx(stdscr) + getmaxx(stdscr); +                        initscr(); +                        init_pair(1, COLOR_WHITE, COLOR_RED); +                        wattr_set(stdscr, d, 0, NULL); +                        wget_wch(stdscr, &f); +                    ]])], +                    [ax_cv_header_ncursesw_curses_h=yes], +                    [ax_cv_header_ncursesw_curses_h=no]) +            ]) +            AS_IF([test "x$ax_cv_header_ncursesw_curses_h" = xyes], [ +                ax_cv_curses_enhanced=yes +                ax_cv_curses_color=yes +                ax_cv_curses_obsolete=yes +                AC_DEFINE([HAVE_CURSES_ENHANCED],   [1], [Define to 1 if library supports X/Open Enhanced functions]) +                AC_DEFINE([HAVE_CURSES_COLOR],      [1], [Define to 1 if library supports color (enhanced functions)]) +                AC_DEFINE([HAVE_CURSES_OBSOLETE],   [1], [Define to 1 if library supports certain obsolete features]) +                AC_DEFINE([HAVE_NCURSESW_CURSES_H], [1], [Define to 1 if <ncursesw/curses.h> is present]) +            ]) + +            AC_CACHE_CHECK([for working ncursesw.h], [ax_cv_header_ncursesw_h], [ +                AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +                        @%:@define _XOPEN_SOURCE_EXTENDED 1 +                        @%:@include <ncursesw.h> +                    ]], [[ +                        chtype a = A_BOLD; +                        int b = KEY_LEFT; +                        chtype c = COLOR_PAIR(1) & A_COLOR; +                        attr_t d = WA_NORMAL; +                        cchar_t e; +                        wint_t f; +                        int g = getattrs(stdscr); +                        int h = getcurx(stdscr) + getmaxx(stdscr); +                        initscr(); +                        init_pair(1, COLOR_WHITE, COLOR_RED); +                        wattr_set(stdscr, d, 0, NULL); +                        wget_wch(stdscr, &f); +                    ]])], +                    [ax_cv_header_ncursesw_h=yes], +                    [ax_cv_header_ncursesw_h=no]) +            ]) +            AS_IF([test "x$ax_cv_header_ncursesw_h" = xyes], [ +                ax_cv_curses_enhanced=yes +                ax_cv_curses_color=yes +                ax_cv_curses_obsolete=yes +                AC_DEFINE([HAVE_CURSES_ENHANCED], [1], [Define to 1 if library supports X/Open Enhanced functions]) +                AC_DEFINE([HAVE_CURSES_COLOR],    [1], [Define to 1 if library supports color (enhanced functions)]) +                AC_DEFINE([HAVE_CURSES_OBSOLETE], [1], [Define to 1 if library supports certain obsolete features]) +                AC_DEFINE([HAVE_NCURSESW_H],      [1], [Define to 1 if <ncursesw.h> is present]) +            ]) + +            AC_CACHE_CHECK([for working ncurses.h], [ax_cv_header_ncurses_h_with_ncursesw], [ +                AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +                        @%:@define _XOPEN_SOURCE_EXTENDED 1 +                        @%:@include <ncurses.h> +                    ]], [[ +                        chtype a = A_BOLD; +                        int b = KEY_LEFT; +                        chtype c = COLOR_PAIR(1) & A_COLOR; +                        attr_t d = WA_NORMAL; +                        cchar_t e; +                        wint_t f; +                        int g = getattrs(stdscr); +                        int h = getcurx(stdscr) + getmaxx(stdscr); +                        initscr(); +                        init_pair(1, COLOR_WHITE, COLOR_RED); +                        wattr_set(stdscr, d, 0, NULL); +                        wget_wch(stdscr, &f); +                    ]])], +                    [ax_cv_header_ncurses_h_with_ncursesw=yes], +                    [ax_cv_header_ncurses_h_with_ncursesw=no]) +            ]) +            AS_IF([test "x$ax_cv_header_ncurses_h_with_ncursesw" = xyes], [ +                ax_cv_curses_enhanced=yes +                ax_cv_curses_color=yes +                ax_cv_curses_obsolete=yes +                AC_DEFINE([HAVE_CURSES_ENHANCED], [1], [Define to 1 if library supports X/Open Enhanced functions]) +                AC_DEFINE([HAVE_CURSES_COLOR],    [1], [Define to 1 if library supports color (enhanced functions)]) +                AC_DEFINE([HAVE_CURSES_OBSOLETE], [1], [Define to 1 if library supports certain obsolete features]) +                AC_DEFINE([HAVE_NCURSES_H],       [1], [Define to 1 if <ncurses.h> is present]) +            ]) + +            AS_IF([test "x$ax_cv_header_ncursesw_curses_h" = xno && test "x$ax_cv_header_ncursesw_h" = xno && test "x$ax_cv_header_ncurses_h_with_ncursesw" = xno], [ +                AC_MSG_WARN([could not find a working ncursesw/curses.h, ncursesw.h or ncurses.h]) +            ]) +        ]) +    ]) +    unset pkg_cv__ax_cv_ncursesw_libs +    unset pkg_cv__ax_cv_ncursesw_cppflags + +    # Test for Ncurses +    AS_IF([test "x$CURSES_LIBS" = x && test "x$with_ncurses" != xno && test "x$ax_cv_curses_which" = xno], [ +        _FIND_CURSES_FLAGS([ncurses]) + +        AS_IF([test "x$ax_cv_ncurses" = xno && test "x$with_ncurses" = xyes], [ +            AC_MSG_ERROR([--with-ncurses specified but could not find Ncurses library]) +        ]) + +        AS_IF([test "x$ax_cv_ncurses" = xyes], [ +            ax_cv_curses=yes +            ax_cv_curses_which=ncurses +            CURSES_LIBS="$pkg_cv__ax_cv_ncurses_libs" +            CURSES_CFLAGS="$pkg_cv__ax_cv_ncurses_cppflags" +            AC_DEFINE([HAVE_NCURSES], [1], [Define to 1 if the Ncurses library is present]) +            AC_DEFINE([HAVE_CURSES],  [1], [Define to 1 if a SysV or X/Open compatible Curses library is present]) + +            AC_CACHE_CHECK([for working ncurses/curses.h], [ax_cv_header_ncurses_curses_h], [ +                AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +                        @%:@include <ncurses/curses.h> +                    ]], [[ +                        chtype a = A_BOLD; +                        int b = KEY_LEFT; +                        chtype c = COLOR_PAIR(1) & A_COLOR; +                        int g = getattrs(stdscr); +                        int h = getcurx(stdscr) + getmaxx(stdscr); +                        initscr(); +                        init_pair(1, COLOR_WHITE, COLOR_RED); +                    ]])], +                    [ax_cv_header_ncurses_curses_h=yes], +                    [ax_cv_header_ncurses_curses_h=no]) +            ]) +            AS_IF([test "x$ax_cv_header_ncurses_curses_h" = xyes], [ +                ax_cv_curses_color=yes +                ax_cv_curses_obsolete=yes +                AC_DEFINE([HAVE_CURSES_COLOR],     [1], [Define to 1 if library supports color (enhanced functions)]) +                AC_DEFINE([HAVE_CURSES_OBSOLETE],  [1], [Define to 1 if library supports certain obsolete features]) +                AC_DEFINE([HAVE_NCURSES_CURSES_H], [1], [Define to 1 if <ncurses/curses.h> is present]) +            ]) + +            AC_CACHE_CHECK([for working ncurses.h], [ax_cv_header_ncurses_h], [ +                AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +                        @%:@include <ncurses.h> +                    ]], [[ +                        chtype a = A_BOLD; +                        int b = KEY_LEFT; +                        chtype c = COLOR_PAIR(1) & A_COLOR; +                        int g = getattrs(stdscr); +                        int h = getcurx(stdscr) + getmaxx(stdscr); +                        initscr(); +                        init_pair(1, COLOR_WHITE, COLOR_RED); +                    ]])], +                    [ax_cv_header_ncurses_h=yes], +                    [ax_cv_header_ncurses_h=no]) +            ]) +            AS_IF([test "x$ax_cv_header_ncurses_h" = xyes], [ +                ax_cv_curses_color=yes +                ax_cv_curses_obsolete=yes +                AC_DEFINE([HAVE_CURSES_COLOR],    [1], [Define to 1 if library supports color (enhanced functions)]) +                AC_DEFINE([HAVE_CURSES_OBSOLETE], [1], [Define to 1 if library supports certain obsolete features]) +                AC_DEFINE([HAVE_NCURSES_H],       [1], [Define to 1 if <ncurses.h> is present]) +            ]) + +            AS_IF([test "x$ax_cv_header_ncurses_curses_h" = xno && test "x$ax_cv_header_ncurses_h" = xno], [ +                AC_MSG_WARN([could not find a working ncurses/curses.h or ncurses.h]) +            ]) +        ]) +    ]) +    unset pkg_cv__ax_cv_ncurses_libs +    unset pkg_cv__ax_cv_ncurses_cppflags + +    # Test for plain Curses (or if CURSES_LIBS was set by user) +    AS_IF([test "x$with_plaincurses" != xno && test "x$ax_cv_curses_which" = xno], [ +        AS_IF([test "x$CURSES_LIBS" != x], [ +            LIBS="$ax_saved_LIBS $CURSES_LIBS" +        ], [ +            LIBS="$ax_saved_LIBS -lcurses" +        ]) + +        AC_CACHE_CHECK([for Curses library], [ax_cv_plaincurses], [ +            AC_LINK_IFELSE([AC_LANG_CALL([], [initscr])], +                [ax_cv_plaincurses=yes], [ax_cv_plaincurses=no]) +        ]) + +        AS_IF([test "x$ax_cv_plaincurses" = xyes], [ +            ax_cv_curses=yes +            ax_cv_curses_which=plaincurses +            AS_IF([test "x$CURSES_LIBS" = x], [ +                CURSES_LIBS="-lcurses" +            ]) +            AC_DEFINE([HAVE_CURSES], [1], [Define to 1 if a SysV or X/Open compatible Curses library is present]) + +            # Check for base conformance (and header file) + +            AC_CACHE_CHECK([for working curses.h], [ax_cv_header_curses_h], [ +                AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +                        @%:@include <curses.h> +                    ]], [[ +                        chtype a = A_BOLD; +                        int b = KEY_LEFT; +                        initscr(); +                    ]])], +                    [ax_cv_header_curses_h=yes], +                    [ax_cv_header_curses_h=no]) +            ]) +            AS_IF([test "x$ax_cv_header_curses_h" = xyes], [ +                AC_DEFINE([HAVE_CURSES_H], [1], [Define to 1 if <curses.h> is present]) + +                # Check for X/Open Enhanced conformance + +                AC_CACHE_CHECK([for X/Open Enhanced Curses conformance], [ax_cv_plaincurses_enhanced], [ +                    AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +                            @%:@define _XOPEN_SOURCE_EXTENDED 1 +                            @%:@include <curses.h> +                            @%:@ifndef _XOPEN_CURSES +                            @%:@error "this Curses library is not enhanced" +                            "this Curses library is not enhanced" +                            @%:@endif +                        ]], [[ +                            chtype a = A_BOLD; +                            int b = KEY_LEFT; +                            chtype c = COLOR_PAIR(1) & A_COLOR; +                            attr_t d = WA_NORMAL; +                            cchar_t e; +                            wint_t f; +                            initscr(); +                            init_pair(1, COLOR_WHITE, COLOR_RED); +                            wattr_set(stdscr, d, 0, NULL); +                            wget_wch(stdscr, &f); +                        ]])], +                        [ax_cv_plaincurses_enhanced=yes], +                        [ax_cv_plaincurses_enhanced=no]) +                ]) +                AS_IF([test "x$ax_cv_plaincurses_enhanced" = xyes], [ +                    ax_cv_curses_enhanced=yes +                    ax_cv_curses_color=yes +                    AC_DEFINE([HAVE_CURSES_ENHANCED], [1], [Define to 1 if library supports X/Open Enhanced functions]) +                    AC_DEFINE([HAVE_CURSES_COLOR],    [1], [Define to 1 if library supports color (enhanced functions)]) +                ]) + +                # Check for color functions + +                AC_CACHE_CHECK([for Curses color functions], [ax_cv_plaincurses_color], [ +                    AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +                        @%:@define _XOPEN_SOURCE_EXTENDED 1 +                        @%:@include <curses.h> +                        ]], [[ +                            chtype a = A_BOLD; +                            int b = KEY_LEFT; +                            chtype c = COLOR_PAIR(1) & A_COLOR; +                            initscr(); +                            init_pair(1, COLOR_WHITE, COLOR_RED); +                        ]])], +                        [ax_cv_plaincurses_color=yes], +                        [ax_cv_plaincurses_color=no]) +                ]) +                AS_IF([test "x$ax_cv_plaincurses_color" = xyes], [ +                    ax_cv_curses_color=yes +                    AC_DEFINE([HAVE_CURSES_COLOR], [1], [Define to 1 if library supports color (enhanced functions)]) +                ]) + +                # Check for obsolete functions + +                AC_CACHE_CHECK([for obsolete Curses functions], [ax_cv_plaincurses_obsolete], [ +                AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +                        @%:@include <curses.h> +                    ]], [[ +                        chtype a = A_BOLD; +                        int b = KEY_LEFT; +                        int g = getattrs(stdscr); +                        int h = getcurx(stdscr) + getmaxx(stdscr); +                        initscr(); +                    ]])], +                    [ax_cv_plaincurses_obsolete=yes], +                    [ax_cv_plaincurses_obsolete=no]) +                ]) +                AS_IF([test "x$ax_cv_plaincurses_obsolete" = xyes], [ +                    ax_cv_curses_obsolete=yes +                    AC_DEFINE([HAVE_CURSES_OBSOLETE], [1], [Define to 1 if library supports certain obsolete features]) +                ]) +            ]) + +            AS_IF([test "x$ax_cv_header_curses_h" = xno], [ +                AC_MSG_WARN([could not find a working curses.h]) +            ]) +        ]) +    ]) + +    AS_IF([test "x$ax_cv_curses"          != xyes], [ax_cv_curses=no]) +    AS_IF([test "x$ax_cv_curses_enhanced" != xyes], [ax_cv_curses_enhanced=no]) +    AS_IF([test "x$ax_cv_curses_color"    != xyes], [ax_cv_curses_color=no]) +    AS_IF([test "x$ax_cv_curses_obsolete" != xyes], [ax_cv_curses_obsolete=no]) + +    LIBS=$ax_saved_LIBS +    CPPFLAGS=$ax_saved_CPPFLAGS + +    unset ax_saved_LIBS +    unset ax_saved_CPPFLAGS +])dnl diff --git a/curses/m4/iconv.m4 b/curses/m4/iconv.m4 new file mode 100644 index 0000000..aa159c5 --- /dev/null +++ b/curses/m4/iconv.m4 @@ -0,0 +1,271 @@ +# iconv.m4 serial 19 (gettext-0.18.2) +dnl Copyright (C) 2000-2002, 2007-2014, 2016 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ +  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. +  AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) +  AC_REQUIRE([AC_LIB_RPATH]) + +  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV +  dnl accordingly. +  AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ +  dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and +  dnl those with the standalone portable GNU libiconv installed). +  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + +  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV +  dnl accordingly. +  AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + +  dnl Add $INCICONV to CPPFLAGS before performing the following checks, +  dnl because if the user has installed libiconv and not disabled its use +  dnl via --without-libiconv-prefix, he wants to use it. The first +  dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. +  am_save_CPPFLAGS="$CPPFLAGS" +  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + +  AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ +    am_cv_func_iconv="no, consider installing GNU libiconv" +    am_cv_lib_iconv=no +    AC_LINK_IFELSE( +      [AC_LANG_PROGRAM( +         [[ +#include <stdlib.h> +#include <iconv.h> +         ]], +         [[iconv_t cd = iconv_open("",""); +           iconv(cd,NULL,NULL,NULL,NULL); +           iconv_close(cd);]])], +      [am_cv_func_iconv=yes]) +    if test "$am_cv_func_iconv" != yes; then +      am_save_LIBS="$LIBS" +      LIBS="$LIBS $LIBICONV" +      AC_LINK_IFELSE( +        [AC_LANG_PROGRAM( +           [[ +#include <stdlib.h> +#include <iconv.h> +           ]], +           [[iconv_t cd = iconv_open("",""); +             iconv(cd,NULL,NULL,NULL,NULL); +             iconv_close(cd);]])], +        [am_cv_lib_iconv=yes] +        [am_cv_func_iconv=yes]) +      LIBS="$am_save_LIBS" +    fi +  ]) +  if test "$am_cv_func_iconv" = yes; then +    AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ +      dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, +      dnl Solaris 10. +      am_save_LIBS="$LIBS" +      if test $am_cv_lib_iconv = yes; then +        LIBS="$LIBS $LIBICONV" +      fi +      am_cv_func_iconv_works=no +      for ac_iconv_const in '' 'const'; do +        AC_RUN_IFELSE( +          [AC_LANG_PROGRAM( +             [[ +#include <iconv.h> +#include <string.h> + +#ifndef ICONV_CONST +# define ICONV_CONST $ac_iconv_const +#endif +             ]], +             [[int result = 0; +  /* Test against AIX 5.1 bug: Failures are not distinguishable from successful +     returns.  */ +  { +    iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); +    if (cd_utf8_to_88591 != (iconv_t)(-1)) +      { +        static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ +        char buf[10]; +        ICONV_CONST char *inptr = input; +        size_t inbytesleft = strlen (input); +        char *outptr = buf; +        size_t outbytesleft = sizeof (buf); +        size_t res = iconv (cd_utf8_to_88591, +                            &inptr, &inbytesleft, +                            &outptr, &outbytesleft); +        if (res == 0) +          result |= 1; +        iconv_close (cd_utf8_to_88591); +      } +  } +  /* Test against Solaris 10 bug: Failures are not distinguishable from +     successful returns.  */ +  { +    iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); +    if (cd_ascii_to_88591 != (iconv_t)(-1)) +      { +        static ICONV_CONST char input[] = "\263"; +        char buf[10]; +        ICONV_CONST char *inptr = input; +        size_t inbytesleft = strlen (input); +        char *outptr = buf; +        size_t outbytesleft = sizeof (buf); +        size_t res = iconv (cd_ascii_to_88591, +                            &inptr, &inbytesleft, +                            &outptr, &outbytesleft); +        if (res == 0) +          result |= 2; +        iconv_close (cd_ascii_to_88591); +      } +  } +  /* Test against AIX 6.1..7.1 bug: Buffer overrun.  */ +  { +    iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); +    if (cd_88591_to_utf8 != (iconv_t)(-1)) +      { +        static ICONV_CONST char input[] = "\304"; +        static char buf[2] = { (char)0xDE, (char)0xAD }; +        ICONV_CONST char *inptr = input; +        size_t inbytesleft = 1; +        char *outptr = buf; +        size_t outbytesleft = 1; +        size_t res = iconv (cd_88591_to_utf8, +                            &inptr, &inbytesleft, +                            &outptr, &outbytesleft); +        if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) +          result |= 4; +        iconv_close (cd_88591_to_utf8); +      } +  } +#if 0 /* This bug could be worked around by the caller.  */ +  /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */ +  { +    iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); +    if (cd_88591_to_utf8 != (iconv_t)(-1)) +      { +        static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; +        char buf[50]; +        ICONV_CONST char *inptr = input; +        size_t inbytesleft = strlen (input); +        char *outptr = buf; +        size_t outbytesleft = sizeof (buf); +        size_t res = iconv (cd_88591_to_utf8, +                            &inptr, &inbytesleft, +                            &outptr, &outbytesleft); +        if ((int)res > 0) +          result |= 8; +        iconv_close (cd_88591_to_utf8); +      } +  } +#endif +  /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is +     provided.  */ +  if (/* Try standardized names.  */ +      iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) +      /* Try IRIX, OSF/1 names.  */ +      && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) +      /* Try AIX names.  */ +      && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) +      /* Try HP-UX names.  */ +      && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) +    result |= 16; +  return result; +]])], +          [am_cv_func_iconv_works=yes], , +          [case "$host_os" in +             aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; +             *)            am_cv_func_iconv_works="guessing yes" ;; +           esac]) +        test "$am_cv_func_iconv_works" = no || break +      done +      LIBS="$am_save_LIBS" +    ]) +    case "$am_cv_func_iconv_works" in +      *no) am_func_iconv=no am_cv_lib_iconv=no ;; +      *)   am_func_iconv=yes ;; +    esac +  else +    am_func_iconv=no am_cv_lib_iconv=no +  fi +  if test "$am_func_iconv" = yes; then +    AC_DEFINE([HAVE_ICONV], [1], +      [Define if you have the iconv() function and it works.]) +  fi +  if test "$am_cv_lib_iconv" = yes; then +    AC_MSG_CHECKING([how to link with libiconv]) +    AC_MSG_RESULT([$LIBICONV]) +  else +    dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV +    dnl either. +    CPPFLAGS="$am_save_CPPFLAGS" +    LIBICONV= +    LTLIBICONV= +  fi +  AC_SUBST([LIBICONV]) +  AC_SUBST([LTLIBICONV]) +]) + +dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to +dnl avoid warnings like +dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". +dnl This is tricky because of the way 'aclocal' is implemented: +dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. +dnl   Otherwise aclocal's initial scan pass would miss the macro definition. +dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. +dnl   Otherwise aclocal would emit many "Use of uninitialized value $1" +dnl   warnings. +m4_define([gl_iconv_AC_DEFUN], +  m4_version_prereq([2.64], +    [[AC_DEFUN_ONCE( +        [$1], [$2])]], +    [m4_ifdef([gl_00GNULIB], +       [[AC_DEFUN_ONCE( +           [$1], [$2])]], +       [[AC_DEFUN( +           [$1], [$2])]])])) +gl_iconv_AC_DEFUN([AM_ICONV], +[ +  AM_ICONV_LINK +  if test "$am_cv_func_iconv" = yes; then +    AC_MSG_CHECKING([for iconv declaration]) +    AC_CACHE_VAL([am_cv_proto_iconv], [ +      AC_COMPILE_IFELSE( +        [AC_LANG_PROGRAM( +           [[ +#include <stdlib.h> +#include <iconv.h> +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif +           ]], +           [[]])], +        [am_cv_proto_iconv_arg1=""], +        [am_cv_proto_iconv_arg1="const"]) +      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) +    am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` +    AC_MSG_RESULT([ +         $am_cv_proto_iconv]) +    AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], +      [Define as const if the declaration of iconv() needs const.]) +    dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>. +    m4_ifdef([gl_ICONV_H_DEFAULTS], +      [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) +       if test -n "$am_cv_proto_iconv_arg1"; then +         ICONV_CONST="const" +       fi +      ]) +  fi +]) diff --git a/curses/m4/lib-ld.m4 b/curses/m4/lib-ld.m4 new file mode 100644 index 0000000..6209de6 --- /dev/null +++ b/curses/m4/lib-ld.m4 @@ -0,0 +1,119 @@ +# lib-ld.m4 serial 6 +dnl Copyright (C) 1996-2003, 2009-2016 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Subroutines of libtool.m4, +dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid +dnl collision with libtool.m4. + +dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 </dev/null` in +*GNU* | *'with BFD'*) +  acl_cv_prog_gnu_ld=yes +  ;; +*) +  acl_cv_prog_gnu_ld=no +  ;; +esac]) +with_gnu_ld=$acl_cv_prog_gnu_ld +]) + +dnl From libtool-2.4. Sets the variable LD. +AC_DEFUN([AC_LIB_PROG_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl + +AC_ARG_WITH([gnu-ld], +    [AS_HELP_STRING([--with-gnu-ld], +        [assume the C compiler uses GNU ld [default=no]])], +    [test "$withval" = no || with_gnu_ld=yes], +    [with_gnu_ld=no])dnl + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then +  # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which +  # contains only /bin. Note that ksh looks also at the FPATH variable, +  # so we have to set that as well for the test. +  PATH_SEPARATOR=: +  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ +    && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ +           || PATH_SEPARATOR=';' +       } +fi + +ac_prog=ld +if test "$GCC" = yes; then +  # Check if gcc -print-prog-name=ld gives a path. +  AC_MSG_CHECKING([for ld used by $CC]) +  case $host in +  *-*-mingw*) +    # gcc leaves a trailing carriage return which upsets mingw +    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; +  *) +    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; +  esac +  case $ac_prog in +    # Accept absolute paths. +    [[\\/]]* | ?:[[\\/]]*) +      re_direlt='/[[^/]][[^/]]*/\.\./' +      # Canonicalize the pathname of ld +      ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` +      while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do +        ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` +      done +      test -z "$LD" && LD="$ac_prog" +      ;; +  "") +    # If it fails, then pretend we aren't using GCC. +    ac_prog=ld +    ;; +  *) +    # If it is relative, then search for the first ld in PATH. +    with_gnu_ld=unknown +    ;; +  esac +elif test "$with_gnu_ld" = yes; then +  AC_MSG_CHECKING([for GNU ld]) +else +  AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL([acl_cv_path_LD], +[if test -z "$LD"; then +  acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +  for ac_dir in $PATH; do +    IFS="$acl_save_ifs" +    test -z "$ac_dir" && ac_dir=. +    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then +      acl_cv_path_LD="$ac_dir/$ac_prog" +      # Check to see if the program is GNU ld.  I'd rather use --version, +      # but apparently some variants of GNU ld only accept -v. +      # Break only if it was the GNU/non-GNU ld that we prefer. +      case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in +      *GNU* | *'with BFD'*) +        test "$with_gnu_ld" != no && break +        ;; +      *) +        test "$with_gnu_ld" != yes && break +        ;; +      esac +    fi +  done +  IFS="$acl_save_ifs" +else +  acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$acl_cv_path_LD" +if test -n "$LD"; then +  AC_MSG_RESULT([$LD]) +else +  AC_MSG_RESULT([no]) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +AC_LIB_PROG_LD_GNU +]) diff --git a/curses/m4/lib-link.m4 b/curses/m4/lib-link.m4 new file mode 100644 index 0000000..2f51855 --- /dev/null +++ b/curses/m4/lib-link.m4 @@ -0,0 +1,777 @@ +# lib-link.m4 serial 26 (gettext-0.18.2) +dnl Copyright (C) 2001-2016 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_PREREQ([2.54]) + +dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and +dnl augments the CPPFLAGS variable. +dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname +dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS], +[ +  AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) +  AC_REQUIRE([AC_LIB_RPATH]) +  pushdef([Name],[m4_translit([$1],[./+-], [____])]) +  pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], +                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) +  AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ +    AC_LIB_LINKFLAGS_BODY([$1], [$2]) +    ac_cv_lib[]Name[]_libs="$LIB[]NAME" +    ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" +    ac_cv_lib[]Name[]_cppflags="$INC[]NAME" +    ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" +  ]) +  LIB[]NAME="$ac_cv_lib[]Name[]_libs" +  LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" +  INC[]NAME="$ac_cv_lib[]Name[]_cppflags" +  LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" +  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) +  AC_SUBST([LIB]NAME) +  AC_SUBST([LTLIB]NAME) +  AC_SUBST([LIB]NAME[_PREFIX]) +  dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the +  dnl results of this search when this library appears as a dependency. +  HAVE_LIB[]NAME=yes +  popdef([NAME]) +  popdef([Name]) +]) + +dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message]) +dnl searches for libname and the libraries corresponding to explicit and +dnl implicit dependencies, together with the specified include files and +dnl the ability to compile and link the specified testcode. The missing-message +dnl defaults to 'no' and may contain additional hints for the user. +dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} +dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and +dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs +dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. +dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname +dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], +[ +  AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) +  AC_REQUIRE([AC_LIB_RPATH]) +  pushdef([Name],[m4_translit([$1],[./+-], [____])]) +  pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], +                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + +  dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME +  dnl accordingly. +  AC_LIB_LINKFLAGS_BODY([$1], [$2]) + +  dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, +  dnl because if the user has installed lib[]Name and not disabled its use +  dnl via --without-lib[]Name-prefix, he wants to use it. +  ac_save_CPPFLAGS="$CPPFLAGS" +  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + +  AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ +    ac_save_LIBS="$LIBS" +    dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS, +    dnl because these -l options might require -L options that are present in +    dnl LIBS. -l options benefit only from the -L options listed before it. +    dnl Otherwise, add it to the front of LIBS, because it may be a static +    dnl library that depends on another static library that is present in LIBS. +    dnl Static libraries benefit only from the static libraries listed after +    dnl it. +    case " $LIB[]NAME" in +      *" -l"*) LIBS="$LIBS $LIB[]NAME" ;; +      *)       LIBS="$LIB[]NAME $LIBS" ;; +    esac +    AC_LINK_IFELSE( +      [AC_LANG_PROGRAM([[$3]], [[$4]])], +      [ac_cv_lib[]Name=yes], +      [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])']) +    LIBS="$ac_save_LIBS" +  ]) +  if test "$ac_cv_lib[]Name" = yes; then +    HAVE_LIB[]NAME=yes +    AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.]) +    AC_MSG_CHECKING([how to link with lib[]$1]) +    AC_MSG_RESULT([$LIB[]NAME]) +  else +    HAVE_LIB[]NAME=no +    dnl If $LIB[]NAME didn't lead to a usable library, we don't need +    dnl $INC[]NAME either. +    CPPFLAGS="$ac_save_CPPFLAGS" +    LIB[]NAME= +    LTLIB[]NAME= +    LIB[]NAME[]_PREFIX= +  fi +  AC_SUBST([HAVE_LIB]NAME) +  AC_SUBST([LIB]NAME) +  AC_SUBST([LTLIB]NAME) +  AC_SUBST([LIB]NAME[_PREFIX]) +  popdef([NAME]) +  popdef([Name]) +]) + +dnl Determine the platform dependent parameters needed to use rpath: +dnl   acl_libext, +dnl   acl_shlibext, +dnl   acl_libname_spec, +dnl   acl_library_names_spec, +dnl   acl_hardcode_libdir_flag_spec, +dnl   acl_hardcode_libdir_separator, +dnl   acl_hardcode_direct, +dnl   acl_hardcode_minus_L. +AC_DEFUN([AC_LIB_RPATH], +[ +  dnl Tell automake >= 1.10 to complain if config.rpath is missing. +  m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) +  AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS +  AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld +  AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host +  AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir +  AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ +    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ +    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh +    . ./conftest.sh +    rm -f ./conftest.sh +    acl_cv_rpath=done +  ]) +  wl="$acl_cv_wl" +  acl_libext="$acl_cv_libext" +  acl_shlibext="$acl_cv_shlibext" +  acl_libname_spec="$acl_cv_libname_spec" +  acl_library_names_spec="$acl_cv_library_names_spec" +  acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" +  acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" +  acl_hardcode_direct="$acl_cv_hardcode_direct" +  acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" +  dnl Determine whether the user wants rpath handling at all. +  AC_ARG_ENABLE([rpath], +    [  --disable-rpath         do not hardcode runtime library paths], +    :, enable_rpath=yes) +]) + +dnl AC_LIB_FROMPACKAGE(name, package) +dnl declares that libname comes from the given package. The configure file +dnl will then not have a --with-libname-prefix option but a +dnl --with-package-prefix option. Several libraries can come from the same +dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar +dnl macro call that searches for libname. +AC_DEFUN([AC_LIB_FROMPACKAGE], +[ +  pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], +                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) +  define([acl_frompackage_]NAME, [$2]) +  popdef([NAME]) +  pushdef([PACK],[$2]) +  pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], +                                     [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) +  define([acl_libsinpackage_]PACKUP, +    m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) +  popdef([PACKUP]) +  popdef([PACK]) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found +dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ +  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) +  pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], +                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) +  pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) +  pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], +                                     [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) +  pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) +  dnl Autoconf >= 2.61 supports dots in --with options. +  pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) +  dnl By default, look in $includedir and $libdir. +  use_additional=yes +  AC_LIB_WITH_FINAL_PREFIX([ +    eval additional_includedir=\"$includedir\" +    eval additional_libdir=\"$libdir\" +  ]) +  AC_ARG_WITH(P_A_C_K[-prefix], +[[  --with-]]P_A_C_K[[-prefix[=DIR]  search for ]PACKLIBS[ in DIR/include and DIR/lib +  --without-]]P_A_C_K[[-prefix     don't search for ]PACKLIBS[ in includedir and libdir]], +[ +    if test "X$withval" = "Xno"; then +      use_additional=no +    else +      if test "X$withval" = "X"; then +        AC_LIB_WITH_FINAL_PREFIX([ +          eval additional_includedir=\"$includedir\" +          eval additional_libdir=\"$libdir\" +        ]) +      else +        additional_includedir="$withval/include" +        additional_libdir="$withval/$acl_libdirstem" +        if test "$acl_libdirstem2" != "$acl_libdirstem" \ +           && ! test -d "$withval/$acl_libdirstem"; then +          additional_libdir="$withval/$acl_libdirstem2" +        fi +      fi +    fi +]) +  dnl Search the library and its dependencies in $additional_libdir and +  dnl $LDFLAGS. Using breadth-first-seach. +  LIB[]NAME= +  LTLIB[]NAME= +  INC[]NAME= +  LIB[]NAME[]_PREFIX= +  dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been +  dnl computed. So it has to be reset here. +  HAVE_LIB[]NAME= +  rpathdirs= +  ltrpathdirs= +  names_already_handled= +  names_next_round='$1 $2' +  while test -n "$names_next_round"; do +    names_this_round="$names_next_round" +    names_next_round= +    for name in $names_this_round; do +      already_handled= +      for n in $names_already_handled; do +        if test "$n" = "$name"; then +          already_handled=yes +          break +        fi +      done +      if test -z "$already_handled"; then +        names_already_handled="$names_already_handled $name" +        dnl See if it was already located by an earlier AC_LIB_LINKFLAGS +        dnl or AC_LIB_HAVE_LINKFLAGS call. +        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` +        eval value=\"\$HAVE_LIB$uppername\" +        if test -n "$value"; then +          if test "$value" = yes; then +            eval value=\"\$LIB$uppername\" +            test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" +            eval value=\"\$LTLIB$uppername\" +            test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" +          else +            dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined +            dnl that this library doesn't exist. So just drop it. +            : +          fi +        else +          dnl Search the library lib$name in $additional_libdir and $LDFLAGS +          dnl and the already constructed $LIBNAME/$LTLIBNAME. +          found_dir= +          found_la= +          found_so= +          found_a= +          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name +          if test -n "$acl_shlibext"; then +            shrext=".$acl_shlibext"             # typically: shrext=.so +          else +            shrext= +          fi +          if test $use_additional = yes; then +            dir="$additional_libdir" +            dnl The same code as in the loop below: +            dnl First look for a shared library. +            if test -n "$acl_shlibext"; then +              if test -f "$dir/$libname$shrext"; then +                found_dir="$dir" +                found_so="$dir/$libname$shrext" +              else +                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then +                  ver=`(cd "$dir" && \ +                        for f in "$libname$shrext".*; do echo "$f"; done \ +                        | sed -e "s,^$libname$shrext\\\\.,," \ +                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ +                        | sed 1q ) 2>/dev/null` +                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then +                    found_dir="$dir" +                    found_so="$dir/$libname$shrext.$ver" +                  fi +                else +                  eval library_names=\"$acl_library_names_spec\" +                  for f in $library_names; do +                    if test -f "$dir/$f"; then +                      found_dir="$dir" +                      found_so="$dir/$f" +                      break +                    fi +                  done +                fi +              fi +            fi +            dnl Then look for a static library. +            if test "X$found_dir" = "X"; then +              if test -f "$dir/$libname.$acl_libext"; then +                found_dir="$dir" +                found_a="$dir/$libname.$acl_libext" +              fi +            fi +            if test "X$found_dir" != "X"; then +              if test -f "$dir/$libname.la"; then +                found_la="$dir/$libname.la" +              fi +            fi +          fi +          if test "X$found_dir" = "X"; then +            for x in $LDFLAGS $LTLIB[]NAME; do +              AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) +              case "$x" in +                -L*) +                  dir=`echo "X$x" | sed -e 's/^X-L//'` +                  dnl First look for a shared library. +                  if test -n "$acl_shlibext"; then +                    if test -f "$dir/$libname$shrext"; then +                      found_dir="$dir" +                      found_so="$dir/$libname$shrext" +                    else +                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then +                        ver=`(cd "$dir" && \ +                              for f in "$libname$shrext".*; do echo "$f"; done \ +                              | sed -e "s,^$libname$shrext\\\\.,," \ +                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ +                              | sed 1q ) 2>/dev/null` +                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then +                          found_dir="$dir" +                          found_so="$dir/$libname$shrext.$ver" +                        fi +                      else +                        eval library_names=\"$acl_library_names_spec\" +                        for f in $library_names; do +                          if test -f "$dir/$f"; then +                            found_dir="$dir" +                            found_so="$dir/$f" +                            break +                          fi +                        done +                      fi +                    fi +                  fi +                  dnl Then look for a static library. +                  if test "X$found_dir" = "X"; then +                    if test -f "$dir/$libname.$acl_libext"; then +                      found_dir="$dir" +                      found_a="$dir/$libname.$acl_libext" +                    fi +                  fi +                  if test "X$found_dir" != "X"; then +                    if test -f "$dir/$libname.la"; then +                      found_la="$dir/$libname.la" +                    fi +                  fi +                  ;; +              esac +              if test "X$found_dir" != "X"; then +                break +              fi +            done +          fi +          if test "X$found_dir" != "X"; then +            dnl Found the library. +            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" +            if test "X$found_so" != "X"; then +              dnl Linking with a shared library. We attempt to hardcode its +              dnl directory into the executable's runpath, unless it's the +              dnl standard /usr/lib. +              if test "$enable_rpath" = no \ +                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \ +                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then +                dnl No hardcoding is needed. +                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" +              else +                dnl Use an explicit option to hardcode DIR into the resulting +                dnl binary. +                dnl Potentially add DIR to ltrpathdirs. +                dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. +                haveit= +                for x in $ltrpathdirs; do +                  if test "X$x" = "X$found_dir"; then +                    haveit=yes +                    break +                  fi +                done +                if test -z "$haveit"; then +                  ltrpathdirs="$ltrpathdirs $found_dir" +                fi +                dnl The hardcoding into $LIBNAME is system dependent. +                if test "$acl_hardcode_direct" = yes; then +                  dnl Using DIR/libNAME.so during linking hardcodes DIR into the +                  dnl resulting binary. +                  LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" +                else +                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then +                    dnl Use an explicit option to hardcode DIR into the resulting +                    dnl binary. +                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" +                    dnl Potentially add DIR to rpathdirs. +                    dnl The rpathdirs will be appended to $LIBNAME at the end. +                    haveit= +                    for x in $rpathdirs; do +                      if test "X$x" = "X$found_dir"; then +                        haveit=yes +                        break +                      fi +                    done +                    if test -z "$haveit"; then +                      rpathdirs="$rpathdirs $found_dir" +                    fi +                  else +                    dnl Rely on "-L$found_dir". +                    dnl But don't add it if it's already contained in the LDFLAGS +                    dnl or the already constructed $LIBNAME +                    haveit= +                    for x in $LDFLAGS $LIB[]NAME; do +                      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) +                      if test "X$x" = "X-L$found_dir"; then +                        haveit=yes +                        break +                      fi +                    done +                    if test -z "$haveit"; then +                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" +                    fi +                    if test "$acl_hardcode_minus_L" != no; then +                      dnl FIXME: Not sure whether we should use +                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" +                      dnl here. +                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" +                    else +                      dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH +                      dnl here, because this doesn't fit in flags passed to the +                      dnl compiler. So give up. No hardcoding. This affects only +                      dnl very old systems. +                      dnl FIXME: Not sure whether we should use +                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" +                      dnl here. +                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" +                    fi +                  fi +                fi +              fi +            else +              if test "X$found_a" != "X"; then +                dnl Linking with a static library. +                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" +              else +                dnl We shouldn't come here, but anyway it's good to have a +                dnl fallback. +                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" +              fi +            fi +            dnl Assume the include files are nearby. +            additional_includedir= +            case "$found_dir" in +              */$acl_libdirstem | */$acl_libdirstem/) +                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` +                if test "$name" = '$1'; then +                  LIB[]NAME[]_PREFIX="$basedir" +                fi +                additional_includedir="$basedir/include" +                ;; +              */$acl_libdirstem2 | */$acl_libdirstem2/) +                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` +                if test "$name" = '$1'; then +                  LIB[]NAME[]_PREFIX="$basedir" +                fi +                additional_includedir="$basedir/include" +                ;; +            esac +            if test "X$additional_includedir" != "X"; then +              dnl Potentially add $additional_includedir to $INCNAME. +              dnl But don't add it +              dnl   1. if it's the standard /usr/include, +              dnl   2. if it's /usr/local/include and we are using GCC on Linux, +              dnl   3. if it's already present in $CPPFLAGS or the already +              dnl      constructed $INCNAME, +              dnl   4. if it doesn't exist as a directory. +              if test "X$additional_includedir" != "X/usr/include"; then +                haveit= +                if test "X$additional_includedir" = "X/usr/local/include"; then +                  if test -n "$GCC"; then +                    case $host_os in +                      linux* | gnu* | k*bsd*-gnu) haveit=yes;; +                    esac +                  fi +                fi +                if test -z "$haveit"; then +                  for x in $CPPFLAGS $INC[]NAME; do +                    AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) +                    if test "X$x" = "X-I$additional_includedir"; then +                      haveit=yes +                      break +                    fi +                  done +                  if test -z "$haveit"; then +                    if test -d "$additional_includedir"; then +                      dnl Really add $additional_includedir to $INCNAME. +                      INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" +                    fi +                  fi +                fi +              fi +            fi +            dnl Look for dependencies. +            if test -n "$found_la"; then +              dnl Read the .la file. It defines the variables +              dnl dlname, library_names, old_library, dependency_libs, current, +              dnl age, revision, installed, dlopen, dlpreopen, libdir. +              save_libdir="$libdir" +              case "$found_la" in +                */* | *\\*) . "$found_la" ;; +                *) . "./$found_la" ;; +              esac +              libdir="$save_libdir" +              dnl We use only dependency_libs. +              for dep in $dependency_libs; do +                case "$dep" in +                  -L*) +                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` +                    dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. +                    dnl But don't add it +                    dnl   1. if it's the standard /usr/lib, +                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux, +                    dnl   3. if it's already present in $LDFLAGS or the already +                    dnl      constructed $LIBNAME, +                    dnl   4. if it doesn't exist as a directory. +                    if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ +                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then +                      haveit= +                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ +                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then +                        if test -n "$GCC"; then +                          case $host_os in +                            linux* | gnu* | k*bsd*-gnu) haveit=yes;; +                          esac +                        fi +                      fi +                      if test -z "$haveit"; then +                        haveit= +                        for x in $LDFLAGS $LIB[]NAME; do +                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) +                          if test "X$x" = "X-L$additional_libdir"; then +                            haveit=yes +                            break +                          fi +                        done +                        if test -z "$haveit"; then +                          if test -d "$additional_libdir"; then +                            dnl Really add $additional_libdir to $LIBNAME. +                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" +                          fi +                        fi +                        haveit= +                        for x in $LDFLAGS $LTLIB[]NAME; do +                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) +                          if test "X$x" = "X-L$additional_libdir"; then +                            haveit=yes +                            break +                          fi +                        done +                        if test -z "$haveit"; then +                          if test -d "$additional_libdir"; then +                            dnl Really add $additional_libdir to $LTLIBNAME. +                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" +                          fi +                        fi +                      fi +                    fi +                    ;; +                  -R*) +                    dir=`echo "X$dep" | sed -e 's/^X-R//'` +                    if test "$enable_rpath" != no; then +                      dnl Potentially add DIR to rpathdirs. +                      dnl The rpathdirs will be appended to $LIBNAME at the end. +                      haveit= +                      for x in $rpathdirs; do +                        if test "X$x" = "X$dir"; then +                          haveit=yes +                          break +                        fi +                      done +                      if test -z "$haveit"; then +                        rpathdirs="$rpathdirs $dir" +                      fi +                      dnl Potentially add DIR to ltrpathdirs. +                      dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. +                      haveit= +                      for x in $ltrpathdirs; do +                        if test "X$x" = "X$dir"; then +                          haveit=yes +                          break +                        fi +                      done +                      if test -z "$haveit"; then +                        ltrpathdirs="$ltrpathdirs $dir" +                      fi +                    fi +                    ;; +                  -l*) +                    dnl Handle this in the next round. +                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` +                    ;; +                  *.la) +                    dnl Handle this in the next round. Throw away the .la's +                    dnl directory; it is already contained in a preceding -L +                    dnl option. +                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` +                    ;; +                  *) +                    dnl Most likely an immediate library name. +                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" +                    LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" +                    ;; +                esac +              done +            fi +          else +            dnl Didn't find the library; assume it is in the system directories +            dnl known to the linker and runtime loader. (All the system +            dnl directories known to the linker should also be known to the +            dnl runtime loader, otherwise the system is severely misconfigured.) +            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" +            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" +          fi +        fi +      fi +    done +  done +  if test "X$rpathdirs" != "X"; then +    if test -n "$acl_hardcode_libdir_separator"; then +      dnl Weird platform: only the last -rpath option counts, the user must +      dnl pass all path elements in one option. We can arrange that for a +      dnl single library, but not when more than one $LIBNAMEs are used. +      alldirs= +      for found_dir in $rpathdirs; do +        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" +      done +      dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. +      acl_save_libdir="$libdir" +      libdir="$alldirs" +      eval flag=\"$acl_hardcode_libdir_flag_spec\" +      libdir="$acl_save_libdir" +      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" +    else +      dnl The -rpath options are cumulative. +      for found_dir in $rpathdirs; do +        acl_save_libdir="$libdir" +        libdir="$found_dir" +        eval flag=\"$acl_hardcode_libdir_flag_spec\" +        libdir="$acl_save_libdir" +        LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" +      done +    fi +  fi +  if test "X$ltrpathdirs" != "X"; then +    dnl When using libtool, the option that works for both libraries and +    dnl executables is -R. The -R options are cumulative. +    for found_dir in $ltrpathdirs; do +      LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" +    done +  fi +  popdef([P_A_C_K]) +  popdef([PACKLIBS]) +  popdef([PACKUP]) +  popdef([PACK]) +  popdef([NAME]) +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ +  for element in [$2]; do +    haveit= +    for x in $[$1]; do +      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) +      if test "X$x" = "X$element"; then +        haveit=yes +        break +      fi +    done +    if test -z "$haveit"; then +      [$1]="${[$1]}${[$1]:+ }$element" +    fi +  done +]) + +dnl For those cases where a variable contains several -L and -l options +dnl referring to unknown libraries and directories, this macro determines the +dnl necessary additional linker options for the runtime path. +dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) +dnl sets LDADDVAR to linker options needed together with LIBSVALUE. +dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, +dnl otherwise linking without libtool is assumed. +AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], +[ +  AC_REQUIRE([AC_LIB_RPATH]) +  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) +  $1= +  if test "$enable_rpath" != no; then +    if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then +      dnl Use an explicit option to hardcode directories into the resulting +      dnl binary. +      rpathdirs= +      next= +      for opt in $2; do +        if test -n "$next"; then +          dir="$next" +          dnl No need to hardcode the standard /usr/lib. +          if test "X$dir" != "X/usr/$acl_libdirstem" \ +             && test "X$dir" != "X/usr/$acl_libdirstem2"; then +            rpathdirs="$rpathdirs $dir" +          fi +          next= +        else +          case $opt in +            -L) next=yes ;; +            -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` +                 dnl No need to hardcode the standard /usr/lib. +                 if test "X$dir" != "X/usr/$acl_libdirstem" \ +                    && test "X$dir" != "X/usr/$acl_libdirstem2"; then +                   rpathdirs="$rpathdirs $dir" +                 fi +                 next= ;; +            *) next= ;; +          esac +        fi +      done +      if test "X$rpathdirs" != "X"; then +        if test -n ""$3""; then +          dnl libtool is used for linking. Use -R options. +          for dir in $rpathdirs; do +            $1="${$1}${$1:+ }-R$dir" +          done +        else +          dnl The linker is used for linking directly. +          if test -n "$acl_hardcode_libdir_separator"; then +            dnl Weird platform: only the last -rpath option counts, the user +            dnl must pass all path elements in one option. +            alldirs= +            for dir in $rpathdirs; do +              alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" +            done +            acl_save_libdir="$libdir" +            libdir="$alldirs" +            eval flag=\"$acl_hardcode_libdir_flag_spec\" +            libdir="$acl_save_libdir" +            $1="$flag" +          else +            dnl The -rpath options are cumulative. +            for dir in $rpathdirs; do +              acl_save_libdir="$libdir" +              libdir="$dir" +              eval flag=\"$acl_hardcode_libdir_flag_spec\" +              libdir="$acl_save_libdir" +              $1="${$1}${$1:+ }$flag" +            done +          fi +        fi +      fi +    fi +  fi +  AC_SUBST([$1]) +]) diff --git a/curses/m4/lib-prefix.m4 b/curses/m4/lib-prefix.m4 new file mode 100644 index 0000000..6851031 --- /dev/null +++ b/curses/m4/lib-prefix.m4 @@ -0,0 +1,224 @@ +# lib-prefix.m4 serial 7 (gettext-0.18) +dnl Copyright (C) 2001-2005, 2008-2016 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and +dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't +dnl require excessive bracketing. +ifdef([AC_HELP_STRING], +[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], +[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ +  AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) +  AC_REQUIRE([AC_PROG_CC]) +  AC_REQUIRE([AC_CANONICAL_HOST]) +  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) +  AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) +  dnl By default, look in $includedir and $libdir. +  use_additional=yes +  AC_LIB_WITH_FINAL_PREFIX([ +    eval additional_includedir=\"$includedir\" +    eval additional_libdir=\"$libdir\" +  ]) +  AC_LIB_ARG_WITH([lib-prefix], +[  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib +  --without-lib-prefix    don't search for libraries in includedir and libdir], +[ +    if test "X$withval" = "Xno"; then +      use_additional=no +    else +      if test "X$withval" = "X"; then +        AC_LIB_WITH_FINAL_PREFIX([ +          eval additional_includedir=\"$includedir\" +          eval additional_libdir=\"$libdir\" +        ]) +      else +        additional_includedir="$withval/include" +        additional_libdir="$withval/$acl_libdirstem" +      fi +    fi +]) +  if test $use_additional = yes; then +    dnl Potentially add $additional_includedir to $CPPFLAGS. +    dnl But don't add it +    dnl   1. if it's the standard /usr/include, +    dnl   2. if it's already present in $CPPFLAGS, +    dnl   3. if it's /usr/local/include and we are using GCC on Linux, +    dnl   4. if it doesn't exist as a directory. +    if test "X$additional_includedir" != "X/usr/include"; then +      haveit= +      for x in $CPPFLAGS; do +        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) +        if test "X$x" = "X-I$additional_includedir"; then +          haveit=yes +          break +        fi +      done +      if test -z "$haveit"; then +        if test "X$additional_includedir" = "X/usr/local/include"; then +          if test -n "$GCC"; then +            case $host_os in +              linux* | gnu* | k*bsd*-gnu) haveit=yes;; +            esac +          fi +        fi +        if test -z "$haveit"; then +          if test -d "$additional_includedir"; then +            dnl Really add $additional_includedir to $CPPFLAGS. +            CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" +          fi +        fi +      fi +    fi +    dnl Potentially add $additional_libdir to $LDFLAGS. +    dnl But don't add it +    dnl   1. if it's the standard /usr/lib, +    dnl   2. if it's already present in $LDFLAGS, +    dnl   3. if it's /usr/local/lib and we are using GCC on Linux, +    dnl   4. if it doesn't exist as a directory. +    if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then +      haveit= +      for x in $LDFLAGS; do +        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) +        if test "X$x" = "X-L$additional_libdir"; then +          haveit=yes +          break +        fi +      done +      if test -z "$haveit"; then +        if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then +          if test -n "$GCC"; then +            case $host_os in +              linux*) haveit=yes;; +            esac +          fi +        fi +        if test -z "$haveit"; then +          if test -d "$additional_libdir"; then +            dnl Really add $additional_libdir to $LDFLAGS. +            LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" +          fi +        fi +      fi +    fi +  fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ +  dnl Unfortunately, prefix and exec_prefix get only finally determined +  dnl at the end of configure. +  if test "X$prefix" = "XNONE"; then +    acl_final_prefix="$ac_default_prefix" +  else +    acl_final_prefix="$prefix" +  fi +  if test "X$exec_prefix" = "XNONE"; then +    acl_final_exec_prefix='${prefix}' +  else +    acl_final_exec_prefix="$exec_prefix" +  fi +  acl_save_prefix="$prefix" +  prefix="$acl_final_prefix" +  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" +  prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ +  acl_save_prefix="$prefix" +  prefix="$acl_final_prefix" +  acl_save_exec_prefix="$exec_prefix" +  exec_prefix="$acl_final_exec_prefix" +  $1 +  exec_prefix="$acl_save_exec_prefix" +  prefix="$acl_save_prefix" +]) + +dnl AC_LIB_PREPARE_MULTILIB creates +dnl - a variable acl_libdirstem, containing the basename of the libdir, either +dnl   "lib" or "lib64" or "lib/64", +dnl - a variable acl_libdirstem2, as a secondary possible value for +dnl   acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or +dnl   "lib/amd64". +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ +  dnl There is no formal standard regarding lib and lib64. +  dnl On glibc systems, the current practice is that on a system supporting +  dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under +  dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine +  dnl the compiler's default mode by looking at the compiler's library search +  dnl path. If at least one of its elements ends in /lib64 or points to a +  dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. +  dnl Otherwise we use the default, namely "lib". +  dnl On Solaris systems, the current practice is that on a system supporting +  dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under +  dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or +  dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. +  AC_REQUIRE([AC_CANONICAL_HOST]) +  acl_libdirstem=lib +  acl_libdirstem2= +  case "$host_os" in +    solaris*) +      dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment +      dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>. +      dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." +      dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the +      dnl symlink is missing, so we set acl_libdirstem2 too. +      AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], +        [AC_EGREP_CPP([sixtyfour bits], [ +#ifdef _LP64 +sixtyfour bits +#endif +           ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) +        ]) +      if test $gl_cv_solaris_64bit = yes; then +        acl_libdirstem=lib/64 +        case "$host_cpu" in +          sparc*)        acl_libdirstem2=lib/sparcv9 ;; +          i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; +        esac +      fi +      ;; +    *) +      searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` +      if test -n "$searchpath"; then +        acl_save_IFS="${IFS= 	}"; IFS=":" +        for searchdir in $searchpath; do +          if test -d "$searchdir"; then +            case "$searchdir" in +              */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; +              */../ | */.. ) +                # Better ignore directories of this form. They are misleading. +                ;; +              *) searchdir=`cd "$searchdir" && pwd` +                 case "$searchdir" in +                   */lib64 ) acl_libdirstem=lib64 ;; +                 esac ;; +            esac +          fi +        done +        IFS="$acl_save_IFS" +      fi +      ;; +  esac +  test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" +]) | 
