dnl***************************************************************************
-dnl Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
+dnl Copyright (c) 1998-2007,2008 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
dnl Author: Thomas E. Dickey 1995-on
dnl
-dnl $Id: configure.in,v 1.402 2007/02/17 22:52:40 tom Exp $
+dnl $Id: configure.in,v 1.450 2008/09/13 15:03:24 tom Exp $
dnl Process this file with autoconf to produce a configure script.
dnl
dnl See http://invisible-island.net/autoconf/ for additional information.
dnl
dnl ---------------------------------------------------------------------------
AC_PREREQ(2.13.20020210)
-AC_REVISION($Revision: 1.402 $)
+AC_REVISION($Revision: 1.450 $)
AC_INIT(ncurses/base/lib_initscr.c)
AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
CF_PROG_LINT
AC_PROG_LN_S
+AC_SYS_LONG_FILE_NAMES
+
+AC_MSG_CHECKING(if we should assume mixed-case filenames)
+AC_ARG_ENABLE(mixed-case,
+ [ --enable-mixed-case tic should assume mixed-case filenames],
+ [enable_mixedcase=$enableval],
+ [enable_mixedcase=auto])
+AC_MSG_RESULT($enable_mixedcase)
+if test "$enable_mixedcase" = "auto" ; then
+ CF_MIXEDCASE_FILENAMES
+else
+ cf_cv_mixedcase=$enable_mixedcase
+ if test "$enable_mixedcase" = "yes" ; then
+ AC_DEFINE(MIXEDCASE_FILENAMES)
+ fi
+fi
+
+# do this after mixed-case option (tags/TAGS is not as important as tic).
AC_PROG_MAKE_SET
CF_MAKE_TAGS
CF_MAKEFLAGS
-AC_SYS_LONG_FILE_NAMES
-CF_MIXEDCASE_FILENAMES
-
dnl These are standard among *NIX systems, but not when cross-compiling
AC_CHECK_TOOL(RANLIB, ranlib, ':')
AC_CHECK_TOOL(LD, ld, ld)
SHLIB_LIST="-lgpm $SHLIB_LIST"
fi
AC_DEFINE(HAVE_LIBGPM)
- AC_CHECK_LIB(gpm,Gpm_Wgetch,[
- AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
- ])
+ CF_CHECK_GPM_WGETCH
fi
CF_WITH_SYSMOUSE
case $DFT_LWR_MODEL in
shared)
-AC_MSG_CHECKING(if rpath option should be used)
-AC_ARG_ENABLE(rpath,
-[ --enable-rpath use rpath option when generating shared libraries],
-[cf_cv_ld_rpath=$enableval],
-[cf_cv_ld_rpath=no])
-AC_MSG_RESULT($cf_cv_ld_rpath)
+CF_ENABLE_RPATH
AC_MSG_CHECKING(if shared libraries should be relinked during install)
-AC_ARG_ENABLE(rpath,
+AC_ARG_ENABLE(relink,
[ --disable-relink relink shared libraries during install],
[cf_cv_do_relink=$enableval],
[cf_cv_do_relink=yes])
AC_MSG_RESULT($with_big_core)
test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE)
+### ISO C only guarantees 512-char strings, we have tables which load faster
+### when constructed using "big" strings. More than the C compiler, the awk
+### program is a limit on most vendor UNIX systems. Check that we can build.
+AC_MSG_CHECKING(if big-strings option selected)
+AC_ARG_ENABLE(big-strings,
+ [ --disable-big-strings assume compiler has only standard-size strings],
+ [with_big_strings=$enableval],
+ [CF_AWK_BIG_PRINTF(4000,with_big_strings)])
+AC_MSG_RESULT($with_big_strings)
+
+USE_BIG_STRINGS=0
+test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1
+AC_SUBST(USE_BIG_STRINGS)
+
### use option --enable-termcap to compile in the termcap fallback support
AC_MSG_CHECKING(if you want termcap-fallback support)
AC_ARG_ENABLE(termcap,
CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
# with_overwrite=no
NCURSES_CH_T=cchar_t
- AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc)
+ AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs)
if test "$ac_cv_func_putwc" != yes ; then
CF_LIBUTF8
if test "$cf_cv_libutf8" = yes ; then
fi
AC_SUBST(NCURSES_CONST)
+### use option --enable-ext-colors to turn on use of colors beyond 16.
+AC_MSG_CHECKING(if you want to use extended colors)
+AC_ARG_ENABLE(ext-colors,
+ [ --enable-ext-colors compile for 256-color support],
+ [with_ext_colors=$enableval],
+ [with_ext_colors=no])
+AC_MSG_RESULT($with_ext_colors)
+NCURSES_EXT_COLORS=0
+if test "$with_ext_colors" = yes ; then
+ if test "$with_widec" != yes ; then
+ AC_MSG_ERROR(This option applies only to wide-character library)
+ else
+ # cannot be ABI 5 since it changes sizeof(cchar_t)
+ CF_NCURSES_ABI_6
+ fi
+ NCURSES_EXT_COLORS=1
+ AC_DEFINE(NCURSES_EXT_COLORS)
+fi
+AC_SUBST(NCURSES_EXT_COLORS)
+
+### use option --enable-ext-mouse to modify coding to support 5-button mice
+AC_MSG_CHECKING(if you want to use extended mouse encoding)
+AC_ARG_ENABLE(ext-mouse,
+ [ --enable-ext-mouse compile for extended mouse-encoding],
+ [with_ext_mouse=$enableval],
+ [with_ext_mouse=no])
+AC_MSG_RESULT($with_ext_mouse)
+NCURSES_MOUSE_VERSION=1
+if test "$with_ext_mouse" = yes ; then
+ NCURSES_MOUSE_VERSION=2
+ CF_NCURSES_ABI_6
+fi
+AC_SUBST(NCURSES_MOUSE_VERSION)
+
AC_MSG_CHECKING(if you want \$NCURSES_NO_PADDING code)
AC_ARG_ENABLE(no-padding,
[ --enable-no-padding compile with $NCURSES_NO_PADDING code],
AC_MSG_RESULT($with_colorfgbg)
test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG)
-### use option --enable-ext-colors to turn on use of colors beyond 16.
-AC_MSG_CHECKING(if you want to use experimental extended colors)
-AC_ARG_ENABLE(ext-colors,
- [ --enable-ext-colors compile for experimental 256-color support],
- [with_ext_colors=$enableval],
- [with_ext_colors=no])
-AC_MSG_RESULT($with_ext_colors)
-NCURSES_EXT_COLORS=0
-if test "$with_ext_colors" = yes ; then
- if test "$with_widec" != yes ; then
- AC_MSG_WARN(This option applies only to wide-character library)
- else
- # cannot be ABI 5 since it changes sizeof(cchar_t)
- CF_NCURSES_ABI_6
- fi
- NCURSES_EXT_COLORS=1
- AC_DEFINE(NCURSES_EXT_COLORS)
+# This is still experimental (20080329), but should ultimately be moved to
+# the script-block --with-normal, etc.
+CF_WITH_PTHREAD
+
+AC_MSG_CHECKING(if you want to use weak-symbols for pthreads)
+AC_ARG_ENABLE(weak-symbols,
+ [ --enable-weak-symbols enable weak-symbols for pthreads],
+ [use_weak_symbols=$withval],
+ [use_weak_symbols=no])
+AC_MSG_RESULT($use_weak_symbols)
+if test "$use_weak_symbols" = yes ; then
+ CF_WEAK_SYMBOLS
+else
+ cf_cv_weak_symbols=no
fi
-AC_SUBST(NCURSES_EXT_COLORS)
-### use option --enable-ext-mouse to modify coding to support 5-button mice
-AC_MSG_CHECKING(if you want to use experimental extended mouse encoding)
-AC_ARG_ENABLE(ext-mouse,
- [ --enable-ext-mouse compile for experimental mouse-encoding],
- [with_ext_mouse=$enableval],
- [with_ext_mouse=no])
-AC_MSG_RESULT($with_ext_mouse)
-NCURSES_MOUSE_VERSION=1
-if test "$with_ext_mouse" = yes ; then
- NCURSES_MOUSE_VERSION=2
+if test $cf_cv_weak_symbols = yes ; then
+ AC_DEFINE(USE_WEAK_SYMBOLS)
+fi
+
+PTHREAD=
+if test "$with_pthread" = "yes" ; then
+ AC_DEFINE(USE_PTHREADS)
+ enable_reentrant=yes
+ if test $cf_cv_weak_symbols = yes ; then
+ PTHREAD=-lpthread
+ fi
+fi
+AC_SUBST(PTHREAD)
+
+# Reentrant code has to be opaque; there's little advantage to making ncurses
+# opaque outside of that, so there is no --enable-opaque option. We can use
+# this option without --with-pthreads, but this will be always set for
+# pthreads.
+AC_MSG_CHECKING(if you want experimental reentrant code)
+AC_ARG_ENABLE(reentrant,
+ [ --enable-reentrant compile with experimental reentrant code],
+ [with_reentrant=$enableval],
+ [with_reentrant=no])
+AC_MSG_RESULT($with_reentrant)
+if test "$with_reentrant" = yes ; then
+ cf_cv_enable_reentrant=1
+ cf_cv_enable_opaque="NCURSES_INTERNALS"
+ NCURSES_OPAQUE=1
+ NCURSES_SIZE_T=int
+ if test $cf_cv_weak_symbols = yes ; then
+ CF_REMOVE_LIB(LIBS,$LIBS,pthread)
+ else
+ LIB_SUFFIX="t${LIB_SUFFIX}"
+ fi
+ AC_DEFINE(USE_REENTRANT)
CF_NCURSES_ABI_6
+else
+ cf_cv_enable_reentrant=0
+ cf_cv_enable_opaque="NCURSES_OPAQUE"
+ NCURSES_OPAQUE=0
+ NCURSES_SIZE_T=short
fi
-AC_SUBST(NCURSES_MOUSE_VERSION)
+AC_SUBST(cf_cv_enable_reentrant)
+AC_SUBST(cf_cv_enable_opaque)
+AC_SUBST(NCURSES_OPAQUE)
+AC_SUBST(NCURSES_SIZE_T)
AC_MSG_CHECKING(if you want experimental safe-sprintf code)
AC_ARG_ENABLE(safe-sprintf,
else
ECHO_LINK='@ echo linking $@ ... ;'
test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
+ test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent"
fi
AC_MSG_RESULT($with_echo)
AC_SUBST(ECHO_LINK)
[with_warnings=$enableval])
AC_MSG_RESULT($with_warnings)
-if test -n "$with_warnings"; then
+if test "x$with_warnings" = "xyes"; then
ADAFLAGS="$ADAFLAGS -gnatg"
- CF_GCC_WARNINGS
+ CF_GCC_WARNINGS(Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum)
if test "$cf_with_cxx" = yes ; then
CF_GXX_WARNINGS(Wno-unused)
fi
### checks for compiler characteristics
AC_LANG_C
AC_C_CONST
-AC_C_INLINE
-
-NCURSES_INLINE=
-if test "$ac_cv_c_inline" != no ; then
- AC_DEFINE(CC_HAS_INLINE_FUNCS)
- NCURSES_INLINE=inline
-fi
-AC_SUBST(NCURSES_INLINE)
+CF_C_INLINE(NCURSES_INLINE,1200)
+CF_SIG_ATOMIC_T
if test $NCURSES_CHTYPE = auto ; then
CF_TYPEOF_CHTYPE
else
cf_cv_typeof_chtype=$NCURSES_CHTYPE
fi
+test "$cf_cv_typeof_chtype" = unsigned && cf_cv_typeof_chtype=""
AC_SUBST(cf_cv_typeof_chtype)
CF_UNSIGNED_LITERALS
cf_cv_1UL="1"
-test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
-test "$cf_cv_typeof_chtype" = long && cf_cv_1UL="${cf_cv_1UL}L"
+test ".$cf_cv_unsigned_literals" = .yes && cf_cv_1UL="${cf_cv_1UL}U"
+test ".$cf_cv_typeof_chtype" = .long && cf_cv_1UL="${cf_cv_1UL}L"
AC_SUBST(cf_cv_1UL)
if test $NCURSES_MMASK_T = auto ; then
else
cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
fi
+test "$cf_cv_typeof_mmask_t" = unsigned && cf_cv_typeof_mmask_t=""
AC_SUBST(cf_cv_typeof_mmask_t)
### Checks for external-data
CF_FUNC_MEMMOVE
CF_FUNC_POLL
+# special check for test/ditto.c
+CF_FUNC_OPENPTY
+if test "$cf_cv_func_openpty" != no ; then
+ AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>)
+ AC_DEFINE(USE_XTERM_PTY)
+ if test "$cf_cv_lib_util" = yes ; then
+ TEST_LIBS="-lutil $TEST_LIBS"
+ fi
+fi
+AC_SUBST(TEST_LIBS)
+
if test "$with_hashed_db" != no ; then
AC_DEFINE(USE_HASHED_DB)
- CF_HASHED_DB
+ CF_HASHED_DB($with_hashed_db)
fi
dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS
;;
esac
- AC_CHECK_HEADERS(typeinfo)
+ AC_CHECK_HEADERS(iostream typeinfo)
+
+ 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)
+ fi
+ fi
CF_BOOL_DECL
CF_BOOL_SIZE
CF_HELP_MESSAGE(Ada95 Binding Options:)
+dnl If the Ada95 source-tree is present, add that to the build unless it will
+dnl not work, or was not requested.
+if test -f "${srcdir}/Ada95/Makefile.in" ; then
+
+dnl libtool does not know anything about GNAT, though a change made in 1998
+dnl provided for it "someday". Disable the ada subtree if we are using
+dnl libtool -TD 20070714
+if test "$cf_with_ada" != "no" ; then
+ if test "$with_libtool" != "no"; then
+ AC_MSG_WARN(libtool does not support Ada - disabling feature)
+ cf_with_ada=no
+ fi
+fi
+
dnl Check for availability of GNU Ada Translator (GNAT).
dnl At the moment we support no other Ada95 compiler.
-if test -f "${srcdir}/Ada95/Makefile.in" ; then
if test "$cf_with_ada" != "no" ; then
cf_ada_make=gnatmake
AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
fi
fi
+else
+ cf_with_ada=no
fi
### Construct the ncurses library-subsets, if any, from this set of keywords:
AC_MSG_CHECKING(for library subsets)
LIB_SUBSETS=
-if test "$cf_with_progs" = yes || test "$with_ticlib" != no; then
+if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then
LIB_SUBSETS="${LIB_SUBSETS}ticlib"
if test "$with_ticlib" != no ; then
LIB_SUBSETS="${LIB_SUBSETS} "
AC_MSG_RESULT($DFT_ARG_SUFFIX)
AC_MSG_CHECKING(default library-dependency suffix)
-CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_DEP_SUFFIX)dnl
-if test $DFT_LWR_MODEL = shared ; then
- case $cf_cv_system_name in #(vi
- cygwin*)
- DFT_DEP_SUFFIX=".dll.a"
- ;;
- esac
-fi
+CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_LIB_SUFFIX,DFT_DEP_SUFFIX)dnl
AC_SUBST(DFT_DEP_SUFFIX)dnl the corresponding library-suffix (".a")
AC_MSG_RESULT($DFT_DEP_SUFFIX)
if test "$with_libtool" != "no"; then
CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
else
- CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX)dnl we normally make a static library
+ CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX,CXX_DEP_SUFFIX)dnl we normally make a static library
fi
AC_MSG_RESULT($CXX_LIB_SUFFIX)
AC_SUBST(CXX_LIB_SUFFIX)
fi
# do not want -ldl in build except as needed for -lncurses dependency
-CF_REMOVE_LIB(LIBS,$LIBS,dl)
+if test "$with_dlsym" = yes ; then
+if test $DFT_LWR_MODEL = shared || \
+ test $DFT_LWR_MODEL = libtool ; then
+ CF_REMOVE_LIB(LIBS,$LIBS,dl)
+fi
+fi
### Set up low-level terminfo dependencies for makefiles.
# TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but
# do not need libdl
TICS_LIST=
-CF_REMOVE_LIB(TINFO_LIST,$SHLIB_LIST,dl)
+if test "$with_dlsym" = yes ; then
+ CF_REMOVE_LIB(TINFO_LIST,$SHLIB_LIST,dl)
+fi
if test "$with_ticlib" != no ; then
if test "$with_termlib" != yes ; then
TINFO_NAME=$with_termlib
+ TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
TINFO_LIB_SUFFIX="${with_termlib}"
else
+ TINFO_SUFFIX=${DFT_LIB_SUFFIX}
TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}"
TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}"
fi
else
# the next lines are needed for linking libtic over libncurses
- TINFO_NAME=${LIB_NAME}${DFT_ARG_SUFFIX}
- TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
+ TINFO_NAME=${LIB_NAME}
+ TINFO_SUFFIX=${DFT_LIB_SUFFIX}
+ TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX}
+ TICS_LIST="$SHLIB_LIST"
TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
fi
+
+if test "$DFT_LWR_MODEL" = shared ; then
+ case $cf_cv_system_name in #(vi
+ cygwin*)
+ # "lib" files have ".dll.a" suffix, "cyg" files have ".dll"
+ TINFO_SUFFIX=.dll
+ ;;
+ esac
+fi
+
AC_SUBST(TINFO_ARG_SUFFIX)
AC_SUBST(TINFO_DEP_SUFFIX)
AC_SUBST(TINFO_LIB_SUFFIX)
AC_SUBST(TINFO_ARGS)
-CF_REMOVE_LIB(TICS_LIST,$TICS_LIST,dl)
+if test "$with_dlsym" = yes ; then
+ CF_REMOVE_LIB(TICS_LIST,$TICS_LIST,dl)
+fi
+
+if test "$DFT_LWR_MODEL" = "libtool"; then
+ OBJEXT=lo
+fi
# needed for Ada95
TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
AC_SUBST(TINFO_ARGS2)
+case $DFT_LWR_MODEL in
+normal|debug|profile)
+ CF_LDFLAGS_STATIC
+ ;;
+esac
+
AC_MSG_CHECKING(where we will install curses.h)
test "$with_overwrite" = no && \
test "x$includedir" = 'x${prefix}/include' && \
### with the appropriate compile-rules.
CF_SRC_MODULES($modules_to_build)
+
+if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then
+ SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses-config"
+fi
+
CF_DIRS_TO_MAKE
AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATHSEP')
### Now that we're done running tests, add the compiler-warnings, if any
CF_ADD_CFLAGS($EXTRA_CFLAGS)
+### If we're building with rpath, try to link non-standard libs that way too.
+if test "$DFT_LWR_MODEL" = "shared"; then
+ CF_RPATH_HACK
+fi
+
### Define substitutions for header files to avoid name-pollution
CF_SUBST_IF(["$cf_cv_have_tcgetattr" = yes], HAVE_TCGETATTR, 1, 0)
CF_SUBST_IF(["$ac_cv_header_termio_h" = yes], HAVE_TERMIO_H, 1, 0)
TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
TINFO_NAME="$TINFO_NAME"
+TINFO_SUFFIX="$TINFO_SUFFIX"
TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX"
TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX"
TICS_NAME="$TICS_NAME"
cf_cv_do_relink="$cf_cv_do_relink"
cf_cv_do_symlinks="$cf_cv_do_symlinks"
cf_cv_enable_lp64="$cf_cv_enable_lp64"
+cf_cv_enable_opaque="$cf_cv_enable_opaque"
cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
cf_cv_rel_version="$cf_cv_rel_version"
cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
+cf_cv_shared_soname='$cf_cv_shared_soname'
cf_cv_shlib_version="$cf_cv_shlib_version"
cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix"
cf_cv_system_name="$cf_cv_system_name"