ncurses 5.6 - patch 20070421
[ncurses.git] / configure.in
index 34b5c0a191e53b14d16a8ce93f57b82fbaf7e5d8..de761f03b0d9d0ba513396568fa1de3ab4a7243e 100644 (file)
@@ -1,5 +1,5 @@
 dnl***************************************************************************
-dnl Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+dnl Copyright (c) 1998-2006,2007 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.383 2006/12/17 01:26:06 tom Exp $
+dnl $Id: configure.in,v 1.414 2007/04/19 20:04:08 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.383 $)
+AC_REVISION($Revision: 1.414 $)
 AC_INIT(ncurses/base/lib_initscr.c)
 AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
 
@@ -255,6 +255,9 @@ CF_UPPER(DFT_UPR_MODEL,$DFT_LWR_MODEL)dnl
 AC_SUBST(DFT_LWR_MODEL)dnl     the default model ("normal")
 AC_SUBST(DFT_UPR_MODEL)dnl     the default model ("NORMAL")
 
+TICS_NAME=tic
+AC_SUBST(TICS_NAME)
+
 TINFO_NAME=tinfo
 AC_SUBST(TINFO_NAME)
 
@@ -280,6 +283,13 @@ AC_ARG_WITH(termlib,
        [with_termlib=no])
 AC_MSG_RESULT($with_termlib)
 
+AC_MSG_CHECKING(if you want to build a separate tic library)
+AC_ARG_WITH(ticlib,
+       [  --with-ticlib           generate separate tic library],
+       [with_ticlib=$withval],
+       [with_ticlib=no])
+AC_MSG_RESULT($with_ticlib)
+
 ### Checks for special libraries, must be done up-front.
 SHLIB_LIST=""
 CF_WITH_GPM
@@ -336,12 +346,22 @@ esac
 AC_SUBST(LD_MODEL)dnl          the type of link (e.g., -g or -pg)
 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)
+AC_MSG_CHECKING(if shared libraries should be relinked during install)
+AC_ARG_ENABLE(rpath,
+[  --disable-relink        relink shared libraries during install],
+[cf_cv_do_relink=$enableval],
+[cf_cv_do_relink=yes])
+AC_MSG_RESULT($cf_cv_do_relink)
+       ;;
+esac
 
 CF_SHARED_OPTS
 if test "$CC_SHARED_OPTS" = "unknown"; then
@@ -487,6 +507,10 @@ if test "$with_termcap" != "yes" ; then
        AC_DEFINE(PURE_TERMINFO)
 else
 
+if test "$with_ticlib" != no ; then
+       AC_ERROR(Options --with-ticlib and --enable-termcap cannot be combined)
+fi
+
 AC_DEFINE(USE_TERMCAP)
 AC_MSG_CHECKING(for list of termcap files)
 CF_WITH_PATHLIST(termpath,
@@ -683,7 +707,7 @@ AC_SUBST(cf_cv_enable_lp64)
 
 CF_LARGEFILE
 
-###   use option --disable-tparm-varargs to make tparm() conform to X/Open 
+###   use option --disable-tparm-varargs to make tparm() conform to X/Open
 AC_MSG_CHECKING(if you want tparm not to use X/Open fixed-parameter list)
 AC_ARG_ENABLE(tparm-varargs,
        [  --disable-tparm-varargs compile tparm() without varargs interface],
@@ -802,7 +826,7 @@ else
 fi
 AC_MSG_CHECKING(if you want to use signed Boolean array in term.h)
 AC_ARG_ENABLE(signed-char,
-       [  --enable-signed-char    compile with SIGWINCH handler],
+       [  --enable-signed-char    compile using signed Boolean's in term.h],
        [with_signed_char=$enableval],
        [with_signed_char=no])
 AC_MSG_RESULT($with_signed_char)
@@ -895,7 +919,7 @@ 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)
+               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
@@ -919,6 +943,33 @@ if test "$with_ext_mouse" = yes ; then
 fi
 AC_SUBST(NCURSES_MOUSE_VERSION)
 
+# Reentrant code has to be opaque; there's little advantage to making ncurses
+# opaque outside of that, so there is no --enable-opaque option.
+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
+       LIB_SUFFIX="t${LIB_SUFFIX}"
+       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(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,
        [  --enable-safe-sprintf   compile with experimental safe-sprintf code],
@@ -1089,6 +1140,7 @@ CF_SYS_TIME_SELECT
 AC_LANG_C
 AC_C_CONST
 AC_C_INLINE
+CF_SIG_ATOMIC_T
 
 NCURSES_INLINE=
 if test "$ac_cv_c_inline" != no ; then
@@ -1102,12 +1154,13 @@ if test $NCURSES_CHTYPE = auto ; then
 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
@@ -1115,6 +1168,7 @@ 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
@@ -1200,14 +1254,13 @@ if test -n "$CXX" ; then
                ;;
        esac
 
-       AC_CHECK_HEADERS(typeinfo)
+       AC_CHECK_HEADERS(iostream typeinfo)
 
        CF_BOOL_DECL
        CF_BOOL_SIZE
        CF_ETIP_DEFINES
        CF_CPP_PARAM_INIT
        CF_CPP_STATIC_CAST
-       CF_CPP_VSCAN_FUNC
 
        CXX_AR='$(AR)'
        CXX_AR_OPTS='$(AR_OPTS)'
@@ -1369,22 +1422,44 @@ end conftest;],[cf_cv_pragma_unreferenced=yes],[cf_cv_pragma_unreferenced=no])
 
 fi
 fi
+else
+   cf_with_ada=no
 fi
 
-### Construct the library-subsets, if any, from this set of keywords:
-### none, base, ext_funcs, ext_tinfo, termlib, widechar (see CF_LIB_RULES).
+### Construct the ncurses library-subsets, if any, from this set of keywords:
+###    none, base, ext_funcs, ext_tinfo, ticlib, termlib, widechar
+###
+### ticlib modules may be a separate library, otherwise contained in termlib.
+### termlib modules may be a separate library, otherwise contained in ncurses.
+###
+### The of "+" or " " between the tokens controls the way the script
+### chooses to split module lists into libraries.
+###
+### (see CF_LIB_RULES).
 AC_MSG_CHECKING(for library subsets)
+LIB_SUBSETS=
+
+if test "$cf_with_progs" = yes || test "$with_ticlib" != no; then
+       LIB_SUBSETS="${LIB_SUBSETS}ticlib"
+       if test "$with_ticlib" != no ; then
+               LIB_SUBSETS="${LIB_SUBSETS} "
+       else
+               LIB_SUBSETS="${LIB_SUBSETS}+"
+       fi
+fi
+
+LIB_SUBSETS="${LIB_SUBSETS}termlib"
+test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
 if test "$with_termlib" != no ; then
-       LIB_SUBSETS="termlib"
-       test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
        LIB_SUBSETS="${LIB_SUBSETS} "
 else
-       LIB_SUBSETS="termlib+"
-       test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}ext_tinfo+"
+       LIB_SUBSETS="${LIB_SUBSETS}+"
 fi
