X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=configure.in;h=a46fbf1d43ed64f08eaa9d8ad4f9a7f6daea224d;hp=4ccaceeedab424e368b233533428457d2f2bad00;hb=c633e5103a29a38532cf1925257b91cea33fd090;hpb=661078ddbde3ce0f3b06e95642fbb9b5fef7dca1 diff --git a/configure.in b/configure.in index 4ccaceee..a46fbf1d 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ dnl*************************************************************************** -dnl Copyright (c) 1998 Free Software Foundation, Inc. * +dnl Copyright (c) 1998,1999,2000 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,15 +28,19 @@ dnl*************************************************************************** dnl dnl Author: Thomas E. Dickey 1996,1997 dnl -dnl $Id: configure.in,v 1.126 1998/02/12 23:10:43 tom Exp $ +dnl $Id: configure.in,v 1.220 2000/10/15 00:54:36 tom Exp $ dnl Process this file with autoconf to produce a configure script. -AC_PREREQ(2.12.971222) -AC_REVISION($Revision: 1.126 $) -AC_INIT(ncurses/lib_initscr.c) +dnl +dnl See http://dickey.his.com/autoconf/ for additional information. +dnl +dnl --------------------------------------------------------------------------- +AC_PREREQ(2.13.20000819) +AC_REVISION($Revision: 1.220 $) +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_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) @@ -79,31 +83,78 @@ CF_CFG_DEFAULTS ### Checks for programs. AC_PROG_CC -if test -n "$GCC" ; then -AC_MSG_CHECKING(version of gcc) -eval "$CC --version" +if test "$GCC" = yes ; then + AC_MSG_CHECKING(version of gcc) + eval "$CC --version" +fi +if test "$host" != $build; then + AC_CHECK_PROGS(BUILD_CC, $CC gcc cc) +else + BUILD_CC="$CC" fi +AC_SUBST(BUILD_CC) AC_PROG_CPP AC_PROG_GCC_TRADITIONAL AC_ISC_POSIX -AC_PATH_PROG(LDCONFIG,ldconfig,,$PATH:/sbin:/usr/sbin) +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) dnl DEFECT in autoconf 2.12: an attempt to set policy, this breaks the dnl configure script by not letting us test if C++ dnl is present, making this option necessary. -AC_MSG_CHECKING(if you want to build with C++) +AC_MSG_CHECKING(if you want to ensure bool is consistent with C++) AC_ARG_WITH(cxx, - [ --without-cxx suppress check for C++, don't build demo], + [ --without-cxx do not adjust ncurses bool to match C++], [cf_with_cxx=$withval], [cf_with_cxx=yes]) AC_MSG_RESULT($cf_with_cxx) -if test "X$cf_with_cxx" != Xno ; then -AC_PROG_CXX +if test "X$cf_with_cxx" = Xno ; then + CXX="" + GXX="" +else + pushdef([AC_MSG_ERROR], + [AC_MSG_RESULT([You don't have any C++ compiler, too bad]); dnl + cf_with_cxx=no; CXX=""; GXX="";])dnl + AC_PROG_CXX + popdef([AC_MSG_ERROR])dnl 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 +if test "$GXX" = yes; 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 +AC_MSG_CHECKING(if you want to build C++ binding and demo) +AC_ARG_WITH(cxx-binding, + [ --without-cxx-binding do not build C++ binding and demo], + [cf_with_cxx_binding=$withval], + [cf_with_cxx_binding=$cf_with_cxx]) +AC_MSG_RESULT($cf_with_cxx_binding) + +AC_MSG_CHECKING(if you want to build with Ada95) +AC_ARG_WITH(ada, + [ --without-ada suppress check for Ada95, don't build demo], + [cf_with_ada=$withval], + [cf_with_ada=yes]) +AC_MSG_RESULT($cf_with_ada) + 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)], @@ -111,18 +162,28 @@ 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) @@ -133,7 +194,6 @@ CF_SUBST(archiver,AR,ar) CF_SUBST(archiver options,AR_OPTS,rv) CF_MAKEFLAGS -CF_MAN_PAGES dnl Special option for use by system-builders: the install-prefix is used to dnl adjust the location into which the actual install is done, so that an @@ -144,11 +204,11 @@ AC_ARG_WITH(install-prefix, [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_HELP_MESSAGE(Options to Specify the Libraries Built/Used:) @@ -157,6 +217,21 @@ 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") + +AC_MSG_CHECKING(if you want to build libraries with libtool) +AC_ARG_WITH(libtool, + [ --with-libtool generate libraries with libtool], + [with_libtool=$withval], + [with_libtool=no]) +AC_MSG_RESULT($with_libtool) +if test "$with_libtool" = "yes"; then + cf_list_models="$cf_list_models libtool" + test -z "$LIBTOOL" && LIBTOOL=libtool +else + LIBTOOL="" +fi +AC_SUBST(LIBTOOL) AC_MSG_CHECKING(if you want to build shared libraries) AC_ARG_WITH(shared, @@ -190,6 +265,42 @@ AC_ARG_WITH(profile, AC_MSG_RESULT($with_profile) test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile" +############################################################################### + +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" = "yes" && 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], @@ -201,92 +312,63 @@ AC_MSG_RESULT($with_termlib) 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=yes], + [with_dbmalloc=$withval], [with_dbmalloc=no]) AC_MSG_RESULT($with_dbmalloc) -if test $with_dbmalloc = yes ; then +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=yes], + [with_dmalloc=$withval], [with_dmalloc=no]) AC_MSG_RESULT($with_dmalloc) -if test $with_dmalloc = yes ; then +if test "$with_dmalloc" = yes ; then AC_CHECK_LIB(dmalloc,dmalloc_debug) fi +SHLIB_LIST="" AC_MSG_CHECKING(if you want to link with the gpm mouse library) AC_ARG_WITH(gpm, [ --with-gpm use Alessandro Rubini's GPM library], - [with_gpm=yes], + [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="$EXTRA_LIBS -lgpm -lncurses" - SHLIB_LIST="$SHLIB_DEPS -lgpm " + EXTRA_LIBS="-lgpm -lncurses $EXTRA_LIBS" + SHLIB_LIST="-lgpm $SHLIB_LIST" AC_DEFINE(HAVE_LIBGPM) AC_CHECK_HEADERS(gpm.h) - ],,-lcurses -ltermcap) + ],AC_MSG_WARN(Cannot link with gpm library - read the FAQ)) fi -AC_SUBST(EXTRA_LIBS) -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) - dnl Not all ports of gcc support the -g option -dnl autoconf 2.12 uses different symbol for -g option than autoconf 2.10, etc. if test X"$CC_G_OPT" = X"" ; then CC_G_OPT='-g' - test -n "$GCC" && test "${ac_cv_prog_cc_g}${ac_cv_prog_gcc_g}" != yes && CC_G_OPT='' + test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT='' fi AC_SUBST(CC_G_OPT) if test X"$CXX_G_OPT" = X"" ; then CXX_G_OPT='-g' - test -n "$GXX" && test "${ac_cv_prog_cxx_g}${ac_cv_prog_gxx_g}" != yes && CXX_G_OPT='' + test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT='' 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, @@ -296,7 +378,6 @@ AC_ARG_ENABLE(rpath, AC_MSG_RESULT($cf_cv_ld_rpath) CF_SHARED_OPTS - if test "$CC_SHARED_OPTS" = "unknown"; then for model in $cf_list_models; do if test "$model" = "shared"; then @@ -312,31 +393,35 @@ 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=$enableval], [with_overwrite=yes]) 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) + [use_database=$enableval], + [use_database=yes]) +AC_MSG_RESULT($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) +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) + +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, @@ -344,21 +429,57 @@ AC_ARG_WITH(fallbacks, [with_fallback=$withval], [with_fallback=]) AC_MSG_RESULT($with_fallback) -FALLBACK_LIST=`echo $with_fallback|sed -e 's/,/ /'` +FALLBACK_LIST=`echo $with_fallback|sed -e 's/,/ /g'` AC_SUBST(FALLBACK_LIST) -if test $with_database = no ; 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 + TERMINFO="${datadir}/terminfo" +else + +AC_MSG_CHECKING(for list of terminfo directories) +CF_WITH_PATHLIST(terminfo-dirs, + [ --with-terminfo-dirs=XXX specify list of terminfo directories], + TERMINFO_DIRS, + DATADIR/terminfo, + ${datadir}/terminfo) +AC_MSG_RESULT($TERMINFO_DIRS) +test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS") + +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 -### use option --enable-big-core to make tic run faster on big machines +AC_SUBST(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) AC_ARG_ENABLE(big-core, - [ --enable-big-core assume machine has lots of memory], + [ --disable-big-core assume machine has little memory], [with_big_core=$enableval], - [with_big_core=no]) + [AC_TRY_RUN([ +#include +#include +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])]) AC_MSG_RESULT($with_big_core) test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE) @@ -395,14 +516,7 @@ fi ### Use option --enable-symlinks to make tic use symlinks, not hard links ### to reduce storage requirements for the terminfo database. -### -### Most Unix systems have both link and symlink, a few don't have symlink. -### A few non-Unix systems implement symlink, but not link. -### A few non-systems implement neither. - -AC_CHECK_FUNCS( \ - link \ - symlink ) +CF_LINK_FUNCS with_links=no with_symlinks=no @@ -435,6 +549,15 @@ 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]) +AC_MSG_RESULT($with_broken_linker) +test "$with_broken_linker" = yes && AC_DEFINE(BROKEN_LINKER) + ### 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, @@ -444,6 +567,37 @@ 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 + AC_DEFINE(HAVE_CURSES_VERSION) + AC_DEFINE(HAVE_HAS_KEY) + AC_DEFINE(HAVE_RESIZETERM) + AC_DEFINE(HAVE_USE_DEFAULT_COLORS) + AC_DEFINE(HAVE_WRESIZE) + AC_DEFINE(NCURSES_EXT_FUNCS) +fi + ### 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, @@ -451,92 +605,143 @@ AC_ARG_ENABLE(const, [with_ext_const=$enableval], [with_ext_const=no]) AC_MSG_RESULT($with_ext_const) -test "$with_ext_const" = yes && AC_DEFINE(NCURSES_CONST,const) +NCURSES_CONST='/*nothing*/' +if test "$with_ext_const" = yes ; then + 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=$enableval], - [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-colorfgbg to turn on use of $COLORFGBG environment +AC_MSG_CHECKING(if you want colorfgbg code) +AC_ARG_ENABLE(hard-tabs, + [ --enable-colorfgbg compile with \$COLORFGBG code], + [with_colorfgbg=$enableval], + [with_colorfgbg=$with_develop]) +AC_MSG_RESULT($with_colorfgbg) +test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG) + ### 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=$with_develop]) + [with_hashmap=yes]) AC_MSG_RESULT($with_hashmap) test "$with_hashmap" = yes && AC_DEFINE(USE_HASHMAP) AC_MSG_CHECKING(if you want experimental safe-sprintf code) AC_ARG_ENABLE(safe-sprintf, - [ --disable-safe-sprintf compile with experimental safe-sprintf code], + [ --enable-safe-sprintf compile with experimental safe-sprintf code], [with_safe_sprintf=$enableval], [with_safe_sprintf=no]) 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]) AC_MSG_RESULT($with_scroll_hints) test "$with_scroll_hints" = yes && AC_DEFINE(USE_SCROLL_HINTS) - -### 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=$with_develop]) -AC_MSG_RESULT($with_sigwinch) -test "$with_sigwinch" = yes && AC_DEFINE(USE_SIGWINCH) +fi ### 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) +fi ############################################################################### 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], @@ -545,13 +750,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 @@ -559,13 +769,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" @@ -577,18 +789,18 @@ 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)]) ### Checks for libraries. AC_CHECK_FUNC(gettimeofday, @@ -598,9 +810,7 @@ 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. @@ -615,53 +825,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 \ ) -PROG_EXT= -case $cf_cv_system_name in -hpux*) - # check for HPUX's ANSI compiler - if test -z "$GCC"; then - AC_MSG_CHECKING([for HP/UX ANSI compiler]) - cf_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Aa" - AC_TRY_COMPILE([],[void (*f)(void)=0],[cf_hpux_cc=yes],[cf_hpux_cc=no]) - AC_MSG_RESULT($cf_hpux_cc) - if test $cf_hpux_cc = yes; then - AC_DEFINE(_HPUX_SOURCE) - else - CFLAGS="$cf_save_CFLAGS" - fi - fi - ;; -os2*) - # We make sure -Zexe is not used -- it would interfere with @PROG_EXT@ - CFLAGS="$CFLAGS -Zmt -D__ST_MT_ERRNO__" - LDFLAGS=`echo "$LDFLAGS -Zmt -Zcrtdll" | sed "s/-Zexe//g"` - PROG_EXT=".exe" - ;; -esac -AC_SUBST(PROG_EXT) - # 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 @@ -670,7 +850,7 @@ 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 @@ -678,12 +858,16 @@ CF_WIDEC_SHIFT ### Checks for external-data CF_ERRNO CF_LINK_DATAONLY -CF_SPEED_TYPE ### Checks for library functions. AC_CHECK_FUNCS( \ +getcwd \ +getegid \ +geteuid \ getttynam \ +issetugid \ memccpy \ +mkstemp \ nanosleep \ poll \ remove \ @@ -694,21 +878,20 @@ setvbuf \ sigaction \ sigvec \ strdup \ -tcgetattr \ +strstr \ +tcgetpgrp \ times \ -usleep \ vfscanf \ vsnprintf \ vsscanf \ ) - if test "$with_getcap" = "yes" ; then CF_CGETENT fi CF_ISASCII CF_STRUCT_SIGACTION -CF_STRUCT_TERMIOS +CF_FUNC_TERMIOS dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS if test "$cross_compiling" = yes ; then @@ -719,13 +902,8 @@ fi AC_TYPE_SIGNAL CF_TYPE_SIGACTION CF_SIZECHANGE - -dnl FIXME checks we don't do (but neither does the old Configure script): -case "$cf_cv_system_name" in -linux*) - AC_DEFINE(GOOD_SELECT) - ;; -esac +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 @@ -734,21 +912,55 @@ if test -z "$cf_user_CFLAGS" ; then fi dnl Check for C++ compiler characteristics (and ensure that it's there!) +CF_BOOL_DECL(cf_cv_cc_bool_type) if test -n "$CXX" ; then - AC_CHECK_PROG(CXX_EXISTS, $CXX, yes, no) -else - ac_cv_prog_CXX_EXISTS=no -fi -if test "$ac_cv_prog_CXX_EXISTS" = yes; then AC_LANG_CPLUSPLUS - CF_CXX_LIBRARY - AC_CHECK_HEADERS(builtin.h typeinfo) + CF_STDCPP_LIBRARY + if test "$GXX" = yes; then + case "`${CXX-g++} --version`" in + 1*|2.[0-6]*) + cf_cxx_library=yes + ;; + 2.7*) + CF_GPP_LIBRARY + ;; + *) + cf_cxx_library=no + ;; + esac + else + cf_cxx_library=no + fi + AC_CHECK_HEADERS(typeinfo) CF_BOOL_DECL CF_BOOL_SIZE + CF_ETIP_DEFINES + CF_CPP_PARAM_INIT + case $cf_cv_system_name in #(vi + sco3.2v5*) + CXXLDFLAGS="-u main" + ;; + esac + AC_SUBST(CXXLDFLAGS) else cf_cxx_library=no - AC_CACHE_VAL(cf_cv_builtin_bool,[cf_cv_builtin_bool=0]) - AC_CACHE_VAL(cf_cv_sizeof_bool,[cf_cv_sizeof_bool=int]) + cf_cv_builtin_bool=1 + + # Just because we are not configuring against C++ right now does not + # mean that a user will not want to use C++. Some distributors disable + # the C++ portion of this configuration as a shortcut (or just to avoid + # compiling the demo in the c++ directory). So we need a reasonable + # default for the 'bool' type. + # + # 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) fi AC_SUBST(CXXLIBS) @@ -756,21 +968,40 @@ CF_HELP_MESSAGE(Ada95 Binding Options:) dnl Check for availability of GNU Ada Translator (GNAT). dnl At the moment we support no other Ada95 compiler. +if test "$cf_with_ada" != "no" ; then cf_ada_make=gnatmake AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no) 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_cv_prog_gnat_correct=no + 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 + if test "$cf_cv_prog_gnat_correct" = yes; then + AC_MSG_CHECKING(if GNAT works) + CF_GNAT_TRY_RUN([procedure conftest;], +[with Text_IO; +with GNAT.OS_Lib; +procedure conftest is +begin + Text_IO.Put ("Hello World"); + Text_IO.New_Line; + GNAT.OS_Lib.OS_Exit (0); +end conftest;],[cf_cv_prog_gnat_correct=yes],[cf_cv_prog_gnat_correct=no]) + AC_MSG_RESULT($cf_cv_prog_gnat_correct) + fi fi -if test "$ac_cv_prog_gnat_correct" = yes; then - ADAFLAGS="-O3 $ADAFLAGS" - cf_ada_compiler=gcc +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)], + [cf_ada_compiler=$withval], + [cf_ada_compiler=gnatmake]) + cf_ada_package=terminal_interface AC_SUBST(cf_ada_make) @@ -778,31 +1009,33 @@ if test "$ac_cv_prog_gnat_correct" = yes; then AC_SUBST(cf_ada_package) AC_SUBST(ADAFLAGS) AC_SUBST(cf_compile_generics) + AC_SUBST(cf_generic_objects) CF_WITH_PATH(ada-include, [ --with-ada-include=DIR Ada includes are in DIR], ADA_INCLUDE, - EPREFIX/ada_include, - [$]exec_prefix/ada_include) + 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, - EPREFIX/ada_objects, - [$]exec_prefix/ada_objects) + PREFIX/lib/ada/adalib, + [$]prefix/lib/ada/adalib) AC_SUBST(ADA_OBJECTS) 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 + if test "$GCC" = yes; then case "`$CC --version`" in 2.6.3) - if test "$cf_cv_sizeof_bool" != "char"; then + if test "$cf_cv_type_of_bool" != "char"; then EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion" fi ;; @@ -825,15 +1058,65 @@ LIB_SUBSETS="${LIB_SUBSETS}base" test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs" AC_MSG_RESULT($LIB_SUBSETS) +LIB_TRACING=DEBUG +case "$CFLAGS" in +*-DTRACE*) + LIB_TRACING=all + ;; +esac + ### Construct the list of include-directories to be generated 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 +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++) +AC_MSG_CHECKING(c++ library-dependency suffux) +if test "$with_libtool" = "yes"; 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) + +TINFO_LIST="$SHLIB_LIST" +test "$with_termlib" = yes && SHLIB_LIST="$SHLIB_LIST -ltinfo${LIB_SUFFIX}" + +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) + +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" @@ -853,6 +1136,7 @@ AC_OUTPUT( \ include/curses.h \ include/termcap.h \ include/unctrl.h \ + misc/run_tic.sh:misc/run_tic.in \ $SUB_MAKEFILES \ Makefile,[ CF_LIB_RULES @@ -865,17 +1149,22 @@ CF_LIST_MODELS="$cf_list_models" DFT_LWR_MODEL="$DFT_LWR_MODEL" LDCONFIG="$LDCONFIG" LIB_NAME="$LIB_NAME" +LIB_SUFFIX="$LIB_SUFFIX" LIB_SUBSETS="$LIB_SUBSETS" +LIB_TRACING="$LIB_TRACING" SRC_SUBDIRS="$SRC_SUBDIRS" +TERMINFO="$TERMINFO" TINFO_NAME="$TINFO_NAME" WITH_ECHO="$with_echo" WITH_OVERWRITE="$with_overwrite" +WITH_CURSES_H="$with_curses_h" 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_system_name="$cf_cv_system_name" -cf_cxx_library="$cf_cxx_library" +cf_with_cxx_binding="$cf_with_cxx_binding" +cf_cv_shlib_version="$cf_cv_shlib_version" target="$target" ],sort)dnl