X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=aclocal.m4;h=9bff894d0a0282d6b07064ebad36cd0f9c0b97a4;hp=682d180b9e69194913eb7042b36c8324347430a6;hb=8c3524de1122ce47b3fc6f89769e489cef5a640d;hpb=d4d1d81ab6fc1ad681ff120d925099f947fefcf3 diff --git a/aclocal.m4 b/aclocal.m4 index 682d180b..9bff894d 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,5 +1,5 @@ dnl*************************************************************************** -dnl Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * +dnl Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. * dnl * dnl Permission is hereby granted, free of charge, to any person obtaining a * dnl copy of this software and associated documentation files (the * @@ -28,7 +28,7 @@ dnl*************************************************************************** dnl dnl Author: Thomas E. Dickey 1995-on dnl -dnl $Id: aclocal.m4,v 1.566 2011/08/07 18:55:48 tom Exp $ +dnl $Id: aclocal.m4,v 1.608 2012/02/25 20:21:19 tom Exp $ dnl Macros used in NCURSES auto-configuration script. dnl dnl These macros are maintained separately from NCURSES. The copyright on @@ -511,7 +511,7 @@ fi AC_SUBST(ARFLAGS) ]) dnl --------------------------------------------------------------------------- -dnl CF_AWK_BIG_PRINTF version: 3 updated: 2008/12/27 12:30:03 +dnl CF_AWK_BIG_PRINTF version: 4 updated: 2011/10/30 17:09:50 dnl ----------------- dnl Check if awk can handle big strings using printf. Some older versions of dnl awk choke on large strings passed via "%s". @@ -525,8 +525,8 @@ AC_DEFUN([CF_AWK_BIG_PRINTF], eval $2=no ;; *) #(vi - if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' \ - | $AWK '{ printf "%d\n", length([$]0); }' | $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 + 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 @@ -975,7 +975,28 @@ if test "$cf_cv_check_gpm_wgetch" != yes ; then fi ])])dnl dnl --------------------------------------------------------------------------- -dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18 +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 +#include +],[ + 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_CPP_PARAM_INIT version: 5 updated: 2011/12/03 16:54:03 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 @@ -999,7 +1020,7 @@ TEST::TEST(int x = 1) // some compilers do not like second initializer { value = x; } -void main() { } +int main() { } ], [cf_cv_cpp_param_init=yes], [cf_cv_cpp_param_init=no], @@ -1066,6 +1087,54 @@ fi test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_CXX_AR_FLAGS version: 1 updated: 2011/10/29 08:35:34 +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 #(vi + irix*) #(vi + if test "$GXX" != yes ; then + CXX_AR='$(CXX)' + CXX_ARFLAGS='-ar -o' + fi + ;; + sco3.2v5*) #(vi + 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: 1 updated: 2011/10/29 08:35:34 +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 +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) + fi +fi +])dnl +dnl --------------------------------------------------------------------------- dnl CF_C_INLINE version: 3 updated: 2010/05/01 15:14:41 dnl ----------- dnl Check if the C compiler supports "inline". @@ -1190,67 +1259,29 @@ if test "$cf_disable_rpath_hack" = no ; then fi ]) dnl --------------------------------------------------------------------------- -dnl CF_ENABLE_PC_FILES version: 4 updated: 2011/08/06 20:32:05 +dnl CF_ENABLE_PC_FILES version: 7 updated: 2011/12/10 18:58:47 dnl ------------------ dnl This is the "--enable-pc-files" option, which is available if there is a dnl pkg-config configuration on the local machine. -dnl -dnl It sets/updates PKG_CONFIG_LIBDIR, which is used by pkg-config as a -dnl special case: overriding PKG_CONFIG_PATH (preferred). AC_DEFUN([CF_ENABLE_PC_FILES],[ -AC_REQUIRE([CF_PATHSEP]) AC_REQUIRE([CF_PKG_CONFIG]) +AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR]) -if test "$PKG_CONFIG" != no ; then - AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG) - - # Leave this as something that can be overridden in the environment. - if test -z "$PKG_CONFIG_LIBDIR" ; then - if test -n "$PKG_CONFIG_PATH" ; then - for cf_config in `echo "$PKG_CONFIG_PATH" | sed -e 's/'$PATH_SEPARATOR'/ /g'` - do - if test -n "$cf_config" && test -d "$cf_config" - then - PKG_CONFIG_LIBDIR=$cf_config - break - fi - done - fi - if test -z "$PKG_CONFIG_LIBDIR" ; then - cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'` - case x`(arch) 2>/dev/null` in #(vi - *64) #(vi - for cf_config in $cf_path/lib64 $cf_path/lib32 $cf_path/lib - do - if test -d $cf_config/pkgconfig - then - PKG_CONFIG_LIBDIR=$cf_config/pkgconfig - break - fi - done - ;; - *) - PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig - ;; - esac - fi - else - PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'` - fi +if test "$PKG_CONFIG" != none ; then if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then + AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG) 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) - CF_VERBOSE(found library $PKG_CONFIG_LIBDIR) - else - AC_MSG_RESULT(no) - AC_MSG_WARN(did not find library $PKG_CONFIG_LIBDIR) + elif test -z "$PKG_CONFIG_LIBDIR" || test "$PKG_CONFIG_LIBDIR" != no; then enable_pc_files=no + AC_MSG_WARN(did not find $PKG_CONFIG library) fi +else + enable_pc_files=no fi -AC_SUBST(PKG_CONFIG_LIBDIR) ])dnl dnl --------------------------------------------------------------------------- dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42 @@ -1267,6 +1298,37 @@ AC_ARG_ENABLE(rpath, AC_MSG_RESULT($cf_cv_enable_rpath) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_ENABLE_STRING_HACKS version: 1 updated: 2012/02/25 06:33:21 +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) + 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 @@ -1275,7 +1337,7 @@ AC_DEFUN([CF_ERRNO], CF_CHECK_ERRNO(errno) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43 +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 @@ -1284,11 +1346,17 @@ 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 -I${srcdir}/include" + 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([ @@ -1297,7 +1365,7 @@ AC_TRY_COMPILE([ 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 + break 2 ],[]) done done @@ -1563,7 +1631,7 @@ AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[ ]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30 +dnl CF_FUNC_POLL version: 5 updated: 2012/01/25 17:55:38 dnl ------------ dnl See if the poll function really works. Some platforms have poll(), but dnl it does not work for terminals or files. @@ -1580,10 +1648,29 @@ int main() { struct pollfd myfds; int ret; - myfds.fd = 0; + /* check for Darwin bug with respect to "devices" */ + myfds.fd = open("/dev/null", 1); + 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 { + + /* also check with standard input */ + myfds.fd = 0; + myfds.events = POLLIN; + myfds.revents = 0; + + ret = poll(&myfds, 1, 100); + if (ret < 0) { + ret = 0; + } + } ${cf_cv_main_return:-return}(ret != 0); }], [cf_cv_working_poll=yes], @@ -2193,7 +2280,7 @@ fi rm -rf conftest* *~conftest* ])dnl dnl --------------------------------------------------------------------------- -dnl CF_GNAT_VERSION version: 17 updated: 2011/03/23 20:24:41 +dnl CF_GNAT_VERSION version: 18 updated: 2012/01/21 19:28:10 dnl --------------- dnl Verify version of GNAT. AC_DEFUN([CF_GNAT_VERSION], @@ -2205,7 +2292,7 @@ cf_gnat_version=`${cf_ada_make:-gnatmake} -v 2>&1 | \ AC_MSG_RESULT($cf_gnat_version) case $cf_gnat_version in #(vi -3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*) #(vi +3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]]) #(vi cf_cv_prog_gnat_correct=yes ;; *) @@ -2734,7 +2821,7 @@ ifdef([AC_FUNC_FSEEKO],[ ]) ]) dnl --------------------------------------------------------------------------- -dnl CF_LDFLAGS_STATIC version: 9 updated: 2011/07/02 15:36:04 +dnl CF_LDFLAGS_STATIC version: 10 updated: 2011/09/24 12:51:48 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 @@ -2805,7 +2892,17 @@ EOF int cf_ldflags_static(FILE *fp); ],[ return cf_ldflags_static(stdin); -],[cf_ldflags_static=yes],[cf_ldflags_static=no]) +],[ + # some linkers simply ignore the -dynamic + case x`file conftest$ac_exeext 2>/dev/null` in #(vi + *static*) # (vi + cf_ldflags_static=no + ;; + *) + cf_ldflags_static=yes + ;; + esac +],[cf_ldflags_static=no]) rm -f libconftest.* LIBS="$cf_save_LIBS" @@ -2909,11 +3006,11 @@ CF_SUBDIR_PATH($1,$2,lib) $1="$cf_library_path_list [$]$1" ])dnl dnl --------------------------------------------------------------------------- -dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16 +dnl CF_LIB_PREFIX version: 9 updated: 2012/01/21 19:28:10 dnl ------------- dnl Compute the library-prefix for the given host system dnl $1 = variable to set -AC_DEFUN([CF_LIB_PREFIX], +define([CF_LIB_PREFIX], [ case $cf_cv_system_name in #(vi OS/2*|os2*) #(vi @@ -2926,7 +3023,7 @@ ifelse($1,,,[$1=$LIB_PREFIX]) AC_SUBST(LIB_PREFIX) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_LIB_RULES version: 61 updated: 2010/10/23 16:10:30 +dnl CF_LIB_RULES version: 64 updated: 2012/02/25 15:20:07 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 @@ -2941,13 +3038,15 @@ dnl lib.so. -> dnl lib.so.. AC_DEFUN([CF_LIB_RULES], [ -CF_LIB_PREFIX(cf_prefix) +cf_prefix=$LIB_PREFIX AC_REQUIRE([CF_SUBST_NCURSES_VERSION]) -if test $cf_cv_shlib_version = cygdll ; then +case $cf_cv_shlib_version in #(vi +cygdll|mingw) TINFO_NAME=$TINFO_ARG_SUFFIX TINFO_SUFFIX=.dll -fi + ;; +esac if test -n "$TINFO_SUFFIX" ; then case $TINFO_SUFFIX in @@ -3033,11 +3132,18 @@ do # 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. - if test $cf_cv_shlib_version = cygdll ; then + case $cf_cv_shlib_version in #(vi + cygdll) #(vi cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}" continue - fi + ;; + mingw) + cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` + LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/lib${cf_dir}${cf_cygsuf}" + continue + ;; + esac fi LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}" done @@ -3163,6 +3269,7 @@ do prefix=$cf_prefix \ suffix=$cf_suffix \ subset=$cf_subset \ + driver=$cf_cv_term_driver \ SymLink="$LN_S" \ TermlibRoot=$TINFO_NAME \ TermlibSuffix=$TINFO_SUFFIX \ @@ -3445,7 +3552,7 @@ fi ]) ]) dnl --------------------------------------------------------------------------- -dnl CF_LIB_SUFFIX version: 17 updated: 2011/07/02 15:36:04 +dnl CF_LIB_SUFFIX version: 18 updated: 2012/02/25 15:20:07 dnl ------------- dnl Compute the library file-suffix from the given model name dnl $1 = model name @@ -3478,7 +3585,7 @@ AC_DEFUN([CF_LIB_SUFFIX], $2='.a' $3=[$]$2 ;; - cygwin*) #(vi + cygwin*|mingw*) #(vi $2='.dll' $3='.dll.a' ;; @@ -3952,7 +4059,7 @@ AC_ARG_WITH(manpage-tbl, AC_MSG_RESULT($MANPAGE_TBL) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_MAN_PAGES version: 39 updated: 2010/10/23 15:44:18 +dnl CF_MAN_PAGES version: 40 updated: 2011/09/10 16:20:21 dnl ------------ dnl Try to determine if the man-pages on the system are compressed, and if dnl so, what format is used. Use this information to construct a script that @@ -4102,7 +4209,9 @@ CF_EOF if test "$MANPAGE_ALIASES" != no ; then cat >>$cf_edit_man <>$cf_edit_man <\$TMP.out + mv \$TMP.out \$TMP +CF_EOF +fi + if test $with_curses_h != yes ; then cat >>$cf_edit_man <\$TMP.out @@ -4337,7 +4453,7 @@ fi test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_MKSTEMP version: 7 updated: 2010/08/14 18:25:37 +dnl CF_MKSTEMP version: 8 updated: 2012/02/13 20:34:56 dnl ---------- dnl Check for a working mkstemp. This creates two files, checks that they are dnl successfully created and distinct (AmigaOS apparently fails on the last). @@ -4379,9 +4495,11 @@ int main() } ],[cf_cv_func_mkstemp=yes ],[cf_cv_func_mkstemp=no -],[AC_CHECK_FUNC(mkstemp) -]) +],[cf_cv_func_mkstemp=maybe]) ]) +if test "x$cf_cv_func_mkstemp" = xmaybe ; then + AC_CHECK_FUNC(mkstemp) +fi if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then AC_DEFINE(HAVE_MKSTEMP) fi @@ -4813,7 +4931,7 @@ AC_SUBST(PROG_EXT) test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT") ])dnl dnl --------------------------------------------------------------------------- -dnl CF_PROG_GNAT version: 1 updated: 2010/06/19 15:22:18 +dnl CF_PROG_GNAT version: 2 updated: 2011/10/22 14:01:47 dnl ------------ dnl Check for gnatmake, ensure that it is complete. AC_DEFUN([CF_PROG_GNAT],[ @@ -4821,6 +4939,7 @@ cf_ada_make=gnatmake AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no) if test "$ac_cv_prog_gnat_exists" = no; then cf_ada_make= + cf_cv_prog_gnat_correct=no else CF_GNAT_VERSION AC_CHECK_PROG(M4_exists, m4, yes, no) @@ -4914,7 +5033,7 @@ AC_MSG_RESULT($cf_prog_ln_sf) test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f" ])dnl dnl --------------------------------------------------------------------------- -dnl CF_REGEX version: 8 updated: 2010/08/07 14:09:44 +dnl CF_REGEX version: 9 updated: 2012/01/07 15:08:24 dnl -------- dnl Attempt to determine if we've got one of the flavors of regular-expression dnl code that we can support. @@ -4926,7 +5045,7 @@ cf_regex_func=no cf_regex_libs="regex re" case $host_os in #(vi mingw*) - cf_regex_libs="regex.dll $cf_regex_libs" + cf_regex_libs="gnurx $cf_regex_libs" ;; esac @@ -5139,7 +5258,7 @@ CF_VERBOSE(...checked $1 [$]$1) AC_SUBST(EXTRA_LDFLAGS) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_SHARED_OPTS version: 69 updated: 2011/07/30 19:31:39 +dnl CF_SHARED_OPTS version: 70 updated: 2012/02/25 15:20:07 dnl -------------- dnl -------------- dnl Attempt to determine the appropriate CC/LD options for creating a shared @@ -5308,6 +5427,27 @@ CF_EOF CF_SHARED_SONAME MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]' ;; + mingw*) #(vi + cf_cv_shlib_version=mingw + cf_cv_shlib_version_infix=mingw + CC_SHARED_OPTS= + MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}' + #MK_SHARED_LIB='${CC} ${CFLAGS} -mdll -Wl,-soname,'$cf_cv_shared_soname',-stats -o $[@]' + #MK_SHARED_LIB='${DLLTOOL} --export-all-symbols --output-exp --output-lib $[@]' + cat >mk_shared_lib.sh <<-CF_EOF + #!/bin/sh + SHARED_LIB=\[$]1 + IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\` + shift + cat <<-EOF + Linking shared library + ** SHARED_LIB \[$]SHARED_LIB + ** IMPORT_LIB \[$]IMPORT_LIB +EOF + exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB} +CF_EOF + chmod +x mk_shared_lib.sh + ;; openbsd[[2-9]].*|mirbsd*) #(vi if test "$DFT_LWR_MODEL" = "shared" ; then LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" @@ -5449,6 +5589,9 @@ CF_EOF test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}" test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}" + CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS) + CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB) + AC_SUBST(CC_SHARED_OPTS) AC_SUBST(LD_RPATH_OPT) AC_SUBST(LD_SHARED_OPTS) @@ -5644,7 +5787,7 @@ if test "$cf_cv_sizechange" != no ; then fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_SRC_MODULES version: 21 updated: 2010/09/04 17:37:40 +dnl CF_SRC_MODULES version: 26 updated: 2012/01/07 15:08:24 dnl -------------- dnl For each parameter, test if the source-directory exists, and if it contains dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll @@ -5667,6 +5810,7 @@ else TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2" fi +PC_MODULES_TO_MAKE="ncurses${DFT_ARG_SUFFIX}" cf_cv_src_modules= for cf_dir in $1 do @@ -5705,6 +5849,7 @@ do TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS" TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2" fi + PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${DFT_ARG_SUFFIX}" fi fi done @@ -5732,10 +5877,18 @@ if test "x$cf_with_tests" != "xno" ; then SRC_SUBDIRS="$SRC_SUBDIRS test" fi test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc" -test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++" +if test "$cf_with_cxx_binding" != no; then + PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${DFT_ARG_SUFFIX}" + SRC_SUBDIRS="$SRC_SUBDIRS c++" +fi + +test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX" +test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX" + +AC_SUBST(PC_MODULES_TO_MAKE) ADA_SUBDIRS= -if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then +if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f $srcdir/Ada95/Makefile.in; then SRC_SUBDIRS="$SRC_SUBDIRS Ada95" ADA_SUBDIRS="gen src" if test "x$cf_with_tests" != "xno" ; then @@ -5970,6 +6123,45 @@ top_builddir=`pwd` AC_SUBST(top_builddir) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50 +dnl ------------------- +dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we +dnl can define it successfully. +AC_DEFUN([CF_TRY_XOPEN_SOURCE],[ +AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[ + AC_TRY_COMPILE([ +#include +#include +#include +],[ +#ifndef _XOPEN_SOURCE +make an error +#endif], + [cf_cv_xopen_source=no], + [cf_save="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" + AC_TRY_COMPILE([ +#include +#include +#include +],[ +#ifdef _XOPEN_SOURCE +make an error +#endif], + [cf_cv_xopen_source=no], + [cf_cv_xopen_source=$cf_XOPEN_SOURCE]) + CPPFLAGS="$cf_save" + ]) +]) + +if test "$cf_cv_xopen_source" != no ; then + CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE) + CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE) + cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" + CF_ADD_CFLAGS($cf_temp_xopen_source) +fi +]) +dnl --------------------------------------------------------------------------- dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30 dnl ---------------- dnl Determine the type we should use for chtype (and attr_t, which is treated @@ -6493,6 +6685,32 @@ AC_SUBST(LIB_LINK) AC_SUBST(LIB_INSTALL) AC_SUBST(LIB_UNINSTALL) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_WITH_LIB_PREFIX version: 1 updated: 2012/01/21 19:28:10 +dnl ------------------ +dnl Allow the library-prefix to be overridden. OS/2 EMX originally had no +dnl "lib" prefix, e.g., because it used the dll naming convention. +dnl +dnl $1 = variable to set +AC_DEFUN([CF_WITH_LIB_PREFIX], +[ +AC_MSG_CHECKING(if you want to have a library-prefix) +AC_ARG_WITH(lib-prefix, + [ --with-lib-prefix override library-prefix], + [with_lib_prefix=$withval], + [with_lib_prefix=auto]) +AC_MSG_RESULT($with_lib_prefix) + +if test $with_lib_prefix = auto +then + CF_LIB_PREFIX($1) +elif test $with_lib_prefix = no +then + LIB_PREFIX= +else + LIB_PREFIX=$with_lib_prefix +fi ])dnl dnl --------------------------------------------------------------------------- dnl CF_WITH_PATH version: 10 updated: 2010/10/23 15:44:18 @@ -6558,7 +6776,50 @@ AC_SUBST($3)dnl ])dnl dnl --------------------------------------------------------------------------- -dnl CF_WITH_PTHREAD version: 3 updated: 2010/05/29 16:31:02 +dnl CF_WITH_PKG_CONFIG_LIBDIR version: 2 updated: 2011/12/10 18:58:47 +dnl ------------------------- +dnl Allow the choice of the pkg-config library directory to be overridden. +AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[ +if test "$PKG_CONFIG" != none ; then + AC_MSG_CHECKING(for $PKG_CONFIG library directory) + AC_ARG_WITH(pkg-config-libdir, + [ --with-pkg-config-libdir=XXX use given directory for installing pc-files], + [PKG_CONFIG_LIBDIR=$withval], + [PKG_CONFIG_LIBDIR=yes]) + + case x$PKG_CONFIG_LIBDIR in #(vi + x/*) #(vi + ;; + xyes) #(vi + # look for the library directory using the same prefix as the executable + cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'` + case x`(arch) 2>/dev/null` in #(vi + *64) #(vi + for cf_config in $cf_path/share $cf_path/lib64 $cf_path/lib32 $cf_path/lib + do + if test -d $cf_config/pkgconfig + then + PKG_CONFIG_LIBDIR=$cf_config/pkgconfig + break + fi + done + ;; + *) + PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig + ;; + esac + ;; + *) + ;; + esac + + AC_MSG_RESULT($PKG_CONFIG_LIBDIR) +fi + +AC_SUBST(PKG_CONFIG_LIBDIR) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_WITH_PTHREAD version: 5 updated: 2011/12/10 19:01:56 dnl --------------- dnl Check for POSIX thread library. AC_DEFUN([CF_WITH_PTHREAD], @@ -6574,23 +6835,28 @@ if test "$with_pthread" != no ; then AC_CHECK_HEADER(pthread.h,[ AC_DEFINE(HAVE_PTHREADS_H) - AC_MSG_CHECKING(if we can link with the pthread library) - cf_save_LIBS="$LIBS" - CF_ADD_LIB(pthread) - AC_TRY_LINK([ + for cf_lib_pthread in pthread c_r + do + AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library) + cf_save_LIBS="$LIBS" + CF_ADD_LIB($cf_lib_pthread) + AC_TRY_LINK([ #include ],[ - int rc = pthread_create(0,0,0,0); + int rc = pthread_create(0,0,0,0); + int r2 = pthread_mutexattr_settype(0, 0); ],[with_pthread=yes],[with_pthread=no]) - LIBS="$cf_save_LIBS" - AC_MSG_RESULT($with_pthread) - - if test "$with_pthread" = yes ; then - CF_ADD_LIB(pthread) - AC_DEFINE(HAVE_LIBPTHREADS) - else - AC_MSG_ERROR(Cannot link with pthread library) - fi + LIBS="$cf_save_LIBS" + AC_MSG_RESULT($with_pthread) + test "$with_pthread" = yes && break + done + + if test "$with_pthread" = yes ; then + CF_ADD_LIB($cf_lib_pthread) + AC_DEFINE(HAVE_LIBPTHREADS) + else + AC_MSG_ERROR(Cannot link with pthread library) + fi ]) fi ]) @@ -6658,7 +6924,7 @@ CF_NO_LEAKS_OPTION(valgrind, [USE_VALGRIND]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_XOPEN_SOURCE version: 37 updated: 2011/08/06 20:32:05 +dnl CF_XOPEN_SOURCE version: 42 updated: 2012/01/07 08:26:49 dnl --------------- dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions, dnl or adapt to the vendor's definitions to get equivalent functionality, @@ -6685,6 +6951,7 @@ darwin[[0-8]].*) #(vi ;; darwin*) #(vi cf_xopen_source="-D_DARWIN_C_SOURCE" + cf_XOPEN_SOURCE= ;; freebsd*|dragonfly*) #(vi # 5.x headers associate @@ -6702,16 +6969,24 @@ hpux*) #(vi ;; irix[[56]].*) #(vi cf_xopen_source="-D_SGI_SOURCE" + cf_XOPEN_SOURCE= ;; linux*|gnu*|mint*|k*bsd*-gnu) #(vi CF_GNU_SOURCE ;; mirbsd*) #(vi - # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks + # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks and other headers which use u_int / u_short types + cf_XOPEN_SOURCE= + CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) ;; netbsd*) #(vi cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw ;; +openbsd[[4-9]]*) #(vi + # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw + cf_xopen_source="-D_BSD_SOURCE" + cf_XOPEN_SOURCE=600 + ;; openbsd*) #(vi # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw ;; @@ -6724,36 +6999,11 @@ nto-qnx*) #(vi sco*) #(vi # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer ;; -solaris2.1[[0-9]]) #(vi - cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" - ;; -solaris2.[[1-9]]) #(vi +solaris2.*) #(vi cf_xopen_source="-D__EXTENSIONS__" ;; *) - AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[ - AC_TRY_COMPILE([#include ],[ -#ifndef _XOPEN_SOURCE -make an error -#endif], - [cf_cv_xopen_source=no], - [cf_save="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" - AC_TRY_COMPILE([#include ],[ -#ifdef _XOPEN_SOURCE -make an error -#endif], - [cf_cv_xopen_source=no], - [cf_cv_xopen_source=$cf_XOPEN_SOURCE]) - CPPFLAGS="$cf_save" - ]) -]) - if test "$cf_cv_xopen_source" != no ; then - CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE) - CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE) - cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" - CF_ADD_CFLAGS($cf_temp_xopen_source) - fi + CF_TRY_XOPEN_SOURCE CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) ;; esac @@ -6761,4 +7011,33 @@ esac if test -n "$cf_xopen_source" ; then CF_ADD_CFLAGS($cf_xopen_source) fi + +dnl In anything but the default case, we may have system-specific setting +dnl which is still not guaranteed to provide all of the entrypoints that +dnl _XOPEN_SOURCE would yield. +if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then + AC_MSG_CHECKING(if _XOPEN_SOURCE really is set) + AC_TRY_COMPILE([#include ],[ +#ifndef _XOPEN_SOURCE +make an error +#endif], + [cf_XOPEN_SOURCE_set=yes], + [cf_XOPEN_SOURCE_set=no]) + AC_MSG_RESULT($cf_XOPEN_SOURCE_set) + if test $cf_XOPEN_SOURCE_set = yes + then + AC_TRY_COMPILE([#include ],[ +#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE +make an error +#endif], + [cf_XOPEN_SOURCE_set_ok=yes], + [cf_XOPEN_SOURCE_set_ok=no]) + if test $cf_XOPEN_SOURCE_set_ok = no + then + AC_MSG_WARN(_XOPEN_SOURCE is lower than requested) + fi + else + CF_TRY_XOPEN_SOURCE + fi +fi ])