X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=configure.in;h=227453f7dd6d5a29c5c6b9f96f63aea3268962ce;hp=d7911209edba52439a8204d17ebc746eeb38f31d;hb=65ee0f2ca50c827bf271df7a087edd7da49f598d;hpb=efd59f16f336b4c4c698ff783e1723f3161026ef diff --git a/configure.in b/configure.in index d7911209..227453f7 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ 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 * @@ -28,14 +28,14 @@ dnl*************************************************************************** dnl dnl Author: Thomas E. Dickey 1995-on dnl -dnl $Id: configure.in,v 1.413 2007/04/14 19:52:26 tom Exp $ +dnl $Id: configure.in,v 1.456 2008/11/16 00:36:30 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.413 $) +AC_REVISION($Revision: 1.456 $) AC_INIT(ncurses/base/lib_initscr.c) AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin) @@ -122,6 +122,13 @@ AC_ARG_WITH(ada, [cf_with_ada=yes]) AC_MSG_RESULT($cf_with_ada) +AC_MSG_CHECKING(if you want to install manpages) +AC_ARG_WITH(manpages, + [ --without-manpages suppress install of manpages], + [cf_with_manpages=$withval], + [cf_with_manpages=yes]) +AC_MSG_RESULT($cf_with_manpages) + AC_MSG_CHECKING(if you want to build programs such as tic) AC_ARG_WITH(progs, [ --without-progs suppress build with programs (e.g., tic)], @@ -150,13 +157,28 @@ CF_PROG_INSTALL 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) @@ -314,9 +336,7 @@ if test "$with_gpm" != no ; then 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 @@ -348,14 +368,9 @@ AC_MSG_RESULT($LD_MODEL) 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]) @@ -415,6 +430,8 @@ if test "$use_database" != no ; then [ --with-hashed-db specify hashed-database library],, [with_hashed_db=no]) AC_MSG_RESULT($with_hashed_db) +else + with_hashed_db=no fi AC_MSG_CHECKING(for list of fallback descriptions) @@ -490,6 +507,20 @@ int main() { 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(12000,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, @@ -655,10 +686,10 @@ if test "$with_widec" = yes ; then 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 + CF_UTF8_LIB + if test "$cf_cv_utf8_lib" != no ; then NCURSES_LIBUTF8=1 fi fi @@ -718,6 +749,18 @@ NCURSES_TPARM_VARARGS=0 test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1 AC_SUBST(NCURSES_TPARM_VARARGS) +### use option --disable-tic-depends to make libtic not explicitly depend on ncurses/ncursesw +if test "$with_ticlib" != no ; then +AC_MSG_CHECKING(if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library) +AC_ARG_ENABLE(tic-depends, + [ --disable-tic-depends link tic library without explicit dependency on ncurses library], + [with_tic_depends=$enableval], + [with_tic_depends=yes]) +AC_MSG_RESULT($with_tic_depends) +else + with_tic_depends=no +fi + ### use option --with-bool to override bool's type AC_MSG_CHECKING(for type of bool) AC_ARG_WITH(bool, @@ -771,7 +814,7 @@ AC_MSG_RESULT($with_rcs_ids) test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS) ############################################################################### -CF_MAN_PAGES([ captoinfo clear infocmp infotocap tic toe tput ]) +CF_MAN_PAGES([ captoinfo clear infocmp infotocap tabs tic toe tput tset ]) ############################################################################### CF_HELP_MESSAGE(Extensions:) @@ -810,6 +853,40 @@ if test "$with_ext_const" = 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], @@ -909,42 +986,40 @@ AC_ARG_ENABLE(colorfgbg, 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_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) +# 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 - CF_NCURSES_ABI_6 +if test $cf_cv_weak_symbols = yes ; then + AC_DEFINE(USE_WEAK_SYMBOLS) fi -AC_SUBST(NCURSES_MOUSE_VERSION) + +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. +# 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], @@ -956,7 +1031,11 @@ if test "$with_reentrant" = yes ; then cf_cv_enable_opaque="NCURSES_INTERNALS" NCURSES_OPAQUE=1 NCURSES_SIZE_T=int - LIB_SUFFIX="t${LIB_SUFFIX}" + 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 @@ -1012,6 +1091,7 @@ if test "$with_echo" = yes; then 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) @@ -1023,9 +1103,9 @@ AC_ARG_ENABLE(warnings, [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 @@ -1139,14 +1219,8 @@ CF_SYS_TIME_SELECT ### 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 @@ -1221,9 +1295,20 @@ CF_SIZECHANGE 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 @@ -1255,6 +1340,20 @@ if test -n "$CXX" ; then 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 +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_ETIP_DEFINES @@ -1336,9 +1435,22 @@ AC_SUBST(USE_CXX_BOOL) 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) @@ -1438,7 +1550,7 @@ fi 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} " @@ -1472,14 +1584,7 @@ AC_SUBST(DFT_ARG_SUFFIX)dnl the string to append to "-lncurses" ("") 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) @@ -1494,7 +1599,7 @@ AC_MSG_CHECKING(c++ library-dependency 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) @@ -1541,12 +1646,12 @@ if test "$with_termlib" != no ; then if test "$with_termlib" != yes ; then TINFO_NAME=$with_termlib - TINFO_SUFFIX="`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" + 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_DEP_SUFFIX} + 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}" @@ -1568,12 +1673,26 @@ if test "$with_termlib" != no ; then else # the next lines are needed for linking libtic over libncurses TINFO_NAME=${LIB_NAME} - TINFO_SUFFIX=${DFT_DEP_SUFFIX} + TINFO_SUFFIX=${DFT_LIB_SUFFIX} TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX} - TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}" + if test "$with_tic_depends" = yes ; then + TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}" + else + TICS_LIST="$SHLIB_LIST" + fi 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) @@ -1583,10 +1702,20 @@ 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' && \ @@ -1632,6 +1761,11 @@ AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${ ### 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) @@ -1689,10 +1823,12 @@ 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" cf_with_cxx_binding="$cf_with_cxx_binding" +cf_with_manpages="$cf_with_manpages" host="$host" target="$target"