X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=aclocal.m4;h=5a558d0c2a2ad4e3203675c5a0dc9b70402055d1;hp=343fc055be7c93db9545eeb6fe83dbe893f2b2ee;hb=c13e57306ae5c4431fddd0fe856c3bcae6aeeb2c;hpb=1559c1ba9c1d51764c46cb99be22a14deea5ce60 diff --git a/aclocal.m4 b/aclocal.m4 index 343fc055..5a558d0c 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -28,7 +28,7 @@ dnl*************************************************************************** dnl dnl Author: Thomas E. Dickey 1995-on dnl -dnl $Id: aclocal.m4,v 1.414 2007/01/27 22:53:29 tom Exp $ +dnl $Id: aclocal.m4,v 1.435 2007/07/14 13:40:10 tom Exp $ dnl Macros used in NCURSES auto-configuration script. dnl dnl These macros are maintained separately from NCURSES. The copyright on @@ -612,6 +612,50 @@ fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_CHECK_GPM_WGETCH version: 1 updated: 2007/04/28 14:38:06 +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 < +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 '\' | 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 -f 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_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18 dnl ----------------- dnl Check if the C++ compiler accepts duplicate parameter initialization. This @@ -703,82 +747,33 @@ fi test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_CPP_VSCAN_FUNC version: 5 updated: 2001/12/02 01:39:28 -dnl ----------------- -dnl Check if the g++ compiler supports vscan function (not a standard feature). -AC_DEFUN([CF_CPP_VSCAN_FUNC], -[ -if test -n "$CXX"; then - -AC_LANG_SAVE -AC_LANG_CPLUSPLUS -AC_CHECK_HEADERS(strstream.h) - -AC_CACHE_CHECK(if $CXX supports vscan function,cf_cv_cpp_vscan_func,[ - for cf_vscan_func in strstream strstream_cast stdio - do - case $cf_vscan_func in #(vi - stdio) cf_vscan_defs=USE_STDIO_VSCAN ;; #(vi - strstream) cf_vscan_defs=USE_STRSTREAM_VSCAN ;; - strstream_cast) cf_vscan_defs=USE_STRSTREAM_VSCAN_CAST ;; - esac - AC_TRY_LINK([ -#include -#include -#define $cf_vscan_defs 1 -#if defined(USE_STDIO_VSCAN) -#elif defined(HAVE_STRSTREAM_H) && defined(USE_STRSTREAM_VSCAN) -#include -#endif - -int scanw(const char* fmt, ...) -{ - int result = -1; - char buf[BUFSIZ]; - - va_list args; - va_start(args, fmt); -#if defined(USE_STDIO_VSCAN) - if (::vsscanf(buf, fmt, args) != -1) - result = 0; -#elif defined(USE_STRSTREAM_VSCAN) - strstreambuf ss(buf, sizeof(buf)); - if (ss.vscan(fmt, args) != -1) - result = 0; -#elif defined(USE_STRSTREAM_VSCAN_CAST) - strstreambuf ss(buf, sizeof(buf)); - if (ss.vscan(fmt, (_IO_va_list)args) != -1) - result = 0; -#else -#error case $cf_vscan_func failed -#endif - va_end(args); - return result; -} -],[int tmp, foo = scanw("%d", &tmp)], - [cf_cv_cpp_vscan_func=$cf_vscan_func; break], - [cf_cv_cpp_vscan_func=no]) - test "$cf_cv_cpp_vscan_func" != no && break - done -]) - -AC_LANG_RESTORE +dnl CF_C_INLINE version: 1 updated: 2007/04/28 15:03:44 +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 "$GCC" = yes + then + AC_CACHE_CHECK(if gcc 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 - -case $cf_cv_cpp_vscan_func in #(vi -stdio) #(vi - AC_DEFINE(CPP_HAS_VSCAN_FUNC) - AC_DEFINE(USE_STDIO_VSCAN) - ;; -strstream) - AC_DEFINE(CPP_HAS_VSCAN_FUNC) - AC_DEFINE(USE_STRSTREAM_VSCAN) - ;; -strstream_cast) - AC_DEFINE(CPP_HAS_VSCAN_FUNC) - AC_DEFINE(USE_STRSTREAM_VSCAN_CAST) - ;; -esac +AC_SUBST($1) ])dnl dnl --------------------------------------------------------------------------- dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52 @@ -1159,7 +1154,7 @@ if test "$GCC" = yes ; then fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_GCC_WARNINGS version: 20 updated: 2005/08/06 18:37:29 +dnl CF_GCC_WARNINGS version: 21 updated: 2007/06/27 18:12:15 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: @@ -1205,7 +1200,7 @@ then AC_CHECKING([for $CC warning options]) cf_save_CFLAGS="$CFLAGS" EXTRA_CFLAGS="-Wall" - for cf_opt in $1 \ + for cf_opt in \ wd1419 \ wd1682 \ wd1683 \ @@ -1778,7 +1773,7 @@ AC_MSG_RESULT($cf_cv_have_isascii) test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_LARGEFILE version: 6 updated: 2006/09/23 19:07:52 +dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50 dnl ------------ dnl Add checks for large file support. AC_DEFUN([CF_LARGEFILE],[ @@ -1796,6 +1791,7 @@ ifdef([AC_FUNC_FSEEKO],[ # 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([ @@ -1816,6 +1812,48 @@ ifdef([AC_FUNC_FSEEKO],[ ]) ]) dnl --------------------------------------------------------------------------- +dnl CF_LDFLAGS_STATIC version: 2 updated: 2007/04/28 15:25:27 +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 + LDFLAGS_STATIC=-static + LDFLAGS_SHARED=-dynamic +else + case $cf_cv_system_name in #( + aix[[45]]*) #( 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 + +AC_SUBST(LDFLAGS_STATIC) +AC_SUBST(LDFLAGS_SHARED) +]) +dnl --------------------------------------------------------------------------- dnl CF_LIBUTF8 version: 2 updated: 2002/01/19 22:51:32 dnl ---------- dnl Check for libutf8 @@ -1852,11 +1890,11 @@ ifelse($1,,,[$1=$LIB_PREFIX]) AC_SUBST(LIB_PREFIX) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_LIB_RULES version: 43 updated: 2007/01/13 14:44:50 +dnl CF_LIB_RULES version: 50 updated: 2007/03/24 18:26:59 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 LIBRARIES list in +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 @@ -1875,7 +1913,6 @@ do continue elif test -f $srcdir/$cf_dir/modules; then - IMPORT_LIB= SHARED_LIB= LIBS_TO_MAKE= for cf_item in $cf_LIST_MODELS @@ -1922,9 +1959,7 @@ do # 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 - SHARED_LIB="cyg${cf_dir}\${ABI_VERSION}.dll" - IMPORT_LIB="${cf_prefix}${cf_dir}.dll.a" - LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/\${SHARED_LIB} ../lib/\${IMPORT_LIB}" + LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}\${ABI_VERSION}.dll" continue fi fi @@ -1961,7 +1996,6 @@ do fi sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \ - -e "s%@IMPORT_LIB@%$IMPORT_LIB%" \ -e "s%@SHARED_LIB@%$SHARED_LIB%" \ $cf_dir/Makefile >$cf_dir/Makefile.out mv $cf_dir/Makefile.out $cf_dir/Makefile @@ -1986,7 +2020,7 @@ do case $cf_subset in *base*) ;; - termlib*) + *termlib*) cf_libname=$TINFO_LIB_SUFFIX if test -n "${DFT_ARG_SUFFIX}" ; then # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX @@ -2040,8 +2074,11 @@ do prefix=$cf_prefix \ suffix=$cf_suffix \ subset=$cf_subset \ + 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" \ @@ -2138,7 +2175,7 @@ uninstall.man :: distclean :: rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h - rm -f headers.sh headers.sed + rm -f headers.sh headers.sed mk_shared_lib.sh rm -rf \${DIRS_TO_MAKE} CF_EOF @@ -2770,7 +2807,7 @@ AC_ARG_WITH(manpage-tbl, AC_MSG_RESULT($MANPAGE_TBL) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_MAN_PAGES version: 32 updated: 2006/12/24 15:18:27 +dnl CF_MAN_PAGES version: 35 updated: 2007/03/31 11:47:29 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 @@ -2836,7 +2873,7 @@ NCURSES_PATCH="$NCURSES_PATCH" NCURSES_OSPEED="$NCURSES_OSPEED" TERMINFO="$TERMINFO" -MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs" +MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh" INSTALL="$INSTALL" INSTALL_DATA="$INSTALL_DATA" @@ -2888,12 +2925,12 @@ case \$i in #(vi # replace variables in man page if test ! -f $cf_man_alias ; then cat >>$cf_man_alias <<-CF_EOF2 - s,@DATADIR@,\$datadir, - s,@TERMINFO@,\$TERMINFO, - s,@NCURSES_MAJOR@,\$NCURSES_MAJOR, - s,@NCURSES_MINOR@,\$NCURSES_MINOR, - s,@NCURSES_PATCH@,\$NCURSES_PATCH, - s,@NCURSES_OSPEED@,\$NCURSES_OSPEED, + s,@DATADIR@,\$datadir,g + s,@TERMINFO@,\$TERMINFO,g + s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g + s,@NCURSES_MINOR@,\$NCURSES_MINOR,g + s,@NCURSES_PATCH@,\$NCURSES_PATCH,g + s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g CF_EOF ifelse($1,,,[ for cf_name in $1 @@ -3010,6 +3047,7 @@ cat >>$cf_edit_man <>$cf_edit_man <mk_shared_lib.sh <<-CF_EOF + #!/bin/sh + SHARED_LIB=\[$]1 + IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -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 ;; darwin*) EXTRA_CFLAGS="-no-cpp-precomp" CC_SHARED_OPTS="-dynamic" - MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${DESTDIR}${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]' + MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]' test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi cf_cv_shlib_version_infix=yes AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [ @@ -4041,6 +4108,41 @@ done fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12 +dnl --------------- +dnl signal handler, but there are some gcc depedencies in that recommendation. +dnl Try anyway. +AC_DEFUN([CF_SIG_ATOMIC_T], +[ +AC_MSG_CHECKING(for signal global datatype) +AC_CACHE_VAL(cf_cv_sig_atomic_t,[ + for cf_type in \ + "volatile sig_atomic_t" \ + "sig_atomic_t" \ + "int" + do + AC_TRY_COMPILE([ +#include +#include +#include + +extern $cf_type x; +$cf_type x; +static void handler(int sig) +{ + x = 5; +}], + [signal(SIGINT, handler); + x = 1], + [cf_cv_sig_atomic_t=$cf_type], + [cf_cv_sig_atomic_t=no]) + test "$cf_cv_sig_atomic_t" != no && break + done + ]) +AC_MSG_RESULT($cf_cv_sig_atomic_t) +test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t) +])dnl +dnl --------------------------------------------------------------------------- dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16 dnl ------------- dnl Check for definitions & structures needed for window size-changing @@ -4641,7 +4743,7 @@ if test "$with_gpm" != no ; then fi ]) dnl --------------------------------------------------------------------------- -dnl CF_WITH_LIBTOOL version: 13 updated: 2007/01/27 17:52:16 +dnl CF_WITH_LIBTOOL version: 18 updated: 2007/04/08 20:02:38 dnl --------------- dnl Provide a configure option to incorporate libtool. Define several useful dnl symbols for the makefile rules. @@ -4690,7 +4792,7 @@ LIB_PREP="$RANLIB" # doing: LIB_CLEAN= LIB_COMPILE= -LIB_LINK= +LIB_LINK='${CC}' LIB_INSTALL= LIB_UNINSTALL= @@ -4716,12 +4818,12 @@ ifdef([AC_PROG_LIBTOOL],[ AC_MSG_ERROR(Cannot find libtool) fi ])dnl - LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` -o' - LIB_OBJECT='${OBJECTS}.o=.lo)' + LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o' + LIB_OBJECT='${OBJECTS:.o=.lo}' LIB_SUFFIX=.la LIB_CLEAN='${LIBTOOL} --mode=clean' LIB_COMPILE='${LIBTOOL} --mode=compile' - LIB_LINK='${LIBTOOL} --mode=link' + LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}' LIB_INSTALL='${LIBTOOL} --mode=install' LIB_UNINSTALL='${LIBTOOL} --mode=uninstall' LIB_PREP=: @@ -4735,7 +4837,7 @@ ifdef([AC_PROG_LIBTOOL],[ 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.]].*//'` AC_MSG_RESULT($cf_cv_libtool_version) if test -z "$cf_cv_libtool_version" ; then - AC_MSG_ERROR(This is not libtool) + AC_MSG_ERROR(This is not GNU libtool) fi # special hack to add --tag option for C++ compiler @@ -4756,6 +4858,7 @@ test -z "$LIBTOOL" && ECHO_LT= AC_SUBST(LIBTOOL) AC_SUBST(LIBTOOL_CXX) +AC_SUBST(LIBTOOL_OPTS) AC_SUBST(LIB_CREATE) AC_SUBST(LIB_OBJECT) @@ -4770,7 +4873,7 @@ AC_SUBST(LIB_UNINSTALL) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_WITH_PATH version: 7 updated: 2006/08/03 15:20:08 +dnl CF_WITH_PATH version: 8 updated: 2007/05/13 13:16:35 dnl ------------ dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just dnl defaulting to yes/no. @@ -4784,7 +4887,9 @@ dnl AC_DEFUN([CF_WITH_PATH], [AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),, ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl +if ifelse($5,,true,[test -n "$5"]) ; then CF_PATH_SYNTAX(withval) +fi $3="$withval" AC_SUBST($3)dnl ])dnl @@ -4894,7 +4999,7 @@ CF_NO_LEAKS_OPTION(valgrind, [USE_VALGRIND]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_XOPEN_SOURCE version: 24 updated: 2006/04/02 16:41:09 +dnl CF_XOPEN_SOURCE version: 25 updated: 2007/01/29 18:36:38 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, @@ -4928,7 +5033,7 @@ hpux*) #(vi irix[[56]].*) #(vi CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE" ;; -linux*|gnu*) #(vi +linux*|gnu*|k*bsd*-gnu) #(vi CF_GNU_SOURCE ;; mirbsd*) #(vi