X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=configure.in;h=02fd45cd57a81f989b05217f6fe13e672d705f87;hb=a8987e73ec254703634802b4f7ee30d3a485524d;hp=d1bcd88e4251d930b7fd727ed7a44ecedfacd53d;hpb=0eb88fc5281804773e2a0c7a488a4452463535ce;p=ncurses.git diff --git a/configure.in b/configure.in index d1bcd88e..02fd45cd 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ dnl*************************************************************************** -dnl Copyright (c) 1998,1999 Free Software Foundation, Inc. * +dnl Copyright (c) 1998-2003,2004 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 * @@ -26,51 +26,30 @@ dnl sale, use or other dealings in this Software without prior written * dnl authorization. * dnl*************************************************************************** dnl -dnl Author: Thomas E. Dickey 1996,1997 +dnl Author: Thomas E. Dickey 1995-on dnl -dnl $Id: configure.in,v 1.179 1999/10/24 00:32:42 tom Exp $ +dnl $Id: configure.in,v 1.312 2004/01/24 19:29:13 tom Exp $ dnl Process this file with autoconf to produce a configure script. -AC_PREREQ(2.12.971222) -AC_REVISION($Revision: 1.179 $) +dnl +dnl See http://invisible-island.net/autoconf/ for additional information. +dnl +dnl --------------------------------------------------------------------------- +AC_PREREQ(2.13.20020210) +AC_REVISION($Revision: 1.312 $) AC_INIT(ncurses/base/lib_initscr.c) AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin) CF_SUBST_NCURSES_VERSION -CF_CHECK_CACHE + +CF_WITH_REL_VERSION(NCURSES) +CF_WITH_ABI_VERSION + +CF_CHECK_CACHE([AC_CANONICAL_SYSTEM]) AC_ARG_WITH(system-type, [ --with-system-type=XXX test: override derived host system-type], [AC_MSG_WARN(overriding system type to $withval) cf_cv_system_name=$withval]) -# We need a configure script only when compiling as part of GNU C library. -# Here we have to generate one of the files we need while compiling. -# -# The only problem is that users of the package might think they have to -# run configure themself and find it irritating when nothing happens. -# -# So we try here to find out whether we are called from the glibc configure -# or by a user. -# -dnl Check if we are a drop-in addition to glibc. -AC_ARG_ENABLE(add-ons, dnl -[ --enable-add-ons=DIR... used to check if we are a glibc add-on.], - [glibc_add_on=yes], - [glibc_add_on=]) - -dnl We need to use [ and ] for other purposes for a while now. -changequote(,)dnl -if test x"$glibc_add_on" = "xyes" ; then - rm -f $srcdir/Banner - # We are in glibc. - rm -f $srcdir/Makefile - cp $srcdir/Makefile.glibc $srcdir/Makefile - echo "ncurses `grep \"^[ ]*ncurses-version[ ]*=.*$\" \ - $srcdir/Makefile | sed -e \ - 's/^[ ]*ncurses-version[ ]*=[ ]*\([^ ^ ]*\)[ ]*$/\1/'`" > $srcdir/Banner - exit 0 -fi -changequote([,])dnl - ### Save the given $CFLAGS to allow user-override. cf_user_CFLAGS="$CFLAGS" @@ -79,28 +58,14 @@ CF_CFG_DEFAULTS ### Checks for programs. AC_PROG_CC -if test -n "$GCC" ; then -AC_MSG_CHECKING(version of gcc) -eval "$CC --version" -fi -if test $host != $build; then - AC_CHECK_PROGS(BUILD_CC, $CC gcc cc) -fi +CF_GCC_VERSION + AC_PROG_CPP AC_PROG_GCC_TRADITIONAL AC_ISC_POSIX CF_ANSI_CC_REQD CF_PROG_EXT - -case "$cf_cv_system_name" in -freebsd*) #(vi - test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R" - ;; -*) LDPATH=$PATH:/sbin:/usr/sbin - AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH) - ;; -esac -AC_SUBST(LDCONFIG) +CF_PROG_LDCONFIG dnl DEFECT in autoconf 2.12: an attempt to set policy, this breaks the dnl configure script by not letting us test if C++ @@ -115,11 +80,31 @@ if test "X$cf_with_cxx" = Xno ; then CXX="" GXX="" else + # with autoconf 2.13, we can change the error to a warning: + pushdef([AC_MSG_ERROR], + [AC_MSG_RESULT(no) + AC_MSG_WARN([You don't have any C++ compiler, too bad]) + cf_with_cxx=no; CXX=""; GXX="";])dnl AC_PROG_CXX + popdef([AC_MSG_ERROR])dnl + # autoconf 2.5x removed the error - by hardcoding it to g++. + if test "$CXX" = "g++" ; then + AC_PATH_PROG(CXX,g++) + fi + if test "$CXX" = "g++" ; then + AC_MSG_WARN(ignoring hardcoded g++) + cf_with_cxx=no; CXX=""; GXX=""; + fi fi -changequote(,)dnl -if test -n "$GXX" ; then case "`${CXX-g++} --version`" in 1*|2.[0-6]*) GXX=""; CXX=""; ac_cv_prog_gxx=no; cf_cxx_library=no ; echo No: templates do not work;; esac; fi -changequote([,])dnl + +CF_GXX_VERSION +case $GXX_VERSION in +1*|2.[[0-6]]*) + GXX=""; CXX=""; ac_cv_prog_gxx=no + cf_cxx_library=no + AC_MSG_WARN(templates do not work) + ;; +esac AC_MSG_CHECKING(if you want to build C++ binding and demo) AC_ARG_WITH(cxx-binding, @@ -142,25 +127,35 @@ AC_ARG_WITH(progs, [cf_with_progs=yes]) AC_MSG_RESULT($cf_with_progs) +AC_MSG_CHECKING(if you wish to install curses.h) +AC_ARG_WITH(curses-h, + [ --without-curses-h install curses.h as ncurses.h only], + [with_curses_h=$withval], + [with_curses_h=yes]) +AC_MSG_RESULT($with_curses_h) + modules_to_build="ncurses" if test "X$cf_with_progs" != Xno ; then modules_to_build="$modules_to_build progs tack" fi modules_to_build="$modules_to_build panel menu form" +AC_ARG_PROGRAM AC_PROG_AWK AC_PROG_MAKE_SET CF_PROG_INSTALL AC_SYS_LONG_FILE_NAMES +CF_MIXEDCASE_FILENAMES AC_PROG_LN_S -AC_PROG_RANLIB +CF_MAKE_TAGS AC_CHECK_PROGS(LINT, tdlint lint alint) AC_CHECK_PROGS(MAN, man man_db) AC_SUBST(LINT_OPTS) dnl These are standard among *NIX systems, but not when cross-compiling -CF_SUBST(loader,LD,ld) -CF_SUBST(archiver,AR,ar) +AC_CHECK_TOOL(RANLIB, ranlib, ':') +AC_CHECK_TOOL(LD, ld, ld) +AC_CHECK_TOOL(AR, ar, ar) CF_SUBST(archiver options,AR_OPTS,rv) CF_MAKEFLAGS @@ -170,18 +165,52 @@ dnl adjust the location into which the actual install is done, so that an dnl archive can be built without modifying the host system's configuration. AC_MSG_CHECKING(if you have specified an install-prefix) AC_ARG_WITH(install-prefix, - [ --with-install-prefix prefixes actual install-location], + [ --with-install-prefix prefixes actual install-location ($DESTDIR)], [case "$withval" in #(vi yes|no) #(vi ;; - *) INSTALL_PREFIX="$withval" + *) DESTDIR="$withval" ;; esac]) -AC_MSG_RESULT($INSTALL_PREFIX) -AC_SUBST(INSTALL_PREFIX) +AC_MSG_RESULT($DESTDIR) +AC_SUBST(DESTDIR) ############################################################################### -CF_MAN_PAGES +CF_HELP_MESSAGE(Build-Tools Needed to Compile Temporary Applications for Cross-compiling:) +# If we're cross-compiling, allow the user to override the tools and their +# options. The configure script is oriented toward identifying the host +# compiler, etc., but we need a build compiler to generate parts of the source. +: ${BUILD_CC:='$(CC)'} +: ${BUILD_CFLAGS:='$(CFLAGS)'} +: ${BUILD_CPPFLAGS:='$(CPPFLAGS)'} +: ${BUILD_LDFLAGS:='$(LDFLAGS)'} +: ${BUILD_LIBS:='$(LIBS)'} +: ${BUILD_EXEEXT:='$x'} +if test "$cross_compiling" = yes ; then + AC_ARG_WITH(build-cc, + [ --with-build-cc=XXX the build C compiler ($BUILD_CC)], + [BUILD_CC="$withval"], + [AC_CHECK_PROGS(BUILD_CC, $CC gcc cc)]) + AC_ARG_WITH(build-cflags, + [ --with-build-cflags=XXX the build C compiler-flags], + [BUILD_CFLAGS="$withval"]) + AC_ARG_WITH(build-cppflags, + [ --with-build-cppflags=XXX the build C preprocessor-flags], + [BUILD_CPPFLAGS="$withval"]) + AC_ARG_WITH(build-ldflags, + [ --with-build-ldflags=XXX the build linker-flags], + [BUILD_LDFLAGS="$withval"]) + AC_ARG_WITH(build-libs, + [ --with-build-libs=XXX the build libraries], + [BUILD_LIBS="$withval"]) + BUILD_EXEEXT= +fi +AC_SUBST(BUILD_CC) +AC_SUBST(BUILD_CFLAGS) +AC_SUBST(BUILD_CPPFLAGS) +AC_SUBST(BUILD_LDFLAGS) +AC_SUBST(BUILD_LIBS) +AC_SUBST(BUILD_EXEEXT) ############################################################################### CF_HELP_MESSAGE(Options to Specify the Libraries Built/Used:) @@ -190,6 +219,14 @@ CF_HELP_MESSAGE(Options to Specify the Libraries Built/Used:) ### Use "--without-normal --with-shared" to allow the default model to be ### shared, for example. cf_list_models="" +AC_SUBST(cf_list_models)dnl the complete list of models ("normal debug") + +CF_WITH_LIBTOOL +if test "$with_libtool" != "no" ; then + +cf_list_models="$cf_list_models libtool" + +else AC_MSG_CHECKING(if you want to build shared libraries) AC_ARG_WITH(shared, @@ -223,6 +260,44 @@ AC_ARG_WITH(profile, AC_MSG_RESULT($with_profile) test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile" +fi + +############################################################################### + +AC_MSG_CHECKING(for specified models) +test -z "$cf_list_models" && cf_list_models=normal +dnl If we use libtool to generate libraries, then it must be the only +dnl specified model. +test "$with_libtool" != "no" && cf_list_models=libtool +AC_MSG_RESULT($cf_list_models) + +### Use the first model as the default, and save its suffix for use in building +### up test-applications. +AC_MSG_CHECKING(for default model) +DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'` +AC_MSG_RESULT($DFT_LWR_MODEL) + +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") + +TINFO_NAME=tinfo +AC_SUBST(TINFO_NAME) + +LIB_NAME=ncurses +AC_SUBST(LIB_NAME) + +LIB_DIR=../lib +CF_LIB_PREFIX(cf_prefix) +LIB_PREFIX=$cf_prefix +AC_SUBST(LIB_PREFIX) + +LIB_SUFFIX= +AC_SUBST(LIB_SUFFIX) + +############################################################################### + AC_MSG_CHECKING(if you want to build a separate terminfo library) AC_ARG_WITH(termlib, [ --with-termlib generate separate terminfo library], @@ -231,25 +306,8 @@ AC_ARG_WITH(termlib, AC_MSG_RESULT($with_termlib) ### Checks for special libraries, must be done up-front. -AC_MSG_CHECKING(if you want to link with dbmalloc for testing) -AC_ARG_WITH(dbmalloc, - [ --with-dbmalloc test: use Conor Cahill's dbmalloc library], - [with_dbmalloc=$withval], - [with_dbmalloc=no]) -AC_MSG_RESULT($with_dbmalloc) -if test $with_dbmalloc = yes ; then - AC_CHECK_LIB(dbmalloc,debug_malloc) -fi - -AC_MSG_CHECKING(if you want to link with dmalloc for testing) -AC_ARG_WITH(dmalloc, - [ --with-dmalloc test: use Gray Watson's dmalloc library], - [with_dmalloc=$withval], - [with_dmalloc=no]) -AC_MSG_RESULT($with_dmalloc) -if test $with_dmalloc = yes ; then - AC_CHECK_LIB(dmalloc,dmalloc_debug) -fi +CF_WITH_DBMALLOC +CF_WITH_DMALLOC SHLIB_LIST="" AC_MSG_CHECKING(if you want to link with the gpm mouse library) @@ -258,7 +316,7 @@ AC_ARG_WITH(gpm, [with_gpm=$withval], [with_gpm=no]) AC_MSG_RESULT($with_gpm) -if test $with_gpm = yes ; then +if test "$with_gpm" = yes ; then AC_CHECK_LIB(gpm,Gpm_Open,[ EXTRA_LIBS="-lgpm -lncurses $EXTRA_LIBS" SHLIB_LIST="-lgpm $SHLIB_LIST" @@ -267,41 +325,7 @@ if test $with_gpm = yes ; then ],AC_MSG_WARN(Cannot link with gpm library - read the FAQ)) fi -TINFO_LIST="$SHLIB_LIST" -test $with_termlib = yes && SHLIB_LIST="$SHLIB_LIST -ltinfo" - -AC_SUBST(EXTRA_LIBS) -AC_SUBST(TINFO_LIST) -AC_SUBST(SHLIB_LIST) - -AC_MSG_CHECKING(for specified models) -test -z "$cf_list_models" && cf_list_models=normal -AC_MSG_RESULT($cf_list_models) - -### Use the first model as the default, and save its suffix for use in building -### up test-applications. -DFT_LWR_MODEL=`echo $cf_list_models | $AWK '{print $1}'` -CF_UPPER(DFT_UPR_MODEL,$DFT_LWR_MODEL)dnl -CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_DEP_SUFFIX)dnl -CF_LIB_TYPE($DFT_LWR_MODEL,DFT_ARG_SUFFIX)dnl -CF_OBJ_SUBDIR($DFT_LWR_MODEL,DFT_OBJ_SUBDIR)dnl -AC_SUBST(DFT_OBJ_SUBDIR)dnl the default object-directory ("obj") -AC_SUBST(DFT_LWR_MODEL)dnl the default model ("normal") -AC_SUBST(DFT_UPR_MODEL)dnl the default model ("NORMAL") -AC_SUBST(DFT_DEP_SUFFIX)dnl the corresponding library-suffix (".a") -AC_SUBST(DFT_ARG_SUFFIX)dnl the string to append to "-lncurses" ("") -AC_SUBST(cf_list_models)dnl the complete list of models ("normal debug") - -TINFO_NAME=tinfo -AC_SUBST(TINFO_NAME) - -LIB_NAME=ncurses -AC_SUBST(LIB_NAME) - -LIB_DIR=../lib -CF_LIB_PREFIX(cf_prefix) -LIB_PREFIX=$LIB_DIR/$cf_prefix -AC_SUBST(LIB_PREFIX) +CF_WITH_SYSMOUSE dnl Not all ports of gcc support the -g option @@ -317,13 +341,16 @@ if test X"$CXX_G_OPT" = X"" ; then fi AC_SUBST(CXX_G_OPT) +AC_MSG_CHECKING(for default loader flags) case $DFT_LWR_MODEL in +libtool) LD_MODEL='' ;; normal) LD_MODEL='' ;; debug) LD_MODEL=$CC_G_OPT ;; profile) LD_MODEL='-pg';; shared) LD_MODEL='' ;; esac AC_SUBST(LD_MODEL)dnl the type of link (e.g., -g or -pg) +AC_MSG_RESULT($LD_MODEL) AC_MSG_CHECKING(if rpath option should be used) AC_ARG_ENABLE(rpath, @@ -348,31 +375,36 @@ CF_HELP_MESSAGE(Fine-Tuning Your Configuration:) AC_MSG_CHECKING(if you wish to install ncurses overwriting curses) AC_ARG_ENABLE(overwrite, [ --disable-overwrite leave out the link to -lcurses], - [with_overwrite=$enableval - test "$with_overwrite" = no && \ - test "x$includedir" = 'x${prefix}/include' && \ - includedir='$(prefix)/include/ncurses' - ], - [with_overwrite=yes]) + [with_overwrite=$enableval], + [if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi]) AC_MSG_RESULT($with_overwrite) -AC_MSG_CHECKING(where we will install curses.h) -AC_MSG_RESULT($includedir) AC_MSG_CHECKING(if external terminfo-database is used) AC_ARG_ENABLE(database, - [ --disable-database use only built-in data], - [with_database=$enableval], - [with_database=yes]) -AC_MSG_RESULT($with_database) -test $with_database != no && AC_DEFINE(USE_DATABASE) - -AC_MSG_CHECKING(if you want to build with function extensions) -AC_ARG_ENABLE(ext-funcs, - [ --disable-ext-funcs disable function-extensions], - [with_ext_funcs=$enableval], - [with_ext_funcs=yes]) -AC_MSG_RESULT($with_ext_funcs) -test "$with_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS) + [ --disable-database do not use terminfo, only fallbacks/termcap], + [use_database=$enableval], + [use_database=yes]) +AC_MSG_RESULT($use_database) + +case $host_os in #(vi +os2*) #(vi + TERMINFO_SRC='${top_srcdir}/misc/emx.src' + ;; +*) #(vi + TERMINFO_SRC='${top_srcdir}/misc/terminfo.src' + ;; +esac +AC_SUBST(TERMINFO_SRC) + +CF_PATHSEP +if test "$use_database" != no ; then + AC_DEFINE(USE_DATABASE) + AC_MSG_CHECKING(which terminfo source-file will be installed) + AC_ARG_ENABLE(database, + [ --with-database=XXX specify terminfo source to install], + [TERMINFO_SRC=$withval]) + AC_MSG_RESULT($TERMINFO_SRC) +fi AC_MSG_CHECKING(for list of fallback descriptions) AC_ARG_WITH(fallbacks, @@ -380,9 +412,15 @@ AC_ARG_WITH(fallbacks, [with_fallback=$withval], [with_fallback=]) AC_MSG_RESULT($with_fallback) -FALLBACK_LIST=`echo $with_fallback|sed -e 's/,/ /g'` +FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'` AC_SUBST(FALLBACK_LIST) +MAKE_TERMINFO= +if test "$use_database" = no ; then + TERMINFO="${datadir}/terminfo" + MAKE_TERMINFO="#" +else + AC_MSG_CHECKING(for list of terminfo directories) CF_WITH_PATHLIST(terminfo-dirs, [ --with-terminfo-dirs=XXX specify list of terminfo directories], @@ -392,12 +430,20 @@ CF_WITH_PATHLIST(terminfo-dirs, AC_MSG_RESULT($TERMINFO_DIRS) test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS") -if test $with_database = no ; then - if test -z $with_fallback ; then - AC_ERROR(You have disabled the database w/o specifying fallbacks) - fi +AC_MSG_CHECKING(for default terminfo directory) +CF_WITH_PATH(default-terminfo-dir, + [ --with-default-terminfo-dir=DIR default terminfo directory], + TERMINFO, + DATADIR/terminfo, + ${datadir}/terminfo) +AC_MSG_RESULT($TERMINFO) +AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO") + fi +AC_SUBST(TERMINFO) +AC_SUBST(MAKE_TERMINFO) + ### use option --disable-big-core to make tic run on small machines ### We need 4Mb, check if we can allocate 50% more than that. AC_MSG_CHECKING(if big-core option selected) @@ -407,7 +453,13 @@ AC_ARG_ENABLE(big-core, [AC_TRY_RUN([ #include #include -int main() { exit(malloc(6000000L) == 0); }], +int main() { + unsigned long n = 6000000L; + char *s = malloc(n); + if (s != 0) + s[0] = s[n-1] = 0; + exit(s == 0); +}], [with_big_core=yes], [with_big_core=no], [with_big_core=no])]) @@ -423,9 +475,23 @@ AC_ARG_ENABLE(termcap, AC_MSG_RESULT($with_termcap) if test "$with_termcap" != "yes" ; then + if test "$use_database" = no ; then + if test -z "$with_fallback" ; then + AC_ERROR(You have disabled the database w/o specifying fallbacks) + fi + fi AC_DEFINE(PURE_TERMINFO) else +AC_DEFINE(USE_TERMCAP) +AC_MSG_CHECKING(for list of termcap files) +CF_WITH_PATHLIST(termpath, + [ --with-termpath=XXX specify list of termcap files], + TERMPATH, + /etc/termcap:/usr/share/misc/termcap) +AC_MSG_RESULT($TERMPATH) +test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH") + ### use option --enable-getcap to use a hacked getcap for reading termcaps AC_MSG_CHECKING(if fast termcap-loader is needed) AC_ARG_ENABLE(getcap, @@ -445,6 +511,14 @@ test "$with_getcap_cache" = "yes" && AC_DEFINE(USE_GETCAP_CACHE) fi +### Use option --disable-home-terminfo to completely remove ~/.terminfo +AC_MSG_CHECKING(if ~/.terminfo is wanted) +AC_ARG_ENABLE(home-terminfo, + [ --disable-home-terminfo drop ~/.terminfo from terminfo search-path], + [with_home_terminfo=$enableval], + [with_home_terminfo=yes]) +test "$with_home_terminfo" = "yes" && AC_DEFINE(USE_HOME_TERMINFO) + ### Use option --enable-symlinks to make tic use symlinks, not hard links ### to reduce storage requirements for the terminfo database. CF_LINK_FUNCS @@ -480,6 +554,47 @@ fi test "$with_links" = yes && AC_DEFINE(USE_LINKS) test "$with_symlinks" = yes && AC_DEFINE(USE_SYMLINKS) +### use option --enable-broken-linker to force on use of broken-linker support +AC_MSG_CHECKING(if you want broken-linker support code) +AC_ARG_ENABLE(broken_linker, + [ --enable-broken_linker compile with broken-linker support code], + [with_broken_linker=$enableval], + [with_broken_linker=${BROKEN_LINKER-no}]) +AC_MSG_RESULT($with_broken_linker) + +BROKEN_LINKER=0 +if test "$with_broken_linker" = yes ; then + AC_DEFINE(BROKEN_LINKER) + BROKEN_LINKER=1 +elif test "$DFT_LWR_MODEL" = shared ; then + case $cf_cv_system_name in #(vi + cygwin*) + AC_DEFINE(BROKEN_LINKER) + BROKEN_LINKER=1 + CF_VERBOSE(cygwin linker is broken anyway) + ;; + esac +fi +AC_SUBST(BROKEN_LINKER) + +### use option --with-bool to override bool's type +AC_MSG_CHECKING(for type of bool) +AC_ARG_WITH(bool, + [ --with-bool=TYPE override fallback type of bool variable], + [NCURSES_BOOL="$withval"], + [NCURSES_BOOL=auto]) +AC_MSG_RESULT($NCURSES_BOOL) +AC_SUBST(NCURSES_BOOL) + +### use option --with-ospeed to override ospeed's type +AC_MSG_CHECKING(for type of ospeed) +AC_ARG_WITH(ospeed, + [ --with-ospeed=TYPE override type of ospeed variable], + [NCURSES_OSPEED="$withval"], + [NCURSES_OSPEED=short]) +AC_MSG_RESULT($NCURSES_OSPEED) +AC_SUBST(NCURSES_OSPEED) + ### use option --enable-bsdpad to have tputs process BSD-style prefix padding AC_MSG_CHECKING(if tputs should process BSD-style prefix padding) AC_ARG_ENABLE(bsdpad, @@ -489,6 +604,42 @@ AC_ARG_ENABLE(bsdpad, AC_MSG_RESULT($with_bsdpad) test "$with_bsdpad" = yes && AC_DEFINE(BSD_TPUTS) +### Enable compiling-in rcs id's +AC_MSG_CHECKING(if RCS identifiers should be compiled-in) +AC_ARG_WITH(rcs-ids, + [ --with-rcs-ids compile-in RCS identifiers], + [with_rcs_ids=$withval], + [with_rcs_ids=no]) +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_HELP_MESSAGE(Extensions:) + +### Note that some functions (such as const) are normally disabled anyway. +AC_MSG_CHECKING(if you want to build with function extensions) +AC_ARG_ENABLE(ext-funcs, + [ --disable-ext-funcs disable function-extensions], + [with_ext_funcs=$enableval], + [with_ext_funcs=yes]) +AC_MSG_RESULT($with_ext_funcs) +if test "$with_ext_funcs" = yes ; then + NCURSES_EXT_FUNCS=1 + AC_DEFINE(HAVE_CURSES_VERSION) + AC_DEFINE(HAVE_HAS_KEY) + AC_DEFINE(HAVE_RESIZETERM) + AC_DEFINE(HAVE_RESIZE_TERM) + AC_DEFINE(HAVE_USE_DEFAULT_COLORS) + AC_DEFINE(HAVE_WRESIZE) + AC_DEFINE(NCURSES_EXT_FUNCS) +else + NCURSES_EXT_FUNCS=0 +fi +AC_SUBST(NCURSES_EXT_FUNCS) + ### use option --enable-const to turn on use of const beyond that in XSI. AC_MSG_CHECKING(for extended use of const keyword) AC_ARG_ENABLE(const, @@ -496,65 +647,105 @@ AC_ARG_ENABLE(const, [with_ext_const=$enableval], [with_ext_const=no]) AC_MSG_RESULT($with_ext_const) -NCURSES_CONST="" +NCURSES_CONST='/*nothing*/' if test "$with_ext_const" = yes ; then - AC_DEFINE(NCURSES_CONST,const) NCURSES_CONST=const fi AC_SUBST(NCURSES_CONST) -### Enable compiling-in rcs id's -AC_MSG_CHECKING(if RCS identifiers should be compiled-in) -AC_ARG_WITH(rcs-ids, - [ --with-rcs-ids compile-in RCS identifiers], - [with_rcs_ids=$withval], - [with_rcs_ids=no]) -AC_MSG_RESULT($with_rcs_ids) -test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS) +AC_MSG_CHECKING(if you want \$NCURSES_NO_PADDING code) +AC_ARG_ENABLE(no-padding, + [ --enable-no-padding compile with $NCURSES_NO_PADDING code], + [with_no_padding=$enableval], + [with_no_padding=$with_ext_funcs]) +AC_MSG_RESULT($with_no_padding) +test "$with_no_padding" = yes && AC_DEFINE(NCURSES_NO_PADDING) + +### use option --enable-sigwinch to turn on use of SIGWINCH logic +AC_MSG_CHECKING(if you want SIGWINCH handler) +AC_ARG_ENABLE(sigwinch, + [ --enable-sigwinch compile with SIGWINCH handler], + [with_sigwinch=$enableval], + [with_sigwinch=$with_ext_funcs]) +AC_MSG_RESULT($with_sigwinch) +test "$with_sigwinch" = yes && AC_DEFINE(USE_SIGWINCH) + +### use option --enable-tcap-names to allow user to define new capabilities +AC_MSG_CHECKING(if you want user-definable terminal capabilities like termcap) +AC_ARG_ENABLE(tcap-names, + [ --enable-tcap-names compile with user-definable terminal capabilities], + [with_tcap_names=$enableval], + [with_tcap_names=$with_ext_funcs]) +AC_MSG_RESULT($with_tcap_names) +NCURSES_XNAMES=0 +test "$with_tcap_names" = yes && NCURSES_XNAMES=1 +AC_SUBST(NCURSES_XNAMES) ############################################################################### -CF_HELP_MESSAGE(Experimental Code:) -AC_MSG_CHECKING(if you want all experimental code) +# These options are relatively safe to experiment with. +CF_HELP_MESSAGE(Development Code:) +AC_MSG_CHECKING(if you want all development code) AC_ARG_WITH(develop, - [ --with-develop enable all experimental options for testing], + [ --with-develop enable all development options], [with_develop=$withval], [with_develop=no]) AC_MSG_RESULT($with_develop) -### use option --enable-broken-linker to force on use of broken-linker support -AC_MSG_CHECKING(if you want broken-linker support code) -AC_ARG_ENABLE(broken_linker, - [ --enable-broken_linker compile with broken-linker support code], - [with_broken_linker=$enableval], - [with_broken_linker=$BROKEN_LINKER]) -AC_MSG_RESULT($with_broken_linker) -test "$with_broken_linker" = yes && AC_DEFINE(BROKEN_LINKER) - ### use option --enable-hard-tabs to turn on use of hard-tabs optimize -AC_MSG_CHECKING(if you want experimental hard-tabs code) +AC_MSG_CHECKING(if you want hard-tabs code) AC_ARG_ENABLE(hard-tabs, - [ --enable-hard-tabs compile with experimental hard-tabs code], + [ --enable-hard-tabs compile with hard-tabs code], [with_hardtabs=$enableval], [with_hardtabs=$with_develop]) AC_MSG_RESULT($with_hardtabs) test "$with_hardtabs" = yes && AC_DEFINE(USE_HARD_TABS) +AC_MSG_CHECKING(if you want to use restrict environment when running as root) +AC_ARG_ENABLE(root-environ, + [ --disable-root-environ limit environment when running as root], + [with_root_environ=$enableval], + [with_root_environ=yes]) +AC_MSG_RESULT($with_root_environ) +test "$with_root_environ" = yes && AC_DEFINE(USE_ROOT_ENVIRON) + +### use option --enable-xmc-glitch to turn on use of magic-cookie optimize +AC_MSG_CHECKING(if you want limited support for xmc) +AC_ARG_ENABLE(xmc-glitch, + [ --enable-xmc-glitch compile with limited support for xmc], + [with_xmc_glitch=$enableval], + [with_xmc_glitch=$with_develop]) +AC_MSG_RESULT($with_xmc_glitch) +test "$with_xmc_glitch" = yes && AC_DEFINE(USE_XMC_SUPPORT) + +############################################################################### +# These are just experimental, probably should not be in a package: +CF_HELP_MESSAGE(Experimental Code:) + +AC_MSG_CHECKING(if you do not want to assume colors are white-on-black) +AC_ARG_ENABLE(assumed-color, + [ --disable-assumed-color do not assume anything about default-colors], + [with_assumed_color=$enableval], + [with_assumed_color=yes]) +AC_MSG_RESULT($with_assumed_color) +test "$with_assumed_color" = yes && AC_DEFINE(USE_ASSUMED_COLOR) + ### use option --enable-hashmap to turn on use of hashmap scrolling logic -AC_MSG_CHECKING(if you want experimental hashmap code) +AC_MSG_CHECKING(if you want hashmap scrolling-optimization code) AC_ARG_ENABLE(hashmap, - [ --enable-hashmap compile with experimental hashmap code], + [ --disable-hashmap compile without hashmap scrolling-optimization], [with_hashmap=$enableval], [with_hashmap=yes]) AC_MSG_RESULT($with_hashmap) test "$with_hashmap" = yes && AC_DEFINE(USE_HASHMAP) -AC_MSG_CHECKING(if you want experimental no-padding code) -AC_ARG_ENABLE(no-padding, - [ --enable-no-padding compile with experimental no-padding code], - [with_no_padding=$enableval], - [with_no_padding=yes]) -AC_MSG_RESULT($with_no_padding) -test "$with_no_padding" = yes && AC_DEFINE(NCURSES_NO_PADDING) +### use option --enable-colorfgbg to turn on use of $COLORFGBG environment +AC_MSG_CHECKING(if you want colorfgbg code) +AC_ARG_ENABLE(colorfgbg, + [ --enable-colorfgbg compile with $COLORFGBG code], + [with_colorfgbg=$enableval], + [with_colorfgbg=no]) +AC_MSG_RESULT($with_colorfgbg) +test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG) AC_MSG_CHECKING(if you want experimental safe-sprintf code) AC_ARG_ENABLE(safe-sprintf, @@ -565,58 +756,82 @@ AC_MSG_RESULT($with_safe_sprintf) test "$with_safe_sprintf" = yes && AC_DEFINE(USE_SAFE_SPRINTF) ### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic +# when hashmap is used scroll hints are useless +if test "$with_hashmap" = no ; then AC_MSG_CHECKING(if you want to experiment without scrolling-hints code) AC_ARG_ENABLE(scroll-hints, - [ --disable-scroll-hints compile hashmap without scroll-hints code], + [ --disable-scroll-hints compile without scroll-hints code], [with_scroll_hints=$enableval], - [with_scroll_hints=yes; - # when hashmap is used scroll hints are useless - test $with_hashmap = yes && with_scroll_hints=no]) + [with_scroll_hints=yes]) AC_MSG_RESULT($with_scroll_hints) test "$with_scroll_hints" = yes && AC_DEFINE(USE_SCROLL_HINTS) +fi -### use option --enable-tcap-names to allow user to define new capabilities -AC_MSG_CHECKING(if you want experimental definable names like termcap) -AC_ARG_ENABLE(tcap-names, - [ --enable-tcap-names compile with experimental definable-name code], - [with_tcap_names=$enableval], - [with_tcap_names=$with_develop]) -AC_MSG_RESULT($with_tcap_names) -NCURSES_XNAMES=0 -test "$with_tcap_names" = yes && NCURSES_XNAMES=1 -AC_SUBST(NCURSES_XNAMES) +### use option --enable-widec to turn on use of wide-character support +NCURSES_CH_T=chtype +NCURSES_LIBUTF8=0 -### use option --enable-sigwinch to turn on use of SIGWINCH logic -AC_MSG_CHECKING(if you want experimental SIGWINCH handler) -AC_ARG_ENABLE(sigwinch, - [ --enable-sigwinch compile with experimental SIGWINCH handler], - [with_sigwinch=$enableval], - [with_sigwinch=yes]) -AC_MSG_RESULT($with_sigwinch) -test "$with_sigwinch" = yes && AC_DEFINE(USE_SIGWINCH) +NEED_WCHAR_H=0 +NCURSES_MBSTATE_T=0 +NCURSES_WCHAR_T=0 +NCURSES_WINT_T=0 + +# Check to define _XOPEN_SOURCE "automatically" +CF_XOPEN_SOURCE + +# use these variables to work around a defect in gcc's fixincludes. +NCURSES_OK_WCHAR_T= +NCURSES_OK_WINT_T= -### use option --enable-widec to turn on use of wide-character support AC_MSG_CHECKING(if you want experimental wide-character code) AC_ARG_ENABLE(widec, - [ --enable-widec compile with experimental wide-char code], + [ --enable-widec compile with experimental wide-char/UTF-8 code], [with_widec=$enableval], [with_widec=no]) AC_MSG_RESULT($with_widec) -test "$with_widec" = yes && AC_DEFINE(USE_WIDEC_SUPPORT) - -### use option --enable-xmc-glitch to turn on use of magic-cookie optimize -AC_MSG_CHECKING(if you want experimental xmc code) -AC_ARG_ENABLE(xmc-glitch, - [ --enable-xmc-glitch compile with experimental xmc code], - [with_xmc_glitch=$enableval], - [with_xmc_glitch=$with_develop]) -AC_MSG_RESULT($with_xmc_glitch) -test "$with_xmc_glitch" = yes && AC_DEFINE(USE_XMC_SUPPORT) +if test "$with_widec" = yes ; then + LIB_SUFFIX="w${LIB_SUFFIX}" + AC_DEFINE(USE_WIDEC_SUPPORT) + CF_PREDEFINE(_XOPEN_SOURCE,500) + CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED) + # with_overwrite=no + NCURSES_CH_T=cchar_t + AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc) + if test "$ac_cv_func_putwc" != yes ; then + CF_LIBUTF8 + if test "$cf_cv_libutf8" = yes ; then + NCURSES_LIBUTF8=1 + fi + fi + CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T) + CF_WCHAR_TYPE(wchar_t, NCURSES_WCHAR_T, NCURSES_OK_WCHAR_T) + CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T) +fi +AC_SUBST(NCURSES_CH_T) +AC_SUBST(NCURSES_LIBUTF8) + +AC_SUBST(NEED_WCHAR_H) +AC_SUBST(NCURSES_MBSTATE_T) +AC_SUBST(NCURSES_WCHAR_T) +AC_SUBST(NCURSES_WINT_T) + +AC_SUBST(NCURSES_OK_WCHAR_T) +AC_SUBST(NCURSES_OK_WINT_T) + +AC_MSG_CHECKING(for terminal capabilities file) +AC_ARG_WITH(caps, + [ --with-caps=alt compile with experimental alternate Caps file], + [TERMINFO_CAPS=Caps.$withval], + [TERMINFO_CAPS=Caps]) +test -f ${srcdir}/include/${TERMINFO_CAPS} || TERMINFO_CAPS=Caps +AC_MSG_RESULT($TERMINFO_CAPS) +AC_SUBST(TERMINFO_CAPS) ############################################################################### CF_HELP_MESSAGE(Testing/development Options:) ### use option --disable-echo to suppress full display compiling commands +AC_MSG_CHECKING(if you want to display full commands during build) AC_ARG_ENABLE(echo, [ --enable-echo build: display "compiling" commands (default)], [with_echo=$enableval], @@ -625,13 +840,18 @@ if test "$with_echo" = yes; then ECHO_LINK= else ECHO_LINK='@ echo linking $@ ... ;' + test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent" fi +AC_MSG_RESULT($with_echo) AC_SUBST(ECHO_LINK) ### use option --enable-warnings to turn on all gcc warnings +AC_MSG_CHECKING(if you want to see compiler warnings) AC_ARG_ENABLE(warnings, [ --enable-warnings build: turn on GCC compiler warnings], [with_warnings=$enableval]) +AC_MSG_RESULT($with_warnings) + if test -n "$with_warnings"; then ADAFLAGS="$ADAFLAGS -gnatg" CF_GCC_WARNINGS @@ -639,13 +859,15 @@ fi CF_GCC_ATTRIBUTES ### use option --enable-assertions to turn on generation of assertion code +AC_MSG_CHECKING(if you want to enable runtime assertions) AC_ARG_ENABLE(assertions, [ --enable-assertions test: turn on generation of assertion code], [with_assertions=$enableval], [with_assertions=no]) +AC_MSG_RESULT($with_assertions) if test -n "$GCC" then - if test $with_assertions = no + if test "$with_assertions" = no then AC_DEFINE(NDEBUG) CPPFLAGS="$CPPFLAGS -DNDEBUG" @@ -657,18 +879,45 @@ fi ### use option --disable-leaks to suppress "permanent" leaks, for testing AC_ARG_ENABLE(leaks, [ --disable-leaks test: suppress permanent memory-leaks], - [test $enableval = no && AC_DEFINE(NO_LEAKS)]) + [test "$enableval" = no && AC_DEFINE(NO_LEAKS)]) AC_DEFINE(HAVE_NC_ALLOC_H) ### use option --enable-expanded to generate certain macros as functions AC_ARG_ENABLE(expanded, [ --enable-expanded test: generate functions for certain macros], - [test $enableval = yes && AC_DEFINE(NCURSES_EXPANDED)]) + [test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED)]) ### use option --disable-macros to suppress macros in favor of functions AC_ARG_ENABLE(macros, [ --disable-macros test: use functions rather than macros], - [test $enableval = no && AC_DEFINE(NCURSES_NOMACROS)]) + [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS)]) + +# Normally we only add trace() to the debug-library. Allow this to be +# extended to all models of the ncurses library: +cf_all_traces=no +case "$CFLAGS $CPPFLAGS" in +*-DTRACE*) + cf_all_traces=yes + ;; +esac + +AC_MSG_CHECKING(whether to add trace feature to all models) +AC_ARG_WITH(trace, +[ --with-trace test: add trace() function to all models of ncurses], +[cf_with_trace=$withval], +[cf_with_trace=$cf_all_traces]) +AC_MSG_RESULT($with_trace) + +if test "$cf_with_trace" = yes ; then + LIB_TRACING=all + ADA_TRACE=TRUE + CF_ADD_CFLAGS(-DTRACE) +else + LIB_TRACING=DEBUG + ADA_TRACE=FALSE +fi + +AC_SUBST(ADA_TRACE) ### Checks for libraries. AC_CHECK_FUNC(gettimeofday, @@ -678,14 +927,13 @@ AC_CHECK_LIB(bsd, gettimeofday, AC_DEFINE(HAVE_GETTIMEOFDAY) LIBS="$LIBS -lbsd")])dnl CLIX: bzero, select, gettimeofday -MATH_LIB="" -AC_CHECK_FUNC(sin,, - AC_CHECK_LIB(m, sin,[MATH_LIB="-lm"])) +CF_MATH_LIB(MATH_LIB,sin(x)) AC_SUBST(MATH_LIB) ### Checks for header files. AC_STDC_HEADERS AC_HEADER_DIRENT +AC_HEADER_TIME CF_REGEX dnl These are some other potentially nonportable headers. @@ -695,27 +943,23 @@ getopt.h \ libc.h \ limits.h \ locale.h \ +poll.h \ sys/bsdtypes.h \ sys/ioctl.h \ sys/param.h \ -poll.h \ +sys/poll.h \ sys/select.h \ -sys/stropts.h \ sys/time.h \ sys/times.h \ -termio.h \ -termios.h \ ttyent.h \ unistd.h \ -values.h \ -) +wctype.h ) # check for ISC (this may also define _POSIX_SOURCE) # Note: even non-Posix ISC needs to declare fd_set if test "$ISC" = yes ; then AC_CHECK_LIB(cposix,main) AC_CHECK_LIB(inet,bzero,LIBS="$LIBS -linet")dnl also 'select()' - AC_CHECK_HEADERS( sys/termio.h ) fi CF_SYS_TIME_SELECT @@ -724,19 +968,21 @@ CF_SYS_TIME_SELECT AC_LANG_C AC_C_CONST AC_C_INLINE -test $ac_cv_c_inline != no && AC_DEFINE(CC_HAS_INLINE_FUNCS) +test "$ac_cv_c_inline" != no && AC_DEFINE(CC_HAS_INLINE_FUNCS) CF_TYPEOF_CHTYPE -CF_WIDEC_SHIFT ### Checks for external-data CF_ERRNO CF_LINK_DATAONLY -CF_SPEED_TYPE ### Checks for library functions. -AC_CHECK_FUNCS( getcwd \ +AC_CHECK_FUNCS( \ +getcwd \ +getegid \ +geteuid \ getttynam \ +issetugid \ memccpy \ nanosleep \ poll \ @@ -749,22 +995,27 @@ sigaction \ sigvec \ strdup \ strstr \ -tcgetattr \ tcgetpgrp \ times \ -vfscanf \ vsnprintf \ -vsscanf \ ) - - if test "$with_getcap" = "yes" ; then CF_CGETENT fi CF_ISASCII CF_STRUCT_SIGACTION -CF_STRUCT_TERMIOS +CF_FUNC_TERMIOS +CF_FUNC_VSSCANF +CF_MKSTEMP + +# setup for prototype of fallback for vsscanf() +if test "$cf_cv_func_vsscanf" = vsscanf ; then + HAVE_VSSCANF=1 +else + HAVE_VSSCANF=0 +fi +AC_SUBST(HAVE_VSSCANF) dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS if test "$cross_compiling" = yes ; then @@ -776,6 +1027,7 @@ AC_TYPE_SIGNAL CF_TYPE_SIGACTION CF_SIZECHANGE CF_FUNC_MEMMOVE +CF_FUNC_POLL dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS if test -z "$cf_user_CFLAGS" ; then @@ -783,33 +1035,56 @@ if test -z "$cf_user_CFLAGS" ; then CF_STRIP_G_OPT(CXXFLAGS) fi -dnl Check for C++ compiler characteristics (and ensure that it's there!) +# Just in case, check if the C compiler has a bool type. CF_BOOL_DECL(cf_cv_cc_bool_type) + +# Check for C++ compiler characteristics (and ensure that it's there!) if test -n "$CXX" ; then AC_LANG_CPLUSPLUS CF_STDCPP_LIBRARY - case "`${CXX-g++} --version`" in + + case $GXX_VERSION in 1*|2.[0-6]*) - cf_cxx_library=yes - ;; - 2.7*) - CF_GPP_LIBRARY - ;; + cf_cxx_library=yes + ;; + *-2.7*|2.7*) + CF_GPP_LIBRARY + ;; *) - cf_cxx_library=no - ;; + cf_cxx_library=no + ;; esac + AC_CHECK_HEADERS(typeinfo) + CF_BOOL_DECL CF_BOOL_SIZE CF_ETIP_DEFINES CF_CPP_PARAM_INIT + CF_CPP_VSCAN_FUNC + + CXX_AR='$(AR)' + CXX_AR_OPTS='$(AR_OPTS)' case $cf_cv_system_name in #(vi - sco3.2v5*) + irix*) #(vi + if test "$GXX" != yes ; then + CXX_AR='$(CXX)' + CXX_AR_OPTS='-ar -o' + fi + ;; + sco3.2v5*) #(vi CXXLDFLAGS="-u main" ;; + solaris2*) + if test "$GXX" != yes ; then + CXX_AR='$(CXX)' + CXX_AR_OPTS='-xar -o' + fi + ;; esac AC_SUBST(CXXLDFLAGS) + AC_SUBST(CXX_AR) + AC_SUBST(CXX_AR_OPTS) else cf_cxx_library=no cf_cv_builtin_bool=1 @@ -823,15 +1098,43 @@ else # Caveat: since the storage of the bool type is not standardized, it # may change. - AC_MSG_CHECKING(for fallback type of bool) - case "$host_cpu" in #(vi - i?86) cf_cv_type_of_bool=char ;; #(vi - *) cf_cv_type_of_bool=int ;; - esac - AC_MSG_RESULT($cf_cv_type_of_bool) + if test "$NCURSES_BOOL" != auto ; then + cf_cv_type_of_bool=$NCURSES_AUTO + else + if test "$cf_cv_header_stdbool_h" = 1 ; then + CF_BOOL_SIZE + else + AC_MSG_CHECKING(for fallback type of bool) + case "$host_cpu" in #(vi + i?86) cf_cv_type_of_bool=char ;; #(vi + *) cf_cv_type_of_bool=int ;; + esac + AC_MSG_RESULT($cf_cv_type_of_bool) + fi + fi fi AC_SUBST(CXXLIBS) +# If the C compiler did not declare bool, and we did not determine that the C++ +# compiler does not declare bool, turn on an ifdef in curses.h that makes the +# ncurses library use the same type as C++ bool. Note that this allows one to +# specify the type of bool in a configure-script option and postpone +# integration with the C++ compiler provided that the types are compatible. +USE_CXX_BOOL=1 +if test $cf_cv_cc_bool_type = 1 +then + # oops: C has a bool. Unlikely, but C++ could differ. + USE_CXX_BOOL=0 +elif test $cf_cv_builtin_bool = 0 +then + # C++ has no bool + USE_CXX_BOOL=0 +else + # this is the normal case + USE_CXX_BOOL='defined(__cplusplus)' +fi +AC_SUBST(USE_CXX_BOOL) + CF_HELP_MESSAGE(Ada95 Binding Options:) dnl Check for availability of GNU Ada Translator (GNAT). @@ -843,8 +1146,8 @@ if test "$ac_cv_prog_gnat_exists" = no; then cf_ada_make= else CF_GNAT_VERSION - AC_CHECK_PROG(m4_exists, m4, yes, no) - if test "$ac_cv_prog_m4_exists" = no; then + AC_CHECK_PROG(M4_exists, m4, yes, no) + if test "$ac_cv_prog_M4_exists" = no; then cf_cv_prog_gnat_correct=no echo Ada95 binding required program m4 not found. Ada95 binding disabled. fi @@ -866,7 +1169,7 @@ if test "$cf_cv_prog_gnat_correct" = yes; then ADAFLAGS="-O3 -gnatpn $ADAFLAGS" AC_ARG_WITH(ada-compiler, - [ --with-ada-compiler=CMD Specify Ada95 compiler command (default gnatmake)], + [ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)], [cf_ada_compiler=$withval], [cf_ada_compiler=gnatmake]) @@ -882,51 +1185,33 @@ if test "$cf_cv_prog_gnat_correct" = yes; then CF_WITH_PATH(ada-include, [ --with-ada-include=DIR Ada includes are in DIR], ADA_INCLUDE, - PREFIX/lib/gnu-Ada/adainclude, - [$]prefix/lib/gnu-Ada/adainclude) + PREFIX/lib/ada/adainclude, + [$]prefix/lib/ada/adainclude) AC_SUBST(ADA_INCLUDE) CF_WITH_PATH(ada-objects, [ --with-ada-objects=DIR Ada objects are in DIR], ADA_OBJECTS, - PREFIX/lib/gnu-Ada/adalib, - [$]prefix/lib/gnu-Ada/adalib) + PREFIX/lib/ada/adalib, + [$]prefix/lib/ada/adalib) AC_SUBST(ADA_OBJECTS) - if test $with_shared = no - then - AC_MSG_WARN(Ada95 applications will not link properly with static libraries) - fi fi fi -### It's not possible to appease gcc 2.6.3's conversion-warnings if we're -### using a 'char' for bools. gcc 2.7.0's conversion-warnings are broken too -### badly to consider using for development purposes, but 2.5.8 is okay. -if test -n "$with_warnings"; then - if test -n "$GCC"; then - case "`$CC --version`" in - 2.6.3) - if test "$cf_cv_type_of_bool" != "char"; then - EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion" - fi - ;; - 2.5*) - EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion" - ;; - esac - fi -fi - ### Construct the library-subsets, if any, from this set of keywords: -### none, base, ext_funcs, termlib. +### none, base, ext_funcs, ext_tinfo, termlib, widechar (see CF_LIB_RULES). AC_MSG_CHECKING(for library subsets) if test "$with_termlib" = yes ; then - LIB_SUBSETS="termlib " + 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+" 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) @@ -934,28 +1219,99 @@ AC_MSG_RESULT($LIB_SUBSETS) CF_INCLUDE_DIRS CF_ADA_INCLUDE_DIRS +### Build up pieces for makefile rules +AC_MSG_CHECKING(default library suffix) +CF_LIB_TYPE($DFT_LWR_MODEL,DFT_ARG_SUFFIX)dnl +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 +AC_SUBST(DFT_DEP_SUFFIX)dnl the corresponding library-suffix (".a") +AC_MSG_RESULT($DFT_DEP_SUFFIX) + +AC_MSG_CHECKING(default object directory) +CF_OBJ_SUBDIR($DFT_LWR_MODEL,DFT_OBJ_SUBDIR)dnl +AC_SUBST(DFT_OBJ_SUBDIR)dnl the default object-directory ("obj") +AC_MSG_RESULT($DFT_OBJ_SUBDIR) + +# libtool thinks it can make c++ shared libraries (perhaps only g++) +if test "$cf_with_cxx" = yes ; then +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 +fi +AC_MSG_RESULT($CXX_LIB_SUFFIX) +AC_SUBST(CXX_LIB_SUFFIX) +fi + +TINFO_LIST="$SHLIB_LIST" +if test "$with_libtool" = no ; then + test "$with_termlib" = yes && SHLIB_LIST="$SHLIB_LIST -ltinfo${LIB_SUFFIX}" +fi + +AC_MSG_CHECKING(where we will install curses.h) +test "$with_overwrite" = no && \ +test "x$includedir" = 'x${prefix}/include' && \ + includedir='$(prefix)/include/ncurses'${LIB_SUFFIX} +AC_MSG_RESULT($includedir) + +### Resolve a conflict between normal and wide-curses by forcing applications +### that will need libutf8 to add it to their configure script. +if test "$with_overwrite" != no ; then +if test "$NCURSES_LIBUTF8" = 1 ; then + NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)' + AC_MSG_WARN(Wide-character applications must define HAVE_LIBUTF8_H to include curses.h) +fi +fi + +AC_SUBST(EXTRA_LIBS) +AC_SUBST(TINFO_LIST) +AC_SUBST(SHLIB_LIST) + ### Set up low-level terminfo dependencies for makefiles. Note that we ### could override this. if test "$with_termlib" = yes ; then - TEST_DEPS="${LIB_PREFIX}${TINFO_NAME}${DFT_DEP_SUFFIX}" - TEST_ARGS="-l${TINFO_NAME}${DFT_ARG_SUFFIX}" + TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_NAME}${DFT_DEP_SUFFIX}" + if test "$DFT_LWR_MODEL" = "libtool"; then + TEST_ARGS="${TEST_DEPS}" + else + TEST_ARGS="-l${TINFO_NAME}${DFT_ARG_SUFFIX}" + fi fi PROG_DEPS="$TEST_DEPS" PROG_ARGS="$TEST_ARGS" +### predefined stuff for the test programs +AC_DEFINE(HAVE_SLK_COLOR) + ### Construct the list of subdirectories for which we'll customize makefiles ### with the appropriate compile-rules. CF_SRC_MODULES($modules_to_build) CF_DIRS_TO_MAKE +AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATHSEP') + +AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}") + ### Now that we're done running tests, add the compiler-warnings, if any -CFLAGS="$CFLAGS $EXTRA_CFLAGS" +CF_ADD_CFLAGS($EXTRA_CFLAGS) ################################################################################ +test "$use_database" = yes && SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in" AC_OUTPUT( \ include/MKterm.h.awk \ - include/curses.h \ + include/curses.head:include/curses.h.in \ include/termcap.h \ include/unctrl.h \ $SUB_MAKEFILES \ @@ -971,17 +1327,26 @@ DFT_LWR_MODEL="$DFT_LWR_MODEL" LDCONFIG="$LDCONFIG" LIB_NAME="$LIB_NAME" LIB_SUBSETS="$LIB_SUBSETS" +LIB_SUFFIX="$LIB_SUFFIX" +LIB_TRACING="$LIB_TRACING" +MAKE_TERMINFO="$MAKE_TERMINFO" +NCURSES_OSPEED="$NCURSES_OSPEED" SRC_SUBDIRS="$SRC_SUBDIRS" +TERMINFO="$TERMINFO" TINFO_NAME="$TINFO_NAME" +WITH_CURSES_H="$with_curses_h" WITH_ECHO="$with_echo" WITH_OVERWRITE="$with_overwrite" cf_cv_abi_version="$cf_cv_abi_version" cf_cv_do_symlinks="$cf_cv_do_symlinks" cf_cv_rel_version="$cf_cv_rel_version" cf_cv_rm_so_locs="$cf_cv_rm_so_locs" +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" +host="$host" target="$target" -],sort)dnl +],cat)dnl ${MAKE-make} preinstall