| dnl*************************************************************************** |
| dnl Copyright (c) 1998-2014,2015 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 * |
| dnl "Software"), to deal in the Software without restriction, including * |
| dnl without limitation the rights to use, copy, modify, merge, publish, * |
| dnl distribute, distribute with modifications, sublicense, and/or sell * |
| dnl copies of the Software, and to permit persons to whom the Software is * |
| dnl furnished to do so, subject to the following conditions: * |
| dnl * |
| dnl The above copyright notice and this permission notice shall be included * |
| dnl in all copies or substantial portions of the Software. * |
| dnl * |
| dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * |
| dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * |
| dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * |
| dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * |
| dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * |
| dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * |
| dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. * |
| dnl * |
| dnl Except as contained in this notice, the name(s) of the above copyright * |
| dnl holders shall not be used in advertising or otherwise to promote the * |
| dnl sale, use or other dealings in this Software without prior written * |
| dnl authorization. * |
| dnl*************************************************************************** |
| dnl |
| dnl Author: Thomas E. Dickey 1995-on |
| dnl |
| dnl $Id: aclocal.m4,v 1.761 2015/08/06 00:46:34 tom Exp $ |
| dnl Macros used in NCURSES auto-configuration script. |
| dnl |
| dnl These macros are maintained separately from NCURSES. The copyright on |
| dnl this file applies to the aggregation of macros and does not affect use of |
| dnl these macros in other applications. |
| dnl |
| dnl See http://invisible-island.net/autoconf/ for additional information. |
| dnl |
| dnl --------------------------------------------------------------------------- |
| dnl --------------------------------------------------------------------------- |
| dnl AM_LANGINFO_CODESET version: 4 updated: 2015/04/18 08:56:57 |
| dnl ------------------- |
| dnl Inserted as requested by gettext 0.10.40 |
| dnl File from /usr/share/aclocal |
| dnl codeset.m4 |
| dnl ==================== |
| dnl serial AM1 |
| dnl |
| dnl From Bruno Haible. |
| AC_DEFUN([AM_LANGINFO_CODESET], |
| [ |
| AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, |
| [AC_TRY_LINK([#include <langinfo.h>], |
| [char* cs = nl_langinfo(CODESET);], |
| am_cv_langinfo_codeset=yes, |
| am_cv_langinfo_codeset=no) |
| ]) |
| if test $am_cv_langinfo_codeset = yes; then |
| AC_DEFINE(HAVE_LANGINFO_CODESET, 1, |
| [Define if you have <langinfo.h> and nl_langinfo(CODESET).]) |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ABI_DEFAULTS version: 2 updated: 2015/06/06 13:49:58 |
| dnl --------------- |
| dnl Provide configure-script defaults for different ncurses ABIs. |
| AC_DEFUN([CF_ABI_DEFAULTS],[ |
| AC_REQUIRE([CF_NCURSES_WITH_ABI_VERSION]) |
| case x$cf_cv_abi_version in |
| (x[[6789]]) |
| cf_dft_ext_colors=yes |
| cf_dft_ext_const=yes |
| cf_dft_ext_mouse=yes |
| cf_dft_ext_putwin=yes |
| cf_dft_ext_spfuncs=yes |
| cf_dft_filter_syms=yes |
| cf_dft_chtype=uint32_t |
| cf_dft_mmask_t=uint32_t |
| cf_dft_interop=yes |
| cf_dft_tparm_arg=intptr_t |
| cf_dft_with_lp64=yes |
| ;; |
| (*) |
| cf_dft_ext_colors=no |
| cf_dft_ext_const=no |
| cf_dft_ext_mouse=no |
| cf_dft_ext_putwin=no |
| cf_dft_ext_spfuncs=no |
| cf_dft_filter_syms=no |
| cf_dft_chtype=auto |
| cf_dft_mmask_t=auto |
| cf_dft_interop=no |
| cf_dft_tparm_arg=long |
| cf_dft_with_lp64=no |
| ;; |
| esac |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49 |
| dnl ------------------ |
| dnl Conditionally generate script according to whether we're using a given autoconf. |
| dnl |
| dnl $1 = version to compare against |
| dnl $2 = code to use if AC_ACVERSION is at least as high as $1. |
| dnl $3 = code to use if AC_ACVERSION is older than $1. |
| define([CF_ACVERSION_CHECK], |
| [ |
| ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl |
| ifdef([m4_version_compare], |
| [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])], |
| [CF_ACVERSION_COMPARE( |
| AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])), |
| AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53 |
| dnl -------------------- |
| dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1, |
| dnl MAJOR2, MINOR2, TERNARY2, |
| dnl PRINTABLE2, not FOUND, FOUND) |
| define([CF_ACVERSION_COMPARE], |
| [ifelse(builtin([eval], [$2 < $5]), 1, |
| [ifelse([$8], , ,[$8])], |
| [ifelse([$9], , ,[$9])])])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ADA_INCLUDE_DIRS version: 8 updated: 2013/10/14 04:24:07 |
| dnl ------------------- |
| dnl Construct the list of include-options for the C programs in the Ada95 |
| dnl binding. |
| AC_DEFUN([CF_ADA_INCLUDE_DIRS], |
| [ |
| ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS" |
| if test "$srcdir" != "."; then |
| ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS" |
| fi |
| if test "$GCC" != yes; then |
| ACPPFLAGS="$ACPPFLAGS -I\${includedir}" |
| elif test "$includedir" != "/usr/include"; then |
| if test "$includedir" = '${prefix}/include' ; then |
| if test x$prefix != x/usr ; then |
| ACPPFLAGS="$ACPPFLAGS -I\${includedir}" |
| fi |
| else |
| ACPPFLAGS="$ACPPFLAGS -I\${includedir}" |
| fi |
| fi |
| AC_SUBST(ACPPFLAGS) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ADD_ADAFLAGS version: 1 updated: 2010/06/19 15:22:18 |
| dnl --------------- |
| dnl Add to $ADAFLAGS, which is substituted into makefile and scripts. |
| AC_DEFUN([CF_ADD_ADAFLAGS],[ |
| ADAFLAGS="$ADAFLAGS $1" |
| AC_SUBST(ADAFLAGS) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ADD_CFLAGS version: 12 updated: 2015/04/12 15:39:00 |
| dnl ------------- |
| dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS |
| dnl The second parameter if given makes this macro verbose. |
| dnl |
| dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS, |
| dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily |
| dnl confused by the quotes (which require backslashes to keep them usable). |
| AC_DEFUN([CF_ADD_CFLAGS], |
| [ |
| cf_fix_cppflags=no |
| cf_new_cflags= |
| cf_new_cppflags= |
| cf_new_extra_cppflags= |
| |
| for cf_add_cflags in $1 |
| do |
| case $cf_fix_cppflags in |
| (no) |
| case $cf_add_cflags in |
| (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) |
| case $cf_add_cflags in |
| (-D*) |
| cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'` |
| |
| test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ |
| && test -z "${cf_tst_cflags}" \ |
| && cf_fix_cppflags=yes |
| |
| if test $cf_fix_cppflags = yes ; then |
| cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" |
| continue |
| elif test "${cf_tst_cflags}" = "\"'" ; then |
| cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" |
| continue |
| fi |
| ;; |
| esac |
| case "$CPPFLAGS" in |
| (*$cf_add_cflags) |
| ;; |
| (*) |
| case $cf_add_cflags in |
| (-D*) |
| cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` |
| CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags) |
| ;; |
| esac |
| cf_new_cppflags="$cf_new_cppflags $cf_add_cflags" |
| ;; |
| esac |
| ;; |
| (*) |
| cf_new_cflags="$cf_new_cflags $cf_add_cflags" |
| ;; |
| esac |
| ;; |
| (yes) |
| cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" |
| |
| cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'` |
| |
| test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ |
| && test -z "${cf_tst_cflags}" \ |
| && cf_fix_cppflags=no |
| ;; |
| esac |
| done |
| |
| if test -n "$cf_new_cflags" ; then |
| ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)]) |
| CFLAGS="$CFLAGS $cf_new_cflags" |
| fi |
| |
| if test -n "$cf_new_cppflags" ; then |
| ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)]) |
| CPPFLAGS="$CPPFLAGS $cf_new_cppflags" |
| fi |
| |
| if test -n "$cf_new_extra_cppflags" ; then |
| ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)]) |
| EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" |
| fi |
| |
| AC_SUBST(EXTRA_CPPFLAGS) |
| |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ADD_INCDIR version: 14 updated: 2015/05/25 20:53:04 |
| dnl ------------- |
| dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's |
| dnl redundant. We don't normally need to add -I/usr/local/include for gcc, |
| dnl but old versions (and some misinstalled ones) need that. To make things |
| dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to |
| dnl the include-path). |
| AC_DEFUN([CF_ADD_INCDIR], |
| [ |
| if test -n "$1" ; then |
| for cf_add_incdir in $1 |
| do |
| while test $cf_add_incdir != /usr/include |
| do |
| if test -d $cf_add_incdir |
| then |
| cf_have_incdir=no |
| if test -n "$CFLAGS$CPPFLAGS" ; then |
| # a loop is needed to ensure we can add subdirs of existing dirs |
| for cf_test_incdir in $CFLAGS $CPPFLAGS ; do |
| if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then |
| cf_have_incdir=yes; break |
| fi |
| done |
| fi |
| |
| if test "$cf_have_incdir" = no ; then |
| if test "$cf_add_incdir" = /usr/local/include ; then |
| if test "$GCC" = yes |
| then |
| cf_save_CPPFLAGS=$CPPFLAGS |
| CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" |
| AC_TRY_COMPILE([#include <stdio.h>], |
| [printf("Hello")], |
| [], |
| [cf_have_incdir=yes]) |
| CPPFLAGS=$cf_save_CPPFLAGS |
| fi |
| fi |
| fi |
| |
| if test "$cf_have_incdir" = no ; then |
| CF_VERBOSE(adding $cf_add_incdir to include-path) |
| ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir" |
| |
| cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'` |
| test "$cf_top_incdir" = "$cf_add_incdir" && break |
| cf_add_incdir="$cf_top_incdir" |
| else |
| break |
| fi |
| else |
| break |
| fi |
| done |
| done |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05 |
| dnl ---------- |
| dnl Add a library, used to enforce consistency. |
| dnl |
| dnl $1 = library to add, without the "-l" |
| dnl $2 = variable to update (default $LIBS) |
| AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ADD_LIBDIR version: 10 updated: 2015/04/18 08:56:57 |
| dnl ------------- |
| dnl Adds to the library-path |
| dnl |
| dnl Some machines have trouble with multiple -L options. |
| dnl |
| dnl $1 is the (list of) directory(s) to add |
| dnl $2 is the optional name of the variable to update (default LDFLAGS) |
| dnl |
| AC_DEFUN([CF_ADD_LIBDIR], |
| [ |
| if test -n "$1" ; then |
| for cf_add_libdir in $1 |
| do |
| if test $cf_add_libdir = /usr/lib ; then |
| : |
| elif test -d $cf_add_libdir |
| then |
| cf_have_libdir=no |
| if test -n "$LDFLAGS$LIBS" ; then |
| # a loop is needed to ensure we can add subdirs of existing dirs |
| for cf_test_libdir in $LDFLAGS $LIBS ; do |
| if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then |
| cf_have_libdir=yes; break |
| fi |
| done |
| fi |
| if test "$cf_have_libdir" = no ; then |
| CF_VERBOSE(adding $cf_add_libdir to library-path) |
| ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])" |
| fi |
| fi |
| done |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ADD_LIBS version: 2 updated: 2014/07/13 14:33:27 |
| dnl ----------- |
| dnl Add one or more libraries, used to enforce consistency. Libraries are |
| dnl prepended to an existing list, since their dependencies are assumed to |
| dnl already exist in the list. |
| dnl |
| dnl $1 = libraries to add, with the "-l", etc. |
| dnl $2 = variable to update (default $LIBS) |
| AC_DEFUN([CF_ADD_LIBS],[ |
| cf_add_libs="$1" |
| # Filter out duplicates - this happens with badly-designed ".pc" files... |
| for cf_add_1lib in [$]ifelse($2,,LIBS,[$2]) |
| do |
| for cf_add_2lib in $cf_add_libs |
| do |
| if test "x$cf_add_1lib" = "x$cf_add_2lib" |
| then |
| cf_add_1lib= |
| break |
| fi |
| done |
| test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib" |
| done |
| ifelse($2,,LIBS,[$2])="$cf_add_libs" |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05 |
| dnl ------------------ |
| dnl Append to a search-list for a nonstandard header/lib-file |
| dnl $1 = the variable to return as result |
| dnl $2 = the package name |
| dnl $3 = the subdirectory, e.g., bin, include or lib |
| dnl $4 = the directory under which we will test for subdirectories |
| dnl $5 = a directory that we do not want $4 to match |
| AC_DEFUN([CF_ADD_SUBDIR_PATH], |
| [ |
| test "x$4" != "x$5" && \ |
| test -d "$4" && \ |
| ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) { |
| test -n "$verbose" && echo " ... testing for $3-directories under $4" |
| test -d $4/$3 && $1="[$]$1 $4/$3" |
| test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2" |
| test -d $4/$3/$2/$3 && $1="[$]$1 $4/$3/$2/$3" |
| test -d $4/$2/$3 && $1="[$]$1 $4/$2/$3" |
| test -d $4/$2/$3/$2 && $1="[$]$1 $4/$2/$3/$2" |
| } |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31 |
| dnl -------------- |
| dnl Allow user to disable a normally-on option. |
| AC_DEFUN([CF_ARG_DISABLE], |
| [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14 |
| dnl ------------- |
| dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus |
| dnl values. |
| dnl |
| dnl Parameters: |
| dnl $1 = option name |
| dnl $2 = help-string |
| dnl $3 = action to perform if option is not default |
| dnl $4 = action if perform if option is default |
| dnl $5 = default option value (either 'yes' or 'no') |
| AC_DEFUN([CF_ARG_OPTION], |
| [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes) |
| if test "$enableval" != "$5" ; then |
| ifelse([$3],,[ :]dnl |
| ,[ $3]) ifelse([$4],,,[ |
| else |
| $4]) |
| fi],[enableval=$5 ifelse([$4],,,[ |
| $4 |
| ])dnl |
| ])])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_AR_FLAGS version: 5 updated: 2010/05/20 20:24:29 |
| dnl ----------- |
| dnl Check for suitable "ar" (archiver) options for updating an archive. |
| AC_DEFUN([CF_AR_FLAGS],[ |
| AC_REQUIRE([CF_PROG_AR]) |
| |
| AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[ |
| cf_cv_ar_flags=unknown |
| for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv |
| do |
| |
| # check if $ARFLAGS already contains this choice |
| if test "x$ARFLAGS" != "x" ; then |
| cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"` |
| if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then |
| cf_cv_ar_flags= |
| break |
| fi |
| fi |
| |
| rm -f conftest.$ac_cv_objext |
| rm -f conftest.a |
| |
| cat >conftest.$ac_ext <<EOF |
| #line __oline__ "configure" |
| int testdata[[3]] = { 123, 456, 789 }; |
| EOF |
| if AC_TRY_EVAL(ac_compile) ; then |
| echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC |
| $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null |
| if test -f conftest.a ; then |
| cf_cv_ar_flags=$cf_ar_flags |
| break |
| fi |
| else |
| CF_VERBOSE(cannot compile test-program) |
| break |
| fi |
| done |
| rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext |
| ]) |
| |
| if test -n "$ARFLAGS" ; then |
| if test -n "$cf_cv_ar_flags" ; then |
| ARFLAGS="$ARFLAGS $cf_cv_ar_flags" |
| fi |
| else |
| ARFLAGS=$cf_cv_ar_flags |
| fi |
| |
| AC_SUBST(ARFLAGS) |
| ]) |
| dnl --------------------------------------------------------------------------- |
| dnl CF_AWK_BIG_PRINTF version: 5 updated: 2015/04/17 21:13:04 |
| dnl ----------------- |
| dnl Check if awk can handle big strings using printf. Some older versions of |
| dnl awk choke on large strings passed via "%s". |
| dnl |
| dnl $1 = desired string size |
| dnl $2 = variable to set with result |
| AC_DEFUN([CF_AWK_BIG_PRINTF], |
| [ |
| case x$AWK in |
| (x) |
| eval $2=no |
| ;; |
| (*) |
| if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \ |
| | $AWK '{ printf "%d\n", length([$]0); }' 2>/dev/null | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then |
| eval $2=yes |
| else |
| eval $2=no |
| fi |
| ;; |
| esac |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18 |
| dnl ------------ |
| dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some |
| dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc |
| dnl 2.6.3 does, in anticipation of the ANSI C++ standard. |
| dnl |
| dnl Treat the configuration-variable specially here, since we're directly |
| dnl substituting its value (i.e., 1/0). |
| dnl |
| dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool |
| AC_DEFUN([CF_BOOL_DECL], |
| [ |
| AC_MSG_CHECKING(if we should include stdbool.h) |
| |
| AC_CACHE_VAL(cf_cv_header_stdbool_h,[ |
| AC_TRY_COMPILE([],[bool foo = false], |
| [cf_cv_header_stdbool_h=0], |
| [AC_TRY_COMPILE([ |
| #ifndef __BEOS__ |
| #include <stdbool.h> |
| #endif |
| ],[bool foo = false], |
| [cf_cv_header_stdbool_h=1], |
| [cf_cv_header_stdbool_h=0])])]) |
| |
| if test "$cf_cv_header_stdbool_h" = 1 |
| then AC_MSG_RESULT(yes) |
| else AC_MSG_RESULT(no) |
| fi |
| |
| AC_MSG_CHECKING([for builtin bool type]) |
| |
| AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[ |
| AC_TRY_COMPILE([ |
| #include <stdio.h> |
| #include <sys/types.h> |
| ],[bool x = false], |
| [ifelse($1,,cf_cv_builtin_bool,[$1])=1], |
| [ifelse($1,,cf_cv_builtin_bool,[$1])=0]) |
| ]) |
| |
| if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1 |
| then AC_MSG_RESULT(yes) |
| else AC_MSG_RESULT(no) |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_BOOL_SIZE version: 14 updated: 2015/04/17 21:13:04 |
| dnl ------------ |
| dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type). |
| dnl Don't bother looking for bool.h, since it's been deprecated. |
| dnl |
| dnl If the current compiler is C rather than C++, we get the bool definition |
| dnl from <stdbool.h>. |
| AC_DEFUN([CF_BOOL_SIZE], |
| [ |
| AC_MSG_CHECKING([for size of bool]) |
| AC_CACHE_VAL(cf_cv_type_of_bool,[ |
| rm -f cf_test.out |
| AC_TRY_RUN([ |
| #include <stdlib.h> |
| #include <stdio.h> |
| |
| #if defined(__cplusplus) |
| |
| #ifdef HAVE_GXX_BUILTIN_H |
| #include <g++/builtin.h> |
| #elif HAVE_GPP_BUILTIN_H |
| #include <gpp/builtin.h> |
| #elif HAVE_BUILTIN_H |
| #include <builtin.h> |
| #endif |
| |
| #else |
| |
| #if $cf_cv_header_stdbool_h |
| #include <stdbool.h> |
| #endif |
| |
| #endif |
| |
| int main() |
| { |
| FILE *fp = fopen("cf_test.out", "w"); |
| if (fp != 0) { |
| bool x = true; |
| if ((bool)(-x) >= 0) |
| fputs("unsigned ", fp); |
| if (sizeof(x) == sizeof(int)) fputs("int", fp); |
| else if (sizeof(x) == sizeof(char)) fputs("char", fp); |
| else if (sizeof(x) == sizeof(short))fputs("short",fp); |
| else if (sizeof(x) == sizeof(long)) fputs("long", fp); |
| fclose(fp); |
| } |
| ${cf_cv_main_return:-return}(0); |
| } |
| ], |
| [cf_cv_type_of_bool=`cat cf_test.out` |
| if test -z "$cf_cv_type_of_bool"; then |
| cf_cv_type_of_bool=unknown |
| fi], |
| [cf_cv_type_of_bool=unknown], |
| [cf_cv_type_of_bool=unknown]) |
| ]) |
| rm -f cf_test.out |
| AC_MSG_RESULT($cf_cv_type_of_bool) |
| if test "$cf_cv_type_of_bool" = unknown ; then |
| case .$NCURSES_BOOL in |
| (.auto|.) NCURSES_BOOL=unsigned;; |
| esac |
| AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool) |
| cf_cv_type_of_bool=$NCURSES_BOOL |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_BUILD_CC version: 7 updated: 2012/10/06 15:31:55 |
| dnl ----------- |
| dnl If we're cross-compiling, allow the user to override the tools and their |
| dnl options. The configure script is oriented toward identifying the host |
| dnl compiler, etc., but we need a build compiler to generate parts of the |
| dnl source. |
| dnl |
| dnl $1 = default for $CPPFLAGS |
| dnl $2 = default for $LIBS |
| AC_DEFUN([CF_BUILD_CC],[ |
| CF_ACVERSION_CHECK(2.52,, |
| [AC_REQUIRE([CF_PROG_EXT])]) |
| if test "$cross_compiling" = yes ; then |
| |
| # defaults that we might want to override |
| : ${BUILD_CFLAGS:=''} |
| : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'} |
| : ${BUILD_LDFLAGS:=''} |
| : ${BUILD_LIBS:='ifelse([$2],,,[$2])'} |
| : ${BUILD_EXEEXT:='$x'} |
| : ${BUILD_OBJEXT:='o'} |
| |
| AC_ARG_WITH(build-cc, |
| [ --with-build-cc=XXX the build C compiler ($BUILD_CC)], |
| [BUILD_CC="$withval"], |
| [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)]) |
| AC_MSG_CHECKING(for native build C compiler) |
| AC_MSG_RESULT($BUILD_CC) |
| |
| AC_MSG_CHECKING(for native build C preprocessor) |
| AC_ARG_WITH(build-cpp, |
| [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)], |
| [BUILD_CPP="$withval"], |
| [BUILD_CPP='${BUILD_CC} -E']) |
| AC_MSG_RESULT($BUILD_CPP) |
| |
| AC_MSG_CHECKING(for native build C flags) |
| AC_ARG_WITH(build-cflags, |
| [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)], |
| [BUILD_CFLAGS="$withval"]) |
| AC_MSG_RESULT($BUILD_CFLAGS) |
| |
| AC_MSG_CHECKING(for native build C preprocessor-flags) |
| AC_ARG_WITH(build-cppflags, |
| [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)], |
| [BUILD_CPPFLAGS="$withval"]) |
| AC_MSG_RESULT($BUILD_CPPFLAGS) |
| |
| AC_MSG_CHECKING(for native build linker-flags) |
| AC_ARG_WITH(build-ldflags, |
| [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)], |
| [BUILD_LDFLAGS="$withval"]) |
| AC_MSG_RESULT($BUILD_LDFLAGS) |
| |
| AC_MSG_CHECKING(for native build linker-libraries) |
| AC_ARG_WITH(build-libs, |
| [ --with-build-libs=XXX the build libraries (${BUILD_LIBS})], |
| [BUILD_LIBS="$withval"]) |
| AC_MSG_RESULT($BUILD_LIBS) |
| |
| # this assumes we're on Unix. |
| BUILD_EXEEXT= |
| BUILD_OBJEXT=o |
| |
| : ${BUILD_CC:='${CC}'} |
| |
| if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then |
| AC_MSG_ERROR([Cross-build requires two compilers. |
| Use --with-build-cc to specify the native compiler.]) |
| fi |
| |
| else |
| : ${BUILD_CC:='${CC}'} |
| : ${BUILD_CPP:='${CPP}'} |
| : ${BUILD_CFLAGS:='${CFLAGS}'} |
| : ${BUILD_CPPFLAGS:='${CPPFLAGS}'} |
| : ${BUILD_LDFLAGS:='${LDFLAGS}'} |
| : ${BUILD_LIBS:='${LIBS}'} |
| : ${BUILD_EXEEXT:='$x'} |
| : ${BUILD_OBJEXT:='o'} |
| fi |
| |
| AC_SUBST(BUILD_CC) |
| AC_SUBST(BUILD_CPP) |
| AC_SUBST(BUILD_CFLAGS) |
| AC_SUBST(BUILD_CPPFLAGS) |
| AC_SUBST(BUILD_LDFLAGS) |
| AC_SUBST(BUILD_LIBS) |
| 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 --------------- |
| 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. |
| AC_DEFUN([CF_CC_ENV_FLAGS], |
| [ |
| # This should have been defined by AC_PROG_CC |
| : ${CC:=cc} |
| |
| 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/^[[^ ]]*[[ ]]//'` |
| CC=`echo "$CC" | sed -e 's/[[ ]].*//'` |
| CF_ADD_CFLAGS($cf_flags) |
| ;; |
| (*) |
| AC_MSG_RESULT(ok) |
| ;; |
| esac |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_CFG_DEFAULTS version: 11 updated: 2015/04/17 21:13:04 |
| dnl --------------- |
| dnl Determine the default configuration into which we'll install ncurses. This |
| dnl can be overridden by the user's command-line options. There's two items to |
| dnl look for: |
| dnl 1. the prefix (e.g., /usr) |
| dnl 2. the header files (e.g., /usr/include/ncurses) |
| dnl We'll look for a previous installation of ncurses and use the same defaults. |
| dnl |
| dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and |
| dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's |
| dnl programs from a vendor's. |
| AC_DEFUN([CF_CFG_DEFAULTS], |
| [ |
| AC_MSG_CHECKING(for prefix) |
| if test "x$prefix" = "xNONE" ; then |
| case "$cf_cv_system_name" in |
| # non-vendor systems don't have a conflict |
| (openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*) |
| prefix=/usr |
| ;; |
| (*) prefix=$ac_default_prefix |
| ;; |
| esac |
| fi |
| AC_MSG_RESULT($prefix) |
| |
| if test "x$prefix" = "xNONE" ; then |
| AC_MSG_CHECKING(for default include-directory) |
| test -n "$verbose" && echo 1>&AC_FD_MSG |
| for cf_symbol in \ |
| $includedir \ |
| $includedir/ncurses \ |
| $prefix/include \ |
| $prefix/include/ncurses \ |
| /usr/local/include \ |
| /usr/local/include/ncurses \ |
| /usr/include \ |
| /usr/include/ncurses |
| do |
| cf_dir=`eval echo $cf_symbol` |
| if test -f $cf_dir/curses.h ; then |
| if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then |
| includedir="$cf_symbol" |
| test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG |
| break |
| fi |
| fi |
| test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG |
| done |
| AC_MSG_RESULT($includedir) |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_CGETENT version: 5 updated: 2012/10/06 17:56:13 |
| dnl ---------- |
| dnl Check if the terminal-capability database functions are available. If not, |
| dnl ncurses has a much-reduced version. |
| AC_DEFUN([CF_CGETENT],[ |
| AC_CACHE_CHECK(for terminal-capability database functions,cf_cv_cgetent,[ |
| AC_TRY_LINK([ |
| #include <stdlib.h>],[ |
| char temp[128]; |
| char *buf = temp; |
| char *db_array = temp; |
| cgetent(&buf, &db_array, "vt100"); |
| cgetcap(buf, "tc", '='); |
| cgetmatch(buf, "tc"); |
| ], |
| [cf_cv_cgetent=yes], |
| [cf_cv_cgetent=no]) |
| ]) |
| |
| if test "$cf_cv_cgetent" = yes |
| then |
| AC_DEFINE(HAVE_BSD_CGETENT,1,[Define to 1 if we have BSD cgetent]) |
| AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[ |
| AC_TRY_LINK([ |
| #include <stdlib.h>],[ |
| char temp[128]; |
| char *buf = temp; |
| #ifndef _NETBSD_SOURCE /* given, since April 2004 in stdlib.h */ |
| const char *db_array = temp; |
| cgetent(&buf, &db_array, "vt100"); |
| #endif |
| cgetcap(buf, "tc", '='); |
| cgetmatch(buf, "tc"); |
| ], |
| [cf_cv_cgetent_const=yes], |
| [cf_cv_cgetent_const=no]) |
| ]) |
| if test "$cf_cv_cgetent_const" = yes |
| then |
| AC_DEFINE_UNQUOTED(CGETENT_CONST,const,[Define to const if needed for some BSD cgetent variations]) |
| fi |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03 |
| dnl -------------- |
| dnl Check if we're accidentally using a cache from a different machine. |
| dnl Derive the system name, as a check for reusing the autoconf cache. |
| dnl |
| dnl If we've packaged config.guess and config.sub, run that (since it does a |
| dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow |
| dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM |
| dnl which is useful in cross-compiles. |
| dnl |
| dnl Note: we would use $ac_config_sub, but that is one of the places where |
| dnl autoconf 2.5x broke compatibility with autoconf 2.13 |
| AC_DEFUN([CF_CHECK_CACHE], |
| [ |
| if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then |
| ifelse([$1],,[AC_CANONICAL_HOST],[$1]) |
| system_name="$host_os" |
| else |
| system_name="`(uname -s -r) 2>/dev/null`" |
| if test -z "$system_name" ; then |
| system_name="`(hostname) 2>/dev/null`" |
| fi |
| fi |
| test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.]) |
| AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"]) |
| |
| test -z "$system_name" && system_name="$cf_cv_system_name" |
| test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name) |
| |
| if test ".$system_name" != ".$cf_cv_system_name" ; then |
| AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)) |
| AC_MSG_ERROR("Please remove config.cache and try again.") |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_CHECK_ERRNO version: 12 updated: 2015/04/18 08:56:57 |
| dnl -------------- |
| dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g., |
| dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it |
| dnl ourselves. |
| dnl |
| dnl $1 = the name to check |
| dnl $2 = the assumed type |
| AC_DEFUN([CF_CHECK_ERRNO], |
| [ |
| AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[ |
| AC_TRY_COMPILE([ |
| #ifdef HAVE_STDLIB_H |
| #include <stdlib.h> |
| #endif |
| #include <stdio.h> |
| #include <sys/types.h> |
| #include <errno.h> ], |
| ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1, |
| [cf_cv_dcl_$1=yes], |
| [cf_cv_dcl_$1=no]) |
| ]) |
| |
| if test "$cf_cv_dcl_$1" = no ; then |
| CF_UPPER(cf_result,decl_$1) |
| AC_DEFINE_UNQUOTED($cf_result) |
| fi |
| |
| # It's possible (for near-UNIX clones) that the data doesn't exist |
| CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2])) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_CHECK_EXTERN_DATA version: 4 updated: 2015/04/18 08:56:57 |
| dnl -------------------- |
| dnl Check for existence of external data in the current set of libraries. If |
| dnl we can modify it, it's real enough. |
| dnl $1 = the name to check |
| dnl $2 = its type |
| AC_DEFUN([CF_CHECK_EXTERN_DATA], |
| [ |
| AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[ |
| AC_TRY_LINK([ |
| #undef $1 |
| extern $2 $1; |
| ], |
| [$1 = 2], |
| [cf_cv_have_$1=yes], |
| [cf_cv_have_$1=no]) |
| ]) |
| |
| if test "$cf_cv_have_$1" = yes ; then |
| CF_UPPER(cf_result,have_$1) |
| AC_DEFINE_UNQUOTED($cf_result) |
| fi |
| |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_CHECK_GPM_WGETCH version: 2 updated: 2010/08/14 18:25:37 |
| dnl ------------------- |
| dnl Check if GPM is already linked with curses. If so - and if the linkage |
| dnl is not "weak" - warn about this because it can create problems linking |
| dnl applications with ncurses. |
| AC_DEFUN([CF_CHECK_GPM_WGETCH],[ |
| AC_CHECK_LIB(gpm,Gpm_Wgetch,[ |
| |
| AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[ |
| cf_cv_check_gpm_wgetch=unknown |
| if test "$cross_compiling" != yes ; then |
| |
| cat >conftest.$ac_ext <<CF_EOF |
| #include <gpm.h> |
| int main() |
| { |
| Gpm_Wgetch(); |
| ${cf_cv_main_return:-return}(0); |
| } |
| CF_EOF |
| |
| cf_save_LIBS="$LIBS" |
| # This only works if we can look at the symbol table. If a shared |
| # library is stripped for install, we cannot use that. So we're forced |
| # to rely on the static library, noting that some packagers may not |
| # include it. |
| LIBS="-static -lgpm -dynamic $LIBS" |
| if AC_TRY_EVAL(ac_compile) ; then |
| if AC_TRY_EVAL(ac_link) ; then |
| cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'` |
| test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes |
| test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no |
| fi |
| fi |
| rm -rf conftest* |
| LIBS="$cf_save_LIBS" |
| fi |
| ]) |
| |
| if test "$cf_cv_check_gpm_wgetch" != yes ; then |
| AC_MSG_WARN(GPM library is already linked with curses - read the FAQ) |
| fi |
| ])])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_CHECK_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09 |
| dnl ------------------------ |
| dnl Show the version of libtool |
| dnl |
| dnl Save the version in a cache variable - this is not entirely a good thing, |
| dnl but the version string from libtool is very ugly, and for bug reports it |
| dnl might be useful to have the original string. |
| AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[ |
| if test -n "$LIBTOOL" && test "$LIBTOOL" != none |
| then |
| AC_MSG_CHECKING(version of $LIBTOOL) |
| CF_LIBTOOL_VERSION |
| AC_MSG_RESULT($cf_cv_libtool_version) |
| if test -z "$cf_cv_libtool_version" ; then |
| AC_MSG_ERROR(This is not GNU libtool) |
| fi |
| else |
| AC_MSG_ERROR(GNU libtool has not been found) |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_CHECK_WCHAR_H version: 1 updated: 2011/10/29 15:01:05 |
| dnl ---------------- |
| dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED |
| AC_DEFUN([CF_CHECK_WCHAR_H],[ |
| AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[ |
| AC_TRY_COMPILE( |
| [ |
| #include <stdlib.h> |
| #include <wchar.h> |
| ],[ |
| wint_t foo = 0; |
| int bar = iswpunct(foo)], |
| [cf_cv_wchar_h_okay=yes], |
| [cf_cv_wchar_h_okay=no])]) |
| |
| if test $cf_cv_wchar_h_okay = no |
| then |
| CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED) |
| fi |
| ])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 |
| dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does |
| dnl not ignore some gcc options. |
| dnl |
| dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to |
| dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from |
| dnl the wrappers for gcc and g++ warnings. |
| dnl |
| dnl $1 = GCC (default) or GXX |
| dnl $2 = CLANG_COMPILER (default) |
| dnl $3 = CFLAGS (default) or CXXFLAGS |
| AC_DEFUN([CF_CLANG_COMPILER],[ |
| ifelse([$2],,CLANG_COMPILER,[$2])=no |
| |
| if test "$ifelse([$1],,[$1],GCC)" = yes ; then |
| AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler) |
| cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])" |
| ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments" |
| AC_TRY_COMPILE([],[ |
| #ifdef __clang__ |
| #else |
| make an error |
| #endif |
| ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes |
| cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments" |
| ],[]) |
| ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS" |
| AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2])) |
| fi |
| ]) |
| dnl --------------------------------------------------------------------------- |
| dnl CF_CPP_PARAM_INIT version: 6 updated: 2012/10/06 17:56:13 |
| dnl ----------------- |
| dnl Check if the C++ compiler accepts duplicate parameter initialization. This |
| dnl is a late feature for the standard and is not in some recent compilers |
| dnl (1999/9/11). |
| AC_DEFUN([CF_CPP_PARAM_INIT], |
| [ |
| if test -n "$CXX"; then |
| AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[ |
| AC_LANG_SAVE |
| AC_LANG_CPLUSPLUS |
| AC_TRY_RUN([ |
| class TEST { |
| private: |
| int value; |
| public: |
| TEST(int x = 1); |
| ~TEST(); |
| }; |
| |
| TEST::TEST(int x = 1) // some compilers do not like second initializer |
| { |
| value = x; |
| } |
| int main() { } |
| ], |
| [cf_cv_cpp_param_init=yes], |
| [cf_cv_cpp_param_init=no], |
| [cf_cv_cpp_param_init=unknown]) |
| AC_LANG_RESTORE |
| ]) |
| fi |
| test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT,1,[Define to 1 if C++ has parameter initialization]) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_CPP_STATIC_CAST version: 3 updated: 2013/04/13 18:03:21 |
| dnl ------------------ |
| dnl Check if the C++ compiler accepts static_cast in generics. This appears to |
| dnl not be supported in g++ before 3.0 |
| AC_DEFUN([CF_CPP_STATIC_CAST], |
| [ |
| if test -n "$CXX"; then |
| |
| AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[ |
| AC_LANG_SAVE |
| AC_LANG_CPLUSPLUS |
| |
| AC_TRY_COMPILE([ |
| class NCursesPanel |
| { |
| public: |
| NCursesPanel(int nlines, |
| int ncols, |
| int begin_y = 0, |
| int begin_x = 0) |
| { |
| } |
| NCursesPanel(); |
| ~NCursesPanel(); |
| }; |
| |
| template<class T> class NCursesUserPanel : public NCursesPanel |
| { |
| public: |
| NCursesUserPanel (int nlines, |
| int ncols, |
| int begin_y = 0, |
| int begin_x = 0, |
| const T* p_UserData = static_cast<T*>(0)) |
| : NCursesPanel (nlines, ncols, begin_y, begin_x) |
| { |
| }; |
| NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel() |
| { |
| }; |
| |
| virtual ~NCursesUserPanel() {}; |
| }; |
| ],[ |
| const char* p_UserData = static_cast<char*>(0)], |
| [cf_cv_cpp_static_cast=yes], |
| [cf_cv_cpp_static_cast=no]) |
| |
| AC_LANG_RESTORE |
| ]) |
| |
| fi |
| |
| test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST,1,[Define to 1 if C++ has static_cast]) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_CXX_AR_FLAGS version: 2 updated: 2015/04/17 21:13:04 |
| dnl --------------- |
| dnl Setup special archiver flags for given compilers. |
| AC_DEFUN([CF_CXX_AR_FLAGS],[ |
| CXX_AR='$(AR)' |
| CXX_ARFLAGS='$(ARFLAGS)' |
| case $cf_cv_system_name in |
| (irix*) |
| if test "$GXX" != yes ; then |
| CXX_AR='$(CXX)' |
| CXX_ARFLAGS='-ar -o' |
| fi |
| ;; |
| (sco3.2v5*) |
| CXXLDFLAGS="-u main" |
| ;; |
| (solaris2*) |
| if test "$GXX" != yes ; then |
| CXX_AR='$(CXX)' |
| CXX_ARFLAGS='-xar -o' |
| fi |
| ;; |
| esac |
| AC_SUBST(CXXLDFLAGS) |
| AC_SUBST(CXX_AR) |
| AC_SUBST(CXX_ARFLAGS) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_CXX_IOSTREAM_NAMESPACE version: 2 updated: 2012/10/06 17:56:13 |
| dnl ------------------------- |
| dnl For c++, check if iostream uses "std::" namespace. |
| AC_DEFUN([CF_CXX_IOSTREAM_NAMESPACE],[ |
| AC_CHECK_HEADERS(iostream) |
| if test x"$ac_cv_header_iostream" = xyes ; then |
| AC_MSG_CHECKING(if iostream uses std-namespace) |
| AC_TRY_COMPILE([ |
| #include <iostream> |
| using std::endl; |
| using std::cerr;],[ |
| cerr << "testing" << endl; |
| ],[cf_iostream_namespace=yes],[cf_iostream_namespace=no]) |
| AC_MSG_RESULT($cf_iostream_namespace) |
| if test "$cf_iostream_namespace" = yes ; then |
| AC_DEFINE(IOSTREAM_NAMESPACE,1,[Define to 1 if C++ has namespace iostream]) |
| fi |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_C_INLINE version: 5 updated: 2015/04/18 08:56:57 |
| dnl ----------- |
| dnl Check if the C compiler supports "inline". |
| dnl $1 is the name of a shell variable to set if inline is supported |
| dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size |
| AC_DEFUN([CF_C_INLINE],[ |
| AC_C_INLINE |
| $1= |
| if test "$ac_cv_c_inline" != no ; then |
| $1=inline |
| if test "$INTEL_COMPILER" = yes |
| then |
| : |
| elif test "$CLANG_COMPILER" = yes |
| then |
| : |
| elif test "$GCC" = yes |
| then |
| AC_CACHE_CHECK(if $CC supports options to tune inlining,cf_cv_gcc_inline,[ |
| cf_save_CFLAGS=$CFLAGS |
| CFLAGS="$CFLAGS --param max-inline-insns-single=$2" |
| AC_TRY_COMPILE([inline int foo(void) { return 1; }], |
| [${cf_cv_main_return:-return} foo()], |
| [cf_cv_gcc_inline=yes], |
| [cf_cv_gcc_inline=no]) |
| CFLAGS=$cf_save_CFLAGS |
| ]) |
| if test "$cf_cv_gcc_inline" = yes ; then |
| CF_ADD_CFLAGS([--param max-inline-insns-single=$2]) |
| fi |
| fi |
| fi |
| AC_SUBST($1) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52 |
| dnl ---------- |
| dnl "dirname" is not portable, so we fake it with a shell script. |
| AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31 |
| dnl --------------- |
| AC_DEFUN([CF_DIRS_TO_MAKE], |
| [ |
| DIRS_TO_MAKE="lib" |
| for cf_item in $cf_list_models |
| do |
| CF_OBJ_SUBDIR($cf_item,cf_subdir) |
| for cf_item2 in $DIRS_TO_MAKE |
| do |
| test $cf_item2 = $cf_subdir && break |
| done |
| test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir" |
| done |
| for cf_dir in $DIRS_TO_MAKE |
| do |
| test ! -d $cf_dir && mkdir $cf_dir |
| done |
| AC_SUBST(DIRS_TO_MAKE) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57 |
| dnl --------------- |
| dnl You can always use "make -n" to see the actual options, but it's hard to |
| dnl pick out/analyze warning messages when the compile-line is long. |
| dnl |
| dnl Sets: |
| dnl ECHO_LT - symbol to control if libtool is verbose |
| dnl ECHO_LD - symbol to prefix "cc -o" lines |
| dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o) |
| dnl SHOW_CC - symbol to put before explicit "cc -c" lines |
| dnl ECHO_CC - symbol to put before any "cc" line |
| dnl |
| AC_DEFUN([CF_DISABLE_ECHO],[ |
| AC_MSG_CHECKING(if you want to see long compiling messages) |
| CF_ARG_DISABLE(echo, |
| [ --disable-echo do not display "compiling" commands], |
| [ |
| ECHO_LT='--silent' |
| ECHO_LD='@echo linking [$]@;' |
| RULE_CC='@echo compiling [$]<' |
| SHOW_CC='@echo compiling [$]@' |
| ECHO_CC='@' |
| ],[ |
| ECHO_LT='' |
| ECHO_LD='' |
| RULE_CC='' |
| SHOW_CC='' |
| ECHO_CC='' |
| ]) |
| AC_MSG_RESULT($enableval) |
| AC_SUBST(ECHO_LT) |
| AC_SUBST(ECHO_LD) |
| AC_SUBST(RULE_CC) |
| AC_SUBST(SHOW_CC) |
| AC_SUBST(ECHO_CC) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00 |
| dnl ------------------------ |
| AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[ |
| AC_MSG_CHECKING(if we want to use GNAT projects) |
| CF_ARG_DISABLE(gnat-projects, |
| [ --disable-gnat-projects test: disable GNAT projects even if usable], |
| [enable_gnat_projects=no], |
| [enable_gnat_projects=yes]) |
| AC_MSG_RESULT($enable_gnat_projects) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03 |
| dnl ---------------- |
| dnl Combine no-leak checks with the libraries or tools that are used for the |
| dnl checks. |
| AC_DEFUN([CF_DISABLE_LEAKS],[ |
| |
| AC_REQUIRE([CF_WITH_DMALLOC]) |
| AC_REQUIRE([CF_WITH_DBMALLOC]) |
| AC_REQUIRE([CF_WITH_VALGRIND]) |
| |
| AC_MSG_CHECKING(if you want to perform memory-leak testing) |
| AC_ARG_ENABLE(leaks, |
| [ --disable-leaks test: free permanent memory, analyze leaks], |
| [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi], |
| : ${with_no_leaks:=no}) |
| AC_MSG_RESULT($with_no_leaks) |
| |
| if test "$with_no_leaks" = yes ; then |
| AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.]) |
| AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.]) |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_DISABLE_LIBTOOL_VERSION version: 3 updated: 2015/04/17 21:13:04 |
| dnl -------------------------- |
| dnl Check if we should use the libtool 1.5 feature "-version-number" instead of |
| dnl the older "-version-info" feature. The newer feature allows us to use |
| dnl version numbering on shared libraries which make them compatible with |
| dnl various systems. |
| AC_DEFUN([CF_DISABLE_LIBTOOL_VERSION], |
| [ |
| AC_MSG_CHECKING(if libtool -version-number should be used) |
| CF_ARG_DISABLE(libtool-version, |
| [ --disable-libtool-version enable to use libtool's incompatible naming scheme], |
| [cf_libtool_version=no], |
| [cf_libtool_version=yes]) |
| AC_MSG_RESULT($cf_libtool_version) |
| |
| if test "$cf_libtool_version" = yes ; then |
| LIBTOOL_VERSION="-version-number" |
| else |
| LIBTOOL_VERSION="-version-info" |
| case "x$VERSION" in |
| (x) |
| AC_MSG_WARN(VERSION was not set) |
| ;; |
| (x*.*.*) |
| ABI_VERSION="$VERSION" |
| CF_VERBOSE(ABI_VERSION: $ABI_VERSION) |
| ;; |
| (x*:*:*) |
| ABI_VERSION=`echo "$VERSION" | sed -e 's/:/./g'` |
| CF_VERBOSE(ABI_VERSION: $ABI_VERSION) |
| ;; |
| (*) |
| AC_MSG_WARN(unexpected VERSION value: $VERSION) |
| ;; |
| esac |
| fi |
| |
| AC_SUBST(ABI_VERSION) |
| AC_SUBST(LIBTOOL_VERSION) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_DISABLE_RPATH_HACK version: 2 updated: 2011/02/13 13:31:33 |
| dnl --------------------- |
| dnl The rpath-hack makes it simpler to build programs, particularly with the |
| dnl *BSD ports which may have essential libraries in unusual places. But it |
| dnl can interfere with building an executable for the base system. Use this |
| dnl option in that case. |
| AC_DEFUN([CF_DISABLE_RPATH_HACK], |
| [ |
| AC_MSG_CHECKING(if rpath-hack should be disabled) |
| CF_ARG_DISABLE(rpath-hack, |
| [ --disable-rpath-hack don't add rpath options for additional libraries], |
| [cf_disable_rpath_hack=yes], |
| [cf_disable_rpath_hack=no]) |
| AC_MSG_RESULT($cf_disable_rpath_hack) |
| if test "$cf_disable_rpath_hack" = no ; then |
| CF_RPATH_HACK |
| fi |
| ]) |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ENABLE_PC_FILES version: 12 updated: 2015/04/17 21:13:04 |
| dnl ------------------ |
| dnl This is the "--enable-pc-files" option, which is available if there is a |
| dnl pkg-config configuration on the local machine. |
| AC_DEFUN([CF_ENABLE_PC_FILES],[ |
| AC_REQUIRE([CF_PKG_CONFIG]) |
| AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR]) |
| |
| if test "x$PKG_CONFIG" != xnone |
| then |
| AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG) |
| else |
| AC_MSG_CHECKING(if we should install .pc files) |
| fi |
| |
| AC_ARG_ENABLE(pc-files, |
| [ --enable-pc-files generate and install .pc files for pkg-config], |
| [enable_pc_files=$enableval], |
| [enable_pc_files=no]) |
| AC_MSG_RESULT($enable_pc_files) |
| |
| if test "x$enable_pc_files" != xno |
| then |
| case "x$PKG_CONFIG_LIBDIR" in |
| (xno|xyes) |
| AC_MSG_WARN(no PKG_CONFIG_LIBDIR was found) |
| MAKE_PC_FILES="#" |
| ;; |
| (*) |
| CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR) |
| MAKE_PC_FILES= |
| ;; |
| esac |
| else |
| MAKE_PC_FILES="#" |
| fi |
| AC_SUBST(MAKE_PC_FILES) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42 |
| dnl --------------- |
| dnl Check if the rpath option should be used, setting cache variable |
| dnl cf_cv_enable_rpath if so. |
| AC_DEFUN([CF_ENABLE_RPATH], |
| [ |
| AC_MSG_CHECKING(if rpath option should be used) |
| AC_ARG_ENABLE(rpath, |
| [ --enable-rpath use rpath option when generating shared libraries], |
| [cf_cv_enable_rpath=$enableval], |
| [cf_cv_enable_rpath=no]) |
| AC_MSG_RESULT($cf_cv_enable_rpath) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ENABLE_STRING_HACKS version: 3 updated: 2013/01/26 16:26:12 |
| dnl ---------------------- |
| dnl On a few platforms, the compiler and/or loader nags with untruthful |
| dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect, |
| dnl and implying that most uses of the recommended alternatives are correct. |
| dnl |
| dnl Factually speaking, no one has actually counted the number of uses of these |
| dnl functions versus the total of incorrect uses. Samples of a few thousand |
| dnl instances are meaningless compared to the hundreds of millions of lines of |
| dnl existing C code. |
| dnl |
| dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some |
| dnl platforms, in implementations of varying quality. Likewise, snprintf is |
| dnl standard - but evolved through phases, and older implementations are likely |
| dnl to yield surprising results, as documented in manpages on various systems. |
| AC_DEFUN([CF_ENABLE_STRING_HACKS], |
| [ |
| AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings) |
| AC_ARG_ENABLE(string-hacks, |
| [ --enable-string-hacks work around bogus compiler/loader warnings], |
| [with_string_hacks=$enableval], |
| [with_string_hacks=no]) |
| AC_MSG_RESULT($with_string_hacks) |
| |
| if test "x$with_string_hacks" = "xyes"; then |
| AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings]) |
| AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings) |
| AC_CHECK_FUNCS( strlcat strlcpy snprintf ) |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39 |
| dnl -------- |
| dnl Check if 'errno' is declared in <errno.h> |
| AC_DEFUN([CF_ERRNO], |
| [ |
| CF_CHECK_ERRNO(errno) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ETIP_DEFINES version: 5 updated: 2012/02/18 17:51:07 |
| dnl --------------- |
| dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between |
| dnl math.h and builtin.h, only for ncurses |
| AC_DEFUN([CF_ETIP_DEFINES], |
| [ |
| AC_MSG_CHECKING(for special defines needed for etip.h) |
| cf_save_CXXFLAGS="$CXXFLAGS" |
| cf_result="none" |
| |
| # etip.h includes ncurses.h which includes ncurses_dll.h |
| # But ncurses_dll.h is generated - fix here. |
| test -d include || mkdir include |
| test -f include/ncurses_dll.h || sed -e 's/@NCURSES_WRAP_PREFIX@/'$NCURSES_WRAP_PREFIX'/g' ${srcdir}/include/ncurses_dll.h.in >include/ncurses_dll.h |
| |
| for cf_math in "" MATH_H |
| do |
| for cf_excp in "" MATH_EXCEPTION |
| do |
| CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include" |
| test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}" |
| test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}" |
| AC_TRY_COMPILE([ |
| #include <etip.h.in> |
| ],[],[ |
| test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math}) |
| test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp}) |
| cf_result="$cf_math $cf_excp" |
| break 2 |
| ],[]) |
| done |
| done |
| AC_MSG_RESULT($cf_result) |
| CXXFLAGS="$cf_save_CXXFLAGS" |
| ]) |
| dnl --------------------------------------------------------------------------- |
| dnl CF_FIND_LINKAGE version: 20 updated: 2015/04/18 08:56:57 |
| dnl --------------- |
| dnl Find a library (specifically the linkage used in the code fragment), |
| dnl searching for it if it is not already in the library path. |
| dnl See also CF_ADD_SEARCHPATH. |
| dnl |
| dnl Parameters (4-on are optional): |
| dnl $1 = headers for library entrypoint |
| dnl $2 = code fragment for library entrypoint |
| dnl $3 = the library name without the "-l" option or ".so" suffix. |
| dnl $4 = action to perform if successful (default: update CPPFLAGS, etc) |
| dnl $5 = action to perform if not successful |
| dnl $6 = module name, if not the same as the library name |
| dnl $7 = extra libraries |
| dnl |
| dnl Sets these variables: |
| dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found |
| dnl $cf_cv_header_path_$3 - include-directory if needed |
| dnl $cf_cv_library_path_$3 - library-directory if needed |
| dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3 |
| AC_DEFUN([CF_FIND_LINKAGE],[ |
| |
| # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these |
| # will be set on completion of the AC_TRY_LINK below. |
| cf_cv_header_path_$3= |
| cf_cv_library_path_$3= |
| |
| CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)]) |
| |
| cf_save_LIBS="$LIBS" |
| |
| AC_TRY_LINK([$1],[$2],[ |
| cf_cv_find_linkage_$3=yes |
| cf_cv_header_path_$3=/usr/include |
| cf_cv_library_path_$3=/usr/lib |
| ],[ |
| |
| LIBS="-l$3 $7 $cf_save_LIBS" |
| |
| AC_TRY_LINK([$1],[$2],[ |
| cf_cv_find_linkage_$3=yes |
| cf_cv_header_path_$3=/usr/include |
| cf_cv_library_path_$3=/usr/lib |
| cf_cv_library_file_$3="-l$3" |
| ],[ |
| cf_cv_find_linkage_$3=no |
| LIBS="$cf_save_LIBS" |
| |
| CF_VERBOSE(find linkage for $3 library) |
| CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)]) |
| |
| cf_save_CPPFLAGS="$CPPFLAGS" |
| cf_test_CPPFLAGS="$CPPFLAGS" |
| |
| CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6])) |
| for cf_cv_header_path_$3 in $cf_search |
| do |
| if test -d $cf_cv_header_path_$3 ; then |
| CF_VERBOSE(... testing $cf_cv_header_path_$3) |
| CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3" |
| AC_TRY_COMPILE([$1],[$2],[ |
| CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3) |
| cf_cv_find_linkage_$3=maybe |
| cf_test_CPPFLAGS="$CPPFLAGS" |
| break],[ |
| CPPFLAGS="$cf_save_CPPFLAGS" |
| ]) |
| fi |
| done |
| |
| if test "$cf_cv_find_linkage_$3" = maybe ; then |
| |
| CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)]) |
| |
| cf_save_LIBS="$LIBS" |
| cf_save_LDFLAGS="$LDFLAGS" |
| |
| ifelse([$6],,,[ |
| CPPFLAGS="$cf_test_CPPFLAGS" |
| LIBS="-l$3 $7 $cf_save_LIBS" |
| AC_TRY_LINK([$1],[$2],[ |
| CF_VERBOSE(... found $3 library in system) |
| cf_cv_find_linkage_$3=yes]) |
| CPPFLAGS="$cf_save_CPPFLAGS" |
| LIBS="$cf_save_LIBS" |
| ]) |
| |
| if test "$cf_cv_find_linkage_$3" != yes ; then |
| CF_LIBRARY_PATH(cf_search,$3) |
| for cf_cv_library_path_$3 in $cf_search |
| do |
| if test -d $cf_cv_library_path_$3 ; then |
| CF_VERBOSE(... testing $cf_cv_library_path_$3) |
| CPPFLAGS="$cf_test_CPPFLAGS" |
| LIBS="-l$3 $7 $cf_save_LIBS" |
| LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3" |
| AC_TRY_LINK([$1],[$2],[ |
| CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3) |
| cf_cv_find_linkage_$3=yes |
| cf_cv_library_file_$3="-l$3" |
| break],[ |
| CPPFLAGS="$cf_save_CPPFLAGS" |
| LIBS="$cf_save_LIBS" |
| LDFLAGS="$cf_save_LDFLAGS" |
| ]) |
| fi |
| done |
| CPPFLAGS="$cf_save_CPPFLAGS" |
| LDFLAGS="$cf_save_LDFLAGS" |
| fi |
| |
| else |
| cf_cv_find_linkage_$3=no |
| fi |
| ],$7) |
| ]) |
| |
| LIBS="$cf_save_LIBS" |
| |
| if test "$cf_cv_find_linkage_$3" = yes ; then |
| ifelse([$4],,[ |
| CF_ADD_INCDIR($cf_cv_header_path_$3) |
| CF_ADD_LIBDIR($cf_cv_library_path_$3) |
| CF_ADD_LIB($3) |
| ],[$4]) |
| else |
| ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5]) |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_FIND_SUB_INCDIR version: 2 updated: 2015/04/17 21:13:04 |
| dnl ------------------ |
| dnl Find an include-directory with the given leaf-name. This is useful for |
| dnl example with FreeBSD ports, which use this convention to distinguish |
| dnl different versions of the same port. |
| AC_DEFUN([CF_FIND_SUB_INCDIR],[ |
| CF_SUBDIR_PATH(cf_search,$1,include) |
| for cf_item in $cf_search |
| do |
| case $cf_item in |
| (*/$1) |
| CF_ADD_INCDIR($cf_item) |
| ;; |
| esac |
| done |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_FIND_SUB_LIBDIR version: 2 updated: 2015/04/17 21:13:04 |
| dnl ------------------ |
| dnl Find a library-directory with the given leaf-name. This is useful for |
| dnl example with FreeBSD ports, which use this convention to distinguish |
| dnl different versions of the same port. |
| AC_DEFUN([CF_FIND_SUB_LIBDIR],[ |
| CF_SUBDIR_PATH(cf_search,$1,lib) |
| for cf_item in $cf_search |
| do |
| case $cf_item in |
| (*/$1) |
| CF_ADD_LIBDIR($cf_item) |
| ;; |
| esac |
| done |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_FIXUP_ADAFLAGS version: 2 updated: 2015/04/17 21:13:04 |
| dnl ----------------- |
| dnl make ADAFLAGS consistent with CFLAGS |
| AC_DEFUN([CF_FIXUP_ADAFLAGS],[ |
| AC_MSG_CHECKING(optimization options for ADAFLAGS) |
| case "$CFLAGS" in |
| (*-g*) |
| CF_ADD_ADAFLAGS(-g) |
| ;; |
| esac |
| case "$CFLAGS" in |
| (*-O*) |
| cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[ ]].*//'` |
| CF_ADD_ADAFLAGS($cf_O_flag) |
| ;; |
| esac |
| AC_MSG_RESULT($ADAFLAGS) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09 |
| dnl -------------- |
| dnl Forget that we saw the given tool. |
| AC_DEFUN([CF_FORGET_TOOL],[ |
| unset ac_cv_prog_ac_ct_$1 |
| unset ac_ct_$1 |
| unset $1 |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_FUNC_DLSYM version: 3 updated: 2012/10/06 11:17:15 |
| dnl ------------- |
| dnl Test for dlsym() and related functions, as well as libdl. |
| dnl |
| dnl Sets |
| dnl $cf_have_dlsym |
| dnl $cf_have_libdl |
| AC_DEFUN([CF_FUNC_DLSYM],[ |
| cf_have_dlsym=no |
| AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[ |
| |
| cf_have_libdl=no |
| AC_CHECK_LIB(dl,dlsym,[ |
| cf_have_dlsym=yes |
| cf_have_libdl=yes])]) |
| |
| if test "$cf_have_dlsym" = yes ; then |
| test "$cf_have_libdl" = yes && CF_ADD_LIB(dl) |
| |
| AC_MSG_CHECKING(whether able to link to dl*() functions) |
| AC_TRY_LINK([#include <dlfcn.h>],[ |
| void *obj; |
| if ((obj = dlopen("filename", 0)) != 0) { |
| if (dlsym(obj, "symbolname") == 0) { |
| dlclose(obj); |
| } |
| }],[ |
| AC_DEFINE(HAVE_LIBDL,1,[Define to 1 if we have dl library])],[ |
| AC_MSG_ERROR(Cannot link test program for libdl)]) |
| AC_MSG_RESULT(ok) |
| else |
| AC_MSG_ERROR(Cannot find dlsym function) |
| fi |
| ]) |
| dnl --------------------------------------------------------------------------- |
| dnl CF_FUNC_MEMMOVE version: 8 updated: 2012/10/04 20:12:20 |
| dnl --------------- |
| dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither |
| dnl is found, add our own version of memmove to the list of objects. |
| AC_DEFUN([CF_FUNC_MEMMOVE], |
| [ |
| AC_CHECK_FUNC(memmove,,[ |
| AC_CHECK_FUNC(bcopy,[ |
| AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[ |
| AC_TRY_RUN([ |
| int main() { |
| static char data[] = "abcdefghijklmnopqrstuwwxyz"; |
| char temp[40]; |
| bcopy(data, temp, sizeof(data)); |
| bcopy(temp+10, temp, 15); |
| bcopy(temp+5, temp+15, 10); |
| ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz")); |
| } |
| ], |
| [cf_cv_good_bcopy=yes], |
| [cf_cv_good_bcopy=no], |
| [cf_cv_good_bcopy=unknown]) |
| ]) |
| ],[cf_cv_good_bcopy=no]) |
| if test "$cf_cv_good_bcopy" = yes ; then |
| AC_DEFINE(USE_OK_BCOPY,1,[Define to 1 to use bcopy when memmove is unavailable]) |
| else |
| AC_DEFINE(USE_MY_MEMMOVE,1,[Define to 1 to use replacement function when memmove is unavailable]) |
| fi |
| ])])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_FUNC_NANOSLEEP version: 4 updated: 2012/10/06 17:56:13 |
| dnl ----------------- |
| dnl Check for existence of workable nanosleep() function. Some systems, e.g., |
| dnl AIX 4.x, provide a non-working version. |
| AC_DEFUN([CF_FUNC_NANOSLEEP],[ |
| AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[ |
| AC_TRY_RUN([ |
| #include <stdio.h> |
| #include <errno.h> |
| #include <time.h> |
| |
| #ifdef HAVE_SYS_TIME_H |
| #include <sys/time.h> |
| #endif |
| |
| int main() { |
| struct timespec ts1, ts2; |
| int code; |
| ts1.tv_sec = 0; |
| ts1.tv_nsec = 750000000; |
| ts2.tv_sec = 0; |
| ts2.tv_nsec = 0; |
| errno = 0; |
| code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */ |
| ${cf_cv_main_return:-return}(code != 0); |
| } |
| ], |
| [cf_cv_func_nanosleep=yes], |
| [cf_cv_func_nanosleep=no], |
| [cf_cv_func_nanosleep=unknown])]) |
| |
| test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()]) |
| ]) |
| dnl --------------------------------------------------------------------------- |
| dnl CF_FUNC_OPENPTY version: 4 updated: 2015/04/18 08:56:57 |
| dnl --------------- |
| dnl Check for openpty() function, along with <pty.h> header. It may need the |
| dnl "util" library as well. |
| AC_DEFUN([CF_FUNC_OPENPTY], |
| [ |
| AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no) |
| AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[ |
| cf_save_LIBS="$LIBS" |
| test $cf_cv_lib_util = yes && CF_ADD_LIB(util) |
| for cf_header in pty.h libutil.h util.h |
| do |
| AC_TRY_LINK([ |
| #include <$cf_header> |
| ],[ |
| int x = openpty((int *)0, (int *)0, (char *)0, |
| (struct termios *)0, (struct winsize *)0); |
| ],[ |
| cf_cv_func_openpty=$cf_header |
| break |
| ],[ |
| cf_cv_func_openpty=no |
| ]) |
| done |
| LIBS="$cf_save_LIBS" |
| ]) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_FUNC_POLL version: 8 updated: 2012/10/04 05:24:07 |
| dnl ------------ |
| dnl See if the poll function really works. Some platforms have poll(), but |
| dnl it does not work for terminals or files. |
| AC_DEFUN([CF_FUNC_POLL],[ |
| AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[ |
| AC_TRY_RUN([ |
| #include <stdlib.h> |
| #include <stdio.h> |
| #include <unistd.h> |
| #include <fcntl.h> |
| #ifdef HAVE_POLL_H |
| #include <poll.h> |
| #else |
| #include <sys/poll.h> |
| #endif |
| int main() { |
| struct pollfd myfds; |
| int ret; |
| |
| /* check for Darwin bug with respect to "devices" */ |
| myfds.fd = open("/dev/null", 1); /* O_WRONLY */ |
| if (myfds.fd < 0) |
| myfds.fd = 0; |
| myfds.events = POLLIN; |
| myfds.revents = 0; |
| |
| ret = poll(&myfds, 1, 100); |
| |
| if (ret < 0 || (myfds.revents & POLLNVAL)) { |
| ret = -1; |
| } else { |
| int fd = 0; |
| if (!isatty(fd)) { |
| fd = open("/dev/tty", 2); /* O_RDWR */ |
| } |
| |
| if (fd >= 0) { |
| /* also check with standard input */ |
| myfds.fd = fd; |
| myfds.events = POLLIN; |
| myfds.revents = 0; |
| ret = poll(&myfds, 1, 100); |
| } else { |
| ret = -1; |
| } |
| } |
| ${cf_cv_main_return:-return}(ret < 0); |
| }], |
| [cf_cv_working_poll=yes], |
| [cf_cv_working_poll=no], |
| [cf_cv_working_poll=unknown])]) |
| test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL,1,[Define to 1 if the poll function seems to work]) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_FUNC_TERMIOS version: 3 updated: 2012/10/06 17:56:13 |
| dnl --------------- |
| dnl Some old/broken variations define tcgetattr() only as a macro in |
| dnl termio(s).h |
| AC_DEFUN([CF_FUNC_TERMIOS],[ |
| AC_REQUIRE([CF_STRUCT_TERMIOS]) |
| AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[ |
| AC_TRY_LINK([ |
| #include <sys/types.h> |
| #ifdef HAVE_UNISTD_H |
| #include <unistd.h> |
| #endif |
| #ifdef HAVE_TERMIOS_H |
| #include <termios.h> |
| #define TTY struct termios |
| #else |
| #ifdef HAVE_TERMIO_H |
| #include <termio.h> |
| #define TTY struct termio |
| #endif |
| #endif |
| ],[ |
| TTY foo; |
| tcgetattr(1, &foo);], |
| [cf_cv_have_tcgetattr=yes], |
| [cf_cv_have_tcgetattr=no])]) |
| test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR,1,[Define to 1 if we have tcgetattr]) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_FUNC_VSSCANF version: 6 updated: 2015/04/18 08:56:57 |
| dnl --------------- |
| dnl Check for vsscanf() function, which is in c9x but generally not in earlier |
| dnl versions of C. It is in the GNU C library, and can often be simulated by |
| dnl other functions. |
| AC_DEFUN([CF_FUNC_VSSCANF], |
| [ |
| AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[ |
| AC_TRY_LINK([ |
| #include <stdarg.h> |
| #include <stdio.h>],[ |
| va_list ap; |
| vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[ |
| AC_TRY_LINK([ |
| #include <stdarg.h> |
| #include <stdio.h>],[ |
| FILE strbuf; |
| char *str = "from"; |
| |
| strbuf._flag = _IOREAD; |
| strbuf._ptr = strbuf._base = (unsigned char *) str; |
| strbuf._cnt = strlen(str); |
| strbuf._file = _NFILE; |
| return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[ |
| AC_TRY_LINK([ |
| #include <stdarg.h> |
| #include <stdio.h>],[ |
| FILE strbuf; |
| char *str = "from"; |
| |
| strbuf._flag = _IOREAD; |
| strbuf._ptr = strbuf._base = (unsigned char *) str; |
| strbuf._cnt = strlen(str); |
| strbuf._file = _NFILE; |
| return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[ |
| cf_cv_func_vsscanf=no])])])]) |
| |
| case $cf_cv_func_vsscanf in |
| (vsscanf) AC_DEFINE(HAVE_VSSCANF,1,[Define to 1 if we have vsscanf]);; |
| (vfscanf) AC_DEFINE(HAVE_VFSCANF,1,[Define to 1 if we have vfscanf]);; |
| (_doscan) AC_DEFINE(HAVE__DOSCAN,1,[Define to 1 if we have _doscan]);; |
| esac |
| |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_GCC_ATTRIBUTES version: 17 updated: 2015/04/12 15:39:00 |
| dnl ----------------- |
| dnl Test for availability of useful gcc __attribute__ directives to quiet |
| dnl compiler warnings. Though useful, not all are supported -- and contrary |
| dnl to documentation, unrecognized directives cause older compilers to barf. |
| AC_DEFUN([CF_GCC_ATTRIBUTES], |
| [ |
| if test "$GCC" = yes |
| then |
| cat > conftest.i <<EOF |
| #ifndef GCC_PRINTF |
| #define GCC_PRINTF 0 |
| #endif |
| #ifndef GCC_SCANF |
| #define GCC_SCANF 0 |
| #endif |
| #ifndef GCC_NORETURN |
| #define GCC_NORETURN /* nothing */ |
| #endif |
| #ifndef GCC_UNUSED |
| #define GCC_UNUSED /* nothing */ |
| #endif |
| EOF |
| if test "$GCC" = yes |
| then |
| AC_CHECKING([for $CC __attribute__ directives]) |
| cat > conftest.$ac_ext <<EOF |
| #line __oline__ "${as_me:-configure}" |
| #include "confdefs.h" |
| #include "conftest.h" |
| #include "conftest.i" |
| #if GCC_PRINTF |
| #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) |
| #else |
| #define GCC_PRINTFLIKE(fmt,var) /*nothing*/ |
| #endif |
| #if GCC_SCANF |
| #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) |
| #else |
| #define GCC_SCANFLIKE(fmt,var) /*nothing*/ |
| #endif |
| extern void wow(char *,...) GCC_SCANFLIKE(1,2); |
| extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN; |
| extern void foo(void) GCC_NORETURN; |
| int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; } |
| EOF |
| cf_printf_attribute=no |
| cf_scanf_attribute=no |
| for cf_attribute in scanf printf unused noreturn |
| do |
| CF_UPPER(cf_ATTRIBUTE,$cf_attribute) |
| cf_directive="__attribute__(($cf_attribute))" |
| echo "checking for $CC $cf_directive" 1>&AC_FD_CC |
| |
| case $cf_attribute in |
| (printf) |
| cf_printf_attribute=yes |
| cat >conftest.h <<EOF |
| #define GCC_$cf_ATTRIBUTE 1 |
| EOF |
| ;; |
| (scanf) |
| cf_scanf_attribute=yes |
| cat >conftest.h <<EOF |
| #define GCC_$cf_ATTRIBUTE 1 |
| EOF |
| ;; |
| (*) |
| cat >conftest.h <<EOF |
| #define GCC_$cf_ATTRIBUTE $cf_directive |
| EOF |
| ;; |
| esac |
| |
| if AC_TRY_EVAL(ac_compile); then |
| test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute) |
| cat conftest.h >>confdefs.h |
| case $cf_attribute in |
| (noreturn) |
| AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc]) |
| ;; |
| (printf) |
| cf_value='/* nothing */' |
| if test "$cf_printf_attribute" != no ; then |
| cf_value='__attribute__((format(printf,fmt,var)))' |
| AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.]) |
| fi |
| AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc]) |
| ;; |
| (scanf) |
| cf_value='/* nothing */' |
| if test "$cf_scanf_attribute" != no ; then |
| cf_value='__attribute__((format(scanf,fmt,var)))' |
| AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.]) |
| fi |
| AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc]) |
| ;; |
| (unused) |
| AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc]) |
| ;; |
| esac |
| fi |
| done |
| else |
| fgrep define conftest.i >>confdefs.h |
| fi |
| rm -rf conftest* |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33 |
| dnl -------------- |
| dnl Find version of gcc |
| AC_DEFUN([CF_GCC_VERSION],[ |
| AC_REQUIRE([AC_PROG_CC]) |
| GCC_VERSION=none |
| if test "$GCC" = yes ; then |
| AC_MSG_CHECKING(version of $CC) |
| GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`" |
| test -z "$GCC_VERSION" && GCC_VERSION=unknown |
| AC_MSG_RESULT($GCC_VERSION) |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_GCC_WARNINGS version: 32 updated: 2015/04/12 15:39:00 |
| dnl --------------- |
| dnl Check if the compiler supports useful warning options. There's a few that |
| dnl we don't use, simply because they're too noisy: |
| dnl |
| dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x) |
| dnl -Wredundant-decls (system headers make this too noisy) |
| dnl -Wtraditional (combines too many unrelated messages, only a few useful) |
| dnl -Wwrite-strings (too noisy, but should review occasionally). This |
| dnl is enabled for ncurses using "--enable-const". |
| dnl -pedantic |
| dnl |
| dnl Parameter: |
| dnl $1 is an optional list of gcc warning flags that a particular |
| dnl application might want to use, e.g., "no-unused" for |
| dnl -Wno-unused |
| dnl Special: |
| dnl If $with_ext_const is "yes", add a check for -Wwrite-strings |
| dnl |
| AC_DEFUN([CF_GCC_WARNINGS], |
| [ |
| AC_REQUIRE([CF_GCC_VERSION]) |
| CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS) |
| CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS) |
| |
| cat > conftest.$ac_ext <<EOF |
| #line __oline__ "${as_me:-configure}" |
| int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; } |
| EOF |
| |
| if test "$INTEL_COMPILER" = yes |
| then |
| # The "-wdXXX" options suppress warnings: |
| # remark #1419: external declaration in primary source file |
| # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem) |
| # remark #1684: conversion from pointer to same-sized integral type (potential portability problem) |
| # remark #193: zero used for undefined preprocessing identifier |
| # remark #593: variable "curs_sb_left_arrow" was set but never used |
| # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits |
| # remark #869: parameter "tw" was never referenced |
| # remark #981: operands are evaluated in unspecified order |
| # warning #279: controlling expression is constant |
| |
| AC_CHECKING([for $CC warning options]) |
| cf_save_CFLAGS="$CFLAGS" |
| EXTRA_CFLAGS="-Wall" |
| for cf_opt in \ |
| wd1419 \ |
| wd1683 \ |
| wd1684 \ |
| wd193 \ |
| wd593 \ |
| wd279 \ |
| wd810 \ |
| wd869 \ |
| wd981 |
| do |
| CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" |
| if AC_TRY_EVAL(ac_compile); then |
| test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt) |
| EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" |
| fi |
| done |
| CFLAGS="$cf_save_CFLAGS" |
| |
| elif test "$GCC" = yes |
| then |
| AC_CHECKING([for $CC warning options]) |
| cf_save_CFLAGS="$CFLAGS" |
| EXTRA_CFLAGS= |
| cf_warn_CONST="" |
| test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings" |
| cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs" |
| test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings= |
| for cf_opt in W Wall \ |
| Wbad-function-cast \ |
| Wcast-align \ |
| Wcast-qual \ |
| Wdeclaration-after-statement \ |
| Wextra \ |
| Winline \ |
| Wmissing-declarations \ |
| Wmissing-prototypes \ |
| Wnested-externs \ |
| Wpointer-arith \ |
| Wshadow \ |
| Wstrict-prototypes \ |
| Wundef $cf_gcc_warnings $cf_warn_CONST $1 |
| do |
| CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" |
| if AC_TRY_EVAL(ac_compile); then |
| test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt) |
| case $cf_opt in |
| (Wcast-qual) |
| CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES" |
| ;; |
| (Winline) |
| case $GCC_VERSION in |
| ([[34]].*) |
| CF_VERBOSE(feature is broken in gcc $GCC_VERSION) |
| continue;; |
| esac |
| ;; |
| (Wpointer-arith) |
| case $GCC_VERSION in |
| ([[12]].*) |
| CF_VERBOSE(feature is broken in gcc $GCC_VERSION) |
| continue;; |
| esac |
| ;; |
| esac |
| EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" |
| fi |
| done |
| CFLAGS="$cf_save_CFLAGS" |
| fi |
| rm -rf conftest* |
| |
| AC_SUBST(EXTRA_CFLAGS) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_GETOPT_HEADER version: 6 updated: 2014/07/22 14:45:54 |
| dnl ---------------- |
| dnl Check for getopt's variables which are commonly defined in stdlib.h, |
| dnl unistd.h or (nonstandard) in getopt.h |
| AC_DEFUN([CF_GETOPT_HEADER], |
| [ |
| AC_HAVE_HEADERS(unistd.h getopt.h) |
| AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[ |
| cf_cv_getopt_header=none |
| for cf_header in stdio.h stdlib.h unistd.h getopt.h |
| do |
| AC_TRY_COMPILE([ |
| #include <$cf_header>], |
| [int x = optind; char *y = optarg], |
| [cf_cv_getopt_header=$cf_header |
| break]) |
| done |
| ]) |
| if test $cf_cv_getopt_header != none ; then |
| AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header]) |
| fi |
| if test $cf_cv_getopt_header = getopt.h ; then |
| AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h]) |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_GNATPREP_OPT_T version: 1 updated: 2014/08/02 18:37:25 |
| dnl ----------------- |
| AC_DEFUN([CF_GNATPREP_OPT_T],[ |
| AC_CACHE_CHECK(if GNATPREP supports -T option,cf_cv_gnatprep_opt_t,[ |
| cf_cv_gnatprep_opt_t=no |
| gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes |
| ]) |
| test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS" |
| AC_SUBST(GNATPREP_OPTS) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_GNAT_GENERICS version: 3 updated: 2015/04/17 21:13:04 |
| dnl ---------------- |
| AC_DEFUN([CF_GNAT_GENERICS], |
| [ |
| AC_REQUIRE([CF_GNAT_VERSION]) |
| |
| AC_MSG_CHECKING(if GNAT supports generics) |
| case $cf_gnat_version in |
| (3.[[1-9]]*|[[4-9]].*) |
| cf_gnat_generics=yes |
| ;; |
| (*) |
| cf_gnat_generics=no |
| ;; |
| esac |
| AC_MSG_RESULT($cf_gnat_generics) |
| |
| if test "$cf_gnat_generics" = yes |
| then |
| cf_compile_generics=generics |
| cf_generic_objects="\${GENOBJS}" |
| else |
| cf_compile_generics= |
| cf_generic_objects= |
| fi |
| |
| AC_SUBST(cf_compile_generics) |
| AC_SUBST(cf_generic_objects) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_GNAT_PROJECTS version: 8 updated: 2015/04/17 21:13:04 |
| dnl ---------------- |
| dnl GNAT projects are configured with ".gpr" project files. |
| dnl GNAT libraries are a further development, using the project feature. |
| AC_DEFUN([CF_GNAT_PROJECTS], |
| [ |
| AC_REQUIRE([CF_GNAT_VERSION]) |
| AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS]) |
| |
| cf_gnat_libraries=no |
| cf_gnat_projects=no |
| |
| if test "$enable_gnat_projects" != no ; then |
| AC_MSG_CHECKING(if GNAT supports project files) |
| case $cf_gnat_version in |
| (3.[[0-9]]*) |
| ;; |
| (*) |
| case $cf_cv_system_name in |
| (cygwin*|msys*) |
| ;; |
| (*) |
| mkdir conftest.src conftest.bin conftest.lib |
| cd conftest.src |
| rm -rf conftest* *~conftest* |
| cat >>library.gpr <<CF_EOF |
| project Library is |
| Kind := External ("LIB_KIND"); |
| for Library_Name use "ConfTest"; |
| for Object_Dir use "."; |
| for Library_ALI_Dir use External("LIBRARY_DIR"); |
| for Library_Version use External ("SONAME"); |
| for Library_Kind use Kind; |
| for Library_Dir use External("BUILD_DIR"); |
| Source_Dir := External ("SOURCE_DIR"); |
| for Source_Dirs use (Source_Dir); |
| end Library; |
| CF_EOF |
| cat >>confpackage.ads <<CF_EOF |
| package ConfPackage is |
| procedure conftest; |
| end ConfPackage; |
| CF_EOF |
| cat >>confpackage.adb <<CF_EOF |
| with Text_IO; |
| package body ConfPackage is |
| procedure conftest is |
| begin |
| Text_IO.Put ("Hello World"); |
| Text_IO.New_Line; |
| end conftest; |
| end ConfPackage; |
| CF_EOF |
| if ( $cf_ada_make $ADAFLAGS \ |
| -Plibrary.gpr \ |
| -XBUILD_DIR=`cd ../conftest.bin;pwd` \ |
| -XLIBRARY_DIR=`cd ../conftest.lib;pwd` \ |
| -XSOURCE_DIR=`pwd` \ |
| -XSONAME=libConfTest.so.1 \ |
| -XLIB_KIND=static 1>&AC_FD_CC 2>&1 ) ; then |
| cf_gnat_projects=yes |
| fi |
| cd .. |
| if test -f conftest.lib/confpackage.ali |
| then |
| cf_gnat_libraries=yes |
| fi |
| rm -rf conftest* *~conftest* |
| ;; |
| esac |
| ;; |
| esac |
| AC_MSG_RESULT($cf_gnat_projects) |
| fi # enable_gnat_projects |
| |
| if test $cf_gnat_projects = yes |
| then |
| AC_MSG_CHECKING(if GNAT supports libraries) |
| AC_MSG_RESULT($cf_gnat_libraries) |
| fi |
| |
| if test "$cf_gnat_projects" = yes |
| then |
| USE_OLD_MAKERULES="#" |
| USE_GNAT_PROJECTS="" |
| else |
| USE_OLD_MAKERULES="" |
| USE_GNAT_PROJECTS="#" |
| fi |
| |
| if test "$cf_gnat_libraries" = yes |
| then |
| USE_GNAT_LIBRARIES="" |
| else |
| USE_GNAT_LIBRARIES="#" |
| fi |
| |
| AC_SUBST(USE_OLD_MAKERULES) |
| AC_SUBST(USE_GNAT_PROJECTS) |
| AC_SUBST(USE_GNAT_LIBRARIES) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_GNAT_SIGINT version: 1 updated: 2011/03/27 20:07:59 |
| dnl -------------- |
| dnl Check if gnat supports SIGINT, and presumably tasking. For the latter, it |
| dnl is noted that gnat may compile a tasking unit even for configurations which |
| dnl fail at runtime. |
| AC_DEFUN([CF_GNAT_SIGINT],[ |
| AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[ |
| CF_GNAT_TRY_LINK([with Ada.Interrupts.Names; |
| |
| package ConfTest is |
| |
| pragma Warnings (Off); -- the next pragma exists since 3.11p |
| pragma Unreserve_All_Interrupts; |
| pragma Warnings (On); |
| |
| protected Process is |
| procedure Stop; |
| function Continue return Boolean; |
| pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT); |
| private |
| Done : Boolean := False; |
| end Process; |
| |
| end ConfTest;], |
| [package body ConfTest is |
| protected body Process is |
| procedure Stop is |
| begin |
| Done := True; |
| end Stop; |
| function Continue return Boolean is |
| begin |
| return not Done; |
| end Continue; |
| end Process; |
| end ConfTest;], |
| [cf_cv_gnat_sigint=yes], |
| [cf_cv_gnat_sigint=no])]) |
| |
| if test $cf_cv_gnat_sigint = yes ; then |
| USE_GNAT_SIGINT="" |
| else |
| USE_GNAT_SIGINT="#" |
| fi |
| AC_SUBST(USE_GNAT_SIGINT) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_GNAT_TRY_LINK version: 3 updated: 2011/03/19 14:47:45 |
| dnl ---------------- |
| dnl Verify that a test program compiles/links with GNAT. |
| dnl $cf_ada_make is set to the program that compiles/links |
| dnl $ADAFLAGS may be set to the GNAT flags. |
| dnl |
| dnl $1 is the text of the spec |
| dnl $2 is the text of the body |
| dnl $3 is the shell command to execute if successful |
| dnl $4 is the shell command to execute if not successful |
| AC_DEFUN([CF_GNAT_TRY_LINK], |
| [ |
| rm -rf conftest* *~conftest* |
| cat >>conftest.ads <<CF_EOF |
| $1 |
| CF_EOF |
| cat >>conftest.adb <<CF_EOF |
| $2 |
| CF_EOF |
| if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then |
| ifelse($3,, :,[ $3]) |
| ifelse($4,,,[else |
| $4]) |
| fi |
| rm -rf conftest* *~conftest* |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_GNAT_TRY_RUN version: 5 updated: 2011/03/19 14:47:45 |
| dnl --------------- |
| dnl Verify that a test program compiles and runs with GNAT |
| dnl $cf_ada_make is set to the program that compiles/links |
| dnl $ADAFLAGS may be set to the GNAT flags. |
| dnl |
| dnl $1 is the text of the spec |
| dnl $2 is the text of the body |
| dnl $3 is the shell command to execute if successful |
| dnl $4 is the shell command to execute if not successful |
| AC_DEFUN([CF_GNAT_TRY_RUN], |
| [ |
| rm -rf conftest* *~conftest* |
| cat >>conftest.ads <<CF_EOF |
| $1 |
| CF_EOF |
| cat >>conftest.adb <<CF_EOF |
| $2 |
| CF_EOF |
| if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then |
| if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then |
| ifelse($3,, :,[ $3]) |
| ifelse($4,,,[ else |
| $4]) |
| fi |
| ifelse($4,,,[else |
| $4]) |
| fi |
| rm -rf conftest* *~conftest* |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_GNAT_VERSION version: 20 updated: 2015/04/18 08:56:57 |
| dnl --------------- |
| dnl Verify version of GNAT. |
| AC_DEFUN([CF_GNAT_VERSION], |
| [ |
| AC_MSG_CHECKING(for gnat version) |
| cf_gnat_version=`${cf_ada_make:-gnatmake} -v 2>&1 | \ |
| grep '[[0-9]].[[0-9]][[0-9]]*' |\ |
| sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'` |
| AC_MSG_RESULT($cf_gnat_version) |
| |
| case $cf_gnat_version in |
| (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]]) |
| cf_cv_prog_gnat_correct=yes |
| ;; |
| (*) |
| AC_MSG_WARN(Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding.) |
| cf_cv_prog_gnat_correct=no |
| ;; |
| esac |
| ]) |
| dnl --------------------------------------------------------------------------- |
| dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07 |
| dnl ------------- |
| dnl Check if we must define _GNU_SOURCE to get a reasonable value for |
| dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect |
| dnl (or misfeature) of glibc2, which breaks portability of many applications, |
| dnl since it is interwoven with GNU extensions. |
| dnl |
| dnl Well, yes we could work around it... |
| AC_DEFUN([CF_GNU_SOURCE], |
| [ |
| AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[ |
| AC_TRY_COMPILE([#include <sys/types.h>],[ |
| #ifndef _XOPEN_SOURCE |
| make an error |
| #endif], |
| [cf_cv_gnu_source=no], |
| [cf_save="$CPPFLAGS" |
| CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" |
| AC_TRY_COMPILE([#include <sys/types.h>],[ |
| #ifdef _XOPEN_SOURCE |
| make an error |
| #endif], |
| [cf_cv_gnu_source=no], |
| [cf_cv_gnu_source=yes]) |
| CPPFLAGS="$cf_save" |
| ]) |
| ]) |
| test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_GPP_LIBRARY version: 12 updated: 2015/04/17 21:13:04 |
| dnl -------------- |
| dnl If we're trying to use g++, test if libg++ is installed (a rather common |
| dnl problem :-). If we have the compiler but no library, we'll be able to |
| dnl configure, but won't be able to build the c++ demo program. |
| AC_DEFUN([CF_GPP_LIBRARY], |
| [ |
| cf_cxx_library=unknown |
| case $cf_cv_system_name in |
| (os2*) |
| cf_gpp_libname=gpp |
| ;; |
| (*) |
| cf_gpp_libname=g++ |
| ;; |
| esac |
| if test "$GXX" = yes; then |
| AC_MSG_CHECKING([for lib$cf_gpp_libname]) |
| cf_save="$LIBS" |
| CF_ADD_LIB($cf_gpp_libname) |
| AC_TRY_LINK([ |
| #include <$cf_gpp_libname/builtin.h> |
| ], |
| [two_arg_error_handler_t foo2 = lib_error_handler], |
| [cf_cxx_library=yes |
| CF_ADD_LIB($cf_gpp_libname,CXXLIBS) |
| if test "$cf_gpp_libname" = cpp ; then |
| AC_DEFINE(HAVE_GPP_BUILTIN_H,1,[Define to 1 if we have gpp builtin.h]) |
| else |
| AC_DEFINE(HAVE_GXX_BUILTIN_H,1,[Define to 1 if we have g++ builtin.h]) |
| fi], |
| [AC_TRY_LINK([ |
| #include <builtin.h> |
| ], |
| [two_arg_error_handler_t foo2 = lib_error_handler], |
| [cf_cxx_library=yes |
| CF_ADD_LIB($cf_gpp_libname,CXXLIBS) |
| AC_DEFINE(HAVE_BUILTIN_H,1,[Define to 1 if we have builtin.h])], |
| [cf_cxx_library=no])]) |
| LIBS="$cf_save" |
| AC_MSG_RESULT($cf_cxx_library) |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_GXX_VERSION version: 7 updated: 2012/06/16 14:55:39 |
| dnl -------------- |
| dnl Check for version of g++ |
| AC_DEFUN([CF_GXX_VERSION],[ |
| AC_REQUIRE([AC_PROG_CPP]) |
| GXX_VERSION=none |
| if test "$GXX" = yes; then |
| AC_MSG_CHECKING(version of ${CXX:-g++}) |
| GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`" |
| test -z "$GXX_VERSION" && GXX_VERSION=unknown |
| AC_MSG_RESULT($GXX_VERSION) |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_GXX_WARNINGS version: 9 updated: 2015/04/17 21:13:04 |
| dnl --------------- |
| dnl Check if the compiler supports useful warning options. |
| dnl |
| dnl Most of gcc's options apply to g++, except: |
| dnl -Wbad-function-cast |
| dnl -Wmissing-declarations |
| dnl -Wnested-externs |
| dnl |
| dnl Omit a few (for now): |
| dnl -Winline |
| dnl |
| dnl Parameter: |
| dnl $1 is an optional list of g++ warning flags that a particular |
| dnl application might want to use, e.g., "no-unused" for |
| dnl -Wno-unused |
| dnl Special: |
| dnl If $with_ext_const is "yes", add a check for -Wwrite-strings |
| dnl |
| AC_DEFUN([CF_GXX_WARNINGS], |
| [ |
| |
| CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS) |
| CF_CLANG_COMPILER(GXX,CLANG_CPLUSPLUS,CXXFLAGS) |
| |
| AC_REQUIRE([CF_GXX_VERSION]) |
| |
| AC_LANG_SAVE |
| AC_LANG_CPLUSPLUS |
| |
| cat > conftest.$ac_ext <<EOF |
| #line __oline__ "configure" |
| int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; } |
| EOF |
| |
| if test "$INTEL_CPLUSPLUS" = yes |
| then |
| # The "-wdXXX" options suppress warnings: |
| # remark #1419: external declaration in primary source file |
| # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem) |
| # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem) |
| # remark #1684: conversion from pointer to same-sized integral type (potential portability problem) |
| # remark #193: zero used for undefined preprocessing identifier |
| # remark #593: variable "curs_sb_left_arrow" was set but never used |
| # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits |
| # remark #869: parameter "tw" was never referenced |
| # remark #981: operands are evaluated in unspecified order |
| # warning #269: invalid format string conversion |
| |
| AC_CHECKING([for $CC warning options]) |
| cf_save_CXXFLAGS="$CXXFLAGS" |
| EXTRA_CXXFLAGS="-Wall" |
| for cf_opt in \ |
| wd1419 \ |
| wd1682 \ |
| wd1683 \ |
| wd1684 \ |
| wd193 \ |
| wd279 \ |
| wd593 \ |
| wd810 \ |
| wd869 \ |
| wd981 |
| do |
| CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt" |
| if AC_TRY_EVAL(ac_compile); then |
| test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt) |
| EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt" |
| fi |
| done |
| CXXFLAGS="$cf_save_CXXFLAGS" |
| |
| elif test "$GXX" = yes |
| then |
| AC_CHECKING([for $CXX warning options]) |
| cf_save_CXXFLAGS="$CXXFLAGS" |
| EXTRA_CXXFLAGS="-W -Wall" |
| cf_gxx_extra_warnings="" |
| test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings" |
| case "$GCC_VERSION" in |
| ([[1-2]].*) |
| ;; |
| (*) |
| cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++" |
| ;; |
| esac |
| for cf_opt in \ |
| Wabi \ |
| fabi-version=0 \ |
| Wextra \ |
| Wignored-qualifiers \ |
| Wlogical-op \ |
| Woverloaded-virtual \ |
| Wsign-promo \ |
| Wsynth \ |
| Wold-style-cast \ |
| Wcast-align \ |
| Wcast-qual \ |
| Wpointer-arith \ |
| Wshadow \ |
| Wundef $cf_gxx_extra_warnings $1 |
| do |
| CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt" |
| if AC_TRY_EVAL(ac_compile); then |
| test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt) |
| EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt" |
| else |
| test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt) |
| fi |
| done |
| CXXFLAGS="$cf_save_CXXFLAGS" |
| fi |
| |
| rm -rf conftest* |
| AC_LANG_RESTORE |
| AC_SUBST(EXTRA_CXXFLAGS) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_HASHED_DB version: 7 updated: 2015/04/18 08:56:57 |
| dnl ------------ |
| dnl Look for an instance of the Berkeley hashed database. |
| dnl |
| dnl $1 = optional parameter, to specify install-prefix for the database. |
| AC_DEFUN([CF_HASHED_DB], |
| [ |
| ifelse([$1],,,[ |
| case $1 in |
| (yes|*able*) |
| ;; |
| (*) |
| if test -d "$1" ; then |
| CF_ADD_INCDIR($1/include) |
| CF_ADD_LIBDIR($1/lib) |
| else |
| case "$1" in |
| (./*|../*|/*) |
| AC_MSG_WARN(no such directory $1) |
| ;; |
| (*) |
| CF_FIND_SUB_INCDIR($1) |
| CF_FIND_SUB_LIBDIR($1) |
| ;; |
| esac |
| fi |
| esac |
| ]) |
| AC_CHECK_HEADER(db.h,[ |
| CF_HASHED_DB_VERSION |
| if test "$cf_cv_hashed_db_version" = unknown ; then |
| AC_MSG_ERROR(Cannot determine version of db) |
| else |
| CF_HASHED_DB_LIBS |
| if test "$cf_cv_hashed_db_libs" = unknown ; then |
| AC_MSG_ERROR(Cannot determine library for db) |
| elif test "$cf_cv_hashed_db_libs" != default ; then |
| CF_ADD_LIB($cf_cv_hashed_db_libs) |
| fi |
| fi |
| ],[ |
| AC_MSG_ERROR(Cannot find db.h) |
| ]) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_HASHED_DB_LIBS version: 9 updated: 2010/05/29 16:31:02 |
| dnl ----------------- |
| dnl Given that we have the header and version for hashed database, find the |
| dnl library information. |
| AC_DEFUN([CF_HASHED_DB_LIBS], |
| [ |
| AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[ |
| cf_cv_hashed_db_libs=unknown |
| for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db '' |
| do |
| cf_save_libs="$LIBS" |
| if test -n "$cf_db_libs"; then |
| CF_ADD_LIB($cf_db_libs) |
| fi |
| CF_MSG_LOG(checking for library "$cf_db_libs") |
| AC_TRY_LINK([ |
| $ac_includes_default |
| #include <db.h> |
| ],[ |
| char *path = "/tmp/foo"; |
| #ifdef DB_VERSION_MAJOR |
| #if DB_VERSION_MAJOR >= 4 |
| DB *result = 0; |
| db_create(&result, NULL, 0); |
| result->open(result, |
| NULL, |
| path, |
| path, |
| DB_HASH, |
| DB_CREATE, |
| 0644); |
| #elif DB_VERSION_MAJOR >= 3 |
| DB *result = 0; |
| db_create(&result, NULL, 0); |
| result->open(result, |
| path, |
| path, |
| DB_HASH, |
| DB_CREATE, |
| 0644); |
| #elif DB_VERSION_MAJOR >= 2 |
| DB *result = 0; |
| db_open(path, |
| DB_HASH, |
| DB_CREATE, |
| 0644, |
| (DB_ENV *) 0, |
| (DB_INFO *) 0, |
| &result); |
| #endif /* DB_VERSION_MAJOR */ |
| #else |
| DB *result = dbopen(path, |
| 2, |
| 0644, |
| DB_HASH, |
| 0); |
| #endif |
| ${cf_cv_main_return:-return}(result != 0) |
| ],[ |
| if test -n "$cf_db_libs" ; then |
| cf_cv_hashed_db_libs=$cf_db_libs |
| else |
| cf_cv_hashed_db_libs=default |
| fi |
| LIBS="$cf_save_libs" |
| break |
| ]) |
| LIBS="$cf_save_libs" |
| done |
| ]) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_HASHED_DB_VERSION version: 4 updated: 2014/04/12 16:47:01 |
| dnl -------------------- |
| dnl Given that we have the header file for hashed database, find the version |
| dnl information. |
| AC_DEFUN([CF_HASHED_DB_VERSION], |
| [ |
| AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[ |
| cf_cv_hashed_db_version=unknown |
| |
| for cf_db_version in 1 2 3 4 5 6 |
| do |
| CF_MSG_LOG(checking for db version $cf_db_version) |
| AC_TRY_COMPILE([ |
| $ac_includes_default |
| #include <db.h> |
| |
| #ifdef DB_VERSION_MAJOR |
| /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */ |
| #if $cf_db_version == DB_VERSION_MAJOR |
| /* ok */ |
| #else |
| make an error |
| #endif |
| #else |
| #if $cf_db_version == 1 |
| /* ok: assuming this is DB 1.8.5 */ |
| #else |
| make an error |
| #endif |
| #endif |
| ],[DBT *foo = 0],[ |
| cf_cv_hashed_db_version=$cf_db_version |
| break |
| ]) |
| done |
| ]) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_HEADER_PATH version: 13 updated: 2015/04/15 19:08:48 |
| dnl -------------- |
| dnl Construct a search-list of directories for a nonstandard header-file |
| dnl |
| dnl Parameters |
| dnl $1 = the variable to return as result |
| dnl $2 = the package name |
| AC_DEFUN([CF_HEADER_PATH], |
| [ |
| $1= |
| |
| # collect the current set of include-directories from compiler flags |
| cf_header_path_list="" |
| if test -n "${CFLAGS}${CPPFLAGS}" ; then |
| for cf_header_path in $CPPFLAGS $CFLAGS |
| do |
| case $cf_header_path in |
| (-I*) |
| cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'` |
| CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE) |
| cf_header_path_list="$cf_header_path_list [$]$1" |
| ;; |
| esac |
| done |
| fi |
| |
| # add the variations for the package we are looking for |
| CF_SUBDIR_PATH($1,$2,include) |
| |
| test "$includedir" != NONE && \ |
| test "$includedir" != "/usr/include" && \ |
| test -d "$includedir" && { |
| test -d $includedir && $1="[$]$1 $includedir" |
| test -d $includedir/$2 && $1="[$]$1 $includedir/$2" |
| } |
| |
| test "$oldincludedir" != NONE && \ |
| test "$oldincludedir" != "/usr/include" && \ |
| test -d "$oldincludedir" && { |
| test -d $oldincludedir && $1="[$]$1 $oldincludedir" |
| test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2" |
| } |
| |
| $1="[$]$1 $cf_header_path_list" |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23 |
| dnl --------------- |
| dnl Insert text into the help-message, for readability, from AC_ARG_WITH. |
| AC_DEFUN([CF_HELP_MESSAGE], |
| [AC_DIVERT_HELP([$1])dnl |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42 |
| dnl --------------- |
| dnl Construct the list of include-options according to whether we're building |
| dnl in the source directory or using '--srcdir=DIR' option. |
| AC_DEFUN([CF_INCLUDE_DIRS], |
| [ |
| if test "$srcdir" != "."; then |
| CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS" |
| fi |
| CPPFLAGS="-I../include $CPPFLAGS" |
| if test "$srcdir" != "."; then |
| CPPFLAGS="-I\${srcdir} $CPPFLAGS" |
| fi |
| CPPFLAGS="-I. $CPPFLAGS" |
| AC_SUBST(CPPFLAGS) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_INTEL_COMPILER version: 7 updated: 2015/04/12 15:39:00 |
| dnl ----------------- |
| dnl Check if the given compiler is really the Intel compiler for Linux. It |
| dnl tries to imitate gcc, but does not return an error when it finds a mismatch |
| dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK. |
| dnl |
| dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to |
| dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from |
| dnl the wrappers for gcc and g++ warnings. |
| dnl |
| dnl $1 = GCC (default) or GXX |
| dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS |
| dnl $3 = CFLAGS (default) or CXXFLAGS |
| AC_DEFUN([CF_INTEL_COMPILER],[ |
| AC_REQUIRE([AC_CANONICAL_HOST]) |
| ifelse([$2],,INTEL_COMPILER,[$2])=no |
| |
| if test "$ifelse([$1],,[$1],GCC)" = yes ; then |
| case $host_os in |
| (linux*|gnu*) |
| AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler) |
| cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])" |
| ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc" |
| AC_TRY_COMPILE([],[ |
| #ifdef __INTEL_COMPILER |
| #else |
| make an error |
| #endif |
| ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes |
| cf_save_CFLAGS="$cf_save_CFLAGS -we147" |
| ],[]) |
| ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS" |
| AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2])) |
| ;; |
| esac |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_ISASCII version: 4 updated: 2012/10/06 17:56:13 |
| dnl ---------- |
| dnl Check if we have either a function or macro for 'isascii()'. |
| AC_DEFUN([CF_ISASCII], |
| [ |
| AC_MSG_CHECKING(for isascii) |
| AC_CACHE_VAL(cf_cv_have_isascii,[ |
| AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')], |
| [cf_cv_have_isascii=yes], |
| [cf_cv_have_isascii=no]) |
| ])dnl |
| AC_MSG_RESULT($cf_cv_have_isascii) |
| test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()]) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_LARGEFILE version: 9 updated: 2015/04/18 08:56:57 |
| dnl ------------ |
| dnl Add checks for large file support. |
| AC_DEFUN([CF_LARGEFILE],[ |
| ifdef([AC_FUNC_FSEEKO],[ |
| AC_SYS_LARGEFILE |
| if test "$enable_largefile" != no ; then |
| AC_FUNC_FSEEKO |
| |
| # Normally we would collect these definitions in the config.h, |
| # but (like _XOPEN_SOURCE), some environments rely on having these |
| # defined before any of the system headers are included. Another |
| # case comes up with C++, e.g., on AIX the compiler compiles the |
| # header files by themselves before looking at the body files it is |
| # told to compile. For ncurses, those header files do not include |
| # the config.h |
| test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES " |
| test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE " |
| test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits " |
| |
| AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[ |
| AC_TRY_COMPILE([ |
| #include <sys/types.h> |
| #include <dirent.h> |
| ],[ |
| /* if transitional largefile support is setup, this is true */ |
| extern struct dirent64 * readdir(DIR *); |
| struct dirent64 *x = readdir((DIR *)0); |
| struct dirent *y = readdir((DIR *)0); |
| int z = x - y; |
| ], |
| [cf_cv_struct_dirent64=yes], |
| [cf_cv_struct_dirent64=no]) |
| ]) |
| test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64]) |
| fi |
| ]) |
| ]) |
| dnl --------------------------------------------------------------------------- |
| dnl CF_LDFLAGS_STATIC version: 12 updated: 2015/04/18 08:56:57 |
| dnl ----------------- |
| dnl Check for compiler/linker flags used to temporarily force usage of static |
| dnl libraries. This depends on the compiler and platform. Use this to help |
| dnl ensure that the linker picks up a given library based on its position in |
| dnl the list of linker options and libraries. |
| AC_DEFUN([CF_LDFLAGS_STATIC],[ |
| |
| if test "$GCC" = yes ; then |
| case $cf_cv_system_name in |
| (OS/2*|os2*|aix[[4]]*|solaris2.1[[0-9]]|darwin*) |
| LDFLAGS_STATIC= |
| LDFLAGS_SHARED= |
| ;; |
| (*) # normally, except when broken |
| LDFLAGS_STATIC=-static |
| LDFLAGS_SHARED=-dynamic |
| ;; |
| esac |
| else |
| case $cf_cv_system_name in |
| (aix[[4-7]]*) # from ld manpage |
| LDFLAGS_STATIC=-bstatic |
| LDFLAGS_SHARED=-bdynamic |
| ;; |
| (hpux*) # from ld manpage for hpux10.20, hpux11.11 |
| # We could also use just "archive" and "shared". |
| LDFLAGS_STATIC=-Wl,-a,archive_shared |
| LDFLAGS_SHARED=-Wl,-a,shared_archive |
| ;; |
| (irix*) # from ld manpage IRIX64 |
| LDFLAGS_STATIC=-Bstatic |
| LDFLAGS_SHARED=-Bdynamic |
| ;; |
| (osf[[45]]*) # from ld manpage osf4.0d, osf5.1 |
| # alternative "-oldstyle_liblookup" (not in cc manpage) |
| LDFLAGS_STATIC=-noso |
| LDFLAGS_SHARED=-so_archive |
| ;; |
| (solaris2*) |
| LDFLAGS_STATIC=-Bstatic |
| LDFLAGS_SHARED=-Bdynamic |
| ;; |
| esac |
| fi |
| |
| if test -n "$LDFLAGS_STATIC" && test -n "$LDFLAGS_SHARED" |
| then |
| AC_MSG_CHECKING(if linker supports switching between static/dynamic) |
| |
| rm -f libconftest.a |
| cat >conftest.$ac_ext <<EOF |
| #line __oline__ "configure" |
| #include <stdio.h> |
| int cf_ldflags_static(FILE *fp) { return fflush(fp); } |
| EOF |
| if AC_TRY_EVAL(ac_compile) ; then |
| ( $AR $ARFLAGS libconftest.a conftest.o ) 2>&AC_FD_CC 1>/dev/null |
| ( eval $RANLIB libconftest.a ) 2>&AC_FD_CC >/dev/null |
| fi |
| rm -f conftest.* |
| |
| cf_save_LIBS="$LIBS" |
| |
| LIBS="$LDFLAGS_STATIC -L`pwd` -lconftest $LDFLAGS_DYNAMIC $LIBS" |
| AC_TRY_LINK([ |
| #line __oline__ "configure" |
| #include <stdio.h> |
| int cf_ldflags_static(FILE *fp); |
| ],[ |
| return cf_ldflags_static(stdin); |
| ],[ |
| # some linkers simply ignore the -dynamic |
| case x`file conftest$ac_exeext 2>/dev/null` in |
| (*static*) |
| cf_ldflags_static=no |
| ;; |
| (*) |
| cf_ldflags_static=yes |
| ;; |
| esac |
| ],[cf_ldflags_static=no]) |
| |
| rm -f libconftest.* |
| LIBS="$cf_save_LIBS" |
| |
| AC_MSG_RESULT($cf_ldflags_static) |
| |
| if test $cf_ldflags_static != yes |
| then |
| LDFLAGS_STATIC= |
| LDFLAGS_SHARED= |
| fi |
| else |
| LDFLAGS_STATIC= |
| LDFLAGS_SHARED= |
| fi |
| |
| AC_SUBST(LDFLAGS_STATIC) |
| AC_SUBST(LDFLAGS_SHARED) |
| ]) |
| dnl --------------------------------------------------------------------------- |
| dnl CF_LD_RPATH_OPT version: 6 updated: 2015/04/12 15:39:00 |
| dnl --------------- |
| dnl For the given system and compiler, find the compiler flags to pass to the |
| dnl loader to use the "rpath" feature. |
| AC_DEFUN([CF_LD_RPATH_OPT], |
| [ |
| AC_REQUIRE([CF_CHECK_CACHE]) |
| |
| LD_RPATH_OPT= |
| AC_MSG_CHECKING(for an rpath option) |
| case $cf_cv_system_name in |
| (irix*) |
| if test "$GCC" = yes; then |
| LD_RPATH_OPT="-Wl,-rpath," |
| else |
| LD_RPATH_OPT="-rpath " |
| fi |
| ;; |
| (linux*|gnu*|k*bsd*-gnu) |
| LD_RPATH_OPT="-Wl,-rpath," |
| ;; |
| (openbsd[[2-9]].*|mirbsd*) |
| LD_RPATH_OPT="-Wl,-rpath," |
| ;; |
| (dragonfly*|freebsd*) |
| LD_RPATH_OPT="-rpath " |
| ;; |
| (netbsd*) |
| LD_RPATH_OPT="-Wl,-rpath," |
| ;; |
| (osf*|mls+*) |
| LD_RPATH_OPT="-rpath " |
| ;; |
| (solaris2*) |
| LD_RPATH_OPT="-R" |
| ;; |
| (*) |
| ;; |
| esac |
| AC_MSG_RESULT($LD_RPATH_OPT) |
| |
| case "x$LD_RPATH_OPT" in |
| (x-R*) |
| AC_MSG_CHECKING(if we need a space after rpath option) |
| cf_save_LIBS="$LIBS" |
| CF_ADD_LIBS(${LD_RPATH_OPT}$libdir) |
| AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes) |
| LIBS="$cf_save_LIBS" |
| AC_MSG_RESULT($cf_rpath_space) |
| test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT " |
| ;; |
| esac |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_LIBRARY_PATH version: 10 updated: 2015/04/15 19:08:48 |
| dnl --------------- |
| dnl Construct a search-list of directories for a nonstandard library-file |
| dnl |
| dnl Parameters |
| dnl $1 = the variable to return as result |
| dnl $2 = the package name |
| AC_DEFUN([CF_LIBRARY_PATH], |
| [ |
| $1= |
| cf_library_path_list="" |
| if test -n "${LDFLAGS}${LIBS}" ; then |
| for cf_library_path in $LDFLAGS $LIBS |
| do |
| case $cf_library_path in |
| (-L*) |
| cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'` |
| CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE) |
| cf_library_path_list="$cf_library_path_list [$]$1" |
| ;; |
| esac |
| done |
| fi |
| |
| CF_SUBDIR_PATH($1,$2,lib) |
| |
| $1="$cf_library_path_list [$]$1" |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09 |
| dnl ------------------ |
| AC_DEFUN([CF_LIBTOOL_VERSION],[ |
| if test -n "$LIBTOOL" && test "$LIBTOOL" != none |
| then |
| cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'` |
| else |
| cf_cv_libtool_version= |
| fi |
| test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_LIB_PREFIX version: 11 updated: 2015/04/18 08:56:57 |
| dnl ------------- |
| dnl Compute the library-prefix for the given host system |
| dnl $1 = variable to set |
| define([CF_LIB_PREFIX], |
| [ |
| case $cf_cv_system_name in |
| (OS/2*|os2*) |
| LIB_PREFIX='' |
| ;; |
| (*) LIB_PREFIX='lib' |
| ;; |
| esac |
| ifelse($1,,,[$1=$LIB_PREFIX]) |
| AC_SUBST(LIB_PREFIX) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_LIB_RULES version: 83 updated: 2015/08/05 20:44:28 |
| dnl ------------ |
| 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 |
| dnl subdirectory is a library-source directory, modify the Libs_To_Make list in |
| dnl the corresponding makefile to list the models that we'll generate. |
| dnl |
| dnl For shared libraries, make a list of symbolic links to construct when |
| dnl generating each library. The convention used for Linux is the simplest |
| dnl one: |
| dnl lib<name>.so -> |
| dnl lib<name>.so.<major> -> |
| dnl lib<name>.so.<maj>.<minor> |
| dnl |
| dnl Note: Libs_To_Make is mixed case, since it is not a pure autoconf variable. |
| AC_DEFUN([CF_LIB_RULES], |
| [ |
| cf_prefix=$LIB_PREFIX |
| AC_REQUIRE([CF_SUBST_NCURSES_VERSION]) |
| |
| case $cf_cv_shlib_version in |
| (cygdll|msysdll|mingw) |
| TINFO_NAME=$TINFO_ARG_SUFFIX |
| TINFO_SUFFIX=.dll |
| ;; |
| esac |
| |
| if test -n "$TINFO_SUFFIX" ; then |
| case $TINFO_SUFFIX in |
| (tw*) |
| TINFO_NAME="${TINFO_NAME}tw${EXTRA_SUFFIX}" |
| TINFO_SUFFIX=`echo $TINFO_SUFFIX | sed 's/^tw'$EXTRA_SUFFIX'//'` |
| ;; |
| (t*) |
| TINFO_NAME="${TINFO_NAME}t${EXTRA_SUFFIX}" |
| TINFO_SUFFIX=`echo $TINFO_SUFFIX | sed 's/^t'$EXTRA_SUFFIX'//'` |
| ;; |
| (w*) |
| TINFO_NAME="${TINFO_NAME}w${EXTRA_SUFFIX}" |
| TINFO_SUFFIX=`echo $TINFO_SUFFIX | sed 's/^w'$EXTRA_SUFFIX'//'` |
| ;; |
| esac |
| fi |
| |
| for cf_dir in $SRC_SUBDIRS |
| do |
| if test ! -d $srcdir/$cf_dir ; then |
| continue |
| elif test -f $srcdir/$cf_dir/modules; then |
| |
| SHARED_LIB= |
| Libs_To_Make= |
| |
| cf_sed_options= |
| if test -n "${cf_cv_abi_version}" && test "x${cf_cv_abi_version}" != "x5" |
| then |
| cf_sed_options="$cf_sed_options -e \"s/NCURSES\\([[WT]]\\+\\)\?_/NCURSES\\1${cf_cv_abi_version}_/g\"" |
| cf_sed_options="$cf_sed_options -e \"/deprecated in ABI${cf_cv_abi_version}/d\"" |
| fi |
| |
| if test "x$WILDCARD_SYMS" = xno |
| then |
| cf_sed_options="$cf_sed_options -e \"s/_\*;//g\"" |
| fi |
| |
| if test "x$cf_sed_options" != "x" |
| then |
| cat >>$cf_dir/Makefile <<CF_EOF |
| |
| # Generated by CF_LIB_RULES |
| resulting.map: $UNALTERED_SYMS |
| sed $cf_sed_options < $UNALTERED_SYMS >\[$]@ |
| |
| clean:: |
| rm -f resulting.map |
| CF_EOF |
| fi |
| |
| for cf_item in $cf_LIST_MODELS |
| do |
| CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf) |
| cf_libname=$cf_dir |
| test "$cf_dir" = c++ && cf_libname=ncurses++ |
| if test $cf_item = shared ; then |
| if test -n "${LIB_SUFFIX}" |
| then |
| cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${USE_LIB_SUFFIX}"'//'` |
| else |
| cf_shared_suffix="$cf_suffix" |
| fi |
| if test "$cf_cv_do_symlinks" = yes ; then |
| cf_version_name= |
| |
| case "$cf_cv_shlib_version" in |
| (rel) |
| cf_version_name=REL_VERSION |
| ;; |
| (abi) |
| cf_version_name=ABI_VERSION |
| ;; |
| esac |
| |
| if test -n "$cf_version_name" |
| then |
| case "$cf_cv_system_name" in |
| (darwin*) |
| # "w", etc? |
| cf_suffix="${USE_LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix" |
| ;; |
| (*) |
| cf_suffix="$cf_suffix"'.${'$cf_version_name'}' |
| ;; |
| esac |
| fi |
| if test -n "${USE_LIB_SUFFIX}" |
| then |
| cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${USE_LIB_SUFFIX}"'//'` |
| else |
| cf_shared_suffix="$cf_suffix" |
| fi |
| fi |
| # cygwin needs import library, and has unique naming convention |
| # use autodetected ${cf_prefix} for import lib and static lib, but |
| # use 'cyg' prefix for shared lib. |
| case $cf_cv_shlib_version in |
| (cygdll) |
| cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` |
| cf_add_lib="../lib/cyg${cf_libname}${cf_cygsuf}" |
| ;; |
| (msysdll) |
| cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` |
| cf_add_lib="../lib/msys-${cf_libname}${cf_cygsuf}" |
| ;; |
| (mingw) |
| cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` |
| cf_add_lib="../lib/lib${cf_libname}${cf_cygsuf}" |
| ;; |
| (*) |
| cf_add_lib= |
| ;; |
| esac |
| if test -n "$cf_add_lib" |
| then |
| Libs_To_Make="$Libs_To_Make $cf_add_lib" |
| continue |
| fi |
| fi |
| cf_add_lib="../lib/${cf_prefix}${cf_libname}${cf_suffix}" |
| Libs_To_Make="$Libs_To_Make $cf_add_lib" |
| done |
| |
| if test $cf_dir = ncurses ; then |
| cf_subsets="$LIB_SUBSETS" |
| cf_r_parts="$cf_subsets" |
| cf_liblist="$Libs_To_Make" |
| |
| while test -n "$cf_r_parts" |
| do |
| cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'` |
| cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'` |
| if test "$cf_l_parts" != "$cf_r_parts" ; then |
| cf_add_lib= |
| case $cf_l_parts in |
| (*termlib*) |
| cf_add_lib=`echo $cf_liblist |sed -e s%${LIB_NAME}${USE_LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g` |
| ;; |
| (*ticlib*) |
| cf_add_lib=`echo $cf_liblist |sed -e s%${LIB_NAME}${USE_LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g` |
| ;; |
| (*) |
| break |
| ;; |
| esac |
| if test -n "$cf_add_lib"; then |
| Libs_To_Make="$cf_add_lib $Libs_To_Make" |
| fi |
| else |
| break |
| fi |
| done |
| else |
| cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'` |
| fi |
| |
| if test $cf_dir = c++; then |
| if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then |
| cf_list= |
| for cf_item in $Libs_To_Make |
| do |
| case $cf_item in |
| (*.a) |
| ;; |
| (*) |
| cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"` |
| ;; |
| esac |
| for cf_test in $cf_list |
| do |
| if test "$cf_test" = "$cf_item" |
| then |
| cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'` |
| cf_item= |
| break |
| fi |
| done |
| test -n "$cf_item" && cf_list="$cf_list $cf_item" |
| done |
| Libs_To_Make="$cf_list" |
| fi |
| fi |
| |
| sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \ |
| -e "s%@SHARED_LIB@%$SHARED_LIB%" \ |
| $cf_dir/Makefile >$cf_dir/Makefile.out |
| mv $cf_dir/Makefile.out $cf_dir/Makefile |
| |
| $AWK -f $srcdir/mk-0th.awk \ |
| libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \ |
| $srcdir/$cf_dir/modules >>$cf_dir/Makefile |
| |
| for cf_subset in $cf_subsets |
| do |
| cf_subdirs= |
| for cf_item in $cf_LIST_MODELS |
| do |
| |
| echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})" |
| CF_UPPER(cf_ITEM,$cf_item) |
| |
| CXX_MODEL=$cf_ITEM |
| if test "$CXX_MODEL" = SHARED; then |
| case $cf_cv_shlib_version in |
| (cygdll|msysdll|mingw) |
| test "x$with_shared_cxx" = xno && CF_VERBOSE(overriding CXX_MODEL to SHARED) |
| with_shared_cxx=yes |
| ;; |
| (*) |
| test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL |
| ;; |
| esac |
| fi |
| |
| CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf) |
| CF_OBJ_SUBDIR($cf_item,cf_subdir) |
| |
| # Test for case where we build libtinfo with a different name. |
| cf_libname=$cf_dir |
| if test $cf_dir = ncurses ; then |
| case $cf_subset in |
| (*base*) |
| cf_libname=${cf_libname}$USE_LIB_SUFFIX |
| ;; |
| (*termlib*) |
| cf_libname=$TINFO_LIB_SUFFIX |
| ;; |
| (ticlib*) |
| cf_libname=$TICS_LIB_SUFFIX |
| ;; |
| esac |
| elif test $cf_dir = c++ ; then |
| cf_libname=ncurses++$USE_LIB_SUFFIX |
| else |
| cf_libname=${cf_libname}$USE_LIB_SUFFIX |
| fi |
| if test -n "${USE_ARG_SUFFIX}" ; then |
| # undo $USE_LIB_SUFFIX add-on in CF_LIB_SUFFIX |
| cf_suffix=`echo $cf_suffix |sed -e "s%^${USE_LIB_SUFFIX}%%"` |
| fi |
| |
| # These dependencies really are for development, not |
| # builds, but they are useful in porting, too. |
| cf_depend="../include/ncurses_cfg.h" |
| if test "$srcdir" = "."; then |
| cf_reldir="." |
| else |
| cf_reldir="\${srcdir}" |
| fi |
| |
| if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then |
| cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h" |
| elif test -f $srcdir/$cf_dir/curses.priv.h; then |
| cf_depend="$cf_depend $cf_reldir/curses.priv.h" |
| fi |
| |
| cf_dir_suffix= |
| old_cf_suffix="$cf_suffix" |
| if test "$cf_cv_shlib_version_infix" = yes ; then |
| if test -n "$USE_LIB_SUFFIX" ; then |
| case $USE_LIB_SUFFIX in |
| (tw*) |
| cf_libname=`echo $cf_libname | sed 's/tw'$EXTRA_SUFFIX'$//'` |
| cf_suffix=`echo $cf_suffix | sed 's/^tw'$EXTRA_SUFFIX'//'` |
| cf_dir_suffix=tw$EXTRA_SUFFIX |
| ;; |
| (t*) |
| cf_libname=`echo $cf_libname | sed 's/t'$EXTRA_SUFFIX'$//'` |
| cf_suffix=`echo $cf_suffix | sed 's/^t'$EXTRA_SUFFIX'//'` |
| cf_dir_suffix=t$EXTRA_SUFFIX |
| ;; |
| (w*) |
| cf_libname=`echo $cf_libname | sed 's/w'$EXTRA_SUFFIX'$//'` |
| cf_suffix=`echo $cf_suffix | sed 's/^w'$EXTRA_SUFFIX'//'` |
| cf_dir_suffix=w$EXTRA_SUFFIX |
| ;; |
| (*) |
| cf_libname=`echo $cf_libname | sed 's/'$EXTRA_SUFFIX'$//'` |
| cf_suffix=`echo $cf_suffix | sed 's/^'$EXTRA_SUFFIX'//'` |
| cf_dir_suffix=$EXTRA_SUFFIX |
| ;; |
| esac |
| fi |
| fi |
| |
| $AWK -f $srcdir/mk-1st.awk \ |
| name=${cf_libname}${cf_dir_suffix} \ |
| traces=$LIB_TRACING \ |
| MODEL=$cf_ITEM \ |
| CXX_MODEL=$CXX_MODEL \ |
| model=$cf_subdir \ |
| prefix=$cf_prefix \ |
| suffix=$cf_suffix \ |
| subset=$cf_subset \ |
| driver=$cf_cv_term_driver \ |
| SymLink="$LN_S" \ |
| TermlibRoot=$TINFO_NAME \ |
| TermlibSuffix=$TINFO_SUFFIX \ |
| ShlibVer=$cf_cv_shlib_version \ |
| ShlibVerInfix=$cf_cv_shlib_version_infix \ |
| ReLink=${cf_cv_do_relink:-no} \ |
| DoLinks=$cf_cv_do_symlinks \ |
| rmSoLocs=$cf_cv_rm_so_locs \ |
| ldconfig="$LDCONFIG" \ |
| overwrite=$WITH_OVERWRITE \ |
| depend="$cf_depend" \ |
| host="$host" \ |
| libtool_version="$LIBTOOL_VERSION" \ |
| $srcdir/$cf_dir/modules >>$cf_dir/Makefile |
| |
| cf_suffix="$old_cf_suffix" |
| |
| for cf_subdir2 in $cf_subdirs lib |
| do |
| test $cf_subdir = $cf_subdir2 && break |
| done |
| test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \ |
| $AWK -f $srcdir/mk-2nd.awk \ |
| name=$cf_dir \ |
| traces=$LIB_TRACING \ |
| MODEL=$cf_ITEM \ |
| model=$cf_subdir \ |
| subset=$cf_subset \ |
| srcdir=$srcdir \ |
| echo=$WITH_ECHO \ |
| crenames=$cf_cv_prog_CC_c_o \ |
| cxxrenames=$cf_cv_prog_CXX_c_o \ |
| $srcdir/$cf_dir/modules >>$cf_dir/Makefile |
| cf_subdirs="$cf_subdirs $cf_subdir" |
| done |
| done |
| fi |
| |
| echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@' >>Makefile |
| done |
| |
| for cf_dir in $SRC_SUBDIRS |
| do |
| if test ! -d $srcdir/$cf_dir ; then |
| continue |
| fi |
| |
| if test -f $cf_dir/Makefile ; then |
| case "$cf_dir" in |
| (Ada95) |
| echo 'libs \' >> Makefile |
| echo 'install.libs \' >> Makefile |
| echo 'uninstall.libs ::' >> Makefile |
| echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@' >> Makefile |
| ;; |
| esac |
| fi |
| |
| if test -f $srcdir/$cf_dir/modules; then |
| echo >> Makefile |
| if test -f $srcdir/$cf_dir/headers; then |
| cat >> Makefile <<CF_EOF |
| install.includes \\ |
| uninstall.includes \\ |
| CF_EOF |
| fi |
| if test "$cf_dir" != "c++" ; then |
| echo 'lint \' >> Makefile |
| fi |
| cat >> Makefile <<CF_EOF |
| libs \\ |
| lintlib \\ |
| install.libs \\ |
| uninstall.libs \\ |
| install.$cf_dir \\ |
| uninstall.$cf_dir :: |
| cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \[$]@ |
| CF_EOF |
| elif test -f $srcdir/$cf_dir/headers; then |
| cat >> Makefile <<CF_EOF |
| |
| libs \\ |
| install.libs \\ |
| uninstall.libs \\ |
| install.includes \\ |
| uninstall.includes :: |
| cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \[$]@ |
| CF_EOF |
| fi |
| done |
| |
| if test "x$cf_with_db_install" = xyes; then |
| cat >> Makefile <<CF_EOF |
| |
| install.libs uninstall.libs \\ |
| install.data uninstall.data :: |
| $MAKE_TERMINFO cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@ |
| CF_EOF |
| else |
| cat >> Makefile <<CF_EOF |
| |
| install.libs uninstall.libs :: |
| cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@ |
| CF_EOF |
| fi |
| |
| if test "x$cf_with_manpages" = xyes; then |
| cat >> Makefile <<CF_EOF |
| |
| install.man \\ |
| uninstall.man :: |
| cd man && \${MAKE} \${TOP_MFLAGS} \[$]@ |
| CF_EOF |
| fi |
| |
| cat >> Makefile <<CF_EOF |
| |
| distclean :: |
| rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h |
| rm -f headers.sh headers.sed mk_shared_lib.sh |
| rm -f edit_man.* man_alias.* |
| rm -rf \${DIRS_TO_MAKE} |
| CF_EOF |
| |
| # Special case: tack's manpage lives in its own directory. |
| if test "x$cf_with_manpages" = xyes; then |
| if test -d tack ; then |
| if test -f $srcdir/$tack.h; then |
| cat >> Makefile <<CF_EOF |
| |
| install.man \\ |
| uninstall.man :: |
| cd tack && \${MAKE} \${TOP_MFLAGS} \[$]@ |
| CF_EOF |
| fi |
| fi |
| fi |
| |
| dnl If we're installing into a subdirectory of /usr/include, etc., we should |
| dnl prepend the subdirectory's name to the "#include" paths. It won't hurt |
| dnl anything, and will make it more standardized. It's awkward to decide this |
| dnl at configuration because of quoting, so we'll simply make all headers |
| dnl installed via a script that can do the right thing. |
| |
| rm -f headers.sed headers.sh |
| |
| dnl ( generating this script makes the makefiles a little tidier :-) |
| echo creating headers.sh |
| cat >headers.sh <<CF_EOF |
| #! $SHELL |
| # This shell script is generated by the 'configure' script. It is invoked in a |
| # subdirectory of the build tree. It generates a sed-script in the parent |
| # directory that is used to adjust includes for header files that reside in a |
| # subdirectory of /usr/include, etc. |
| PRG="" |
| while test \[$]# != 3 |
| do |
| PRG="\$PRG \[$]1"; shift |
| done |
| DST=\[$]1 |
| REF=\[$]2 |
| SRC=\[$]3 |
| TMPSRC=\${TMPDIR:-/tmp}/\`basename \$SRC\`\$\$ |
| TMPSED=\${TMPDIR:-/tmp}/headers.sed\$\$ |
| echo installing \$SRC in \$DST |
| CF_EOF |
| |
| if test $WITH_CURSES_H = yes; then |
| cat >>headers.sh <<CF_EOF |
| case \$DST in |
| (/*/include/*) |
| END=\`basename \$DST\` |
| for i in \`cat \$REF/../*/headers |fgrep -v "#"\` |
| do |
| NAME=\`basename \$i\` |
| echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED |
| done |
| ;; |
| (*) |
| echo "" >> \$TMPSED |
| ;; |
| esac |
| CF_EOF |
| |
| else |
| cat >>headers.sh <<CF_EOF |
| case \$DST in |
| (/*/include/*) |
| END=\`basename \$DST\` |
| for i in \`cat \$REF/../*/headers |fgrep -v "#"\` |
| do |
| NAME=\`basename \$i\` |
| if test "\$NAME" = "curses.h" |
| then |
| echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED |
| NAME=ncurses.h |
| fi |
| echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED |
| done |
| ;; |
| (*) |
| echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED |
| ;; |
| esac |
| CF_EOF |
| fi |
| cat >>headers.sh <<CF_EOF |
| rm -f \$TMPSRC |
| sed -f \$TMPSED \$SRC > \$TMPSRC |
| NAME=\`basename \$SRC\` |
| CF_EOF |
| if test $WITH_CURSES_H != yes; then |
| cat >>headers.sh <<CF_EOF |
| test "\$NAME" = "curses.h" && NAME=ncurses.h |
| CF_EOF |
| fi |
| cat >>headers.sh <<CF_EOF |
| # Just in case someone gzip'd manpages, remove the conflicting copy. |
| test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz |
| |
| eval \$PRG \$TMPSRC \$DST/\$NAME |
| rm -f \$TMPSRC \$TMPSED |
| CF_EOF |
| |
| chmod 0755 headers.sh |
| |
| for cf_dir in $SRC_SUBDIRS |
| do |
| if test ! -d $srcdir/$cf_dir ; then |
| continue |
| fi |
| |
| if test -f $srcdir/$cf_dir/headers; then |
| $AWK -f $srcdir/mk-hdr.awk \ |
| subset="$LIB_SUBSETS" \ |
| compat="$WITH_CURSES_H" \ |
| $srcdir/$cf_dir/headers >>$cf_dir/Makefile |
| fi |
| |
| if test -f $srcdir/$cf_dir/modules; then |
| if test "$cf_dir" != "c++" ; then |
| cat >>$cf_dir/Makefile <<"CF_EOF" |
| depend : ${AUTO_SRC} |
| makedepend -- ${CPPFLAGS} -- ${C_SRC} |
| |
| # DO NOT DELETE THIS LINE -- make depend depends on it. |
| CF_EOF |
| fi |
| fi |
| done |
| AC_SUBST(Libs_To_Make) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_LIB_SONAME version: 5 updated: 2010/08/14 18:25:37 |
| dnl ------------- |
| dnl Find the and soname for the given shared library. Set the cache variable |
| dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache |
| dnl variable to "unknown". |
| dnl |
| dnl $1 = headers |
| dnl $2 = code |
| dnl $3 = library name |
| AC_DEFUN([CF_LIB_SONAME], |
| [ |
| AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[ |
| |
| cf_cv_$3_soname=unknown |
| if test "$cross_compiling" != yes ; then |
| cat >conftest.$ac_ext <<CF_EOF |
| $1 |
| int main() |
| { |
| $2 |
| ${cf_cv_main_return:-return}(0); |
| } |
| CF_EOF |
| cf_save_LIBS="$LIBS" |
| CF_ADD_LIB($3) |
| if AC_TRY_EVAL(ac_compile) ; then |
| if AC_TRY_EVAL(ac_link) ; then |
| cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.` |
| test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown |
| fi |
| fi |
| rm -rf conftest* |
| LIBS="$cf_save_LIBS" |
| fi |
| ]) |
| ]) |
| dnl --------------------------------------------------------------------------- |
| dnl CF_LIB_SUFFIX version: 25 updated: 2015/04/17 21:13:04 |
| dnl ------------- |
| dnl Compute the library file-suffix from the given model name |
| dnl $1 = model name |
| dnl $2 = variable to set (the nominal library suffix) |
| dnl $3 = dependency variable to set (actual filename) |
| dnl The variable $LIB_SUFFIX, if set, prepends the variable to set. |
| AC_DEFUN([CF_LIB_SUFFIX], |
| [ |
| case X$1 in |
| (Xlibtool) |
| $2='.la' |
| $3=[$]$2 |
| ;; |
| (Xdebug) |
| $2='_g.a' |
| $3=[$]$2 |
| ;; |
| (Xprofile) |
| $2='_p.a' |
| $3=[$]$2 |
| ;; |
| (Xshared) |
| case $cf_cv_system_name in |
| (aix[[5-7]]*) |
| $2='.so' |
| $3=[$]$2 |
| ;; |
| (cygwin*|msys*|mingw*) |
| $2='.dll' |
| $3='.dll.a' |
| ;; |
| (darwin*) |
| $2='.dylib' |
| $3=[$]$2 |
| ;; |
| (hpux*) |
| case $target in |
| (ia64*) |
| $2='.so' |
| $3=[$]$2 |
| ;; |
| (*) |
| $2='.sl' |
| $3=[$]$2 |
| ;; |
| esac |
| ;; |
| (*) |
| $2='.so' |
| $3=[$]$2 |
| ;; |
| esac |
| ;; |
| (*) |
| $2='.a' |
| $3=[$]$2 |
| ;; |
| esac |
| if test -n "${LIB_SUFFIX}${EXTRA_SUFFIX}" |
| then |
| $2="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$2}" |
| $3="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$3}" |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_LIB_TYPE version: 5 updated: 2015/04/17 21:13:04 |
| dnl ----------- |
| dnl Compute the string to append to -library from the given model name |
| dnl $1 = model name |
| dnl $2 = variable to set |
| dnl The variable $LIB_SUFFIX, if set, prepends the variable to set. |
| AC_DEFUN([CF_LIB_TYPE], |
| [ |
| case $1 in |
| (libtool) $2='' ;; |
| (normal) $2='' ;; |
| (debug) $2='_g' ;; |
| (profile) $2='_p' ;; |
| (shared) $2='' ;; |
| esac |
| test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}" |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_LINK_DATAONLY version: 10 updated: 2012/10/06 17:41:51 |
| dnl ---------------- |
| dnl Some systems have a non-ANSI linker that doesn't pull in modules that have |
| dnl only data (i.e., no functions), for example NeXT. On those systems we'll |
| dnl have to provide wrappers for global tables to ensure they're linked |
| dnl properly. |
| AC_DEFUN([CF_LINK_DATAONLY], |
| [ |
| AC_MSG_CHECKING([if data-only library module links]) |
| AC_CACHE_VAL(cf_cv_link_dataonly,[ |
| rm -f conftest.a |
| cat >conftest.$ac_ext <<EOF |
| #line __oline__ "configure" |
| int testdata[[3]] = { 123, 456, 789 }; |
| EOF |
| if AC_TRY_EVAL(ac_compile) ; then |
| mv conftest.o data.o && \ |
| ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null |
| fi |
| rm -f conftest.$ac_ext data.o |
| cat >conftest.$ac_ext <<EOF |
| #line __oline__ "configure" |
| int testfunc() |
| { |
| #if defined(NeXT) |
| ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */ |
| #else |
| extern int testdata[[3]]; |
| return testdata[[0]] == 123 |
| && testdata[[1]] == 456 |
| && testdata[[2]] == 789; |
| #endif |
| } |
| EOF |
| if AC_TRY_EVAL(ac_compile); then |
| mv conftest.o func.o && \ |
| ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null |
| fi |
| rm -f conftest.$ac_ext func.o |
| ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null |
| cf_saveLIBS="$LIBS" |
| LIBS="conftest.a $LIBS" |
| AC_TRY_RUN([ |
| int main() |
| { |
| extern int testfunc(); |
| ${cf_cv_main_return:-return} (!testfunc()); |
| } |
| ], |
| [cf_cv_link_dataonly=yes], |
| [cf_cv_link_dataonly=no], |
| [cf_cv_link_dataonly=unknown]) |
| LIBS="$cf_saveLIBS" |
| ]) |
| AC_MSG_RESULT($cf_cv_link_dataonly) |
| |
| if test "$cf_cv_link_dataonly" = no ; then |
| AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link]) |
| BROKEN_LINKER=1 |
| fi |
| |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_LINK_FUNCS version: 8 updated: 2012/10/06 17:56:13 |
| dnl ------------- |
| dnl Most Unix systems have both link and symlink, a few don't have symlink. |
| dnl A few non-Unix systems implement symlink, but not link. |
| dnl A few non-systems implement neither (or have nonfunctional versions). |
| AC_DEFUN([CF_LINK_FUNCS], |
| [ |
| AC_CHECK_FUNCS( \ |
| remove \ |
| unlink ) |
| |
| if test "$cross_compiling" = yes ; then |
| AC_CHECK_FUNCS( \ |
| link \ |
| symlink ) |
| else |
| AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[ |
| cf_cv_link_funcs= |
| for cf_func in link symlink ; do |
| AC_TRY_RUN([ |
| #include <sys/types.h> |
| #include <sys/stat.h> |
| #ifdef HAVE_UNISTD_H |
| #include <unistd.h> |
| #endif |
| int main() |
| { |
| int fail = 0; |
| char *src = "config.log"; |
| char *dst = "conftest.chk"; |
| struct stat src_sb; |
| struct stat dst_sb; |
| |
| stat(src, &src_sb); |
| fail = ($cf_func("config.log", "conftest.chk") < 0) |
| || (stat(dst, &dst_sb) < 0) |
| || (dst_sb.st_mtime != src_sb.st_mtime); |
| #ifdef HAVE_UNLINK |
| unlink(dst); |
| #else |
| remove(dst); |
| #endif |
| ${cf_cv_main_return:-return} (fail); |
| } |
| ],[ |
| cf_cv_link_funcs="$cf_cv_link_funcs $cf_func" |
| eval 'ac_cv_func_'$cf_func'=yes'],[ |
| eval 'ac_cv_func_'$cf_func'=no'],[ |
| eval 'ac_cv_func_'$cf_func'=error']) |
| done |
| test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no |
| ]) |
| test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK,1,[Define to 1 if we have link() function]) |
| test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK,1,[Define to 1 if we have symlink() function]) |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_MAKEFLAGS version: 17 updated: 2015/08/05 20:44:28 |
| dnl ------------ |
| dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make' |
| dnl options to lower-levels. It's very useful for "make -n" -- if we have it. |
| dnl (GNU 'make' does both, something POSIX 'make', which happens to make the |
| dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-) |
| AC_DEFUN([CF_MAKEFLAGS], |
| [ |
| AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[ |
| cf_cv_makeflags='' |
| for cf_option in '-${MAKEFLAGS}' '${MFLAGS}' |
| do |
| cat >cf_makeflags.tmp <<CF_EOF |
| SHELL = $SHELL |
| all : |
| @ echo '.$cf_option' |
| CF_EOF |
| cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | fgrep -v "ing directory" | sed -e 's,[[ ]]*$,,'` |
| case "$cf_result" in |
| (.*k|.*kw) |
| cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null` |
| case "$cf_result" in |
| (.*CC=*) cf_cv_makeflags= |
| ;; |
| (*) cf_cv_makeflags=$cf_option |
| ;; |
| esac |
| break |
| ;; |
| (.-) ;; |
| (*) echo "given option \"$cf_option\", no match \"$cf_result\"" |
| ;; |
| esac |
| done |
| rm -f cf_makeflags.tmp |
| ]) |
| |
| AC_SUBST(cf_cv_makeflags) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32 |
| dnl ------------ |
| dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have |
| dnl a monocase filesystem. |
| AC_DEFUN([CF_MAKE_TAGS],[ |
| AC_REQUIRE([CF_MIXEDCASE_FILENAMES]) |
| |
| AC_CHECK_PROGS(CTAGS, exctags ctags) |
| AC_CHECK_PROGS(ETAGS, exetags etags) |
| |
| AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no) |
| |
| if test "$cf_cv_mixedcase" = yes ; then |
| AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no) |
| else |
| MAKE_UPPER_TAGS=no |
| fi |
| |
| if test "$MAKE_UPPER_TAGS" = yes ; then |
| MAKE_UPPER_TAGS= |
| else |
| MAKE_UPPER_TAGS="#" |
| fi |
| |
| if test "$MAKE_LOWER_TAGS" = yes ; then |
| MAKE_LOWER_TAGS= |
| else |
| MAKE_LOWER_TAGS="#" |
| fi |
| |
| AC_SUBST(CTAGS) |
| AC_SUBST(ETAGS) |
| |
| AC_SUBST(MAKE_UPPER_TAGS) |
| AC_SUBST(MAKE_LOWER_TAGS) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_MANPAGE_FORMAT version: 11 updated: 2015/04/18 08:56:57 |
| dnl ----------------- |
| dnl Option to allow user to override automatic configuration of manpage format. |
| dnl There are several special cases: |
| dnl |
| dnl gzip - man checks for, can display gzip'd files |
| dnl compress - man checks for, can display compressed files |
| dnl BSDI - files in the cat-directories are suffixed ".0" |
| dnl formatted - installer should format (put files in cat-directory) |
| dnl catonly - installer should only format, e.g., for a turnkey system. |
| dnl |
| dnl There are other configurations which this macro does not test, e.g., HPUX's |
| dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming |
| dnl convention would not match our use). |
| AC_DEFUN([CF_MANPAGE_FORMAT], |
| [ |
| AC_REQUIRE([CF_PATHSEP]) |
| AC_MSG_CHECKING(format of man-pages) |
| |
| AC_ARG_WITH(manpage-format, |
| [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and |
| optionally formatted/catonly, e.g., gzip,formatted], |
| [MANPAGE_FORMAT=$withval], |
| [MANPAGE_FORMAT=unknown]) |
| |
| test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown |
| MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'` |
| |
| cf_unknown= |
| |
| case $MANPAGE_FORMAT in |
| (unknown) |
| if test -z "$MANPATH" ; then |
| MANPATH="/usr/man:/usr/share/man" |
| fi |
| |
| # look for the 'date' man-page (it's most likely to be installed!) |
| MANPAGE_FORMAT= |
| cf_preform=no |
| cf_catonly=yes |
| cf_example=date |
| |
| IFS="${IFS:- }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" |
| for cf_dir in $MANPATH; do |
| test -z "$cf_dir" && cf_dir=/usr/man |
| for cf_name in $cf_dir/man*/$cf_example.[[01]]* $cf_dir/cat*/$cf_example.[[01]]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example |
| do |
| cf_test=`echo $cf_name | sed -e 's/*//'` |
| if test "x$cf_test" = "x$cf_name" ; then |
| |
| case "$cf_name" in |
| (*.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";; |
| (*.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";; |
| (*.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";; |
| (*) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";; |
| esac |
| |
| case "$cf_name" in |
| ($cf_dir/man*) |
| cf_catonly=no |
| ;; |
| ($cf_dir/cat*) |
| cf_preform=yes |
| ;; |
| esac |
| break |
| fi |
| |
| # if we found a match in either man* or cat*, stop looking |
| if test -n "$MANPAGE_FORMAT" ; then |
| cf_found=no |
| test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted" |
| test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly" |
| case "$cf_name" in |
| ($cf_dir/cat*) |
| cf_found=yes |
| ;; |
| esac |
| test $cf_found=yes && break |
| fi |
| done |
| # only check the first directory in $MANPATH where we find manpages |
| if test -n "$MANPAGE_FORMAT" ; then |
| break |
| fi |
| done |
| # if we did not find the example, just assume it is normal |
| test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal |
| IFS="$ac_save_ifs" |
| ;; |
| (*) |
| for cf_option in $MANPAGE_FORMAT; do |
| case $cf_option in |
| (gzip|compress|BSDI|normal|formatted|catonly) |
| ;; |
| (*) |
| cf_unknown="$cf_unknown $cf_option" |
| ;; |
| esac |
| done |
| ;; |
| esac |
| |
| AC_MSG_RESULT($MANPAGE_FORMAT) |
| if test -n "$cf_unknown" ; then |
| AC_MSG_WARN(Unexpected manpage-format $cf_unknown) |
| fi |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_MANPAGE_RENAMES version: 10 updated: 2015/08/05 20:44:28 |
| dnl ------------------ |
| dnl The Debian people have their own naming convention for manpages. This |
| dnl option lets us override the name of the file containing renaming, or |
| dnl disable it altogether. |
| AC_DEFUN([CF_MANPAGE_RENAMES], |
| [ |
| AC_MSG_CHECKING(for manpage renaming) |
| |
| AC_ARG_WITH(manpage-renames, |
| [ --with-manpage-renames specify manpage-renaming], |
| [MANPAGE_RENAMES=$withval], |
| [MANPAGE_RENAMES=yes]) |
| |
| case ".$MANPAGE_RENAMES" in |
| (.no) |
| ;; |
| (.|.yes) |
| # Debian 'man' program? |
| if test -f /etc/debian_version ; then |
| MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames |
| else |
| MANPAGE_RENAMES=no |
| fi |
| ;; |
| esac |
| |
| if test "$MANPAGE_RENAMES" != no ; then |
| if test -f $srcdir/man/$MANPAGE_RENAMES ; then |
| MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES |
| elif test ! -f $MANPAGE_RENAMES ; then |
| AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES) |
| fi |
| |
| test ! -d man && mkdir man |
| |
| # Construct a sed-script to perform renaming within man-pages |
| if test -n "$MANPAGE_RENAMES" ; then |
| test ! -d man && mkdir man |
| $SHELL $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed |
| fi |
| fi |
| |
| AC_MSG_RESULT($MANPAGE_RENAMES) |
| AC_SUBST(MANPAGE_RENAMES) |
| ])dnl |
| dnl --------------------------------------------------------------------------- |
| dnl CF_MANPAGE_SYMLINKS version: 6 updated: 2015/04/17 21:13:04 |
| dnl ------------------- |
| dnl Some people expect each tool to make all aliases for manpages in the |
| dnl man-directory. This accommodates the older, less-capable implementations |
| dnl of 'man', and is optional. |
| AC_DEFUN([CF_MANPAGE_SYMLINKS], |
| [ |
| AC_MSG_CHECKING(if manpage aliases will be installed) |
| |
| AC_ARG_WITH(manpage-aliases, |
| [ --with-manpage-aliases specify manpage-aliases using .so], |
| [MANPAGE_ALIASES=$withval], |
| [MANPAGE_ALIASES=yes]) |
| |
| AC_MSG_RESULT($MANPAGE_ALIASES) |
| |
| case "x$LN_S" in |
| (xln*) |
| cf_use_symlinks=yes |
| ;; |
| (*) |
| cf_use_symlinks=no |
| ;; |
| esac |
| |
| MANPAGE_SYMLINKS=no |
| if test "$MANPAGE_ALIASES" = yes ; then |
| AC_MSG_CHECKING(if manpage symlinks should be used) |
| |
| AC_ARG_WITH(manpage-symlinks, |
| [ --with-manpage-symlinks specify manpage-aliases using symlinks], |
| [MANPAGE_SYMLINKS=$withval], |
| [MANPAGE_SYMLINKS=$cf_use_symlinks]) |
| |