X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=configure.in;h=23db6a4b6014323f59c992c0ab7a0e1156162977;hp=34b5c0a191e53b14d16a8ce93f57b82fbaf7e5d8;hb=684ea7a15772d25d6eb430c5751295e52a2d8a66;hpb=027ae42953e3186daed8f3882da73de48291b606 diff --git a/configure.in b/configure.in index 34b5c0a1..23db6a4b 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ dnl*************************************************************************** -dnl Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. * +dnl Copyright (c) 1998-2008,2009 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.466 2009/02/15 00:19:01 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.466 $) AC_INIT(ncurses/base/lib_initscr.c) AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin) @@ -122,6 +122,13 @@ AC_ARG_WITH(ada, [cf_with_ada=yes]) AC_MSG_RESULT($cf_with_ada) +AC_MSG_CHECKING(if you want to install manpages) +AC_ARG_WITH(manpages, + [ --without-manpages suppress install of manpages], + [cf_with_manpages=$withval], + [cf_with_manpages=yes]) +AC_MSG_RESULT($cf_with_manpages) + AC_MSG_CHECKING(if you want to build programs such as tic) AC_ARG_WITH(progs, [ --without-progs suppress build with programs (e.g., tic)], @@ -150,18 +157,58 @@ CF_PROG_INSTALL CF_PROG_LINT AC_PROG_LN_S +AC_SYS_LONG_FILE_NAMES + +# if we find pkg-config, check if we should install the ".pc" files. +CF_PKG_CONFIG + +if test "$PKG_CONFIG" != no ; then + AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG) + + # Leave this as something that can be overridden in the environment. + if test -z "$PKG_CONFIG_LIBDIR" ; then + PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`/lib/pkgconfig + fi + + if test -d "$PKG_CONFIG_LIBDIR" ; then + AC_ARG_ENABLE(pc-files, + [ --enable-pc-files generate and install .pc files for pkg-config], + [enable_pc_files=$enableval], + [enable_pc_files=no]) + AC_MSG_RESULT($enable_pc_files) + else + AC_MSG_RESULT(no) + AC_MSG_WARN(did not find library $PKG_CONFIG_LIBDIR) + enable_pc_files=no + fi +fi +AC_SUBST(PKG_CONFIG_LIBDIR) + +AC_MSG_CHECKING(if we should assume mixed-case filenames) +AC_ARG_ENABLE(mixed-case, + [ --enable-mixed-case tic should assume mixed-case filenames], + [enable_mixedcase=$enableval], + [enable_mixedcase=auto]) +AC_MSG_RESULT($enable_mixedcase) +if test "$enable_mixedcase" = "auto" ; then + CF_MIXEDCASE_FILENAMES +else + cf_cv_mixedcase=$enable_mixedcase + if test "$enable_mixedcase" = "yes" ; then + AC_DEFINE(MIXEDCASE_FILENAMES) + fi +fi + +# do this after mixed-case option (tags/TAGS is not as important as tic). AC_PROG_MAKE_SET CF_MAKE_TAGS CF_MAKEFLAGS -AC_SYS_LONG_FILE_NAMES -CF_MIXEDCASE_FILENAMES - dnl These are standard among *NIX systems, but not when cross-compiling AC_CHECK_TOOL(RANLIB, ranlib, ':') AC_CHECK_TOOL(LD, ld, ld) AC_CHECK_TOOL(AR, ar, ar) -CF_SUBST(archiver options,AR_OPTS,rv) +CF_AR_FLAGS 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 @@ -255,6 +302,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 +330,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 @@ -304,9 +361,7 @@ if test "$with_gpm" != no ; then SHLIB_LIST="-lgpm $SHLIB_LIST" fi AC_DEFINE(HAVE_LIBGPM) - AC_CHECK_LIB(gpm,Gpm_Wgetch,[ - AC_MSG_WARN(GPM library is already linked with curses - read the FAQ) - ]) + CF_CHECK_GPM_WGETCH fi CF_WITH_SYSMOUSE @@ -336,12 +391,17 @@ 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, -[ --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) +case $DFT_LWR_MODEL in +shared) +CF_ENABLE_RPATH +AC_MSG_CHECKING(if shared libraries should be relinked during install) +AC_ARG_ENABLE(relink, +[ --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 @@ -395,6 +455,8 @@ if test "$use_database" != no ; then [ --with-hashed-db specify hashed-database library],, [with_hashed_db=no]) AC_MSG_RESULT($with_hashed_db) +else + with_hashed_db=no fi AC_MSG_CHECKING(for list of fallback descriptions) @@ -470,6 +532,20 @@ int main() { AC_MSG_RESULT($with_big_core) test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE) +### ISO C only guarantees 512-char strings, we have tables which load faster +### when constructed using "big" strings. More than the C compiler, the awk +### program is a limit on most vendor UNIX systems. Check that we can build. +AC_MSG_CHECKING(if big-strings option selected) +AC_ARG_ENABLE(big-strings, + [ --disable-big-strings assume compiler has only standard-size strings], + [with_big_strings=$enableval], + [CF_AWK_BIG_PRINTF(12000,with_big_strings)]) +AC_MSG_RESULT($with_big_strings) + +USE_BIG_STRINGS=0 +test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1 +AC_SUBST(USE_BIG_STRINGS) + ### use option --enable-termcap to compile in the termcap fallback support AC_MSG_CHECKING(if you want termcap-fallback support) AC_ARG_ENABLE(termcap, @@ -487,6 +563,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, @@ -631,10 +711,10 @@ if test "$with_widec" = yes ; then CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED) # with_overwrite=no NCURSES_CH_T=cchar_t - AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc) + AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs) if test "$ac_cv_func_putwc" != yes ; then - CF_LIBUTF8 - if test "$cf_cv_libutf8" = yes ; then + CF_UTF8_LIB + if test "$cf_cv_utf8_lib" != no ; then NCURSES_LIBUTF8=1 fi fi @@ -683,7 +763,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], @@ -694,6 +774,18 @@ NCURSES_TPARM_VARARGS=0 test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1 AC_SUBST(NCURSES_TPARM_VARARGS) +### use option --disable-tic-depends to make libtic not explicitly depend on ncurses/ncursesw +if test "$with_ticlib" != no ; then +AC_MSG_CHECKING(if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library) +AC_ARG_ENABLE(tic-depends, + [ --disable-tic-depends link tic library without explicit dependency on ncurses library], + [with_tic_depends=$enableval], + [with_tic_depends=yes]) +AC_MSG_RESULT($with_tic_depends) +else + with_tic_depends=no +fi + ### use option --with-bool to override bool's type AC_MSG_CHECKING(for type of bool) AC_ARG_WITH(bool, @@ -747,7 +839,7 @@ AC_MSG_RESULT($with_rcs_ids) test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS) ############################################################################### -CF_MAN_PAGES([ captoinfo clear infocmp infotocap tic toe tput ]) +CF_MAN_PAGES([ captoinfo clear infocmp infotocap tabs tic toe tput tset ]) ############################################################################### CF_HELP_MESSAGE(Extensions:) @@ -768,10 +860,30 @@ if test "$with_ext_funcs" = yes ; then AC_DEFINE(HAVE_USE_DEFAULT_COLORS) AC_DEFINE(HAVE_WRESIZE) AC_DEFINE(NCURSES_EXT_FUNCS) + GENERATED_EXT_FUNCS=generated else NCURSES_EXT_FUNCS=0 + GENERATED_EXT_FUNCS= fi AC_SUBST(NCURSES_EXT_FUNCS) +AC_SUBST(GENERATED_EXT_FUNCS) + +AC_MSG_CHECKING(if you want to build with experimental SCREEN extensions) +AC_ARG_ENABLE(sp-funcs, + [ --enable-sp-funcs disable experimental SCREEN-extensions], + [with_sp_funcs=$enableval], + [with_sp_funcs=no]) +AC_MSG_RESULT($with_sp_funcs) +if test "$with_sp_funcs" = yes ; then + NCURSES_SP_FUNCS=1 + AC_DEFINE(NCURSES_SP_FUNCS) + GENERATED_SP_FUNCS=generated +else + NCURSES_SP_FUNCS=0 + GENERATED_SP_FUNCS= +fi +AC_SUBST(NCURSES_SP_FUNCS) +AC_SUBST(GENERATED_SP_FUNCS) ### use option --enable-const to turn on use of const beyond that in XSI. AC_MSG_CHECKING(for extended use of const keyword) @@ -786,6 +898,40 @@ if test "$with_ext_const" = yes ; then fi AC_SUBST(NCURSES_CONST) +### use option --enable-ext-colors to turn on use of colors beyond 16. +AC_MSG_CHECKING(if you want to use extended colors) +AC_ARG_ENABLE(ext-colors, + [ --enable-ext-colors compile for 256-color support], + [with_ext_colors=$enableval], + [with_ext_colors=no]) +AC_MSG_RESULT($with_ext_colors) +NCURSES_EXT_COLORS=0 +if test "$with_ext_colors" = yes ; then + if test "$with_widec" != yes ; then + AC_MSG_ERROR(This option applies only to wide-character library) + else + # cannot be ABI 5 since it changes sizeof(cchar_t) + CF_NCURSES_ABI_6 + fi + NCURSES_EXT_COLORS=1 + AC_DEFINE(NCURSES_EXT_COLORS) +fi +AC_SUBST(NCURSES_EXT_COLORS) + +### use option --enable-ext-mouse to modify coding to support 5-button mice +AC_MSG_CHECKING(if you want to use extended mouse encoding) +AC_ARG_ENABLE(ext-mouse, + [ --enable-ext-mouse compile for extended mouse-encoding], + [with_ext_mouse=$enableval], + [with_ext_mouse=no]) +AC_MSG_RESULT($with_ext_mouse) +NCURSES_MOUSE_VERSION=1 +if test "$with_ext_mouse" = yes ; then + NCURSES_MOUSE_VERSION=2 + CF_NCURSES_ABI_6 +fi +AC_SUBST(NCURSES_MOUSE_VERSION) + AC_MSG_CHECKING(if you want \$NCURSES_NO_PADDING code) AC_ARG_ENABLE(no-padding, [ --enable-no-padding compile with $NCURSES_NO_PADDING code], @@ -802,7 +948,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) @@ -885,39 +1031,68 @@ AC_ARG_ENABLE(colorfgbg, AC_MSG_RESULT($with_colorfgbg) test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG) -### use option --enable-ext-colors to turn on use of colors beyond 16. -AC_MSG_CHECKING(if you want to use experimental extended colors) -AC_ARG_ENABLE(ext-colors, - [ --enable-ext-colors compile for experimental 256-color support], - [with_ext_colors=$enableval], - [with_ext_colors=no]) -AC_MSG_RESULT($with_ext_colors) -NCURSES_EXT_COLORS=0 -if test "$with_ext_colors" = yes ; then - if test "$with_widec" != yes ; then - AC_MSG_WARN(This option applies only to wide-character library) - else - # cannot be ABI 5 since it changes sizeof(cchar_t) - CF_NCURSES_ABI_6 - fi - NCURSES_EXT_COLORS=1 - AC_DEFINE(NCURSES_EXT_COLORS) +# This is still experimental (20080329), but should ultimately be moved to +# the script-block --with-normal, etc. +CF_WITH_PTHREAD + +AC_MSG_CHECKING(if you want to use weak-symbols for pthreads) +AC_ARG_ENABLE(weak-symbols, + [ --enable-weak-symbols enable weak-symbols for pthreads], + [use_weak_symbols=$withval], + [use_weak_symbols=no]) +AC_MSG_RESULT($use_weak_symbols) +if test "$use_weak_symbols" = yes ; then + CF_WEAK_SYMBOLS +else + cf_cv_weak_symbols=no fi -AC_SUBST(NCURSES_EXT_COLORS) -### use option --enable-ext-mouse to modify coding to support 5-button mice -AC_MSG_CHECKING(if you want to use experimental extended mouse encoding) -AC_ARG_ENABLE(ext-mouse, - [ --enable-ext-mouse compile for experimental mouse-encoding], - [with_ext_mouse=$enableval], - [with_ext_mouse=no]) -AC_MSG_RESULT($with_ext_mouse) -NCURSES_MOUSE_VERSION=1 -if test "$with_ext_mouse" = yes ; then - NCURSES_MOUSE_VERSION=2 +if test $cf_cv_weak_symbols = yes ; then + AC_DEFINE(USE_WEAK_SYMBOLS) +fi + +PTHREAD= +if test "$with_pthread" = "yes" ; then + AC_DEFINE(USE_PTHREADS) + enable_reentrant=yes + if test $cf_cv_weak_symbols = yes ; then + PTHREAD=-lpthread + fi +fi +AC_SUBST(PTHREAD) + +# Reentrant code has to be opaque; there's little advantage to making ncurses +# opaque outside of that, so there is no --enable-opaque option. We can use +# this option without --with-pthreads, but this will be always set for +# pthreads. +AC_MSG_CHECKING(if you want experimental reentrant code) +AC_ARG_ENABLE(reentrant, + [ --enable-reentrant compile with experimental reentrant code], + [with_reentrant=$enableval], + [with_reentrant=no]) +AC_MSG_RESULT($with_reentrant) +if test "$with_reentrant" = yes ; then + cf_cv_enable_reentrant=1 + cf_cv_enable_opaque="NCURSES_INTERNALS" + NCURSES_OPAQUE=1 + NCURSES_SIZE_T=int + if test $cf_cv_weak_symbols = yes ; then + CF_REMOVE_LIB(LIBS,$LIBS,pthread) + else + LIB_SUFFIX="t${LIB_SUFFIX}" + fi + AC_DEFINE(USE_REENTRANT) CF_NCURSES_ABI_6 +else + cf_cv_enable_reentrant=0 + cf_cv_enable_opaque="NCURSES_OPAQUE" + NCURSES_OPAQUE=0 + NCURSES_SIZE_T=short fi -AC_SUBST(NCURSES_MOUSE_VERSION) +AC_SUBST(cf_cv_enable_reentrant) +AC_SUBST(cf_cv_enable_opaque) +AC_SUBST(NCURSES_OPAQUE) +AC_SUBST(NCURSES_SIZE_T) AC_MSG_CHECKING(if you want experimental safe-sprintf code) AC_ARG_ENABLE(safe-sprintf, @@ -961,6 +1136,7 @@ if test "$with_echo" = yes; then else ECHO_LINK='@ echo linking $@ ... ;' test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent" + test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent" fi AC_MSG_RESULT($with_echo) AC_SUBST(ECHO_LINK) @@ -972,9 +1148,9 @@ AC_ARG_ENABLE(warnings, [with_warnings=$enableval]) AC_MSG_RESULT($with_warnings) -if test -n "$with_warnings"; then +if test "x$with_warnings" = "xyes"; then ADAFLAGS="$ADAFLAGS -gnatg" - CF_GCC_WARNINGS + CF_GCC_WARNINGS(Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum) if test "$cf_with_cxx" = yes ; then CF_GXX_WARNINGS(Wno-unused) fi @@ -1041,12 +1217,18 @@ fi AC_SUBST(ADA_TRACE) ### Checks for libraries. +case $cf_cv_system_name in #(vi +*mingw32*) #(vi + ;; +*) AC_CHECK_FUNC(gettimeofday, AC_DEFINE(HAVE_GETTIMEOFDAY),[ AC_CHECK_LIB(bsd, gettimeofday, AC_DEFINE(HAVE_GETTIMEOFDAY) LIBS="$LIBS -lbsd")])dnl CLIX: bzero, select, gettimeofday + ;; +esac CF_MATH_LIB(MATH_LIB,sin(x)) AC_SUBST(MATH_LIB) @@ -1088,26 +1270,21 @@ CF_SYS_TIME_SELECT ### checks for compiler characteristics AC_LANG_C AC_C_CONST -AC_C_INLINE - -NCURSES_INLINE= -if test "$ac_cv_c_inline" != no ; then - AC_DEFINE(CC_HAS_INLINE_FUNCS) - NCURSES_INLINE=inline -fi -AC_SUBST(NCURSES_INLINE) +CF_C_INLINE(NCURSES_INLINE,1200) +CF_SIG_ATOMIC_T if test $NCURSES_CHTYPE = auto ; then CF_TYPEOF_CHTYPE 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 +1292,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 @@ -1168,9 +1346,20 @@ CF_SIZECHANGE CF_FUNC_MEMMOVE CF_FUNC_POLL +# special check for test/ditto.c +CF_FUNC_OPENPTY +if test "$cf_cv_func_openpty" != no ; then + AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>) + AC_DEFINE(USE_XTERM_PTY) + if test "$cf_cv_lib_util" = yes ; then + TEST_LIBS="-lutil $TEST_LIBS" + fi +fi +AC_SUBST(TEST_LIBS) + if test "$with_hashed_db" != no ; then AC_DEFINE(USE_HASHED_DB) - CF_HASHED_DB + CF_HASHED_DB($with_hashed_db) fi dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS @@ -1200,22 +1389,35 @@ if test -n "$CXX" ; then ;; esac - AC_CHECK_HEADERS(typeinfo) + AC_CHECK_HEADERS(iostream typeinfo) + + if test x"$ac_cv_header_iostream" = xyes ; then + AC_MSG_CHECKING(if iostream uses std-namespace) + AC_TRY_COMPILE([ +#include +using std::endl; +using std::cerr;],[ +cerr << "testing" << endl; +],[cf_iostream_namespace=yes],[cf_iostream_namespace=no]) + AC_MSG_RESULT($cf_iostream_namespace) + if test "$cf_iostream_namespace" = yes ; then + AC_DEFINE(IOSTREAM_NAMESPACE) + fi + fi CF_BOOL_DECL CF_BOOL_SIZE CF_ETIP_DEFINES CF_CPP_PARAM_INIT CF_CPP_STATIC_CAST - CF_CPP_VSCAN_FUNC CXX_AR='$(AR)' - CXX_AR_OPTS='$(AR_OPTS)' + CXX_ARFLAGS='$(ARFLAGS)' case $cf_cv_system_name in #(vi irix*) #(vi if test "$GXX" != yes ; then CXX_AR='$(CXX)' - CXX_AR_OPTS='-ar -o' + CXX_ARFLAGS='-ar -o' fi ;; sco3.2v5*) #(vi @@ -1224,13 +1426,13 @@ if test -n "$CXX" ; then solaris2*) if test "$GXX" != yes ; then CXX_AR='$(CXX)' - CXX_AR_OPTS='-xar -o' + CXX_ARFLAGS='-xar -o' fi ;; esac AC_SUBST(CXXLDFLAGS) AC_SUBST(CXX_AR) - AC_SUBST(CXX_AR_OPTS) + AC_SUBST(CXX_ARFLAGS) else cf_cxx_library=no cf_cv_builtin_bool=1 @@ -1284,9 +1486,22 @@ AC_SUBST(USE_CXX_BOOL) CF_HELP_MESSAGE(Ada95 Binding Options:) +dnl If the Ada95 source-tree is present, add that to the build unless it will +dnl not work, or was not requested. +if test -f "${srcdir}/Ada95/Makefile.in" ; then + +dnl libtool does not know anything about GNAT, though a change made in 1998 +dnl provided for it "someday". Disable the ada subtree if we are using +dnl libtool -TD 20070714 +if test "$cf_with_ada" != "no" ; then + if test "$with_libtool" != "no"; then + AC_MSG_WARN(libtool does not support Ada - disabling feature) + cf_with_ada=no + fi +fi + dnl Check for availability of GNU Ada Translator (GNAT). dnl At the moment we support no other Ada95 compiler. -if test -f "${srcdir}/Ada95/Makefile.in" ; then if test "$cf_with_ada" != "no" ; then cf_ada_make=gnatmake AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no) @@ -1369,22 +1584,55 @@ 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 || test "$with_termcap" != 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+port_drivers" + +case $cf_cv_system_name in #(vi +*mingw32*) #(vi + LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo+port_win32con" + ;; +*) #(vi + LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo" + ;; +esac + +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 @@ -1398,14 +1646,7 @@ AC_SUBST(DFT_ARG_SUFFIX)dnl the string to append to "-lncurses" ("") AC_MSG_RESULT($DFT_ARG_SUFFIX) AC_MSG_CHECKING(default library-dependency suffix) -CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_DEP_SUFFIX)dnl -if test $DFT_LWR_MODEL = shared ; then - case $cf_cv_system_name in #(vi - cygwin*) - DFT_DEP_SUFFIX=".dll.a" - ;; - esac -fi +CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_LIB_SUFFIX,DFT_DEP_SUFFIX)dnl AC_SUBST(DFT_DEP_SUFFIX)dnl the corresponding library-suffix (".a") AC_MSG_RESULT($DFT_DEP_SUFFIX) @@ -1420,22 +1661,59 @@ AC_MSG_CHECKING(c++ library-dependency suffix) if test "$with_libtool" != "no"; then CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX else - CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX)dnl we normally make a static library + CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX,CXX_DEP_SUFFIX)dnl we normally make a static library fi AC_MSG_RESULT($CXX_LIB_SUFFIX) AC_SUBST(CXX_LIB_SUFFIX) 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_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" TINFO_LIB_SUFFIX="${with_termlib}" else + TINFO_SUFFIX=${DFT_LIB_SUFFIX} TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}" TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}" TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}" @@ -1450,21 +1728,56 @@ 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_LIB_SUFFIX} + TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX} + if test "$with_tic_depends" = yes ; then + TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}" + else + TICS_LIST="$SHLIB_LIST" + fi + TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}" fi + +if test "$DFT_LWR_MODEL" = shared ; then + case $cf_cv_system_name in #(vi + cygwin*) + # "lib" files have ".dll.a" suffix, "cyg" files have ".dll" + TINFO_SUFFIX=.dll + ;; + esac +fi + AC_SUBST(TINFO_ARG_SUFFIX) AC_SUBST(TINFO_DEP_SUFFIX) AC_SUBST(TINFO_LIB_SUFFIX) AC_SUBST(TINFO_ARGS) +if test "$with_dlsym" = yes ; then + CF_REMOVE_LIB(TICS_LIST,$TICS_LIST,dl) +fi + +if test "$DFT_LWR_MODEL" = "libtool"; then + OBJEXT=lo +fi + # needed for Ada95 TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'` AC_SUBST(TINFO_ARGS2) +case $DFT_LWR_MODEL in +normal|debug|profile) + CF_LDFLAGS_STATIC + ;; +esac + AC_MSG_CHECKING(where we will install curses.h) test "$with_overwrite" = no && \ test "x$includedir" = 'x${prefix}/include' && \ @@ -1479,11 +1792,17 @@ if test "$NCURSES_LIBUTF8" = 1 ; then AC_MSG_WARN(Wide-character applications must define HAVE_LIBUTF8_H to include curses.h) fi fi +WITH_OVERWRITE=$with_overwrite 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,23 +1810,44 @@ 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${DFT_ARG_SUFFIX}-config:Ada95/gen/adacurses-config.in" +fi + CF_DIRS_TO_MAKE -AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATHSEP') +AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR') 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 CF_ADD_CFLAGS($EXTRA_CFLAGS) +### If we're building with rpath, try to link non-standard libs that way too. +if test "$DFT_LWR_MODEL" = "shared"; then + CF_RPATH_HACK +fi + ### Define substitutions for header files to avoid name-pollution CF_SUBST_IF(["$cf_cv_have_tcgetattr" = yes], HAVE_TCGETATTR, 1, 0) CF_SUBST_IF(["$ac_cv_header_termio_h" = yes], HAVE_TERMIO_H, 1, 0) CF_SUBST_IF(["$ac_cv_header_termios_h" = yes], HAVE_TERMIOS_H, 1, 0) ################################################################################ -test "$use_database" = yes && SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in" +test "$use_database" = yes && \ +SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in" + SUB_MAKEFILES="$SUB_MAKEFILES misc/ncurses-config:misc/ncurses-config.in" + +if test x"$enable_pc_files" = xyes ; then \ +SUB_MAKEFILES="$SUB_MAKEFILES misc/gen-pkgconfig:misc/gen-pkgconfig.in" +MAKE_PC_FILES= +else +MAKE_PC_FILES="#" +fi +AC_SUBST(MAKE_PC_FILES) + AC_OUTPUT( \ include/MKterm.h.awk \ include/curses.head:include/curses.h.in \ @@ -1537,24 +1877,32 @@ NCURSES_OSPEED="$NCURSES_OSPEED" NCURSES_PATCH="$NCURSES_PATCH" SRC_SUBDIRS="$SRC_SUBDIRS" TERMINFO="$TERMINFO" +TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX" +TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX" +TICS_NAME="$TICS_NAME" TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX" TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX" TINFO_NAME="$TINFO_NAME" +TINFO_SUFFIX="$TINFO_SUFFIX" 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" cf_cv_rm_so_locs="$cf_cv_rm_so_locs" +cf_cv_shared_soname='$cf_cv_shared_soname' cf_cv_shlib_version="$cf_cv_shlib_version" cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix" cf_cv_system_name="$cf_cv_system_name" cf_with_cxx_binding="$cf_with_cxx_binding" +cf_with_manpages="$cf_with_manpages" host="$host" target="$target"