+
 LIB_SUBSETS="${LIB_SUBSETS}base"
 test "$with_widec"     = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
 test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
+
 AC_MSG_RESULT($LIB_SUBSETS)
 
 ### Construct the list of include-directories to be generated
@@ -1426,16 +1501,53 @@ AC_MSG_RESULT($CXX_LIB_SUFFIX)
 AC_SUBST(CXX_LIB_SUFFIX)
 fi
 
+# do not want -ldl in build except as needed for -lncurses dependency
+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.
-TINFO_LIST="$SHLIB_LIST"
+
+# TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but
+# do not need libdl
+TICS_LIST=
+if test "$with_dlsym" = yes ; then
+       CF_REMOVE_LIB(TINFO_LIST,$SHLIB_LIST,dl)
+fi
+
+if test "$with_ticlib" != no ; then
+
+       if test "$with_ticlib" != yes ; then
+               TICS_NAME=$with_ticlib
+               TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+               TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+               TICS_LIB_SUFFIX="${with_ticlib}"
+       else
+               TICS_ARG_SUFFIX="${TICS_NAME}${DFT_ARG_SUFFIX}"
+               TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}"
+               TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}"
+       fi
+       TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}"
+else
+       TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
+fi
+AC_SUBST(TICS_ARG_SUFFIX)
+AC_SUBST(TICS_DEP_SUFFIX)
+AC_SUBST(TICS_LIB_SUFFIX)
+AC_SUBST(TICS_ARGS)
+
 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_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_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}"
                TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
                TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}"
@@ -1450,10 +1562,17 @@ if test "$with_termlib" != no ; then
        else
                TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
                TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
+               TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
                TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
                SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
        fi
 else
+       # the next lines are needed for linking libtic over libncurses
+       TINFO_NAME=${LIB_NAME}
+       TINFO_SUFFIX=${DFT_DEP_SUFFIX}
+       TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX}
+       TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
+
        TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
 fi
 AC_SUBST(TINFO_ARG_SUFFIX)
@@ -1461,6 +1580,10 @@ AC_SUBST(TINFO_DEP_SUFFIX)
 AC_SUBST(TINFO_LIB_SUFFIX)
 AC_SUBST(TINFO_ARGS)
 
+if test "$with_dlsym" = yes ; then
+       CF_REMOVE_LIB(TICS_LIST,$TICS_LIST,dl)
+fi
+
 # needed for Ada95
 TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
 AC_SUBST(TINFO_ARGS2)
@@ -1481,9 +1604,14 @@ fi
 fi
 
 AC_SUBST(WITH_OVERWRITE)
+AC_SUBST(TICS_LIST)
 AC_SUBST(TINFO_LIST)
 AC_SUBST(SHLIB_LIST)
 
+# used to separate tack out of the tree
+NCURSES_TREE=
+AC_SUBST(NCURSES_TREE)
+
 ### predefined stuff for the test programs
 AC_DEFINE(HAVE_SLK_COLOR)
 
@@ -1491,6 +1619,11 @@ AC_DEFINE(HAVE_SLK_COLOR)
 ### 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')
@@ -1540,13 +1673,19 @@ TERMINFO="$TERMINFO"
 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"
 WITH_CURSES_H="$with_curses_h"
 WITH_ECHO="$with_echo"
 WITH_OVERWRITE="$with_overwrite"
 cf_LIST_MODELS="$cf_list_models"
 cf_cv_abi_version="$cf_cv_abi_version"
+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"