summaryrefslogtreecommitdiff
path: root/meta/recipes-core/ncurses
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-09-01 19:09:11 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-09-01 19:09:57 +0100
commitd62ee7eaf2ba025c3f64b2d4e10dc7cec4637612 (patch)
treef36fe3008f36ff75cbdd31b630f8f13f1f205ebb /meta/recipes-core/ncurses
parentcaab7fc509bf27706ff3248689f6afd04225cfda (diff)
downloadopenembedded-core-d62ee7eaf2ba025c3f64b2d4e10dc7cec4637612.tar.gz
openembedded-core-d62ee7eaf2ba025c3f64b2d4e10dc7cec4637612.tar.bz2
openembedded-core-d62ee7eaf2ba025c3f64b2d4e10dc7cec4637612.zip
packages: Separate out most of the remaining packages into recipes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-core/ncurses')
-rw-r--r--meta/recipes-core/ncurses/ncurses.inc99
-rw-r--r--meta/recipes-core/ncurses/ncurses/makefile_tweak.patch89
-rw-r--r--meta/recipes-core/ncurses/ncurses/visibility.patch4904
-rw-r--r--meta/recipes-core/ncurses/ncurses_5.4.bb8
4 files changed, 5100 insertions, 0 deletions
diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc
new file mode 100644
index 0000000000..259750cb46
--- /dev/null
+++ b/meta/recipes-core/ncurses/ncurses.inc
@@ -0,0 +1,99 @@
+DESCRIPTION = "Ncurses library"
+HOMEPAGE = "http://www.gnu.org/software/ncurses/ncurses.html"
+LICENSE = "MIT"
+SECTION = "libs"
+DEPENDS = "ncurses-native"
+DEPENDS_virtclass-native = ""
+PACKAGES_prepend = "ncurses-tools "
+PACKAGES_append = " ncurses-terminfo"
+FILES_ncurses_append = " ${datadir}/tabset"
+RSUGGESTS_${PN} = "ncurses-terminfo"
+RPROVIDES = "libncurses5"
+
+inherit autotools
+
+# This keeps only tput/tset in ncurses
+# clear/reset are in already busybox
+FILES_ncurses-tools = "${bindir}/tic ${bindir}/toe ${bindir}/infotocap ${bindir}/captoinfo ${bindir}/infocmp ${bindir}/clear.${PN} ${bindir}/reset.${PN} ${bindir}/tack "
+FILES_ncurses-terminfo = "${datadir}/terminfo"
+FILES_${PN} = "${bindir}/tput ${bindir}/tset ${libdir}/lib*.so.* /usr/share/tabset /etc/terminfo"
+
+PARALLEL_MAKE=""
+
+FILESPATH = "${FILE_DIRNAME}/local:${FILE_DIRNAME}/ncurses-${PV}-${PR}:${FILE_DIRNAME}/ncurses-${PV}:${FILE_DIRNAME}/ncurses:${FILE_DIRNAME}"
+
+EXTRA_OECONF = "--with-shared \
+ --with-libtool \
+ --without-profile \
+ --without-debug \
+ --disable-rpath \
+ --enable-echo \
+ --enable-const \
+ --without-ada \
+ --enable-termcap \
+ --without-cxx-binding \
+ --with-terminfo-dirs=${sysconfdir}/terminfo:${datadir}/terminfo \
+ --enable-overwrite \
+ --with-build-ldflags='' \
+ --with-build-ccflags='' "
+export BUILD_CCFLAGS = "-I${S}/ncurses -I${S}/include ${BUILD_CFLAGS}"
+export BUILD_LDFLAGS = ""
+export EXTRA_OEMAKE = '"BUILD_LDFLAGS=" "BUILD_CCFLAGS=${BUILD_CCFLAGS}"'
+
+# This is necessary so that the "tic" command executed during the install can
+# link with the correct libary in staging.
+export LD_LIBRARY_PATH = "${STAGING_LIBDIR_NATIVE}"
+
+do_install() {
+ autotools_do_install
+
+ ln -sf curses.h ${D}${includedir}/ncurses.h
+
+ # our ncurses has termcap support
+ ln -sf libncurses.so ${D}${libdir}/libtermcap.so
+ ln -sf libncurses.a ${D}${libdir}/libtermcap.a
+
+ # include some basic terminfo files
+ # stolen ;) from gentoo and modified a bit
+ for x in ansi console dumb linux rxvt screen sun vt{52,100,102,200,220} xterm-color xterm-xfree86
+ do
+ local termfile="$(find "${D}${datadir}/terminfo/" -name "${x}" 2>/dev/null)"
+ local basedir="$(basename $(dirname "${termfile}"))"
+
+ if [ -n "${termfile}" ]
+ then
+ install -d ${D}${sysconfdir}/terminfo/${basedir}
+ mv ${termfile} ${D}${sysconfdir}/terminfo/${basedir}/
+ ln -s /etc/terminfo/${basedir}/${x} \
+ ${D}${datadir}/terminfo/${basedir}/${x}
+ fi
+ done
+ # i think we can use xterm-color as default xterm
+ if [ -e ${D}${sysconfdir}/terminfo/x/xterm-color ]
+ then
+ ln -sf xterm-color ${D}${sysconfdir}/terminfo/x/xterm
+ fi
+
+ if [ "${PN}" = "ncurses" ]; then
+ mv ${D}${bindir}/clear ${D}${bindir}/clear.${PN}
+ mv ${D}${bindir}/reset ${D}${bindir}/reset.${PN}
+ fi
+}
+
+
+pkg_postinst_ncurses-tools () {
+ if [ "${PN}" = "ncurses" ]; then
+ update-alternatives --install ${bindir}/clear clear clear.${PN} 100
+ update-alternatives --install ${bindir}/reset reset reset.${PN} 100
+ fi
+}
+
+
+pkg_prerm_ncurses-tools () {
+ if [ "${PN}" = "ncurses" ]; then
+ update-alternatives --remove clear clear.${PN}
+ update-alternatives --remove reset reset.${PN}
+ fi
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-core/ncurses/ncurses/makefile_tweak.patch b/meta/recipes-core/ncurses/ncurses/makefile_tweak.patch
new file mode 100644
index 0000000000..480855bcc6
--- /dev/null
+++ b/meta/recipes-core/ncurses/ncurses/makefile_tweak.patch
@@ -0,0 +1,89 @@
+Libtool 2.2.2 needs to be able to use top_builddir. Automake usually exports
+this but ncurses doesn't use automake.
+
+RP 14/4/08
+
+Index: ncurses-5.4/ncurses/Makefile.in
+===================================================================
+--- ncurses-5.4.orig/ncurses/Makefile.in 2008-04-14 12:22:34.000000000 +0100
++++ ncurses-5.4/ncurses/Makefile.in 2008-04-14 12:22:53.000000000 +0100
+@@ -57,6 +57,7 @@
+ MODEL = @DFT_LWR_MODEL@
+ DESTDIR = @DESTDIR@
+ top_srcdir = @top_srcdir@
++top_builddir = @top_srcdir@
+ srcdir = @srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+Index: ncurses-5.4/form/Makefile.in
+===================================================================
+--- ncurses-5.4.orig/form/Makefile.in 2008-04-14 12:30:35.000000000 +0100
++++ ncurses-5.4/form/Makefile.in 2008-04-14 12:30:59.000000000 +0100
+@@ -51,6 +51,7 @@
+ MODEL = @DFT_LWR_MODEL@
+ DESTDIR = @DESTDIR@
+ srcdir = @srcdir@
++top_builddir = @top_srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+Index: ncurses-5.4/menu/Makefile.in
+===================================================================
+--- ncurses-5.4.orig/menu/Makefile.in 2008-04-14 12:29:00.000000000 +0100
++++ ncurses-5.4/menu/Makefile.in 2008-04-14 12:29:13.000000000 +0100
+@@ -51,6 +51,7 @@
+ MODEL = @DFT_LWR_MODEL@
+ DESTDIR = @DESTDIR@
+ srcdir = @srcdir@
++top_builddir = @top_srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+Index: ncurses-5.4/panel/Makefile.in
+===================================================================
+--- ncurses-5.4.orig/panel/Makefile.in 2008-04-14 12:27:40.000000000 +0100
++++ ncurses-5.4/panel/Makefile.in 2008-04-14 12:27:59.000000000 +0100
+@@ -51,6 +51,7 @@
+ MODEL = @DFT_LWR_MODEL@
+ DESTDIR = @DESTDIR@
+ srcdir = @srcdir@
++top_builddir = @top_srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+Index: ncurses-5.4/progs/Makefile.in
+===================================================================
+--- ncurses-5.4.orig/progs/Makefile.in 2008-04-14 12:24:37.000000000 +0100
++++ ncurses-5.4/progs/Makefile.in 2008-04-14 12:25:06.000000000 +0100
+@@ -54,6 +54,7 @@
+ MODEL = ../@DFT_OBJ_SUBDIR@
+ DESTDIR = @DESTDIR@
+ srcdir = @srcdir@
++top_builddir = @top_srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+Index: ncurses-5.4/tack/Makefile.in
+===================================================================
+--- ncurses-5.4.orig/tack/Makefile.in 2008-04-14 12:26:05.000000000 +0100
++++ ncurses-5.4/tack/Makefile.in 2008-04-14 12:26:26.000000000 +0100
+@@ -22,6 +22,7 @@
+ MODEL = ../@DFT_OBJ_SUBDIR@
+ DESTDIR = @DESTDIR@
+ srcdir = @srcdir@
++top_builddir = @top_srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+Index: ncurses-5.4/test/Makefile.in
+===================================================================
+--- ncurses-5.4.orig/test/Makefile.in 2008-04-14 12:32:37.000000000 +0100
++++ ncurses-5.4/test/Makefile.in 2008-04-14 12:32:56.000000000 +0100
+@@ -43,6 +43,7 @@
+
+ MODEL = ../@DFT_OBJ_SUBDIR@
+ srcdir = @srcdir@
++top_builddir = @top_srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ libdir = @libdir@
diff --git a/meta/recipes-core/ncurses/ncurses/visibility.patch b/meta/recipes-core/ncurses/ncurses/visibility.patch
new file mode 100644
index 0000000000..29cac5f1b8
--- /dev/null
+++ b/meta/recipes-core/ncurses/ncurses/visibility.patch
@@ -0,0 +1,4904 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- ncurses-5.4/ncurses/Makefile.in~visibility.patch
++++ ncurses-5.4/ncurses/Makefile.in
+@@ -107,7 +107,7 @@
+ CFLAGS_NORMAL = $(CCFLAGS)
+ CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
+ CFLAGS_PROFILE = $(CCFLAGS) -pg
+-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
++CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@ @LIBOPTS@
+
+ CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
+
+--- ncurses-5.4/panel/Makefile.in~visibility.patch
++++ ncurses-5.4/panel/Makefile.in
+@@ -88,7 +88,7 @@
+ CFLAGS_NORMAL = $(CCFLAGS)
+ CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
+ CFLAGS_PROFILE = $(CCFLAGS) -pg
+-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
++CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@ @LIBOPTS@
+
+ CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
+
+--- ncurses-5.4/menu/Makefile.in~visibility.patch
++++ ncurses-5.4/menu/Makefile.in
+@@ -87,7 +87,7 @@
+ CFLAGS_NORMAL = $(CCFLAGS)
+ CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
+ CFLAGS_PROFILE = $(CCFLAGS) -pg
+-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
++CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@ @LIBOPTS@
+
+ CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
+
+--- ncurses-5.4/c++/Makefile.in~visibility.patch
++++ ncurses-5.4/c++/Makefile.in
+@@ -80,7 +80,7 @@
+ CFLAGS_NORMAL = $(CCFLAGS)
+ CFLAGS_DEBUG = $(CCFLAGS) @CXX_G_OPT@ -DTRACE
+ CFLAGS_PROFILE = $(CCFLAGS) -pg
+-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
++CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@ @LIBOPTS@
+
+ CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
+
+--- ncurses-5.4/form/Makefile.in~visibility.patch
++++ ncurses-5.4/form/Makefile.in
+@@ -88,7 +88,7 @@
+ CFLAGS_NORMAL = $(CCFLAGS)
+ CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
+ CFLAGS_PROFILE = $(CCFLAGS) -pg
+-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
++CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@ @LIBOPTS@
+
+ CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
+
+--- ncurses-5.4/configure.in~visibility.patch
++++ ncurses-5.4/configure.in
+@@ -34,17 +34,20 @@
+ dnl See http://invisible-island.net/autoconf/ for additional information.
+ dnl
+ dnl ---------------------------------------------------------------------------
+-AC_PREREQ(2.13.20020210)
++AC_PREREQ(2.59)
+ AC_REVISION($Revision: 1.312 $)
+-AC_INIT(ncurses/base/lib_initscr.c)
++AC_INIT
++AC_CONFIG_SRCDIR([ncurses/base/lib_initscr.c])
+ AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
+
++m4_include([m4/templates.m4])
++
+ CF_SUBST_NCURSES_VERSION
+
+ CF_WITH_REL_VERSION(NCURSES)
+ CF_WITH_ABI_VERSION
+
+-CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
++CF_CHECK_CACHE([AC_CANONICAL_TARGET([])])
+ AC_ARG_WITH(system-type,
+ [ --with-system-type=XXX test: override derived host system-type],
+ [AC_MSG_WARN(overriding system type to $withval)
+@@ -100,7 +103,7 @@
+ CF_GXX_VERSION
+ case $GXX_VERSION in
+ 1*|2.[[0-6]]*)
+- GXX=""; CXX=""; ac_cv_prog_gxx=no
++ GXX=""; CXX=""; ac_cv_cxx_compiler_gnu=no
+ cf_cxx_library=no
+ AC_MSG_WARN(templates do not work)
+ ;;
+@@ -176,7 +179,6 @@
+ AC_SUBST(DESTDIR)
+
+ ###############################################################################
+-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.
+@@ -213,7 +215,6 @@
+ AC_SUBST(BUILD_EXEEXT)
+
+ ###############################################################################
+-CF_HELP_MESSAGE(Options to Specify the Libraries Built/Used:)
+
+ ### Options to allow the user to specify the set of libraries which are used.
+ ### Use "--without-normal --with-shared" to allow the default model to be
+@@ -343,11 +344,11 @@
+
+ AC_MSG_CHECKING(for default loader flags)
+ case $DFT_LWR_MODEL in
+-libtool) LD_MODEL='' ;;
++libtool) LD_MODEL=''; LIBOPTS="-DNCURSES_DLL" ;;
+ normal) LD_MODEL='' ;;
+ debug) LD_MODEL=$CC_G_OPT ;;
+ profile) LD_MODEL='-pg';;
+-shared) LD_MODEL='' ;;
++shared) LD_MODEL=''; LIBOPTS="-DNCURSES_DLL" ;;
+ esac
+ AC_SUBST(LD_MODEL)dnl the type of link (e.g., -g or -pg)
+ AC_MSG_RESULT($LD_MODEL)
+@@ -363,14 +364,14 @@
+ if test "$CC_SHARED_OPTS" = "unknown"; then
+ for model in $cf_list_models; do
+ if test "$model" = "shared"; then
+- AC_ERROR(Shared libraries are not supported in this version)
++ AC_MSG_ERROR([Shared libraries are not supported in this version])
+ fi
+ done
+ fi
+
+-###############################################################################
+-CF_HELP_MESSAGE(Fine-Tuning Your Configuration:)
++AC_SUBST(LIBOPTS)
+
++###############################################################################
+ ### use option --disable-overwrite to leave out the link to -lcurses
+ AC_MSG_CHECKING(if you wish to install ncurses overwriting curses)
+ AC_ARG_ENABLE(overwrite,
+@@ -450,7 +451,7 @@
+ AC_ARG_ENABLE(big-core,
+ [ --disable-big-core assume machine has little memory],
+ [with_big_core=$enableval],
+- [AC_TRY_RUN([
++ [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <stdlib.h>
+ #include <string.h>
+ int main() {
+@@ -459,10 +460,7 @@
+ if (s != 0)
+ s[0] = s[n-1] = 0;
+ exit(s == 0);
+-}],
+- [with_big_core=yes],
+- [with_big_core=no],
+- [with_big_core=no])])
++}]])],[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)
+
+@@ -477,7 +475,7 @@
+ 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)
++ AC_MSG_ERROR([You have disabled the database w/o specifying fallbacks])
+ fi
+ fi
+ AC_DEFINE(PURE_TERMINFO)
+@@ -614,10 +612,10 @@
+ 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)
+@@ -683,7 +681,6 @@
+
+ ###############################################################################
+ # 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 development options],
+@@ -719,7 +716,6 @@
+
+ ###############################################################################
+ # 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,
+@@ -828,7 +824,6 @@
+ 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)
+@@ -931,7 +926,7 @@
+ AC_SUBST(MATH_LIB)
+
+ ### Checks for header files.
+-AC_STDC_HEADERS
++AC_HEADER_STDC([])
+ AC_HEADER_DIRENT
+ AC_HEADER_TIME
+ CF_REGEX
+@@ -965,7 +960,7 @@
+ CF_SYS_TIME_SELECT
+
+ ### checks for compiler characteristics
+-AC_LANG_C
++AC_LANG([C])
+ AC_C_CONST
+ AC_C_INLINE
+ test "$ac_cv_c_inline" != no && AC_DEFINE(CC_HAS_INLINE_FUNCS)
+@@ -1040,7 +1035,7 @@
+
+ # Check for C++ compiler characteristics (and ensure that it's there!)
+ if test -n "$CXX" ; then
+- AC_LANG_CPLUSPLUS
++ AC_LANG([C++])
+ CF_STDCPP_LIBRARY
+
+ case $GXX_VERSION in
+@@ -1135,7 +1130,6 @@
+ fi
+ AC_SUBST(USE_CXX_BOOL)
+
+-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.
+@@ -1309,15 +1303,16 @@
+
+ ################################################################################
+ test "$use_database" = yes && SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
+-AC_OUTPUT( \
++AC_CONFIG_FILES([\
+ include/MKterm.h.awk \
+ include/curses.head:include/curses.h.in \
+ include/termcap.h \
+ include/unctrl.h \
+ $SUB_MAKEFILES \
+- Makefile,[
++ Makefile])
++AC_CONFIG_COMMANDS([default],[
+ CF_LIB_RULES
+-],[
++],[[
+ ### Special initialization commands, used to pass information from the
+ ### configuration-run into config.status
+
+@@ -1348,5 +1343,6 @@
+ host="$host"
+ target="$target"
+
+-],cat)dnl
++]])
++AC_OUTPUT
+ ${MAKE-make} preinstall
+--- ncurses-5.4/include/ncurses_dll.h~visibility.patch
++++ ncurses-5.4/include/ncurses_dll.h
+@@ -7,8 +7,8 @@
+ /* but this structure may be useful at some point for an MSVC build */
+ /* so, for now unconditionally define the important flags */
+ /* "the right way" for proper static and dll+auto-import behavior */
+-#undef NCURSES_DLL
+-#define NCURSES_STATIC
++//#undef NCURSES_DLL
++//#define NCURSES_STATIC
+
+ #if defined(__CYGWIN__)
+ # if defined(NCURSES_DLL)
+@@ -32,12 +32,20 @@
+ # endif
+ # define NCURSES_API __cdecl
+ # define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API
+-# define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
++# define NCURSES_EXPORT_VAR(var) var NCURSES_IMPEXP
+ #endif
+
+ /* Take care of non-cygwin platforms */
+ #if !defined(NCURSES_IMPEXP)
+-# define NCURSES_IMPEXP /* nothing */
++# if defined(GCC_HASCLASSVISIBILITY)
++# if defined(NCURSES_DLL)
++# define NCURSES_IMPEXP __attribute__ ((visibility("default")))
++# else
++# define NCURSES_IMPEXP /* nothing */
++# endif
++# else
++# define NCURSES_IMPEXP /* nothing */
++# endif
+ #endif
+ #if !defined(NCURSES_API)
+ # define NCURSES_API /* nothing */
+@@ -46,7 +54,7 @@
+ # define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API
+ #endif
+ #if !defined(NCURSES_EXPORT_VAR)
+-# define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
++# define NCURSES_EXPORT_VAR(var) var NCURSES_IMPEXP
+ #endif
+
+ #endif /* NCURSES_DLL_H_incl */
+--- ncurses-5.4/form/fty_alnum.c~visibility.patch
++++ ncurses-5.4/form/fty_alnum.c
+@@ -132,6 +132,6 @@
+ NULL
+ };
+
+-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALNUM = &typeALNUM;
++FIELDTYPE* NCURSES_EXPORT_VAR(TYPE_ALNUM) = &typeALNUM;
+
+ /* fty_alnum.c ends here */
+--- ncurses-5.4/form/fty_alpha.c~visibility.patch
++++ ncurses-5.4/form/fty_alpha.c
+@@ -133,6 +133,6 @@
+ NULL
+ };
+
+-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALPHA = &typeALPHA;
++FIELDTYPE* NCURSES_EXPORT_VAR(TYPE_ALPHA) = &typeALPHA;
+
+ /* fty_alpha.c ends here */
+--- ncurses-5.4/form/fld_newftyp.c~visibility.patch
++++ ncurses-5.4/form/fld_newftyp.c
+@@ -48,7 +48,7 @@
+ NULL /* enumerate previous function */
+ };
+
+-NCURSES_EXPORT_VAR(const FIELDTYPE*) _nc_Default_FieldType = &default_fieldtype;
++const FIELDTYPE* NCURSES_EXPORT_VAR(_nc_Default_FieldType) = &default_fieldtype;
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+--- ncurses-5.4/form/form.h~visibility.patch
++++ ncurses-5.4/form/form.h
+@@ -248,24 +248,24 @@
+ /*************************
+ * standard field types *
+ *************************/
+-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ALPHA;
+-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ALNUM;
+-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ENUM;
+-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_INTEGER;
+-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_NUMERIC;
+-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_REGEXP;
++extern FIELDTYPE * NCURSES_EXPORT_VAR(TYPE_ALPHA);
++extern FIELDTYPE * NCURSES_EXPORT_VAR(TYPE_ALNUM);
++extern FIELDTYPE * NCURSES_EXPORT_VAR(TYPE_ENUM);
++extern FIELDTYPE * NCURSES_EXPORT_VAR(TYPE_INTEGER);
++extern FIELDTYPE * NCURSES_EXPORT_VAR(TYPE_NUMERIC);
++extern FIELDTYPE * NCURSES_EXPORT_VAR(TYPE_REGEXP);
+
+ /************************************
+ * built-in additional field types *
+ * They are not defined in SVr4 *
+ ************************************/
+-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_IPV4; /* Internet IP Version 4 address */
++extern FIELDTYPE * NCURSES_EXPORT_VAR(TYPE_IPV4); /* Internet IP Version 4 address */
+
+ /***********************
+ * Default objects *
+ ***********************/
+-extern NCURSES_EXPORT_VAR(FORM *) _nc_Default_Form;
+-extern NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field;
++extern FORM * NCURSES_EXPORT_VAR(_nc_Default_Form);
++extern FIELD * NCURSES_EXPORT_VAR(_nc_Default_Field);
+
+
+ /***********************
+--- ncurses-5.4/form/fty_int.c~visibility.patch
++++ ncurses-5.4/form/fty_int.c
+@@ -155,6 +155,6 @@
+ NULL
+ };
+
+-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_INTEGER = &typeINTEGER;
++FIELDTYPE* NCURSES_EXPORT_VAR(TYPE_INTEGER) = &typeINTEGER;
+
+ /* fty_int.c ends here */
+--- ncurses-5.4/form/fty_num.c~visibility.patch
++++ ncurses-5.4/form/fty_num.c
+@@ -190,6 +190,6 @@
+ NULL
+ };
+
+-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_NUMERIC = &typeNUMERIC;
++FIELDTYPE* NCURSES_EXPORT_VAR(TYPE_NUMERIC) = &typeNUMERIC;
+
+ /* fty_num.c ends here */
+--- ncurses-5.4/form/fty_regex.c~visibility.patch
++++ ncurses-5.4/form/fty_regex.c
+@@ -252,6 +252,6 @@
+ NULL
+ };
+
+-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_REGEXP = &typeREGEXP;
++FIELDTYPE* NCURSES_EXPORT_VAR(TYPE_REGEXP) = &typeREGEXP;
+
+ /* fty_regex.c ends here */
+--- ncurses-5.4/form/frm_def.c~visibility.patch
++++ ncurses-5.4/form/frm_def.c
+@@ -60,7 +60,7 @@
+ NULL /* fieldterm */
+ };
+
+-NCURSES_EXPORT_VAR(FORM *) _nc_Default_Form = &default_form;
++FORM * NCURSES_EXPORT_VAR(_nc_Default_Form) = &default_form;
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+--- ncurses-5.4/form/fld_def.c~visibility.patch
++++ ncurses-5.4/form/fld_def.c
+@@ -63,7 +63,7 @@
+ (char *)0 /* usrptr */
+ };
+
+-NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field = &default_field;
++FIELD * NCURSES_EXPORT_VAR(_nc_Default_Field) = &default_field;
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+--- ncurses-5.4/form/fty_enum.c~visibility.patch
++++ ncurses-5.4/form/fty_enum.c
+@@ -290,6 +290,6 @@
+ Previous_Enum
+ };
+
+-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ENUM = &typeENUM;
++FIELDTYPE* NCURSES_EXPORT_VAR(TYPE_ENUM) = &typeENUM;
+
+ /* fty_enum.c ends here */
+--- ncurses-5.4/form/fty_ipv4.c~visibility.patch
++++ ncurses-5.4/form/fty_ipv4.c
+@@ -76,6 +76,6 @@
+ NULL
+ };
+
+-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_IPV4 = &typeIPV4;
++FIELDTYPE* NCURSES_EXPORT_VAR(TYPE_IPV4) = &typeIPV4;
+
+ /* fty_ipv4.c ends here */
+--- ncurses-5.4/form/form.priv.h~visibility.patch
++++ ncurses-5.4/form/form.priv.h
+@@ -112,7 +112,7 @@
+ #define C_BLANK ' '
+ #define is_blank(c) ((c)==C_BLANK)
+
+-extern NCURSES_EXPORT_VAR(const FIELDTYPE *) _nc_Default_FieldType;
++extern const FIELDTYPE * NCURSES_EXPORT_VAR(_nc_Default_FieldType);
+
+ extern NCURSES_EXPORT(TypeArgument *) _nc_Make_Argument (const FIELDTYPE*,va_list*,int*);
+ extern NCURSES_EXPORT(TypeArgument *) _nc_Copy_Argument (const FIELDTYPE*,const TypeArgument*, int*);
+--- ncurses-5.4/include/tic.h~visibility.patch
++++ ncurses-5.4/include/tic.h
+@@ -117,7 +117,7 @@
+ #define DEBUG(n, a) /*nothing*/
+ #endif
+
+-extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing;
++extern unsigned NCURSES_EXPORT_VAR(_nc_tracing);
+ extern NCURSES_EXPORT(void) _nc_tracef (char *, ...) GCC_PRINTFLIKE(1,2);
+ extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *);
+ extern NCURSES_EXPORT(const char *) _nc_visbuf2 (int, const char *);
+@@ -151,7 +151,7 @@
+ char *tk_valstring; /* value of capability (if a string) */
+ };
+
+-extern NCURSES_EXPORT_VAR(struct token) _nc_curr_token;
++extern struct token NCURSES_EXPORT_VAR(_nc_curr_token);
+
+ /*
+ * List of keynames with their corresponding code.
+@@ -161,7 +161,7 @@
+ int code;
+ };
+
+-extern NCURSES_EXPORT_VAR(const struct kn) _nc_key_names[];
++extern const struct kn NCURSES_EXPORT_VAR(_nc_key_names[]);
+
+ /*
+ * Offsets to string capabilities, with the corresponding functionkey
+@@ -179,7 +179,7 @@
+
+ #else
+
+-extern NCURSES_EXPORT_VAR(struct tinfo_fkeys) _nc_tinfo_fkeys[];
++extern struct tinfo_fkeys NCURSES_EXPORT_VAR(_nc_tinfo_fkeys[]);
+
+ #endif
+
+@@ -204,11 +204,11 @@
+ const char *source;
+ };
+
+-extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_info_hash_table[];
+-extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_cap_hash_table[];
++extern const struct name_table_entry * const NCURSES_EXPORT_VAR(_nc_info_hash_table[]);
++extern const struct name_table_entry * const NCURSES_EXPORT_VAR(_nc_cap_hash_table[]);
+
+-extern NCURSES_EXPORT_VAR(const struct alias) _nc_capalias_table[];
+-extern NCURSES_EXPORT_VAR(const struct alias) _nc_infoalias_table[];
++extern const struct alias NCURSES_EXPORT_VAR(_nc_capalias_table[]);
++extern const struct alias NCURSES_EXPORT_VAR(_nc_infoalias_table[]);
+
+ extern NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool);
+ extern NCURSES_EXPORT(const struct name_table_entry * const *) _nc_get_hash_table (bool);
+@@ -255,13 +255,13 @@
+ extern NCURSES_EXPORT(void) _nc_panic_mode (char);
+ extern NCURSES_EXPORT(void) _nc_push_token (int);
+ extern NCURSES_EXPORT(void) _nc_reset_input (FILE *, char *);
+-extern NCURSES_EXPORT_VAR(int) _nc_curr_col;
+-extern NCURSES_EXPORT_VAR(int) _nc_curr_line;
+-extern NCURSES_EXPORT_VAR(int) _nc_syntax;
+-extern NCURSES_EXPORT_VAR(long) _nc_comment_end;
+-extern NCURSES_EXPORT_VAR(long) _nc_comment_start;
+-extern NCURSES_EXPORT_VAR(long) _nc_curr_file_pos;
+-extern NCURSES_EXPORT_VAR(long) _nc_start_line;
++extern int NCURSES_EXPORT_VAR(_nc_curr_col);
++extern int NCURSES_EXPORT_VAR(_nc_curr_line);
++extern int NCURSES_EXPORT_VAR(_nc_syntax);
++extern long NCURSES_EXPORT_VAR(_nc_comment_end);
++extern long NCURSES_EXPORT_VAR(_nc_comment_start);
++extern long NCURSES_EXPORT_VAR(_nc_curr_file_pos);
++extern long NCURSES_EXPORT_VAR(_nc_start_line);
+ #define SYN_TERMINFO 0
+ #define SYN_TERMCAP 1
+
+@@ -272,7 +272,7 @@
+ extern NCURSES_EXPORT(void) _nc_syserr_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
+ extern NCURSES_EXPORT(void) _nc_err_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
+ extern NCURSES_EXPORT(void) _nc_warning (const char *const,...) GCC_PRINTFLIKE(1,2);
+-extern NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings;
++extern bool NCURSES_EXPORT_VAR(_nc_suppress_warnings);
+
+ /* comp_expand.c: expand string into readable form */
+ extern NCURSES_EXPORT(char *) _nc_tic_expand (const char *, bool, int);
+@@ -287,12 +287,12 @@
+ /* lib_tparm.c */
+ #define NUM_PARM 9
+
+-extern NCURSES_EXPORT_VAR(int) _nc_tparm_err;
++extern int NCURSES_EXPORT_VAR(_nc_tparm_err);
+
+ extern NCURSES_EXPORT(int) _nc_tparm_analyze(const char *string, char *p_is_s[NUM_PARM], int *popcount);
+
+ /* lib_tputs.c */
+-extern NCURSES_EXPORT_VAR(int) _nc_nulls_sent; /* Add one for every null sent */
++extern int NCURSES_EXPORT_VAR(_nc_nulls_sent); /* Add one for every null sent */
+
+ /* comp_main.c: compiler main */
+ extern const char * _nc_progname;
+--- ncurses-5.4/include/MKterm.h.awk.in~visibility.patch
++++ ncurses-5.4/include/MKterm.h.awk.in
+@@ -228,9 +228,9 @@
+ print " char * _termname; /* used for termname() */"
+ print "} TERMINAL;"
+ print ""
+- print "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
++ print "extern TERMINAL * NCURSES_EXPORT_VAR(cur_term);"
+ print ""
+- print "#if BROKEN_LINKER"
++ print "#if defined(BROKEN_LINKER)"
+ print "#define boolnames _nc_boolnames()"
+ print "#define boolcodes _nc_boolcodes()"
+ print "#define boolfnames _nc_boolfnames()"
+@@ -253,15 +253,15 @@
+ print ""
+ print "#else"
+ print ""
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];"
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];"
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];"
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numnames[];"
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numcodes[];"
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numfnames[];"
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[];"
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[];"
+- print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[];"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(boolnames[]);"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(boolcodes[]);"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(boolfnames[]);"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(numnames[]);"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(numcodes[]);"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(numfnames[]);"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(strnames[]);"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(strcodes[]);"
++ print "extern NCURSES_CONST char * const NCURSES_EXPORT_VAR(strfnames[]);"
+ print ""
+ print "#endif"
+ print ""
+@@ -287,7 +287,7 @@
+ print "#if !defined(__NCURSES_H)"
+ print "extern NCURSES_EXPORT(char *) tigetstr (NCURSES_CONST char *);"
+ print "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);"
+- print "extern NCURSES_EXPORT_VAR(char) ttytype[];"
++ print "extern char NCURSES_EXPORT_VAR(ttytype[]);"
+ print "extern NCURSES_EXPORT(int) putp (const char *);"
+ print "extern NCURSES_EXPORT(int) tigetflag (NCURSES_CONST char *);"
+ print "extern NCURSES_EXPORT(int) tigetnum (NCURSES_CONST char *);"
+--- ncurses-5.4/include/termcap.h.in~visibility.patch
++++ ncurses-5.4/include/termcap.h.in
+@@ -54,10 +54,10 @@
+ #undef NCURSES_OSPEED
+ #define NCURSES_OSPEED @NCURSES_OSPEED@
+
+-extern NCURSES_EXPORT_VAR(char) PC;
+-extern NCURSES_EXPORT_VAR(char *) UP;
+-extern NCURSES_EXPORT_VAR(char *) BC;
+-extern NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed;
++extern char NCURSES_EXPORT_VAR(PC);
++extern char * NCURSES_EXPORT_VAR(UP);
++extern char * NCURSES_EXPORT_VAR(BC);
++extern NCURSES_OSPEED NCURSES_EXPORT_VAR(ospeed);
+
+ #if !defined(NCURSES_TERM_H_incl)
+ extern NCURSES_EXPORT(char *) tgetstr (NCURSES_CONST char *, char **);
+--- ncurses-5.4/include/term_entry.h~visibility.patch
++++ ncurses-5.4/include/term_entry.h
+@@ -90,8 +90,8 @@
+ #define ExtNumname(tp,i,names) EXT_NAMES(tp, i, NUMCOUNT, (i - (tp->num_Numbers - tp->ext_Numbers)) + tp->ext_Booleans, names)
+ #define ExtStrname(tp,i,names) EXT_NAMES(tp, i, STRCOUNT, (i - (tp->num_Strings - tp->ext_Strings)) + (tp->ext_Numbers + tp->ext_Booleans), names)
+
+-extern NCURSES_EXPORT_VAR(ENTRY *) _nc_head;
+-extern NCURSES_EXPORT_VAR(ENTRY *) _nc_tail;
++extern ENTRY * NCURSES_EXPORT_VAR(_nc_head);
++extern ENTRY * NCURSES_EXPORT_VAR(_nc_tail);
+ #define for_entry_list(qp) for (qp = _nc_head; qp; qp = qp->next)
+
+ #define MAX_LINE 132
+@@ -135,8 +135,8 @@
+
+ /* parse_entry.c: entry-parsing code */
+ #if NCURSES_XNAMES
+-extern NCURSES_EXPORT_VAR(bool) _nc_user_definable;
+-extern NCURSES_EXPORT_VAR(bool) _nc_disable_period;
++extern bool NCURSES_EXPORT_VAR(_nc_user_definable);
++extern bool NCURSES_EXPORT_VAR(_nc_disable_period);
+ #endif
+ extern NCURSES_EXPORT(int) _nc_parse_entry (ENTRY *, int, bool);
+ extern NCURSES_EXPORT(int) _nc_capcmp (const char *, const char *);
+--- ncurses-5.4/include/curses.h.in~visibility.patch
++++ ncurses-5.4/include/curses.h.in
+@@ -171,8 +171,8 @@
+ #define WA_VERTICAL A_VERTICAL
+
+ /* colors */
+-extern NCURSES_EXPORT_VAR(int) COLORS;
+-extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS;
++extern int NCURSES_EXPORT_VAR(COLORS);
++extern int NCURSES_EXPORT_VAR(COLOR_PAIRS);
+
+ #define COLOR_BLACK 0
+ #define COLOR_RED 1
+@@ -186,10 +186,10 @@
+ /* line graphics */
+
+ #if @BROKEN_LINKER@
+-extern NCURSES_EXPORT_VAR(chtype*) _nc_acs_map(void);
++extern chtype* NCURSES_EXPORT_VAR(_nc_acs_map)(void);
+ #define acs_map (_nc_acs_map())
+ #else
+-extern NCURSES_EXPORT_VAR(chtype) acs_map[];
++extern chtype NCURSES_EXPORT_VAR(acs_map[]);
+ #endif
+
+ #define NCURSES_ACS(c) (acs_map[(unsigned char)c])
+@@ -369,20 +369,20 @@
+ #endif
+ };
+
+-extern NCURSES_EXPORT_VAR(WINDOW *) stdscr;
+-extern NCURSES_EXPORT_VAR(WINDOW *) curscr;
+-extern NCURSES_EXPORT_VAR(WINDOW *) newscr;
++extern WINDOW * NCURSES_EXPORT_VAR(stdscr);
++extern WINDOW * NCURSES_EXPORT_VAR(curscr);
++extern WINDOW * NCURSES_EXPORT_VAR(newscr);
+
+-extern NCURSES_EXPORT_VAR(int) LINES;
+-extern NCURSES_EXPORT_VAR(int) COLS;
+-extern NCURSES_EXPORT_VAR(int) TABSIZE;
++extern int NCURSES_EXPORT_VAR(LINES);
++extern int NCURSES_EXPORT_VAR(COLS);
++extern int NCURSES_EXPORT_VAR(TABSIZE);
+
+ /*
+ * This global was an undocumented feature under AIX curses.
+ */
+-extern NCURSES_EXPORT_VAR(int) ESCDELAY; /* ESC expire time in milliseconds */
++extern int NCURSES_EXPORT_VAR(ESCDELAY); /* ESC expire time in milliseconds */
+
+-extern NCURSES_EXPORT_VAR(char) ttytype[]; /* needed for backward compatibility */
++extern char NCURSES_EXPORT_VAR(ttytype[]); /* needed for backward compatibility */
+
+ /*
+ * These functions are extensions - not in XSI Curses.
+--- ncurses-5.4/include/curses.tail~visibility.patch
++++ ncurses-5.4/include/curses.tail
+@@ -110,7 +110,7 @@
+ #define TRACE_MAXIMUM ((1 << TRACE_SHIFT) - 1) /* maximum trace level */
+
+ #if defined(TRACE) || defined(NCURSES_TEST)
+-extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable; /* enable optimizations */
++extern int NCURSES_EXPORT_VAR(_nc_optimize_enable); /* enable optimizations */
+ #ifdef _XOPEN_SOURCE_EXTENDED
+ extern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *);
+ #endif
+--- ncurses-5.4/include/curses.wide~visibility.patch
++++ ncurses-5.4/include/curses.wide
+@@ -3,7 +3,7 @@
+
+ /* $Id: curses.wide,v 1.28 2004/01/03 20:35:14 tom Exp $ */
+
+-extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
++extern cchar_t * NCURSES_EXPORT_VAR(_nc_wacs);
+
+ #define NCURSES_WACS(c) (&_nc_wacs[(unsigned char)c])
+
+--- ncurses-5.4/menu/menu.priv.h~visibility.patch
++++ ncurses-5.4/menu/menu.priv.h
+@@ -49,8 +49,8 @@
+ /* Backspace code */
+ #define BS (8)
+
+-extern NCURSES_EXPORT_VAR(ITEM) _nc_Default_Item;
+-extern NCURSES_EXPORT_VAR(MENU) _nc_Default_Menu;
++extern ITEM NCURSES_EXPORT_VAR(_nc_Default_Item);
++extern MENU NCURSES_EXPORT_VAR(_nc_Default_Menu);
+
+ /* Normalize item to default if none was given */
+ #define Normalize_Item( item ) ((item)=(item)?(item):&_nc_Default_Item)
+--- ncurses-5.4/menu/m_global.c~visibility.patch
++++ ncurses-5.4/menu/m_global.c
+@@ -41,7 +41,7 @@
+
+ static char mark[] = "-";
+
+-NCURSES_EXPORT_VAR(MENU) _nc_Default_Menu = {
++MENU NCURSES_EXPORT_VAR(_nc_Default_Menu) = {
+ 16, /* Nr. of chars high */
+ 1, /* Nr. of chars wide */
+ 16, /* Nr. of items high */
+@@ -80,7 +80,7 @@
+ 0 /* status */
+ };
+
+-NCURSES_EXPORT_VAR(ITEM) _nc_Default_Item = {
++ITEM NCURSES_EXPORT_VAR(_nc_Default_Item) = {
+ { (char *)0, 0 }, /* name */
+ { (char *)0, 0 }, /* description */
+ (MENU *)0, /* Pointer to parent menu */
+--- ncurses-5.4/ncurses/tty/lib_mvcur.c~visibility.patch
++++ ncurses-5.4/ncurses/tty/lib_mvcur.c
+@@ -937,7 +937,7 @@
+ }
+
+ #if defined(TRACE) || defined(NCURSES_TEST)
+-NCURSES_EXPORT_VAR(int) _nc_optimize_enable = OPTIMIZE_ALL;
++int NCURSES_EXPORT_VAR(_nc_optimize_enable) = OPTIMIZE_ALL;
+ #endif
+
+ #if defined(MAIN) || defined(NCURSES_TEST)
+@@ -950,7 +950,7 @@
+ #include <tic.h>
+ #include <dump_entry.h>
+
+-NCURSES_EXPORT_VAR(const char *) _nc_progname = "mvcur";
++const char * NCURSES_EXPORT_VAR(_nc_progname) = "mvcur";
+
+ static unsigned long xmits;
+
+--- ncurses-5.4/ncurses/tty/hardscroll.c~visibility.patch
++++ ncurses-5.4/ncurses/tty/hardscroll.c
+@@ -151,8 +151,7 @@
+
+ # undef screen_lines
+ # define screen_lines MAXLINES
+-NCURSES_EXPORT_VAR(int)
+-oldnums[MAXLINES];
++int NCURSES_EXPORT_VAR(oldnums[MAXLINES]);
+ # define OLDNUM(n) oldnums[n]
+ # define _tracef printf
+ # undef TR
+@@ -163,8 +162,7 @@
+ /* OLDNUM(n) indicates which line will be shifted to the position n.
+ if OLDNUM(n) == _NEWINDEX, then the line n in new, not shifted from
+ somewhere. */
+-NCURSES_EXPORT_VAR(int *)
+-_nc_oldnums = 0;
++int * NCURSES_EXPORT_VAR(_nc_oldnums) = 0;
+
+ # if USE_HASHMAP
+ static int oldnums_allocated = 0;
+--- ncurses-5.4/ncurses/base/lib_getch.c~visibility.patch
++++ ncurses-5.4/ncurses/base/lib_getch.c
+@@ -44,8 +44,7 @@
+
+ #include <fifo_defs.h>
+
+-NCURSES_EXPORT_VAR(int)
+-ESCDELAY = 1000; /* max interval betw. chars in funkeys, in millisecs */
++int NCURSES_EXPORT_VAR(ESCDELAY) = 1000; /* max interval betw. chars in funkeys, in millisecs */
+
+ #ifdef NCURSES_WGETCH_EVENTS
+ #define TWAIT_MASK 7
+--- ncurses-5.4/ncurses/base/lib_slk.c~visibility.patch
++++ ncurses-5.4/ncurses/base/lib_slk.c
+@@ -47,8 +47,7 @@
+ * We'd like to move these into the screen context structure, but cannot,
+ * because slk_init() is called before initscr()/newterm().
+ */
+-NCURSES_EXPORT_VAR(int)
+-_nc_slk_format = 0; /* one more than format specified in slk_init() */
++int NCURSES_EXPORT_VAR(_nc_slk_format) = 0; /* one more than format specified in slk_init() */
+
+ /*
+ * Paint the info line for the PC style SLK emulation.
+--- ncurses-5.4/ncurses/base/lib_color.c~visibility.patch
++++ ncurses-5.4/ncurses/base/lib_color.c
+@@ -48,8 +48,8 @@
+ * historical reasons. So we assign them in start_color() and also in
+ * set_term()'s screen-switching logic.
+ */
+-NCURSES_EXPORT_VAR(int) COLOR_PAIRS = 0;
+-NCURSES_EXPORT_VAR(int) COLORS = 0;
++int NCURSES_EXPORT_VAR(COLOR_PAIRS) = 0;
++int NCURSES_EXPORT_VAR(COLORS) = 0;
+
+ #define DATA(r,g,b) {r,g,b, 0,0,0, 0}
+
+--- ncurses-5.4/ncurses/tinfo/lib_termcap.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/lib_termcap.c
+@@ -50,8 +50,8 @@
+ #define L_BRACK '['
+ #define SHIFT_OUT 017 /* ^N */
+
+-NCURSES_EXPORT_VAR(char *) UP = 0;
+-NCURSES_EXPORT_VAR(char *) BC = 0;
++char * NCURSES_EXPORT_VAR(UP) = 0;
++char * NCURSES_EXPORT_VAR(BC) = 0;
+
+ static char *fix_me = 0;
+
+--- ncurses-5.4/ncurses/tinfo/lib_cur_term.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/lib_cur_term.c
+@@ -42,7 +42,7 @@
+
+ MODULE_ID("$Id: lib_cur_term.c,v 1.13 2003/12/27 18:21:30 tom Exp $")
+
+-NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0;
++TERMINAL * NCURSES_EXPORT_VAR(cur_term) = 0;
+
+ NCURSES_EXPORT(TERMINAL *)
+ set_curterm(TERMINAL * termp)
+--- ncurses-5.4/ncurses/tinfo/lib_setup.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/lib_setup.c
+@@ -91,10 +91,10 @@
+ # endif
+ #endif
+
+-NCURSES_EXPORT_VAR(char) ttytype[NAMESIZE] = "";
+-NCURSES_EXPORT_VAR(int) LINES = 0;
+-NCURSES_EXPORT_VAR(int) COLS = 0;
+-NCURSES_EXPORT_VAR(int) TABSIZE = 0;
++char NCURSES_EXPORT_VAR(ttytype[NAMESIZE]) = "";
++int NCURSES_EXPORT_VAR(LINES) = 0;
++int NCURSES_EXPORT_VAR(COLS) = 0;
++int NCURSES_EXPORT_VAR(TABSIZE) = 0;
+
+ static int _use_env = TRUE;
+
+--- ncurses-5.4/ncurses/tinfo/MKnames.awk~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/MKnames.awk
+@@ -10,7 +10,7 @@
+ print "#include <term.h>" > "namehdr"
+ print "#define DCL(it) static IT data##it[]" > "namehdr"
+ print "#else" > "namehdr"
+- print "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]" > "namehdr"
++ print "#define DCL(it) IT NCURSES_EXPORT_VAR(it[])" > "namehdr"
+ print "#endif" > "namehdr"
+ print "" > "namehdr"
+ print "/*" > "boolnames"
+--- ncurses-5.4/ncurses/tinfo/lib_tparm.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/lib_tparm.c
+@@ -115,7 +115,7 @@
+ bool num_type;
+ } stack_frame;
+
+-NCURSES_EXPORT_VAR(int) _nc_tparm_err = 0;
++int NCURSES_EXPORT_VAR(_nc_tparm_err) = 0;
+
+ static stack_frame stack[STACKSIZE];
+ static int stack_ptr;
+--- ncurses-5.4/ncurses/tinfo/lib_tputs.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/lib_tputs.c
+@@ -47,10 +47,10 @@
+
+ MODULE_ID("$Id: lib_tputs.c,v 1.62 2003/08/23 21:39:20 tom Exp $")
+
+-NCURSES_EXPORT_VAR(char) PC = 0; /* used by termcap library */
+-NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */
++char NCURSES_EXPORT_VAR(PC) = 0; /* used by termcap library */
++NCURSES_OSPEED NCURSES_EXPORT_VAR(ospeed) = 0; /* used by termcap library */
+
+-NCURSES_EXPORT_VAR(int) _nc_nulls_sent = 0; /* used by 'tack' program */
++int NCURSES_EXPORT_VAR(_nc_nulls_sent) = 0; /* used by 'tack' program */
+
+ static int (*my_outch) (int c) = _nc_outch;
+
+--- ncurses-5.4/ncurses/tinfo/comp_error.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/comp_error.c
+@@ -42,9 +42,9 @@
+
+ MODULE_ID("$Id: comp_error.c,v 1.25 2002/09/07 20:05:07 tom Exp $")
+
+-NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings = FALSE;
+-NCURSES_EXPORT_VAR(int) _nc_curr_line = 0; /* current line # in input */
+-NCURSES_EXPORT_VAR(int) _nc_curr_col = 0; /* current column # in input */
++bool NCURSES_EXPORT_VAR(_nc_suppress_warnings) = FALSE;
++int NCURSES_EXPORT_VAR(_nc_curr_line) = 0; /* current line # in input */
++int NCURSES_EXPORT_VAR(_nc_curr_col) = 0; /* current column # in input */
+
+ static const char *sourcename;
+ static char *termtype;
+--- ncurses-5.4/ncurses/tinfo/free_ttype.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/free_ttype.c
+@@ -92,7 +92,7 @@
+ }
+
+ #if NCURSES_XNAMES
+-NCURSES_EXPORT_VAR(bool) _nc_user_definable = TRUE;
++bool NCURSES_EXPORT_VAR(_nc_user_definable) = TRUE;
+
+ NCURSES_EXPORT(int)
+ use_extended_names(bool flag)
+--- ncurses-5.4/ncurses/tinfo/comp_parse.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/comp_parse.c
+@@ -78,8 +78,8 @@
+ * _nc_head _nc_tail
+ */
+
+-NCURSES_EXPORT_VAR(ENTRY *) _nc_head = 0;
+-NCURSES_EXPORT_VAR(ENTRY *) _nc_tail = 0;
++ENTRY * NCURSES_EXPORT_VAR(_nc_head) = 0;
++ENTRY * NCURSES_EXPORT_VAR(_nc_tail) = 0;
+
+ static void
+ enqueue(ENTRY * ep)
+--- ncurses-5.4/ncurses/tinfo/comp_scan.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/comp_scan.c
+@@ -60,19 +60,13 @@
+
+ #define iswhite(ch) (ch == ' ' || ch == '\t')
+
+-NCURSES_EXPORT_VAR(int)
+-_nc_syntax = 0; /* termcap or terminfo? */
+-NCURSES_EXPORT_VAR(long)
+-_nc_curr_file_pos = 0; /* file offset of current line */
+-NCURSES_EXPORT_VAR(long)
+-_nc_comment_start = 0; /* start of comment range before name */
+-NCURSES_EXPORT_VAR(long)
+-_nc_comment_end = 0; /* end of comment range before name */
+-NCURSES_EXPORT_VAR(long)
+-_nc_start_line = 0; /* start line of current entry */
++int NCURSES_EXPORT_VAR(_nc_syntax) = 0; /* termcap or terminfo? */
++long NCURSES_EXPORT_VAR(_nc_curr_file_pos) = 0; /* file offset of current line */
++long NCURSES_EXPORT_VAR(_nc_comment_start) = 0; /* start of comment range before name */
++long NCURSES_EXPORT_VAR(_nc_comment_end) = 0; /* end of comment range before name */
++long NCURSES_EXPORT_VAR(_nc_start_line) = 0; /* start line of current entry */
+
+-NCURSES_EXPORT_VAR(struct token)
+-_nc_curr_token =
++struct token NCURSES_EXPORT_VAR(_nc_curr_token) =
+ {
+ 0, 0, 0
+ };
+@@ -90,8 +84,7 @@
+ static char *pushname;
+
+ #if NCURSES_EXT_FUNCS
+-NCURSES_EXPORT_VAR(bool)
+-_nc_disable_period = FALSE; /* used by tic -a option */
++bool NCURSES_EXPORT_VAR(_nc_disable_period) = FALSE; /* used by tic -a option */
+ #endif
+
+ static bool end_of_stream(void);
+--- ncurses-5.4/ncurses/tinfo/lib_acs.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/lib_acs.c
+@@ -37,8 +37,7 @@
+ MODULE_ID("$Id: lib_acs.c,v 1.25 2002/12/28 16:26:46 tom Exp $")
+
+ #if BROKEN_LINKER
+-NCURSES_EXPORT_VAR(chtype *)
+-_nc_acs_map(void)
++chtype * NCURSES_EXPORT_VAR(_nc_acs_map)(void)
+ {
+ static chtype *the_map = 0;
+ if (the_map == 0)
+@@ -46,7 +45,7 @@
+ return the_map;
+ }
+ #else
+-NCURSES_EXPORT_VAR(chtype) acs_map[ACS_LEN] =
++chtype NCURSES_EXPORT_VAR(acs_map[ACS_LEN]) =
+ {
+ 0
+ };
+--- ncurses-5.4/ncurses/tinfo/lib_data.c~visibility.patch
++++ ncurses-5.4/ncurses/tinfo/lib_data.c
+@@ -46,14 +46,11 @@
+ * OS/2's native linker complains if we don't initialize public data when
+ * constructing a dll (reported by J.J.G.Ripoll).
+ */
+-NCURSES_EXPORT_VAR(WINDOW *)
+-stdscr = 0;
+-NCURSES_EXPORT_VAR(WINDOW *)
+-curscr = 0;
+-NCURSES_EXPORT_VAR(WINDOW *)
+-newscr = 0;
++WINDOW * NCURSES_EXPORT_VAR(stdscr) = 0;
++WINDOW * NCURSES_EXPORT_VAR(curscr) = 0;
++WINDOW * NCURSES_EXPORT_VAR(newscr) = 0;
+
+-NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain = 0;
++SCREEN * NCURSES_EXPORT_VAR(_nc_screen_chain) = 0;
+
+ /*
+ * The variable 'SP' will be defined as a function on systems that cannot link
+@@ -87,5 +84,5 @@
+ }
+
+ #else
+-NCURSES_EXPORT_VAR(SCREEN *) SP = NULL; /* Some linkers require initialized data... */
++SCREEN * NCURSES_EXPORT_VAR(SP) = NULL; /* Some linkers require initialized data... */
+ #endif
+--- ncurses-5.4/ncurses/trace/lib_trace.c~visibility.patch
++++ ncurses-5.4/ncurses/trace/lib_trace.c
+@@ -42,11 +42,11 @@
+
+ MODULE_ID("$Id: lib_trace.c,v 1.53 2003/11/23 00:39:30 tom Exp $")
+
+-NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
++unsigned NCURSES_EXPORT_VAR(_nc_tracing) = 0; /* always define this */
+
+ #ifdef TRACE
+-NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace = "";
+-NCURSES_EXPORT_VAR(long) _nc_outchars = 0;
++const char * NCURSES_EXPORT_VAR(_nc_tputs_trace) = "";
++long NCURSES_EXPORT_VAR(_nc_outchars) = 0;
+
+ static FILE *tracefp = 0; /* default to writing to stderr */
+
+--- ncurses-5.4/ncurses/curses.priv.h~visibility.patch
++++ ncurses-5.4/ncurses/curses.priv.h
+@@ -498,7 +498,7 @@
+ #endif
+ };
+
+-extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
++extern SCREEN * NCURSES_EXPORT_VAR(_nc_screen_chain);
+
+ #if NCURSES_NOMACROS
+ #include <nomacros.h>
+@@ -752,9 +752,9 @@
+ extern NCURSES_EXPORT(int) _nc_retrace_int (int);
+ extern NCURSES_EXPORT(unsigned) _nc_retrace_unsigned (unsigned);
+ extern NCURSES_EXPORT(void) _nc_fifo_dump (void);
+-extern NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace;
+-extern NCURSES_EXPORT_VAR(long) _nc_outchars;
+-extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing;
++extern const char * NCURSES_EXPORT_VAR(_nc_tputs_trace);
++extern long NCURSES_EXPORT_VAR(_nc_outchars);
++extern unsigned NCURSES_EXPORT_VAR(_nc_tracing);
+
+ #if USE_WIDEC_SUPPORT
+ extern NCURSES_EXPORT(const char *) _nc_viswbuf2 (int, const wchar_t *);
+@@ -1055,7 +1055,7 @@
+ #endif
+
+ /* scroll indices */
+-extern NCURSES_EXPORT_VAR(int *) _nc_oldnums;
++extern int * NCURSES_EXPORT_VAR(_nc_oldnums);
+
+ #define USE_SETBUF_0 0
+
+@@ -1074,7 +1074,7 @@
+ extern NCURSES_EXPORT(void) _nc_set_screen (SCREEN *);
+ #else
+ /* current screen is private data; avoid possible linking conflicts too */
+-extern NCURSES_EXPORT_VAR(SCREEN *) SP;
++extern SCREEN * NCURSES_EXPORT_VAR(SP);
+ #define _nc_alloc_screen() ((SP = typeCalloc(SCREEN, 1)) != 0)
+ #define _nc_set_screen(sp) SP = sp
+ #endif
+@@ -1087,7 +1087,7 @@
+ #define screen_lines SP->_lines
+ #define screen_columns SP->_columns
+
+-extern NCURSES_EXPORT_VAR(int) _nc_slk_format; /* != 0 if slk_init() called */
++extern int NCURSES_EXPORT_VAR(_nc_slk_format); /* != 0 if slk_init() called */
+ extern NCURSES_EXPORT(int) _nc_slk_initialize (WINDOW *, int);
+
+ /*
+--- /dev/null
++++ ncurses-5.4/m4/cf.m4
+@@ -0,0 +1,3703 @@
++dnl***************************************************************************
++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 *
++dnl "Software"), to deal in the Software without restriction, including *
++dnl without limitation the rights to use, copy, modify, merge, publish, *
++dnl distribute, distribute with modifications, sublicense, and/or sell *
++dnl copies of the Software, and to permit persons to whom the Software is *
++dnl furnished to do so, subject to the following conditions: *
++dnl *
++dnl The above copyright notice and this permission notice shall be included *
++dnl in all copies or substantial portions of the Software. *
++dnl *
++dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++dnl *
++dnl Except as contained in this notice, the name(s) of the above copyright *
++dnl holders shall not be used in advertising or otherwise to promote the *
++dnl sale, use or other dealings in this Software without prior written *
++dnl authorization. *
++dnl***************************************************************************
++dnl
++dnl Author: Thomas E. Dickey 1995-2003
++dnl
++dnl $Id: aclocal.m4,v 1.333 2004/01/30 20:59:56 tom Exp $
++dnl Macros used in NCURSES auto-configuration script.
++dnl
++dnl See http://invisible-island.net/autoconf/ for additional information.
++dnl
++dnl ---------------------------------------------------------------------------
++dnl ---------------------------------------------------------------------------
++dnl CF_ADA_INCLUDE_DIRS version: 4 updated: 2002/12/01 00:12:15
++dnl -------------------
++dnl Construct the list of include-options for the C programs in the Ada95
++dnl binding.
++AC_DEFUN([CF_ADA_INCLUDE_DIRS],
++[
++ACPPFLAGS="-I. -I../../include $ACPPFLAGS"
++if test "$srcdir" != "."; then
++ ACPPFLAGS="-I\$(srcdir)/../../include $ACPPFLAGS"
++fi
++if test "$GCC" != yes; then
++ ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
++elif test "$includedir" != "/usr/include"; then
++ if test "$includedir" = '${prefix}/include' ; then
++ if test $prefix != /usr ; then
++ ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
++ fi
++ else
++ ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
++ fi
++fi
++AC_SUBST(ACPPFLAGS)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ADD_CFLAGS version: 5 updated: 2002/12/01 00:12:15
++dnl -------------
++dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
++dnl The second parameter if given makes this macro verbose.
++AC_DEFUN([CF_ADD_CFLAGS],
++[
++cf_new_cflags=
++cf_new_cppflags=
++for cf_add_cflags in $1
++do
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++done
++
++if test -n "$cf_new_cflags" ; then
++ ifelse($2,,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++ ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
++ CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
++fi
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
++dnl ----------------
++dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
++dnl in the sharutils 4.2 distribution.
++AC_DEFUN([CF_ANSI_CC_CHECK],
++[
++AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[
++cf_cv_ansi_cc=no
++cf_save_CFLAGS="$CFLAGS"
++cf_save_CPPFLAGS="$CPPFLAGS"
++# Don't try gcc -ansi; that turns off useful extensions and
++# breaks some systems' header files.
++# AIX -qlanglvl=ansi
++# Ultrix and OSF/1 -std1
++# HP-UX -Aa -D_HPUX_SOURCE
++# SVR4 -Xc
++# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
++for cf_arg in "-DCC_HAS_PROTOS" \
++ "" \
++ -qlanglvl=ansi \
++ -std1 \
++ -Ae \
++ "-Aa -D_HPUX_SOURCE" \
++ -Xc
++do
++ CF_ADD_CFLAGS($cf_arg)
++ AC_TRY_COMPILE(
++[
++#ifndef CC_HAS_PROTOS
++#if !defined(__STDC__) || (__STDC__ != 1)
++choke me
++#endif
++#endif
++],[
++ int test (int i, double x);
++ struct s1 {int (*f) (int a);};
++ struct s2 {int (*f) (double a);};],
++ [cf_cv_ansi_cc="$cf_arg"; break])
++done
++CFLAGS="$cf_save_CFLAGS"
++CPPFLAGS="$cf_save_CPPFLAGS"
++])
++
++if test "$cf_cv_ansi_cc" != "no"; then
++if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
++ CF_ADD_CFLAGS($cf_cv_ansi_cc)
++else
++ AC_DEFINE(CC_HAS_PROTOS)
++fi
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ANSI_CC_REQD version: 3 updated: 1997/09/06 13:40:44
++dnl ---------------
++dnl For programs that must use an ANSI compiler, obtain compiler options that
++dnl will make it recognize prototypes. We'll do preprocessor checks in other
++dnl macros, since tools such as unproto can fake prototypes, but only part of
++dnl the preprocessor.
++AC_DEFUN([CF_ANSI_CC_REQD],
++[AC_REQUIRE([CF_ANSI_CC_CHECK])
++if test "$cf_cv_ansi_cc" = "no"; then
++ AC_ERROR(
++[Your compiler does not appear to recognize prototypes.
++You have the following choices:
++ a. adjust your compiler options
++ b. get an up-to-date compiler
++ c. use a wrapper such as unproto])
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
++dnl ------------
++dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some
++dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
++dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
++dnl
++dnl Treat the configuration-variable specially here, since we're directly
++dnl substituting its value (i.e., 1/0).
++dnl
++dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
++AC_DEFUN([CF_BOOL_DECL],
++[
++AC_MSG_CHECKING(if we should include stdbool.h)
++
++AC_CACHE_VAL(cf_cv_header_stdbool_h,[
++ AC_TRY_COMPILE([],[bool foo = false],
++ [cf_cv_header_stdbool_h=0],
++ [AC_TRY_COMPILE([
++#ifndef __BEOS__
++#include <stdbool.h>
++#endif
++],[bool foo = false],
++ [cf_cv_header_stdbool_h=1],
++ [cf_cv_header_stdbool_h=0])])])
++
++if test "$cf_cv_header_stdbool_h" = 1
++then AC_MSG_RESULT(yes)
++else AC_MSG_RESULT(no)
++fi
++
++AC_MSG_CHECKING([for builtin bool type])
++
++AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
++ AC_TRY_COMPILE([
++#include <stdio.h>
++#include <sys/types.h>
++],[bool x = false],
++ [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
++ [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
++ ])
++
++if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
++then AC_MSG_RESULT(yes)
++else AC_MSG_RESULT(no)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_BOOL_SIZE version: 10 updated: 2002/02/23 20:38:31
++dnl ------------
++dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
++dnl Don't bother looking for bool.h, since it's been deprecated.
++dnl
++dnl If the current compiler is C rather than C++, we get the bool definition
++dnl from <stdbool.h>.
++AC_DEFUN([CF_BOOL_SIZE],
++[
++AC_MSG_CHECKING([for size of bool])
++AC_CACHE_VAL(cf_cv_type_of_bool,[
++ rm -f cf_test.out
++ AC_TRY_RUN([
++#include <stdlib.h>
++#include <stdio.h>
++
++#if defined(__cplusplus)
++
++#ifdef HAVE_GXX_BUILTIN_H
++#include <g++/builtin.h>
++#elif HAVE_GPP_BUILTIN_H
++#include <gpp/builtin.h>
++#elif HAVE_BUILTIN_H
++#include <builtin.h>
++#endif
++
++#else
++
++#if $cf_cv_header_stdbool_h
++#include <stdbool.h>
++#endif
++
++#endif
++
++main()
++{
++ FILE *fp = fopen("cf_test.out", "w");
++ if (fp != 0) {
++ bool x = true;
++ if ((bool)(-x) >= 0)
++ fputs("unsigned ", fp);
++ if (sizeof(x) == sizeof(int)) fputs("int", fp);
++ else if (sizeof(x) == sizeof(char)) fputs("char", fp);
++ else if (sizeof(x) == sizeof(short))fputs("short",fp);
++ else if (sizeof(x) == sizeof(long)) fputs("long", fp);
++ fclose(fp);
++ }
++ exit(0);
++}
++ ],
++ [cf_cv_type_of_bool=`cat cf_test.out`
++ if test -z "$cf_cv_type_of_bool"; then
++ cf_cv_type_of_bool=unknown
++ fi],
++ [cf_cv_type_of_bool=unknown],
++ [cf_cv_type_of_bool=unknown])
++ ])
++ rm -f cf_test.out
++AC_MSG_RESULT($cf_cv_type_of_bool)
++if test "$cf_cv_type_of_bool" = unknown ; then
++ case .$NCURSES_BOOL in #(vi
++ .auto|.) NCURSES_BOOL=unsigned;;
++ esac
++ AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
++ cf_cv_type_of_bool=$NCURSES_BOOL
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CFG_DEFAULTS version: 6 updated: 2003/07/12 15:15:19
++dnl ---------------
++dnl Determine the default configuration into which we'll install ncurses. This
++dnl can be overridden by the user's command-line options. There's two items to
++dnl look for:
++dnl 1. the prefix (e.g., /usr)
++dnl 2. the header files (e.g., /usr/include/ncurses)
++dnl We'll look for a previous installation of ncurses and use the same defaults.
++dnl
++dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
++dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
++dnl programs from a vendor's.
++AC_DEFUN([CF_CFG_DEFAULTS],
++[
++AC_MSG_CHECKING(for prefix)
++if test "x$prefix" = "xNONE" ; then
++ case "$cf_cv_system_name" in
++ # non-vendor systems don't have a conflict
++ openbsd*|netbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
++ prefix=/usr
++ ;;
++ *) prefix=$ac_default_prefix
++ ;;
++ esac
++fi
++AC_MSG_RESULT($prefix)
++
++if test "x$prefix" = "xNONE" ; then
++AC_MSG_CHECKING(for default include-directory)
++test -n "$verbose" && echo 1>&AC_FD_MSG
++for cf_symbol in \
++ $includedir \
++ $includedir/ncurses \
++ $prefix/include \
++ $prefix/include/ncurses \
++ /usr/local/include \
++ /usr/local/include/ncurses \
++ /usr/include \
++ /usr/include/ncurses
++do
++ cf_dir=`eval echo $cf_symbol`
++ if test -f $cf_dir/curses.h ; then
++ if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
++ includedir="$cf_symbol"
++ test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG
++ break
++ fi
++ fi
++ test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
++done
++AC_MSG_RESULT($includedir)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52
++dnl ----------
++dnl Check if the terminal-capability database functions are available. If not,
++dnl ncurses has a much-reduced version.
++AC_DEFUN([CF_CGETENT],[
++AC_MSG_CHECKING(for terminal-capability database functions)
++AC_CACHE_VAL(cf_cv_cgetent,[
++AC_TRY_LINK([
++#include <stdlib.h>],[
++ char temp[128];
++ char *buf = temp;
++ char *db_array = temp;
++ cgetent(&buf, /* int *, */ &db_array, "vt100");
++ cgetcap(buf, "tc", '=');
++ cgetmatch(buf, "tc");
++ ],
++ [cf_cv_cgetent=yes],
++ [cf_cv_cgetent=no])
++])
++AC_MSG_RESULT($cf_cv_cgetent)
++test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CHECK_CACHE version: 9 updated: 2004/01/30 15:59:13
++dnl --------------
++dnl Check if we're accidentally using a cache from a different machine.
++dnl Derive the system name, as a check for reusing the autoconf cache.
++dnl
++dnl If we've packaged config.guess and config.sub, run that (since it does a
++dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
++dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
++dnl which is useful in cross-compiles.
++dnl
++dnl Note: we would use $ac_config_sub, but that is one of the places where
++dnl autoconf 2.5x broke compatibility with autoconf 2.13
++AC_DEFUN([CF_CHECK_CACHE],
++[
++if test -f $srcdir/config.guess ; then
++ ifelse([$1],,[AC_CANONICAL_HOST],[$1])
++ system_name="$host_os"
++else
++ system_name="`(uname -s -r) 2>/dev/null`"
++ if test -z "$system_name" ; then
++ system_name="`(hostname) 2>/dev/null`"
++ fi
++fi
++test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
++AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
++
++test -z "$system_name" && system_name="$cf_cv_system_name"
++test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
++
++if test ".$system_name" != ".$cf_cv_system_name" ; then
++ AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
++ AC_ERROR("Please remove config.cache and try again.")
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CHECK_ERRNO version: 9 updated: 2001/12/30 18:03:23
++dnl --------------
++dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
++dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it
++dnl ourselves.
++dnl
++dnl $1 = the name to check
++AC_DEFUN([CF_CHECK_ERRNO],
++[
++AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
++ AC_TRY_COMPILE([
++#ifdef HAVE_STDLIB_H
++#include <stdlib.h>
++#endif
++#include <stdio.h>
++#include <sys/types.h>
++#include <errno.h> ],
++ [long x = (long) $1],
++ [cf_cv_dcl_$1=yes],
++ [cf_cv_dcl_$1=no])
++])
++
++if test "$cf_cv_dcl_$1" = no ; then
++ CF_UPPER(cf_result,decl_$1)
++ AC_DEFINE_UNQUOTED($cf_result)
++fi
++
++# It's possible (for near-UNIX clones) that the data doesn't exist
++CF_CHECK_EXTERN_DATA($1,int)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
++dnl --------------------
++dnl Check for existence of external data in the current set of libraries. If
++dnl we can modify it, it's real enough.
++dnl $1 = the name to check
++dnl $2 = its type
++AC_DEFUN([CF_CHECK_EXTERN_DATA],
++[
++AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
++ AC_TRY_LINK([
++#undef $1
++extern $2 $1;
++],
++ [$1 = 2],
++ [cf_cv_have_$1=yes],
++ [cf_cv_have_$1=no])
++])
++
++if test "$cf_cv_have_$1" = yes ; then
++ CF_UPPER(cf_result,have_$1)
++ AC_DEFINE_UNQUOTED($cf_result)
++fi
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
++dnl -----------------
++dnl Check if the C++ compiler accepts duplicate parameter initialization. This
++dnl is a late feature for the standard and is not in some recent compilers
++dnl (1999/9/11).
++AC_DEFUN([CF_CPP_PARAM_INIT],
++[
++if test -n "$CXX"; then
++AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
++ AC_LANG_SAVE
++ AC_LANG_CPLUSPLUS
++ AC_TRY_RUN([
++class TEST {
++private:
++ int value;
++public:
++ TEST(int x = 1);
++ ~TEST();
++};
++
++TEST::TEST(int x = 1) // some compilers do not like second initializer
++{
++ value = x;
++}
++void main() { }
++],
++ [cf_cv_cpp_param_init=yes],
++ [cf_cv_cpp_param_init=no],
++ [cf_cv_cpp_param_init=unknown])
++ AC_LANG_RESTORE
++])
++fi
++test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CPP_VSCAN_FUNC version: 5 updated: 2001/12/02 01:39:28
++dnl -----------------
++dnl Check if the g++ compiler supports vscan function (not a standard feature).
++AC_DEFUN([CF_CPP_VSCAN_FUNC],
++[
++if test -n "$CXX"; then
++
++AC_LANG_SAVE
++AC_LANG_CPLUSPLUS
++AC_CHECK_HEADERS(strstream.h)
++
++AC_CACHE_CHECK(if $CXX supports vscan function,cf_cv_cpp_vscan_func,[
++ for cf_vscan_func in strstream strstream_cast stdio
++ do
++ case $cf_vscan_func in #(vi
++ stdio) cf_vscan_defs=USE_STDIO_VSCAN ;; #(vi
++ strstream) cf_vscan_defs=USE_STRSTREAM_VSCAN ;;
++ strstream_cast) cf_vscan_defs=USE_STRSTREAM_VSCAN_CAST ;;
++ esac
++ AC_TRY_LINK([
++#include <stdio.h>
++#include <stdarg.h>
++#define $cf_vscan_defs 1
++#if defined(USE_STDIO_VSCAN)
++#elif defined(HAVE_STRSTREAM_H) && defined(USE_STRSTREAM_VSCAN)
++#include <strstream.h>
++#endif
++
++int scanw(const char* fmt, ...)
++{
++ int result = -1;
++ char buf[BUFSIZ];
++
++ va_list args;
++ va_start(args, fmt);
++#if defined(USE_STDIO_VSCAN)
++ if (::vsscanf(buf, fmt, args) != -1)
++ result = 0;
++#elif defined(USE_STRSTREAM_VSCAN)
++ strstreambuf ss(buf, sizeof(buf));
++ if (ss.vscan(fmt, args) != -1)
++ result = 0;
++#elif defined(USE_STRSTREAM_VSCAN_CAST)
++ strstreambuf ss(buf, sizeof(buf));
++ if (ss.vscan(fmt, (_IO_va_list)args) != -1)
++ result = 0;
++#else
++#error case $cf_vscan_func failed
++#endif
++ va_end(args);
++ return result;
++}
++],[int tmp, foo = scanw("%d", &tmp)],
++ [cf_cv_cpp_vscan_func=$cf_vscan_func; break],
++ [cf_cv_cpp_vscan_func=no])
++ test "$cf_cv_cpp_vscan_func" != no && break
++ done
++])
++
++AC_LANG_RESTORE
++fi
++
++case $cf_cv_cpp_vscan_func in #(vi
++stdio) #(vi
++ AC_DEFINE(CPP_HAS_VSCAN_FUNC)
++ AC_DEFINE(USE_STDIO_VSCAN)
++ ;;
++strstream)
++ AC_DEFINE(CPP_HAS_VSCAN_FUNC)
++ AC_DEFINE(USE_STRSTREAM_VSCAN)
++ ;;
++strstream_cast)
++ AC_DEFINE(CPP_HAS_VSCAN_FUNC)
++ AC_DEFINE(USE_STRSTREAM_VSCAN_CAST)
++ ;;
++esac
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
++dnl ----------
++dnl "dirname" is not portable, so we fake it with a shell script.
++AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31
++dnl ---------------
++AC_DEFUN([CF_DIRS_TO_MAKE],
++[
++DIRS_TO_MAKE="lib"
++for cf_item in $cf_list_models
++do
++ CF_OBJ_SUBDIR($cf_item,cf_subdir)
++ for cf_item2 in $DIRS_TO_MAKE
++ do
++ test $cf_item2 = $cf_subdir && break
++ done
++ test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
++done
++for cf_dir in $DIRS_TO_MAKE
++do
++ test ! -d $cf_dir && mkdir $cf_dir
++done
++AC_SUBST(DIRS_TO_MAKE)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
++dnl --------
++dnl Check if 'errno' is declared in <errno.h>
++AC_DEFUN([CF_ERRNO],
++[
++CF_CHECK_ERRNO(errno)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43
++dnl ---------------
++dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
++dnl math.h and builtin.h, only for ncurses
++AC_DEFUN([CF_ETIP_DEFINES],
++[
++AC_MSG_CHECKING(for special defines needed for etip.h)
++cf_save_CXXFLAGS="$CXXFLAGS"
++cf_result="none"
++for cf_math in "" MATH_H
++do
++for cf_excp in "" MATH_EXCEPTION
++do
++ CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include"
++ test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
++ test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
++AC_TRY_COMPILE([
++#include <etip.h.in>
++],[],[
++ test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
++ test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
++ cf_result="$cf_math $cf_excp"
++ break
++],[])
++done
++done
++AC_MSG_RESULT($cf_result)
++CXXFLAGS="$cf_save_CXXFLAGS"
++])
++dnl ---------------------------------------------------------------------------
++dnl CF_FUNC_MEMMOVE version: 5 updated: 2000/08/12 23:18:52
++dnl ---------------
++dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
++dnl is found, add our own version of memmove to the list of objects.
++AC_DEFUN([CF_FUNC_MEMMOVE],
++[
++AC_CHECK_FUNC(memmove,,[
++AC_CHECK_FUNC(bcopy,[
++ AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
++ AC_TRY_RUN([
++int main() {
++ static char data[] = "abcdefghijklmnopqrstuwwxyz";
++ char temp[40];
++ bcopy(data, temp, sizeof(data));
++ bcopy(temp+10, temp, 15);
++ bcopy(temp+5, temp+15, 10);
++ exit (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
++}
++ ],
++ [cf_cv_good_bcopy=yes],
++ [cf_cv_good_bcopy=no],
++ [cf_cv_good_bcopy=unknown])
++ ])
++ ],[cf_cv_good_bcopy=no])
++ if test "$cf_cv_good_bcopy" = yes ; then
++ AC_DEFINE(USE_OK_BCOPY)
++ else
++ AC_DEFINE(USE_MY_MEMMOVE)
++ fi
++])])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_FUNC_POLL version: 2 updated: 2000/02/06 01:38:04
++dnl ------------
++dnl See if the poll function really works. Some platforms have poll(), but
++dnl it does not work for terminals or files.
++AC_DEFUN([CF_FUNC_POLL],[
++AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
++AC_TRY_RUN([
++#include <stdio.h>
++#ifdef HAVE_POLL_H
++#include <poll.h>
++#else
++#include <sys/poll.h>
++#endif
++int main() {
++ struct pollfd myfds;
++ int ret;
++
++ myfds.fd = 0;
++ myfds.events = POLLIN;
++
++ ret = poll(&myfds, 1, 100);
++ exit(ret != 0);
++}],
++ [cf_cv_working_poll=yes],
++ [cf_cv_working_poll=no],
++ [cf_cv_working_poll=unknown])])
++test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24
++dnl ---------------
++dnl Some old/broken variations define tcgetattr() only as a macro in
++dnl termio(s).h
++AC_DEFUN([CF_FUNC_TERMIOS],[
++AC_REQUIRE([CF_STRUCT_TERMIOS])
++AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
++AC_TRY_LINK([
++#include <sys/types.h>
++#ifdef HAVE_UNISTD_H
++#include <unistd.h>
++#endif
++#ifdef HAVE_TERMIOS_H
++#include <termios.h>
++#define TTY struct termios
++#else
++#ifdef HAVE_TERMIO_H
++#include <termio.h>
++#define TTY struct termio
++#endif
++#endif
++],[
++TTY foo;
++tcgetattr(1, &foo);],
++[cf_cv_have_tcgetattr=yes],
++[cf_cv_have_tcgetattr=no])])
++test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10
++dnl ---------------
++dnl Check for vsscanf() function, which is in c9x but generally not in earlier
++dnl versions of C. It is in the GNU C library, and can often be simulated by
++dnl other functions.
++AC_DEFUN([CF_FUNC_VSSCANF],
++[
++AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
++AC_TRY_LINK([
++#include <stdarg.h>
++#include <stdio.h>],[
++ va_list ap;
++ vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
++AC_TRY_LINK([
++#include <stdarg.h>
++#include <stdio.h>],[
++ FILE strbuf;
++ char *str = "from";
++
++ strbuf._flag = _IOREAD;
++ strbuf._ptr = strbuf._base = (unsigned char *) str;
++ strbuf._cnt = strlen(str);
++ strbuf._file = _NFILE;
++ return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
++AC_TRY_LINK([
++#include <stdarg.h>
++#include <stdio.h>],[
++ FILE strbuf;
++ char *str = "from";
++
++ strbuf._flag = _IOREAD;
++ strbuf._ptr = strbuf._base = (unsigned char *) str;
++ strbuf._cnt = strlen(str);
++ strbuf._file = _NFILE;
++ return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
++cf_cv_func_vsscanf=no])])])])
++
++case $cf_cv_func_vsscanf in #(vi
++vsscanf) AC_DEFINE(HAVE_VSSCANF);; #(vi
++vfscanf) AC_DEFINE(HAVE_VFSCANF);; #(vi
++_doscan) AC_DEFINE(HAVE__DOSCAN);;
++esac
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_GCC_ATTRIBUTES version: 9 updated: 2002/12/21 19:25:52
++dnl -----------------
++dnl Test for availability of useful gcc __attribute__ directives to quiet
++dnl compiler warnings. Though useful, not all are supported -- and contrary
++dnl to documentation, unrecognized directives cause older compilers to barf.
++AC_DEFUN([CF_GCC_ATTRIBUTES],
++[
++if test "$GCC" = yes
++then
++cat > conftest.i <<EOF
++#ifndef GCC_PRINTF
++#define GCC_PRINTF 0
++#endif
++#ifndef GCC_SCANF
++#define GCC_SCANF 0
++#endif
++#ifndef GCC_NORETURN
++#define GCC_NORETURN /* nothing */
++#endif
++#ifndef GCC_UNUSED
++#define GCC_UNUSED /* nothing */
++#endif
++EOF
++if test "$GCC" = yes
++then
++ AC_CHECKING([for $CC __attribute__ directives])
++cat > conftest.$ac_ext <<EOF
++#line __oline__ "configure"
++#include "confdefs.h"
++#include "conftest.h"
++#include "conftest.i"
++#if GCC_PRINTF
++#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
++#else
++#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
++#endif
++#if GCC_SCANF
++#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
++#else
++#define GCC_SCANFLIKE(fmt,var) /*nothing*/
++#endif
++extern void wow(char *,...) GCC_SCANFLIKE(1,2);
++extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
++extern void foo(void) GCC_NORETURN;
++int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
++EOF
++ for cf_attribute in scanf printf unused noreturn
++ do
++ CF_UPPER(CF_ATTRIBUTE,$cf_attribute)
++ cf_directive="__attribute__(($cf_attribute))"
++ echo "checking for $CC $cf_directive" 1>&AC_FD_CC
++ case $cf_attribute in
++ scanf|printf)
++ cat >conftest.h <<EOF
++#define GCC_$CF_ATTRIBUTE 1
++EOF
++ ;;
++ *)
++ cat >conftest.h <<EOF
++#define GCC_$CF_ATTRIBUTE $cf_directive
++EOF
++ ;;
++ esac
++ if AC_TRY_EVAL(ac_compile); then
++ test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
++ cat conftest.h >>confdefs.h
++ fi
++ done
++else
++ fgrep define conftest.i >>confdefs.h
++fi
++rm -rf conftest*
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_GCC_VERSION version: 3 updated: 2003/09/06 19:16:57
++dnl --------------
++dnl Find version of gcc
++AC_DEFUN([CF_GCC_VERSION],[
++AC_REQUIRE([AC_PROG_CC])
++GCC_VERSION=none
++if test "$GCC" = yes ; then
++ AC_MSG_CHECKING(version of $CC)
++ GCC_VERSION="`${CC} --version|sed -e '2,$d' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
++ test -z "$GCC_VERSION" && GCC_VERSION=unknown
++ AC_MSG_RESULT($GCC_VERSION)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_GCC_WARNINGS version: 15 updated: 2003/07/05 18:42:30
++dnl ---------------
++dnl Check if the compiler supports useful warning options. There's a few that
++dnl we don't use, simply because they're too noisy:
++dnl
++dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
++dnl -Wredundant-decls (system headers make this too noisy)
++dnl -Wtraditional (combines too many unrelated messages, only a few useful)
++dnl -Wwrite-strings (too noisy, but should review occasionally). This
++dnl is enabled for ncurses using "--enable-const".
++dnl -pedantic
++dnl
++AC_DEFUN([CF_GCC_WARNINGS],
++[
++AC_REQUIRE([CF_GCC_VERSION])
++if test "$GCC" = yes
++then
++ cat > conftest.$ac_ext <<EOF
++#line __oline__ "configure"
++int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
++EOF
++ AC_CHECKING([for $CC warning options])
++ cf_save_CFLAGS="$CFLAGS"
++ EXTRA_CFLAGS="-W -Wall"
++ cf_warn_CONST=""
++ test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
++ for cf_opt in \
++ Wbad-function-cast \
++ Wcast-align \
++ Wcast-qual \
++ Winline \
++ Wmissing-declarations \
++ Wmissing-prototypes \
++ Wnested-externs \
++ Wpointer-arith \
++ Wshadow \
++ Wstrict-prototypes \
++ Wundef $cf_warn_CONST
++ do
++ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
++ if AC_TRY_EVAL(ac_compile); then
++ test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
++ case $cf_opt in #(vi
++ Wcast-qual) #(vi
++ CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
++ ;;
++ Winline) #(vi
++ case $GCC_VERSION in
++ 3.3*)
++ CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
++ continue;;
++ esac
++ ;;
++ esac
++ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
++ fi
++ done
++ rm -f conftest*
++ CFLAGS="$cf_save_CFLAGS"
++fi
++AC_SUBST(EXTRA_CFLAGS)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_GNAT_TRY_RUN version: 2 updated: 1998/07/19 00:25:18
++dnl ---------------
++dnl Verify that a test program compiles and runs with GNAT
++dnl $cf_ada_make is set to the program that compiles/links
++AC_DEFUN([CF_GNAT_TRY_RUN],
++[
++rm -f conftest*
++cat >>conftest.ads <<CF_EOF
++$1
++CF_EOF
++cat >>conftest.adb <<CF_EOF
++$2
++CF_EOF
++if ( $cf_ada_make conftest 1>&AC_FD_CC 2>&1 ) ; then
++ if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
++ifelse($3,, :,[ $3])
++ifelse($4,,,[ else
++ $4])
++ fi
++ifelse($4,,,[else
++ $4])
++fi
++rm -f conftest*
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_GNAT_VERSION version: 11 updated: 2003/09/06 19:42:09
++dnl ---------------
++dnl Verify version of GNAT.
++AC_DEFUN([CF_GNAT_VERSION],
++[
++AC_MSG_CHECKING(for gnat version)
++cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\
++ sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
++AC_MSG_RESULT($cf_gnat_version)
++
++case $cf_gnat_version in
++ 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*)
++ cf_cv_prog_gnat_correct=yes
++ ;;
++ *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
++ cf_cv_prog_gnat_correct=no
++ ;;
++esac
++case $cf_gnat_version in
++ 3.[[1-9]]*|[[4-9]].*)
++ cf_compile_generics=generics
++ cf_generic_objects="\$(GENOBJS)"
++ ;;
++ *) cf_compile_generics=
++ cf_generic_objects=
++ ;;
++esac
++])
++dnl ---------------------------------------------------------------------------
++dnl CF_GNU_SOURCE version: 3 updated: 2000/10/29 23:30:53
++dnl -------------
++dnl Check if we must define _GNU_SOURCE to get a reasonable value for
++dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
++dnl (or misfeature) of glibc2, which breaks portability of many applications,
++dnl since it is interwoven with GNU extensions.
++dnl
++dnl Well, yes we could work around it...
++AC_DEFUN([CF_GNU_SOURCE],
++[
++AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
++AC_TRY_COMPILE([#include <sys/types.h>],[
++#ifndef _XOPEN_SOURCE
++make an error
++#endif],
++ [cf_cv_gnu_source=no],
++ [cf_save="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
++ AC_TRY_COMPILE([#include <sys/types.h>],[
++#ifdef _XOPEN_SOURCE
++make an error
++#endif],
++ [cf_cv_gnu_source=no],
++ [cf_cv_gnu_source=yes])
++ CPPFLAGS="$cf_save"
++ ])
++])
++test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_GPP_LIBRARY version: 8 updated: 2003/02/02 01:41:46
++dnl --------------
++dnl If we're trying to use g++, test if libg++ is installed (a rather common
++dnl problem :-). If we have the compiler but no library, we'll be able to
++dnl configure, but won't be able to build the c++ demo program.
++AC_DEFUN([CF_GPP_LIBRARY],
++[
++cf_cxx_library=unknown
++case $cf_cv_system_name in #(vi
++os2*) #(vi
++ cf_gpp_libname=gpp
++ ;;
++*)
++ cf_gpp_libname=g++
++ ;;
++esac
++if test "$GXX" = yes; then
++ AC_MSG_CHECKING([for lib$cf_gpp_libname])
++ cf_save="$LIBS"
++ LIBS="$LIBS -l$cf_gpp_libname"
++ AC_TRY_LINK([
++#include <$cf_gpp_libname/builtin.h>
++ ],
++ [two_arg_error_handler_t foo2 = lib_error_handler],
++ [cf_cxx_library=yes
++ CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
++ if test "$cf_gpp_libname" = cpp ; then
++ AC_DEFINE(HAVE_GPP_BUILTIN_H)
++ else
++ AC_DEFINE(HAVE_GXX_BUILTIN_H)
++ fi],
++ [AC_TRY_LINK([
++#include <builtin.h>
++ ],
++ [two_arg_error_handler_t foo2 = lib_error_handler],
++ [cf_cxx_library=yes
++ CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
++ AC_DEFINE(HAVE_BUILTIN_H)],
++ [cf_cxx_library=no])])
++ LIBS="$cf_save"
++ AC_MSG_RESULT($cf_cxx_library)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_GXX_VERSION version: 3 updated: 2003/09/06 19:16:21
++dnl --------------
++dnl Check for version of g++
++AC_DEFUN([CF_GXX_VERSION],[
++AC_REQUIRE([AC_PROG_CPP])
++GXX_VERSION=none
++if test "$GXX" = yes; then
++ AC_MSG_CHECKING(version of g++)
++ GXX_VERSION="`${CXX-g++} --version|sed -e '2,$d'`"
++ AC_MSG_RESULT($GXX_VERSION)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_INCLUDE_DIRS version: 4 updated: 2002/12/01 00:12:15
++dnl ---------------
++dnl Construct the list of include-options according to whether we're building
++dnl in the source directory or using '--srcdir=DIR' option. If we're building
++dnl with gcc, don't append the includedir if it happens to be /usr/include,
++dnl since that usually breaks gcc's shadow-includes.
++AC_DEFUN([CF_INCLUDE_DIRS],
++[
++CPPFLAGS="-I. -I../include $CPPFLAGS"
++if test "$srcdir" != "."; then
++ CPPFLAGS="-I\$(srcdir)/../include $CPPFLAGS"
++fi
++if test "$GCC" != yes; then
++ CPPFLAGS="$CPPFLAGS -I\$(includedir)"
++elif test "$includedir" != "/usr/include"; then
++ if test "$includedir" = '${prefix}/include' ; then
++ if test $prefix != /usr ; then
++ CPPFLAGS="$CPPFLAGS -I\$(includedir)"
++ fi
++ else
++ CPPFLAGS="$CPPFLAGS -I\$(includedir)"
++ fi
++fi
++AC_SUBST(CPPFLAGS)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
++dnl ----------
++dnl Check if we have either a function or macro for 'isascii()'.
++AC_DEFUN([CF_ISASCII],
++[
++AC_MSG_CHECKING(for isascii)
++AC_CACHE_VAL(cf_cv_have_isascii,[
++ AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
++ [cf_cv_have_isascii=yes],
++ [cf_cv_have_isascii=no])
++])dnl
++AC_MSG_RESULT($cf_cv_have_isascii)
++test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_LIBUTF8 version: 2 updated: 2002/01/19 22:51:32
++dnl ----------
++dnl Check for libutf8
++AC_DEFUN([CF_LIBUTF8],
++[
++AC_CACHE_CHECK(for putwc in libutf8,cf_cv_libutf8,[
++ cf_save_LIBS="$LIBS"
++ LIBS="-lutf8 $LIBS"
++AC_TRY_LINK([
++#include <libutf8.h>],[putwc(0,0);],
++ [cf_cv_libutf8=yes],
++ [cf_cv_libutf8=no])
++ LIBS="$cf_save_LIBS"
++])
++
++if test "$cf_cv_libutf8" = yes ; then
++ AC_DEFINE(HAVE_LIBUTF8_H)
++ LIBS="-lutf8 $LIBS"
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_LIB_PREFIX version: 7 updated: 2001/01/12 01:23:48
++dnl -------------
++dnl Compute the library-prefix for the given host system
++dnl $1 = variable to set
++AC_DEFUN([CF_LIB_PREFIX],
++[
++ case $cf_cv_system_name in
++ OS/2*) LIB_PREFIX='' ;;
++ os2*) LIB_PREFIX='' ;;
++ *) LIB_PREFIX='lib' ;;
++ esac
++ifelse($1,,,[$1=$LIB_PREFIX])
++ AC_SUBST(LIB_PREFIX)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_LIB_RULES version: 30 updated: 2004/01/10 15:50:50
++dnl ------------
++dnl Append definitions and rules for the given models to the subdirectory
++dnl Makefiles, and the recursion rule for the top-level Makefile. If the
++dnl subdirectory is a library-source directory, modify the LIBRARIES list in
++dnl the corresponding makefile to list the models that we'll generate.
++dnl
++dnl For shared libraries, make a list of symbolic links to construct when
++dnl generating each library. The convention used for Linux is the simplest
++dnl one:
++dnl lib<name>.so ->
++dnl lib<name>.so.<major> ->
++dnl lib<name>.so.<maj>.<minor>
++AC_DEFUN([CF_LIB_RULES],
++[
++CF_LIB_PREFIX(cf_prefix)
++AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
++for cf_dir in $SRC_SUBDIRS
++do
++ if test -f $srcdir/$cf_dir/modules; then
++
++ IMPORT_LIB=
++ SHARED_LIB=
++ LIBS_TO_MAKE=
++ for cf_item in $CF_LIST_MODELS
++ do
++ CF_LIB_SUFFIX($cf_item,cf_suffix)
++ if test $cf_item = shared ; then
++ if test "$cf_cv_do_symlinks" = yes ; then
++ case "$cf_cv_shlib_version" in #(vi
++ rel) #(vi
++ case "$cf_cv_system_name" in #(vi
++ darwin*) cf_suffix='.$(REL_VERSION)'"$cf_suffix" ;; #(vi
++ *) cf_suffix="$cf_suffix"'.$(REL_VERSION)' ;;
++ esac
++ ;;
++ abi)
++ case "$cf_cv_system_name" in #(vi
++ darwin*) cf_suffix='.$(ABI_VERSION)'"$cf_suffix" ;; #(vi
++ *) cf_suffix="$cf_suffix"'.$(ABI_VERSION)' ;;
++ esac
++ ;;
++ esac
++ fi
++ # cygwin needs import library, and has unique naming convention
++ # use autodetected ${cf_prefix} for import lib and static lib, but
++ # use 'cyg' prefix for shared lib.
++ if test $cf_cv_shlib_version = cygdll ; then
++ SHARED_LIB="../lib/cyg${cf_dir}\$(ABI_VERSION).dll"
++ IMPORT_LIB="../lib/${cf_prefix}${cf_dir}.dll.a"
++ LIBS_TO_MAKE="$LIBS_TO_MAKE \$(SHARED_LIB) \$(IMPORT_LIB)"
++ continue
++ fi
++ fi
++ LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
++ done
++
++ if test $cf_dir = ncurses ; then
++ cf_subsets="$LIB_SUBSETS"
++ cf_termlib=`echo "$cf_subsets" |sed -e 's/ .*$//'`
++ if test "$cf_termlib" != "$cf_subsets" ; then
++ cf_item=`echo $LIBS_TO_MAKE |sed -e s%$LIB_NAME%$TINFO_NAME%g`
++ LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
++ fi
++ else
++ cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
++ fi
++
++ sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
++ -e "s%@IMPORT_LIB@%$IMPORT_LIB%" \
++ -e "s%@SHARED_LIB@%$SHARED_LIB%" \
++ $cf_dir/Makefile >$cf_dir/Makefile.out
++ mv $cf_dir/Makefile.out $cf_dir/Makefile
++
++ $AWK -f $srcdir/mk-0th.awk \
++ libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
++ $srcdir/$cf_dir/modules >>$cf_dir/Makefile
++
++ for cf_subset in $cf_subsets
++ do
++ cf_subdirs=
++ for cf_item in $CF_LIST_MODELS
++ do
++ echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
++ CF_UPPER(CF_ITEM,$cf_item)
++ CF_LIB_SUFFIX($cf_item,cf_suffix)
++ CF_OBJ_SUBDIR($cf_item,cf_subdir)
++
++ # These dependencies really are for development, not
++ # builds, but they are useful in porting, too.
++ cf_depend="../include/ncurses_cfg.h"
++ if test "$srcdir" = "."; then
++ cf_reldir="."
++ else
++ cf_reldir="\$(srcdir)"
++ fi
++
++ if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
++ cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
++ elif test -f $srcdir/$cf_dir/curses.priv.h; then
++ cf_depend="$cf_depend $cf_reldir/curses.priv.h"
++ fi
++
++ $AWK -f $srcdir/mk-1st.awk \
++ name=$cf_dir \
++ traces=$LIB_TRACING \
++ MODEL=$CF_ITEM \
++ model=$cf_subdir \
++ prefix=$cf_prefix \
++ suffix=$cf_suffix \
++ subset=$cf_subset \
++ ShlibVer=$cf_cv_shlib_version \
++ ShlibVerInfix=$cf_cv_shlib_version_infix \
++ DoLinks=$cf_cv_do_symlinks \
++ rmSoLocs=$cf_cv_rm_so_locs \
++ ldconfig="$LDCONFIG" \
++ overwrite=$WITH_OVERWRITE \
++ depend="$cf_depend" \
++ host="$host" \
++ $srcdir/$cf_dir/modules >>$cf_dir/Makefile
++ for cf_subdir2 in $cf_subdirs lib
++ do
++ test $cf_subdir = $cf_subdir2 && break
++ done
++ test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
++ $AWK -f $srcdir/mk-2nd.awk \
++ name=$cf_dir \
++ traces=$LIB_TRACING \
++ MODEL=$CF_ITEM \
++ model=$cf_subdir \
++ subset=$cf_subset \
++ srcdir=$srcdir \
++ echo=$WITH_ECHO \
++ $srcdir/$cf_dir/modules >>$cf_dir/Makefile
++ cf_subdirs="$cf_subdirs $cf_subdir"
++ done
++ done
++ fi
++
++ echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) [$]@' >>Makefile
++done
++
++for cf_dir in $SRC_SUBDIRS
++do
++ if test -f $cf_dir/Makefile ; then
++ case "$cf_dir" in
++ Ada95) #(vi
++ echo 'libs \' >> Makefile
++ echo 'install.libs \' >> Makefile
++ echo 'uninstall.libs ::' >> Makefile
++ echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) [$]@' >> Makefile
++ ;;
++ esac
++ fi
++
++ if test -f $srcdir/$cf_dir/modules; then
++ echo >> Makefile
++ if test -f $srcdir/$cf_dir/headers; then
++cat >> Makefile <<CF_EOF
++install.includes \\
++uninstall.includes \\
++CF_EOF
++ fi
++if test "$cf_dir" != "c++" ; then
++echo 'lint \' >> Makefile
++fi
++cat >> Makefile <<CF_EOF
++libs \\
++lintlib \\
++install.libs \\
++uninstall.libs \\
++install.$cf_dir \\
++uninstall.$cf_dir ::
++ cd $cf_dir && \$(MAKE) \$(CF_MFLAGS) \[$]@
++CF_EOF
++ elif test -f $srcdir/$cf_dir/headers; then
++cat >> Makefile <<CF_EOF
++
++libs \\
++install.libs \\
++uninstall.libs \\
++install.includes \\
++uninstall.includes ::
++ cd $cf_dir && \$(MAKE) \$(CF_MFLAGS) \[$]@
++CF_EOF
++fi
++done
++
++cat >> Makefile <<CF_EOF
++
++install.data \\
++uninstall.data ::
++$MAKE_TERMINFO cd misc && \$(MAKE) \$(CF_MFLAGS) \[$]@
++
++install.man \\
++uninstall.man ::
++ cd man && \$(MAKE) \$(CF_MFLAGS) \[$]@
++
++distclean ::
++ rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
++ rm -f headers.sh headers.sed
++ rm -rf \$(DIRS_TO_MAKE)
++CF_EOF
++
++# Special case: tack's manpage lives in its own directory.
++if test -d tack ; then
++if test -f $srcdir/$tack.h; then
++cat >> Makefile <<CF_EOF
++
++install.man \\
++uninstall.man ::
++ cd tack && \$(MAKE) \$(CF_MFLAGS) \[$]@
++CF_EOF
++fi
++fi
++
++dnl If we're installing into a subdirectory of /usr/include, etc., we should
++dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
++dnl anything, and will make it more standardized. It's awkward to decide this
++dnl at configuration because of quoting, so we'll simply make all headers
++dnl installed via a script that can do the right thing.
++
++rm -f headers.sed headers.sh
++
++dnl ( generating this script makes the makefiles a little tidier :-)
++echo creating headers.sh
++cat >headers.sh <<CF_EOF
++#! /bin/sh
++# This shell script is generated by the 'configure' script. It is invoked in a
++# subdirectory of the build tree. It generates a sed-script in the parent
++# directory that is used to adjust includes for header files that reside in a
++# subdirectory of /usr/include, etc.
++PRG=""
++while test \[$]# != 3
++do
++PRG="\$PRG \[$]1"; shift
++done
++DST=\[$]1
++REF=\[$]2
++SRC=\[$]3
++TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
++TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
++echo installing \$SRC in \$DST
++CF_EOF
++if test $WITH_CURSES_H = yes; then
++ cat >>headers.sh <<CF_EOF
++case \$DST in
++/*/include/*)
++ END=\`basename \$DST\`
++ for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
++ do
++ NAME=\`basename \$i\`
++ echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
++ done
++ ;;
++*)
++ echo "" >> \$TMPSED
++ ;;
++esac
++CF_EOF
++else
++ cat >>headers.sh <<CF_EOF
++case \$DST in
++/*/include/*)
++ END=\`basename \$DST\`
++ for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
++ do
++ NAME=\`basename \$i\`
++ if test "\$NAME" = "curses.h"
++ then
++ echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
++ NAME=ncurses.h
++ fi
++ echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
++ done
++ ;;
++*)
++ echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
++ ;;
++esac
++CF_EOF
++fi
++cat >>headers.sh <<CF_EOF
++rm -f \$TMPSRC
++sed -f \$TMPSED \$SRC > \$TMPSRC
++NAME=\`basename \$SRC\`
++CF_EOF
++if test $WITH_CURSES_H != yes; then
++ cat >>headers.sh <<CF_EOF
++test "\$NAME" = "curses.h" && NAME=ncurses.h
++CF_EOF
++fi
++cat >>headers.sh <<CF_EOF
++# Just in case someone gzip'd manpages, remove the conflicting copy.
++test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
++
++eval \$PRG \$TMPSRC \$DST/\$NAME
++rm -f \$TMPSRC \$TMPSED
++CF_EOF
++
++chmod 0755 headers.sh
++
++for cf_dir in $SRC_SUBDIRS
++do
++ if test -f $srcdir/$cf_dir/headers; then
++ cat >>$cf_dir/Makefile <<CF_EOF
++\$(DESTDIR)\$(includedir) :
++ sh \$(srcdir)/../mkinstalldirs \[$]@
++
++install \\
++install.libs \\
++install.includes :: \$(AUTO_SRC) \$(DESTDIR)\$(includedir) \\
++CF_EOF
++ j=""
++ for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
++ do
++ test -n "$j" && echo " $j \\" >>$cf_dir/Makefile
++ j=$i
++ done
++ echo " $j" >>$cf_dir/Makefile
++ for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
++ do
++ echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f `basename $i`) ; ../headers.sh \$(INSTALL_DATA) \$(DESTDIR)\$(includedir) \$(srcdir) $i" >>$cf_dir/Makefile
++ test $i = curses.h && test $WITH_CURSES_H = yes && echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h && \$(LN_S) curses.h ncurses.h)" >>$cf_dir/Makefile
++ done
++
++ cat >>$cf_dir/Makefile <<CF_EOF
++
++uninstall \\
++uninstall.libs \\
++uninstall.includes ::
++CF_EOF
++ for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
++ do
++ i=`basename $i`
++ echo " -@ (cd \$(DESTDIR)\$(includedir) && rm -f $i)" >>$cf_dir/Makefile
++ test $i = curses.h && echo " -@ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h)" >>$cf_dir/Makefile
++ done
++ fi
++
++ if test -f $srcdir/$cf_dir/modules; then
++ if test "$cf_dir" != "c++" ; then
++ cat >>$cf_dir/Makefile <<"CF_EOF"
++depend : $(AUTO_SRC)
++ makedepend -- $(CPPFLAGS) -- $(C_SRC)
++
++# DO NOT DELETE THIS LINE -- make depend depends on it.
++CF_EOF
++ fi
++ fi
++done
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_LIB_SUFFIX version: 13 updated: 2003/11/01 16:09:07
++dnl -------------
++dnl Compute the library file-suffix from the given model name
++dnl $1 = model name
++dnl $2 = variable to set
++dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
++AC_DEFUN([CF_LIB_SUFFIX],
++[
++ AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
++ case $1 in
++ libtool) $2='.la' ;;
++ normal) $2='.a' ;;
++ debug) $2='_g.a' ;;
++ profile) $2='_p.a' ;;
++ shared)
++ case $cf_cv_system_name in
++ cygwin*) $2='.dll' ;;
++ darwin*) $2='.dylib' ;;
++ hpux*)
++ case $target in
++ ia64*) $2='.so' ;;
++ *) $2='.sl' ;;
++ esac
++ ;;
++ *) $2='.so' ;;
++ esac
++ esac
++ test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
++dnl -----------
++dnl Compute the string to append to -library from the given model name
++dnl $1 = model name
++dnl $2 = variable to set
++dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
++AC_DEFUN([CF_LIB_TYPE],
++[
++ case $1 in
++ libtool) $2='' ;;
++ normal) $2='' ;;
++ debug) $2='_g' ;;
++ profile) $2='_p' ;;
++ shared) $2='' ;;
++ esac
++ test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_LINK_DATAONLY version: 6 updated: 2003/02/02 01:41:46
++dnl ----------------
++dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
++dnl only data (i.e., no functions), for example NeXT. On those systems we'll
++dnl have to provide wrappers for global tables to ensure they're linked
++dnl properly.
++AC_DEFUN([CF_LINK_DATAONLY],
++[
++AC_MSG_CHECKING([if data-only library module links])
++AC_CACHE_VAL(cf_cv_link_dataonly,[
++ rm -f conftest.a
++ cat >conftest.$ac_ext <<EOF
++#line __oline__ "configure"
++int testdata[[3]] = { 123, 456, 789 };
++EOF
++ if AC_TRY_EVAL(ac_compile) ; then
++ mv conftest.o data.o && \
++ ( $AR $AR_OPTS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
++ fi
++ rm -f conftest.$ac_ext data.o
++ cat >conftest.$ac_ext <<EOF
++#line __oline__ "configure"
++int testfunc()
++{
++#if defined(NeXT)
++ exit(1); /* I'm told this linker is broken */
++#else
++ extern int testdata[[3]];
++ return testdata[[0]] == 123
++ && testdata[[1]] == 456
++ && testdata[[2]] == 789;
++#endif
++}
++EOF
++ if AC_TRY_EVAL(ac_compile); then
++ mv conftest.o func.o && \
++ ( $AR $AR_OPTS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
++ fi
++ rm -f conftest.$ac_ext func.o
++ ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
++ cf_saveLIBS="$LIBS"
++ LIBS="conftest.a $LIBS"
++ AC_TRY_RUN([
++ int main()
++ {
++ extern int testfunc();
++ exit (!testfunc());
++ }
++ ],
++ [cf_cv_link_dataonly=yes],
++ [cf_cv_link_dataonly=no],
++ [cf_cv_link_dataonly=unknown])
++ LIBS="$cf_saveLIBS"
++ ])
++AC_MSG_RESULT($cf_cv_link_dataonly)
++
++if test "$cf_cv_link_dataonly" = no ; then
++ AC_DEFINE(BROKEN_LINKER)
++ BROKEN_LINKER=1
++fi
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_LINK_FUNCS version: 5 updated: 2003/02/02 01:41:46
++dnl -------------
++dnl Most Unix systems have both link and symlink, a few don't have symlink.
++dnl A few non-Unix systems implement symlink, but not link.
++dnl A few non-systems implement neither (or have nonfunctional versions).
++AC_DEFUN([CF_LINK_FUNCS],
++[
++AC_CHECK_FUNCS( \
++ remove \
++ unlink )
++
++if test "$cross_compiling" = yes ; then
++ AC_CHECK_FUNCS( \
++ link \
++ symlink )
++else
++ AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
++ cf_cv_link_funcs=
++ for cf_func in link symlink ; do
++ AC_TRY_RUN([
++#include <sys/types.h>
++#include <sys/stat.h>
++#ifdef HAVE_UNISTD_H
++#include <unistd.h>
++#endif
++int main()
++{
++ int fail = 0;
++ char *src = "config.log";
++ char *dst = "conftest.chk";
++ struct stat src_sb;
++ struct stat dst_sb;
++
++ stat(src, &src_sb);
++ fail = ($cf_func("config.log", "conftest.chk") < 0)
++ || (stat(dst, &dst_sb) < 0)
++ || (dst_sb.st_mtime != src_sb.st_mtime);
++#ifdef HAVE_UNLINK
++ unlink(dst);
++#else
++ remove(dst);
++#endif
++ exit (fail);
++}
++ ],[
++ cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
++ eval 'ac_cv_func_'$cf_func'=yes'],[
++ eval 'ac_cv_func_'$cf_func'=no'],[
++ eval 'ac_cv_func_'$cf_func'=error'])
++ done
++ test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
++ ])
++ test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
++ test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MAKEFLAGS version: 9 updated: 2001/12/30 18:17:27
++dnl ------------
++dnl Some 'make' programs support $(MAKEFLAGS), some $(MFLAGS), to pass 'make'
++dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
++dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
++dnl $(MAKEFLAGS) variable incompatible because it adds the assignments :-)
++AC_DEFUN([CF_MAKEFLAGS],
++[
++AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
++ cf_cv_makeflags=''
++ for cf_option in '-$(MAKEFLAGS)' '$(MFLAGS)'
++ do
++ cat >cf_makeflags.tmp <<CF_EOF
++SHELL = /bin/sh
++all :
++ @ echo '.$cf_option'
++CF_EOF
++ cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null`
++ case "$cf_result" in
++ .*k)
++ cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
++ case "$cf_result" in
++ .*CC=*) cf_cv_makeflags=
++ ;;
++ *) cf_cv_makeflags=$cf_option
++ ;;
++ esac
++ break
++ ;;
++ *) echo no match "$cf_result"
++ ;;
++ esac
++ done
++ rm -f cf_makeflags.tmp
++])
++
++AC_SUBST(cf_cv_makeflags)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MAKE_TAGS version: 2 updated: 2000/10/04 09:18:40
++dnl ------------
++dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
++dnl a monocase filesystem.
++AC_DEFUN([CF_MAKE_TAGS],[
++AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
++AC_CHECK_PROG(MAKE_LOWER_TAGS, ctags, yes, no)
++
++if test "$cf_cv_mixedcase" = yes ; then
++ AC_CHECK_PROG(MAKE_UPPER_TAGS, etags, yes, no)
++else
++ MAKE_UPPER_TAGS=no
++fi
++
++if test "$MAKE_UPPER_TAGS" = yes ; then
++ MAKE_UPPER_TAGS=
++else
++ MAKE_UPPER_TAGS="#"
++fi
++AC_SUBST(MAKE_UPPER_TAGS)
++
++if test "$MAKE_LOWER_TAGS" = yes ; then
++ MAKE_LOWER_TAGS=
++else
++ MAKE_LOWER_TAGS="#"
++fi
++AC_SUBST(MAKE_LOWER_TAGS)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MANPAGE_FORMAT version: 7 updated: 2003/12/20 19:30:34
++dnl -----------------
++dnl Option to allow user to override automatic configuration of manpage format.
++dnl There are several special cases:
++dnl
++dnl gzip - man checks for, can display gzip'd files
++dnl compress - man checks for, can display compressed files
++dnl BSDI - files in the cat-directories are suffixed ".0"
++dnl formatted - installer should format (put files in cat-directory)
++dnl catonly - installer should only format, e.g., for a turnkey system.
++dnl
++dnl There are other configurations which this macro does not test, e.g., HPUX's
++dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
++dnl convention would not match our use).
++AC_DEFUN([CF_MANPAGE_FORMAT],
++[
++AC_REQUIRE([CF_PATHSEP])
++AC_MSG_CHECKING(format of man-pages)
++
++AC_ARG_WITH(manpage-format,
++ [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
++ optionally formatted/catonly, e.g., gzip,formatted],
++ [MANPAGE_FORMAT=$withval],
++ [MANPAGE_FORMAT=unknown])
++
++test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
++MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
++
++cf_unknown=
++
++case $MANPAGE_FORMAT in
++unknown)
++ if test -z "$MANPATH" ; then
++ MANPATH="/usr/man:/usr/share/man"
++ fi
++
++ # look for the 'date' man-page (it's most likely to be installed!)
++ MANPAGE_FORMAT=
++ cf_preform=no
++ cf_catonly=yes
++ cf_example=date
++
++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
++ for cf_dir in $MANPATH; do
++ test -z "$cf_dir" && cf_dir=/usr/man
++ for cf_name in $cf_dir/man*/$cf_example.[[01]]* $cf_dir/cat*/$cf_example.[[01]]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example
++ do
++ cf_test=`echo $cf_name | sed -e 's/*//'`
++ if test "x$cf_test" = "x$cf_name" ; then
++
++ case "$cf_name" in
++ *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
++ *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
++ *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
++ *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
++ esac
++
++ case "$cf_name" in
++ $cf_dir/man*)
++ cf_catonly=no
++ ;;
++ $cf_dir/cat*)
++ cf_preform=yes
++ ;;
++ esac
++ break
++ fi
++
++ # if we found a match in either man* or cat*, stop looking
++ if test -n "$MANPAGE_FORMAT" ; then
++ cf_found=no
++ test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
++ test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
++ case "$cf_name" in
++ $cf_dir/cat*)
++ cf_found=yes
++ ;;
++ esac
++ test $cf_found=yes && break
++ fi
++ done
++ # only check the first directory in $MANPATH where we find manpages
++ if test -n "$MANPAGE_FORMAT" ; then
++ break
++ fi
++ done
++ # if we did not find the example, just assume it is normal
++ test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
++ IFS="$ac_save_ifs"
++ ;;
++*)
++ for cf_option in $MANPAGE_FORMAT; do
++ case $cf_option in #(vi
++ gzip|compress|BSDI|normal|formatted|catonly)
++ ;;
++ *)
++ cf_unknown="$cf_unknown $cf_option"
++ ;;
++ esac
++ done
++ ;;
++esac
++
++AC_MSG_RESULT($MANPAGE_FORMAT)
++if test -n "$cf_unknown" ; then
++ AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MANPAGE_RENAMES version: 6 updated: 2002/01/19 22:51:32
++dnl ------------------
++dnl The Debian people have their own naming convention for manpages. This
++dnl option lets us override the name of the file containing renaming, or
++dnl disable it altogether.
++AC_DEFUN([CF_MANPAGE_RENAMES],
++[
++AC_MSG_CHECKING(for manpage renaming)
++
++AC_ARG_WITH(manpage-renames,
++ [ --with-manpage-renames specify manpage-renaming],
++ [MANPAGE_RENAMES=$withval],
++ [MANPAGE_RENAMES=yes])
++
++case ".$MANPAGE_RENAMES" in #(vi
++.no) #(vi
++ ;;
++.|.yes)
++ # Debian 'man' program?
++ if test -f /etc/debian_version ; then
++ MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
++ else
++ MANPAGE_RENAMES=no
++ fi
++ ;;
++esac
++
++if test "$MANPAGE_RENAMES" != no ; then
++ if test -f $srcdir/man/$MANPAGE_RENAMES ; then
++ MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
++ elif test ! -f $MANPAGE_RENAMES ; then
++ AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
++ fi
++
++ test ! -d man && mkdir man
++
++ # Construct a sed-script to perform renaming within man-pages
++ if test -n "$MANPAGE_RENAMES" ; then
++ test ! -d man && mkdir man
++ sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >man/edit_man.sed
++ fi
++fi
++
++AC_MSG_RESULT($MANPAGE_RENAMES)
++AC_SUBST(MANPAGE_RENAMES)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MANPAGE_SYMLINKS version: 4 updated: 2003/12/13 18:01:58
++dnl -------------------
++dnl Some people expect each tool to make all aliases for manpages in the
++dnl man-directory. This accommodates the older, less-capable implementations
++dnl of 'man', and is optional.
++AC_DEFUN([CF_MANPAGE_SYMLINKS],
++[
++AC_MSG_CHECKING(if manpage aliases will be installed)
++
++AC_ARG_WITH(manpage-aliases,
++ [ --with-manpage-aliases specify manpage-aliases using .so],
++ [MANPAGE_ALIASES=$withval],
++ [MANPAGE_ALIASES=yes])
++
++AC_MSG_RESULT($MANPAGE_ALIASES)
++
++if test "$LN_S" = "ln -s"; then
++ cf_use_symlinks=yes
++else
++ cf_use_symlinks=no
++fi
++
++MANPAGE_SYMLINKS=no
++if test "$MANPAGE_ALIASES" = yes ; then
++AC_MSG_CHECKING(if manpage symlinks should be used)
++
++AC_ARG_WITH(manpage-symlinks,
++ [ --with-manpage-symlinks specify manpage-aliases using symlinks],
++ [MANPAGE_SYMLINKS=$withval],
++ [MANPAGE_SYMLINKS=$cf_use_symlinks])
++
++if test "$$cf_use_symlinks" = no; then
++if test "$MANPAGE_SYMLINKS" = yes ; then
++ AC_MSG_WARN(cannot make symlinks, will use .so files)
++ MANPAGE_SYMLINKS=no
++fi
++fi
++
++AC_MSG_RESULT($MANPAGE_SYMLINKS)
++fi
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
++dnl --------------
++dnl This option causes manpages to be run through tbl(1) to generate tables
++dnl correctly.
++AC_DEFUN([CF_MANPAGE_TBL],
++[
++AC_MSG_CHECKING(for manpage tbl)
++
++AC_ARG_WITH(manpage-tbl,
++ [ --with-manpage-tbl specify manpage processing with tbl],
++ [MANPAGE_TBL=$withval],
++ [MANPAGE_TBL=no])
++
++AC_MSG_RESULT($MANPAGE_TBL)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MAN_PAGES version: 27 updated: 2003/12/20 20:39:45
++dnl ------------
++dnl Try to determine if the man-pages on the system are compressed, and if
++dnl so, what format is used. Use this information to construct a script that
++dnl will install man-pages.
++AC_DEFUN([CF_MAN_PAGES],
++[
++CF_MANPAGE_FORMAT
++CF_MANPAGE_RENAMES
++CF_MANPAGE_SYMLINKS
++CF_MANPAGE_TBL
++
++ if test "$prefix" = "NONE" ; then
++ cf_prefix="$ac_default_prefix"
++ else
++ cf_prefix="$prefix"
++ fi
++
++ case "$MANPAGE_FORMAT" in # (vi
++ *catonly*) # (vi
++ cf_format=yes
++ cf_inboth=no
++ ;;
++ *formatted*) # (vi
++ cf_format=yes
++ cf_inboth=yes
++ ;;
++ *)
++ cf_format=no
++ cf_inboth=no
++ ;;
++ esac
++
++test ! -d man && mkdir man
++
++cf_so_strip=
++cf_compress=
++case "$MANPAGE_FORMAT" in #(vi
++*compress*) #(vi
++ cf_so_strip="Z"
++ cf_compress=compress
++ ;;
++*gzip*) #(vi
++ cf_so_strip="gz"
++ cf_compress=gzip
++ ;;
++esac
++
++cf_edit_man=man/edit_man.sh
++
++cat >$cf_edit_man <<CF_EOF
++#! /bin/sh
++# this script is generated by the configure-script CF_MAN_PAGES macro.
++prefix="$cf_prefix"
++datadir="$datadir"
++NCURSES_OSPEED="$NCURSES_OSPEED"
++TERMINFO="$TERMINFO"
++MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
++INSTALL="$INSTALL"
++INSTALL_DATA="$INSTALL_DATA"
++transform="$program_transform_name"
++
++TMP=\${TMPDIR-/tmp}/man\$\$
++trap "rm -f \$TMP" 0 1 2 5 15
++
++form=\[$]1
++shift || exit 1
++
++verb=\[$]1
++shift || exit 1
++
++mandir=\[$]1
++shift || exit 1
++
++srcdir=\[$]1
++shift || exit 1
++
++if test "\$form" = normal ; then
++ if test "$cf_format" = yes ; then
++ if test "$cf_inboth" = no ; then
++ sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
++ exit $?
++ fi
++ fi
++ cf_subdir=\$mandir/man
++ cf_tables=$MANPAGE_TBL
++else
++ cf_subdir=\$mandir/cat
++ cf_tables=yes
++fi
++
++# process the list of source-files
++for i in \[$]* ; do
++case \$i in #(vi
++*.orig|*.rej) ;; #(vi
++*.[[0-9]]*)
++ section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
++ if test \$verb = installing ; then
++ if test ! -d \$cf_subdir\${section} ; then
++ \$MKDIRS \$cf_subdir\$section
++ fi
++ fi
++ aliases=
++ source=\`basename \$i\`
++ inalias=\$source
++ test ! -f \$inalias && inalias="\$srcdir/\$inalias"
++ if test ! -f \$inalias ; then
++ echo .. skipped \$source
++ continue
++ fi
++CF_EOF
++
++if test "$MANPAGE_ALIASES" != no ; then
++cat >>$cf_edit_man <<CF_EOF
++ aliases=\`sed -f \$srcdir/manlinks.sed \$inalias | sort -u\`
++CF_EOF
++fi
++
++if test "$MANPAGE_RENAMES" = no ; then
++cat >>$cf_edit_man <<CF_EOF
++ # perform program transformations for section 1 man pages
++ if test \$section = 1 ; then
++ target=\$cf_subdir\${section}/\`echo \$source|sed "\${transform}"\`
++ else
++ target=\$cf_subdir\${section}/\$source
++ fi
++CF_EOF
++else
++cat >>$cf_edit_man <<CF_EOF
++ target=\`grep "^\$source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
++ if test -z "\$target" ; then
++ echo '? missing rename for '\$source
++ target="\$source"
++ fi
++ target="\$cf_subdir\${section}/\${target}"
++CF_EOF
++fi
++
++ # replace variables in man page
++ ifelse($1,,,[
++ for cf_name in $1
++ do
++cat >>$cf_edit_man <<CF_EOF
++ prog_$cf_name=\`echo $cf_name|sed "\${transform}"\`
++CF_EOF
++ done
++ ])
++cat >>$cf_edit_man <<CF_EOF
++ sed -e "s,@DATADIR@,\$datadir," \\
++ -e "s,@TERMINFO@,\$TERMINFO," \\
++ -e "s,@NCURSES_OSPEED@,\$NCURSES_OSPEED," \\
++CF_EOF
++
++ ifelse($1,,,[
++ for cf_name in $1
++ do
++ cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++cat >>$cf_edit_man <<CF_EOF
++ -e "s,@$cf_NAME@,\$prog_$cf_name," \\
++CF_EOF
++ done
++ ])
++
++if test -f $MANPAGE_RENAMES ; then
++cat >>$cf_edit_man <<CF_EOF
++ < \$i | sed -f $srcdir/edit_man.sed >\$TMP
++CF_EOF
++else
++cat >>$cf_edit_man <<CF_EOF
++ < \$i >\$TMP
++CF_EOF
++fi
++
++cat >>$cf_edit_man <<CF_EOF
++if test \$cf_tables = yes ; then
++ tbl \$TMP >\$TMP.out
++ mv \$TMP.out \$TMP
++fi
++CF_EOF
++
++if test $with_curses_h != yes ; then
++cat >>$cf_edit_man <<CF_EOF
++ sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
++ mv \$TMP.out \$TMP
++CF_EOF
++fi
++
++cat >>$cf_edit_man <<CF_EOF
++ if test \$form = format ; then
++ nroff -man \$TMP >\$TMP.out
++ mv \$TMP.out \$TMP
++ fi
++CF_EOF
++
++if test -n "$cf_compress" ; then
++cat >>$cf_edit_man <<CF_EOF
++ if test \$verb = installing ; then
++ if ( $cf_compress -f \$TMP )
++ then
++ mv \$TMP.$cf_so_strip \$TMP
++ fi
++ fi
++ target="\$target.$cf_so_strip"
++CF_EOF
++fi
++
++case "$MANPAGE_FORMAT" in #(vi
++*BSDI*)
++cat >>$cf_edit_man <<CF_EOF
++ if test \$form = format ; then
++ # BSDI installs only .0 suffixes in the cat directories
++ target="\`echo \$target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
++ fi
++CF_EOF
++ ;;
++esac
++
++cat >>$cf_edit_man <<CF_EOF
++ suffix=\`basename \$target | sed -e 's%^[[^.]]*%%'\`
++ if test \$verb = installing ; then
++ echo \$verb \$target
++ \$INSTALL_DATA \$TMP \$target
++ test -n "\$aliases" && (
++ cd \$cf_subdir\${section} && (
++ source=\`echo \$target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
++ test -n "$cf_so_strip" && source=\`echo \$source |sed -e 's%\.$cf_so_strip\$%%'\`
++ target=\`basename \$target\`
++ for cf_alias in \$aliases
++ do
++ if test \$section = 1 ; then
++ cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
++ fi
++
++ if test "$MANPAGE_SYMLINKS" = yes ; then
++ if test -f \$cf_alias\${suffix} ; then
++ if ( cmp -s \$target \$cf_alias\${suffix} )
++ then
++ continue
++ fi
++ fi
++ echo .. \$verb alias \$cf_alias\${suffix}
++ rm -f \$cf_alias\${suffix}
++ $LN_S \$target \$cf_alias\${suffix}
++ elif test "\$target" != "\$cf_alias\${suffix}" ; then
++ echo ".so \$source" >\$TMP
++CF_EOF
++if test -n "$cf_compress" ; then
++cat >>$cf_edit_man <<CF_EOF
++ if test -n "$cf_so_strip" ; then
++ $cf_compress -f \$TMP
++ mv \$TMP.$cf_so_strip \$TMP
++ fi
++CF_EOF
++fi
++cat >>$cf_edit_man <<CF_EOF
++ echo .. \$verb alias \$cf_alias\${suffix}
++ rm -f \$cf_alias\${suffix}
++ \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
++ fi
++ done
++ )
++ )
++ elif test \$verb = removing ; then
++ echo \$verb \$target
++ rm -f \$target
++ test -n "\$aliases" && (
++ cd \$cf_subdir\${section} && (
++ for cf_alias in \$aliases
++ do
++ if test \$section = 1 ; then
++ cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
++ fi
++
++ echo .. \$verb alias \$cf_alias\${suffix}
++ rm -f \$cf_alias\${suffix}
++ done
++ )
++ )
++ else
++# echo ".hy 0"
++ cat \$TMP
++ fi
++ ;;
++esac
++done
++
++if test $cf_inboth = yes ; then
++if test \$form != format ; then
++ sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
++fi
++fi
++
++exit 0
++CF_EOF
++chmod 755 $cf_edit_man
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MATH_LIB version: 5 updated: 2000/05/28 01:39:10
++dnl -----------
++dnl Checks for libraries. At least one UNIX system, Apple Macintosh
++dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
++dnl AC_CHECK_LIB(m,sin), because that fails for C++.
++AC_DEFUN([CF_MATH_LIB],
++[
++AC_CACHE_CHECK(if -lm needed for math functions,
++ cf_cv_need_libm,[
++ AC_TRY_LINK([
++ #include <stdio.h>
++ #include <math.h>
++ ],
++ [double x = rand(); printf("result = %g\n", ]ifelse($2,,sin(x),$2)[)],
++ [cf_cv_need_libm=no],
++ [cf_cv_need_libm=yes])])
++if test "$cf_cv_need_libm" = yes
++then
++ifelse($1,,[
++ LIBS="$LIBS -lm"
++],[$1=-lm])
++fi
++])
++dnl ---------------------------------------------------------------------------
++dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
++dnl ----------------------
++dnl Check if the file-system supports mixed-case filenames. If we're able to
++dnl create a lowercase name and see it as uppercase, it doesn't support that.
++AC_DEFUN([CF_MIXEDCASE_FILENAMES],
++[
++AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
++if test "$cross_compiling" = yes ; then
++ case $target_alias in #(vi
++ *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
++ cf_cv_mixedcase=no
++ ;;
++ *)
++ cf_cv_mixedcase=yes
++ ;;
++ esac
++else
++ rm -f conftest CONFTEST
++ echo test >conftest
++ if test -f CONFTEST ; then
++ cf_cv_mixedcase=no
++ else
++ cf_cv_mixedcase=yes
++ fi
++ rm -f conftest CONFTEST
++fi
++])
++test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_MKSTEMP version: 3 updated: 2001/11/08 20:59:59
++dnl ----------
++dnl Check for a working mkstemp. This creates two files, checks that they are
++dnl successfully created and distinct (AmigaOS apparently fails on the last).
++AC_DEFUN([CF_MKSTEMP],[
++AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
++rm -f conftest*
++AC_TRY_RUN([
++#include <sys/types.h>
++#include <stdlib.h>
++#include <stdio.h>
++#include <string.h>
++#include <sys/stat.h>
++int main()
++{
++ char *tmpl = "conftestXXXXXX";
++ char name[2][80];
++ int n;
++ int result = 0;
++ int fd;
++ struct stat sb;
++
++ umask(077);
++ for (n = 0; n < 2; ++n) {
++ strcpy(name[n], tmpl);
++ if ((fd = mkstemp(name[n])) >= 0) {
++ if (!strcmp(name[n], tmpl)
++ || stat(name[n], &sb) != 0
++ || (sb.st_mode & S_IFMT) != S_IFREG
++ || (sb.st_mode & 077) != 0) {
++ result = 1;
++ }
++ close(fd);
++ }
++ }
++ if (result == 0
++ && !strcmp(name[0], name[1]))
++ result = 1;
++ exit(result);
++}
++],[cf_cv_func_mkstemp=yes
++],[cf_cv_func_mkstemp=no
++],[AC_CHECK_FUNC(mkstemp)
++])
++])
++if test "$cf_cv_func_mkstemp" = yes ; then
++ AC_DEFINE(HAVE_MKSTEMP)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
++dnl ----------------
++dnl Check if the given variable is a number. If not, report an error.
++dnl $1 is the variable
++dnl $2 is the message
++AC_DEFUN([CF_NUMBER_SYNTAX],[
++if test -n "$1" ; then
++ case $1 in #(vi
++ [[0-9]]*) #(vi
++ ;;
++ *)
++ AC_MSG_ERROR($2 is not a number: $1)
++ ;;
++ esac
++else
++ AC_MSG_ERROR($2 value is empty)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
++dnl -------------
++dnl Compute the object-directory name from the given model name
++AC_DEFUN([CF_OBJ_SUBDIR],
++[
++ case $1 in
++ libtool) $2='obj_lo' ;;
++ normal) $2='objects' ;;
++ debug) $2='obj_g' ;;
++ profile) $2='obj_p' ;;
++ shared)
++ case $cf_cv_system_name in #(vi
++ cygwin) #(vi
++ $2='objects' ;;
++ *)
++ $2='obj_s' ;;
++ esac
++ esac
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_PATHSEP version: 3 updated: 2001/01/12 01:23:53
++dnl ----------
++dnl Provide a value for the $PATH and similar separator
++AC_DEFUN([CF_PATHSEP],
++[
++ case $cf_cv_system_name in
++ os2*) PATHSEP=';' ;;
++ *) PATHSEP=':' ;;
++ esac
++ifelse($1,,,[$1=$PATHSEP])
++ AC_SUBST(PATHSEP)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_PATH_SYNTAX version: 9 updated: 2002/09/17 23:03:38
++dnl --------------
++dnl Check the argument to see that it looks like a pathname. Rewrite it if it
++dnl begins with one of the prefix/exec_prefix variables, and then again if the
++dnl result begins with 'NONE'. This is necessary to work around autoconf's
++dnl delayed evaluation of those symbols.
++AC_DEFUN([CF_PATH_SYNTAX],[
++case ".[$]$1" in #(vi
++.\[$]\(*\)*|.\'*\'*) #(vi
++ ;;
++..|./*|.\\*) #(vi
++ ;;
++.[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
++ ;;
++.\[$]{*prefix}*) #(vi
++ eval $1="[$]$1"
++ case ".[$]$1" in #(vi
++ .NONE/*)
++ $1=`echo [$]$1 | sed -e s%NONE%$ac_default_prefix%`
++ ;;
++ esac
++ ;; #(vi
++.NONE/*)
++ $1=`echo [$]$1 | sed -e s%NONE%$ac_default_prefix%`
++ ;;
++*)
++ ifelse($2,,[AC_ERROR([expected a pathname, not \"[$]$1\"])],$2)
++ ;;
++esac
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
++dnl ------------
++dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
++dnl
++dnl $1 = symbol to test
++dnl $2 = value (if any) to use for a predefinition
++AC_DEFUN([CF_PREDEFINE],
++[
++AC_MSG_CHECKING(if we must define $1)
++AC_TRY_COMPILE([#include <sys/types.h>
++],[
++#ifndef $1
++make an error
++#endif],[cf_result=no],[cf_result=yes])
++AC_MSG_RESULT($cf_result)
++
++if test "$cf_result" = yes ; then
++ CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])"
++elif test "x$2" != "x" ; then
++ AC_MSG_CHECKING(checking for compatible value versus $2)
++ AC_TRY_COMPILE([#include <sys/types.h>
++],[
++#if $1-$2 < 0
++make an error
++#endif],[cf_result=yes],[cf_result=no])
++ AC_MSG_RESULT($cf_result)
++ if test "$cf_result" = no ; then
++ # perhaps we can override it - try...
++ CPPFLAGS="$CPPFLAGS -D$1=$2"
++ fi
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
++dnl -----------
++dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
++AC_DEFUN([CF_PROG_EXT],
++[
++AC_REQUIRE([CF_CHECK_CACHE])
++case $cf_cv_system_name in
++os2*)
++ CFLAGS="$CFLAGS -Zmt"
++ CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
++ CXXFLAGS="$CXXFLAGS -Zmt"
++ # autoconf's macro sets -Zexe and suffix both, which conflict:w
++ LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
++ ac_cv_exeext=.exe
++ ;;
++esac
++
++AC_EXEEXT
++AC_OBJEXT
++
++PROG_EXT="$EXEEXT"
++AC_SUBST(PROG_EXT)
++test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
++dnl ---------------
++dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
++dnl misc/tabset install won't work properly. Usually this happens only when
++dnl using the fallback mkinstalldirs script
++AC_DEFUN([CF_PROG_INSTALL],
++[AC_PROG_INSTALL
++case $INSTALL in
++/*)
++ ;;
++*)
++ CF_DIRNAME(cf_dir,$INSTALL)
++ test -z "$cf_dir" && cf_dir=.
++ INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
++ ;;
++esac
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_PROG_LDCONFIG version: 1 updated: 2003/09/20 17:07:55
++dnl ----------------
++dnl Check for ldconfig, needed to fixup shared libraries that would be built
++dnl and then used in the install.
++AC_DEFUN([CF_PROG_LDCONFIG],[
++if test "$cross_compiling" = yes ; then
++ LDCONFIG=:
++else
++case "$cf_cv_system_name" in #(vi
++freebsd*) #(vi
++ test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
++ ;;
++*) LDPATH=$PATH:/sbin:/usr/sbin
++ AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
++ ;;
++esac
++fi
++AC_SUBST(LDCONFIG)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_REGEX version: 3 updated: 1997/11/01 14:26:01
++dnl --------
++dnl Attempt to determine if we've got one of the flavors of regular-expression
++dnl code that we can support.
++AC_DEFUN([CF_REGEX],
++[
++AC_MSG_CHECKING([for regular-expression headers])
++AC_CACHE_VAL(cf_cv_regex,[
++AC_TRY_LINK([#include <sys/types.h>
++#include <regex.h>],[
++ regex_t *p;
++ int x = regcomp(p, "", 0);
++ int y = regexec(p, "", 0, 0, 0);
++ regfree(p);
++ ],[cf_cv_regex="regex.h"],[
++ AC_TRY_LINK([#include <regexp.h>],[
++ char *p = compile("", "", "", 0);
++ int x = step("", "");
++ ],[cf_cv_regex="regexp.h"],[
++ cf_save_LIBS="$LIBS"
++ LIBS="-lgen $LIBS"
++ AC_TRY_LINK([#include <regexpr.h>],[
++ char *p = compile("", "", "");
++ int x = step("", "");
++ ],[cf_cv_regex="regexpr.h"],[LIBS="$cf_save_LIBS"])])])
++])
++AC_MSG_RESULT($cf_cv_regex)
++case $cf_cv_regex in
++ regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;;
++ regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;;
++ regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
++esac
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_SHARED_OPTS version: 30 updated: 2003/12/27 20:48:07
++dnl --------------
++dnl Attempt to determine the appropriate CC/LD options for creating a shared
++dnl library.
++dnl
++dnl Note: $(LOCAL_LDFLAGS) is used to link executables that will run within the
++dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
++dnl We avoid compiling-in a ../lib path for the shared library since that can
++dnl lead to unexpected results at runtime.
++dnl $(LOCAL_LDFLAGS2) has the same intention but assumes that the shared libraries
++dnl are compiled in ../../lib
++dnl
++dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
++dnl to install symbolic links to the rel/abi versions of shared libraries.
++dnl
++dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
++dnl version when making symbolic links.
++dnl
++dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
++dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
++dnl (ex: libncurses.so.<ver>).
++dnl
++dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
++AC_DEFUN([CF_SHARED_OPTS],
++[
++ AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
++ LOCAL_LDFLAGS=
++ LOCAL_LDFLAGS2=
++ LD_SHARED_OPTS=
++ INSTALL_LIB="-m 644"
++
++ cf_cv_do_symlinks=no
++
++ AC_MSG_CHECKING(if release/abi version should be used for shared libs)
++ AC_ARG_WITH(shlib-version,
++ [ --with-shlib-version=X Specify rel or abi version for shared libs],
++ [test -z "$withval" && withval=auto
++ case $withval in #(vi
++ yes) #(vi
++ cf_cv_shlib_version=auto
++ ;;
++ rel|abi|auto|no) #(vi
++ cf_cv_shlib_version=$withval
++ ;;
++ *)
++ AC_ERROR([option value must be one of: rel, abi, auto or no])
++ ;;
++ esac
++ ],[cf_cv_shlib_version=auto])
++ AC_MSG_RESULT($cf_cv_shlib_version)
++
++ cf_cv_rm_so_locs=no
++
++ # Some less-capable ports of gcc support only -fpic
++ CC_SHARED_OPTS=
++ if test "$GCC" = yes
++ then
++ AC_MSG_CHECKING(which $CC option to use)
++ cf_save_CFLAGS="$CFLAGS"
++ for CC_SHARED_OPTS in -fPIC -fpic ''
++ do
++ CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
++ AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
++ done
++ AC_MSG_RESULT($CC_SHARED_OPTS)
++ CFLAGS="$cf_save_CFLAGS"
++ fi
++
++ cf_cv_shlib_version_infix=no
++
++ case $cf_cv_system_name in
++ beos*)
++ MK_SHARED_LIB='$(CC) -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
++ ;;
++ cygwin*)
++ CC_SHARED_OPTS=
++ MK_SHARED_LIB='$(CC) -shared -Wl,--out-implib=$(IMPORT_LIB) -Wl,--export-all-symbols -o $(SHARED_LIB)'
++ cf_cv_shlib_version=cygdll
++ cf_cv_shlib_version_infix=cygdll
++ ;;
++ darwin*)
++ EXTRA_CFLAGS="-no-cpp-precomp"
++ CC_SHARED_OPTS="-dynamic"
++ MK_SHARED_LIB='$(CC) -dynamiclib -install_name $(DESTDIR)$(libdir)/`basename $[@]` -compatibility_version $(ABI_VERSION) -current_version $(ABI_VERSION) -o $[@]'
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
++ cf_cv_shlib_version_infix=yes
++ ;;
++ hpux*)
++ # (tested with gcc 2.7.2 -- I don't have c89)
++ if test "$GCC" = yes; then
++ LD_SHARED_OPTS='-Xlinker +b -Xlinker $(libdir)'
++ else
++ CC_SHARED_OPTS='+Z'
++ LD_SHARED_OPTS='-Wl,+b,$(libdir)'
++ fi
++ MK_SHARED_LIB='$(LD) +b $(libdir) -b -o $[@]'
++ # HP-UX shared libraries must be executable, and should be
++ # readonly to exploit a quirk in the memory manager.
++ INSTALL_LIB="-m 555"
++ ;;
++ irix*)
++ if test "$cf_cv_ld_rpath" = yes ; then
++ cf_ld_rpath_opt="-Wl,-rpath,"
++ EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
++ fi
++ # tested with IRIX 5.2 and 'cc'.
++ if test "$GCC" != yes; then
++ CC_SHARED_OPTS='-KPIC'
++ fi
++ MK_SHARED_LIB='$(LD) -shared -rdata_shared -soname `basename $[@]` -o $[@]'
++ cf_cv_rm_so_locs=yes
++ ;;
++ linux*|gnu*|k*bsd*-gnu)
++ if test "$DFT_LWR_MODEL" = "shared" ; then
++ LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
++ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
++ fi
++ if test "$cf_cv_ld_rpath" = yes ; then
++ cf_ld_rpath_opt="-Wl,-rpath,"
++ EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
++ fi
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
++ MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $[@] .$(REL_VERSION)`.$(ABI_VERSION),-stats,-lc -o $[@]'
++ ;;
++ openbsd2*)
++ CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
++ MK_SHARED_LIB='$(LD) -Bshareable -soname,`basename $[@].$(ABI_VERSION)` -o $[@]'
++ ;;
++ freebsd[[45]]*)
++ CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
++ MK_SHARED_LIB='$(LD) -Bshareable -soname=`basename $[@]` -o $[@]'
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
++
++# This doesn't work - I keep getting spurious references to needing
++# libncurses.so.5.3 when ldd says it's resolved. LOCAL_LDFLAGS2 seems to be
++# no longer used anyway. And the rpath logic isn't relative - so I have to
++# add the local and install lib-directories:
++#
++# if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
++# LOCAL_LDFLAGS="-rpath `pwd`/lib"
++# LOCAL_LDFLAGS2="-rpath \$(libdir) $LOCAL_LDFLAGS"
++# cf_ld_rpath_opt="-rpath "
++# EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
++# fi
++ ;;
++ openbsd*|freebsd*)
++ CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
++ MK_SHARED_LIB='$(LD) -Bshareable -o $[@]'
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
++ ;;
++ netbsd*)
++ CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
++ test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
++ if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
++ LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
++ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
++ EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
++ MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]'
++ if test "$cf_cv_shlib_version" = auto; then
++ if test ! -f /usr/libexec/ld.elf_so; then
++ cf_cv_shlib_version=rel
++ fi
++ fi
++ else
++ MK_SHARED_LIB='$(LD) -Bshareable -o $[@]'
++ fi
++ ;;
++ osf*|mls+*)
++ # tested with OSF/1 V3.2 and 'cc'
++ # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
++ # link with shared libs).
++ MK_SHARED_LIB='$(LD) -set_version $(REL_VERSION):$(ABI_VERSION) -expect_unresolved "*" -shared -soname `basename $[@]`'
++ case $host_os in
++ osf4*)
++ MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
++ ;;
++ esac
++ MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
++ if test "$DFT_LWR_MODEL" = "shared" ; then
++ LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
++ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
++ fi
++ if test "$cf_cv_ld_rpath" = yes ; then
++ cf_ld_rpath_opt="-rpath"
++ # EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
++ fi
++ cf_cv_rm_so_locs=yes
++ ;;
++ sco3.2v5*) # (also uw2* and UW7) hops 13-Apr-98
++ # tested with osr5.0.5
++ if test "$GCC" != yes; then
++ CC_SHARED_OPTS='-belf -KPIC'
++ fi
++ MK_SHARED_LIB='$(LD) -dy -G -h `basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o [$]@'
++ if test "$cf_cv_ld_rpath" = yes ; then
++ # only way is to set LD_RUN_PATH but no switch for it
++ RUN_PATH=$libdir
++ fi
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
++ LINK_PROGS='LD_RUN_PATH=$(libdir)'
++ LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
++ ;;
++ sunos4*)
++ # tested with SunOS 4.1.1 and gcc 2.7.0
++ if test "$GCC" != yes; then
++ CC_SHARED_OPTS='-KPIC'
++ fi
++ MK_SHARED_LIB='$(LD) -assert pure-text -o $[@]'
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
++ ;;
++ solaris2*)
++ # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
++ if test "$GCC" != yes; then
++ CC_SHARED_OPTS='-KPIC'
++ fi
++ MK_SHARED_LIB='$(LD) -dy -G -h `basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]'
++ if test "$DFT_LWR_MODEL" = "shared" ; then
++ LOCAL_LDFLAGS="-R `pwd`/lib:\$(libdir)"
++ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
++ fi
++ if test "$cf_cv_ld_rpath" = yes ; then
++ cf_ld_rpath_opt="-R"
++ EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
++ fi
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
++ ;;
++ sysv5uw7*|unix_sv*)
++ # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
++ if test "$GCC" != yes; then
++ CC_SHARED_OPTS='-KPIC'
++ fi
++ MK_SHARED_LIB='$(LD) -d y -G -o [$]@'
++ ;;
++ *)
++ CC_SHARED_OPTS='unknown'
++ MK_SHARED_LIB='echo unknown'
++ ;;
++ esac
++
++ # This works if the last tokens in $MK_SHARED_LIB are the -o target.
++ case "$cf_cv_shlib_version" in #(vi
++ rel|abi)
++ case "$MK_SHARED_LIB" in #(vi
++ *'-o $[@]')
++ test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
++ ;;
++ *)
++ AC_MSG_WARN(ignored --with-shlib-version)
++ ;;
++ esac
++ ;;
++ esac
++
++ if test -n "$cf_ld_rpath_opt" ; then
++ AC_MSG_CHECKING(if we need a space after rpath option)
++ cf_save_LIBS="$LIBS"
++ LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
++ AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
++ LIBS="$cf_save_LIBS"
++ AC_MSG_RESULT($cf_rpath_space)
++ test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
++ MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\$(libdir)"
++ fi
++
++ AC_SUBST(CC_SHARED_OPTS)
++ AC_SUBST(LD_SHARED_OPTS)
++ AC_SUBST(MK_SHARED_LIB)
++ AC_SUBST(LINK_PROGS)
++ AC_SUBST(LINK_TESTS)
++ AC_SUBST(EXTRA_LDFLAGS)
++ AC_SUBST(LOCAL_LDFLAGS)
++ AC_SUBST(LOCAL_LDFLAGS2)
++ AC_SUBST(INSTALL_LIB)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
++dnl -------------
++dnl Check for definitions & structures needed for window size-changing
++dnl FIXME: check that this works with "snake" (HP-UX 10.x)
++AC_DEFUN([CF_SIZECHANGE],
++[
++AC_REQUIRE([CF_STRUCT_TERMIOS])
++AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
++ cf_cv_sizechange=unknown
++ cf_save_CPPFLAGS="$CPPFLAGS"
++
++for cf_opts in "" "NEED_PTEM_H"
++do
++
++ CPPFLAGS="$cf_save_CPPFLAGS"
++ test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
++ AC_TRY_COMPILE([#include <sys/types.h>
++#ifdef HAVE_TERMIOS_H
++#include <termios.h>
++#else
++#ifdef HAVE_TERMIO_H
++#include <termio.h>
++#endif
++#endif
++#ifdef NEED_PTEM_H
++/* This is a workaround for SCO: they neglected to define struct winsize in
++ * termios.h -- it's only in termio.h and ptem.h
++ */
++#include <sys/stream.h>
++#include <sys/ptem.h>
++#endif
++#if !defined(sun) || !defined(HAVE_TERMIOS_H)
++#include <sys/ioctl.h>
++#endif
++],[
++#ifdef TIOCGSIZE
++ struct ttysize win; /* FIXME: what system is this? */
++ int y = win.ts_lines;
++ int x = win.ts_cols;
++#else
++#ifdef TIOCGWINSZ
++ struct winsize win;
++ int y = win.ws_row;
++ int x = win.ws_col;
++#else
++ no TIOCGSIZE or TIOCGWINSZ
++#endif /* TIOCGWINSZ */
++#endif /* TIOCGSIZE */
++ ],
++ [cf_cv_sizechange=yes],
++ [cf_cv_sizechange=no])
++
++ CPPFLAGS="$cf_save_CPPFLAGS"
++ if test "$cf_cv_sizechange" = yes ; then
++ echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
++ test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
++ break
++ fi
++done
++])
++if test "$cf_cv_sizechange" != no ; then
++ AC_DEFINE(HAVE_SIZECHANGE)
++ case $cf_cv_sizechange in #(vi
++ NEED*)
++ AC_DEFINE_UNQUOTED($cf_cv_sizechange )
++ ;;
++ esac
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_SRC_MODULES version: 15 updated: 2004/01/10 16:05:16
++dnl --------------
++dnl For each parameter, test if the source-directory exists, and if it contains
++dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
++dnl use in CF_LIB_RULES.
++dnl
++dnl This uses the configured value to make the lists SRC_SUBDIRS and
++dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
++AC_DEFUN([CF_SRC_MODULES],
++[
++AC_MSG_CHECKING(for src modules)
++
++# dependencies and linker-arguments for test-programs
++TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
++if test "$DFT_LWR_MODEL" = "libtool"; then
++ TEST_ARGS="${TEST_DEPS}"
++else
++ TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
++fi
++
++# dependencies and linker-arguments for utility-programs
++test "$with_termlib" != yes && PROG_ARGS="$TEST_ARGS"
++
++cf_cv_src_modules=
++for cf_dir in $1
++do
++ if test -f $srcdir/$cf_dir/modules; then
++
++ # We may/may not have tack in the distribution, though the
++ # makefile is.
++ if test $cf_dir = tack ; then
++ if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
++ continue
++ fi
++ fi
++
++ if test -z "$cf_cv_src_modules"; then
++ cf_cv_src_modules=$cf_dir
++ else
++ cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
++ fi
++
++ # Make the ncurses_cfg.h file record the library interface files as
++ # well. These are header files that are the same name as their
++ # directory. Ncurses is the only library that does not follow
++ # that pattern.
++ if test $cf_dir = tack ; then
++ continue
++ elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
++ CF_UPPER(cf_have_include,$cf_dir)
++ AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
++ AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
++ TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
++ if test "$DFT_LWR_MODEL" = "libtool"; then
++ TEST_ARGS="${TEST_DEPS}"
++ else
++ TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
++ fi
++ fi
++ fi
++done
++AC_MSG_RESULT($cf_cv_src_modules)
++TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
++AC_SUBST(TEST_DEPS)
++AC_SUBST(TEST_ARGS)
++
++PROG_ARGS="-L${LIB_DIR} $PROG_ARGS"
++AC_SUBST(PROG_ARGS)
++
++SRC_SUBDIRS="man include"
++for cf_dir in $cf_cv_src_modules
++do
++ SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
++done
++SRC_SUBDIRS="$SRC_SUBDIRS test"
++test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
++test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
++
++ADA_SUBDIRS=
++if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
++ SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
++ ADA_SUBDIRS="gen src samples"
++fi
++
++SUB_MAKEFILES=
++for cf_dir in $SRC_SUBDIRS
++do
++ SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
++done
++
++if test -n "$ADA_SUBDIRS"; then
++ for cf_dir in $ADA_SUBDIRS
++ do
++ SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
++ done
++ AC_SUBST(ADA_SUBDIRS)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_STDCPP_LIBRARY version: 5 updated: 2000/08/12 23:18:52
++dnl -----------------
++dnl Check for -lstdc++, which is GNU's standard C++ library.
++AC_DEFUN([CF_STDCPP_LIBRARY],
++[
++if test -n "$GXX" ; then
++case $cf_cv_system_name in #(vi
++os2*) #(vi
++ cf_stdcpp_libname=stdcpp
++ ;;
++*)
++ cf_stdcpp_libname=stdc++
++ ;;
++esac
++AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
++ cf_save="$LIBS"
++ LIBS="$LIBS -l$cf_stdcpp_libname"
++AC_TRY_LINK([
++#include <strstream.h>],[
++char buf[80];
++strstreambuf foo(buf, sizeof(buf))
++],
++ [cf_cv_libstdcpp=yes],
++ [cf_cv_libstdcpp=no])
++ LIBS="$cf_save"
++])
++test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
++dnl --------------
++dnl Remove "-g" option from the compiler options
++AC_DEFUN([CF_STRIP_G_OPT],
++[$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52
++dnl -------------------
++dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
++dnl do this if we've found the sigaction function.
++dnl
++dnl If needed, define SVR4_ACTION.
++AC_DEFUN([CF_STRUCT_SIGACTION],[
++if test "$ac_cv_func_sigaction" = yes; then
++AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
++AC_TRY_COMPILE([
++#include <sys/types.h>
++#include <signal.h>],
++ [struct sigaction act],
++ [sigact_bad=no],
++ [
++AC_TRY_COMPILE([
++#define _POSIX_SOURCE
++#include <sys/types.h>
++#include <signal.h>],
++ [struct sigaction act],
++ [sigact_bad=yes
++ AC_DEFINE(SVR4_ACTION)],
++ [sigact_bad=unknown])])
++AC_MSG_RESULT($sigact_bad)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
++dnl -----------------
++dnl Some machines require _POSIX_SOURCE to completely define struct termios.
++dnl If so, define SVR4_TERMIO
++AC_DEFUN([CF_STRUCT_TERMIOS],[
++AC_CHECK_HEADERS( \
++termio.h \
++termios.h \
++unistd.h \
++)
++if test "$ISC" = yes ; then
++ AC_CHECK_HEADERS( sys/termio.h )
++fi
++if test "$ac_cv_header_termios_h" = yes ; then
++ case "$CFLAGS $CPPFLAGS" in
++ *-D_POSIX_SOURCE*)
++ termios_bad=dunno ;;
++ *) termios_bad=maybe ;;
++ esac
++ if test "$termios_bad" = maybe ; then
++ AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
++ AC_TRY_COMPILE([#include <termios.h>],
++ [struct termios foo; int x = foo.c_iflag],
++ termios_bad=no, [
++ AC_TRY_COMPILE([
++#define _POSIX_SOURCE
++#include <termios.h>],
++ [struct termios foo; int x = foo.c_iflag],
++ termios_bad=unknown,
++ termios_bad=yes AC_DEFINE(SVR4_TERMIO))
++ ])
++ AC_MSG_RESULT($termios_bad)
++ fi
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_SUBST version: 2 updated: 1997/09/06 23:41:28
++dnl --------
++dnl Shorthand macro for substituting things that the user may override
++dnl with an environment variable.
++dnl
++dnl $1 = long/descriptive name
++dnl $2 = environment variable
++dnl $3 = default value
++AC_DEFUN([CF_SUBST],
++[AC_CACHE_VAL(cf_cv_subst_$2,[
++AC_MSG_CHECKING(for $1 (symbol $2))
++test -z "[$]$2" && $2=$3
++AC_MSG_RESULT([$]$2)
++AC_SUBST($2)
++cf_cv_subst_$2=[$]$2])
++$2=${cf_cv_subst_$2}
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_SUBST_NCURSES_VERSION version: 7 updated: 2003/06/07 16:22:51
++dnl ------------------------
++dnl Get the version-number for use in shared-library naming, etc.
++AC_DEFUN([CF_SUBST_NCURSES_VERSION],
++[
++NCURSES_MAJOR="`egrep '^NCURSES_MAJOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
++NCURSES_MINOR="`egrep '^NCURSES_MINOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
++NCURSES_PATCH="`egrep '^NCURSES_PATCH[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
++cf_cv_abi_version=${NCURSES_MAJOR}
++cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
++dnl Show the computed version, for logging
++cf_cv_timestamp=`date`
++AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
++dnl We need these values in the generated headers
++AC_SUBST(NCURSES_MAJOR)
++AC_SUBST(NCURSES_MINOR)
++AC_SUBST(NCURSES_PATCH)
++dnl We need these values in the generated makefiles
++AC_SUBST(cf_cv_rel_version)
++AC_SUBST(cf_cv_abi_version)
++AC_SUBST(cf_cv_builtin_bool)
++AC_SUBST(cf_cv_header_stdbool_h)
++AC_SUBST(cf_cv_type_of_bool)dnl
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
++dnl ------------------
++dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
++dnl older SCO configurations.
++AC_DEFUN([CF_SYS_TIME_SELECT],
++[
++AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
++AC_CACHE_VAL(cf_cv_sys_time_select,[
++AC_TRY_COMPILE([
++#include <sys/types.h>
++#ifdef HAVE_SYS_TIME_H
++#include <sys/time.h>
++#endif
++#ifdef HAVE_SYS_SELECT_H
++#include <sys/select.h>
++#endif
++],[],[cf_cv_sys_time_select=yes],
++ [cf_cv_sys_time_select=no])
++ ])
++AC_MSG_RESULT($cf_cv_sys_time_select)
++test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_TYPEOF_CHTYPE version: 4 updated: 2000/10/04 09:18:40
++dnl ----------------
++dnl Determine the type we should use for chtype (and attr_t, which is treated
++dnl as the same thing). We want around 32 bits, so on most machines want a
++dnl long, but on newer 64-bit machines, probably want an int. If we're using
++dnl wide characters, we have to have a type compatible with that, as well.
++AC_DEFUN([CF_TYPEOF_CHTYPE],
++[
++AC_REQUIRE([CF_UNSIGNED_LITERALS])
++AC_MSG_CHECKING([for type of chtype])
++AC_CACHE_VAL(cf_cv_typeof_chtype,[
++ AC_TRY_RUN([
++#ifdef USE_WIDEC_SUPPORT
++#include <stddef.h> /* we want wchar_t */
++#define WANT_BITS 39
++#else
++#define WANT_BITS 31
++#endif
++#include <stdio.h>
++int main()
++{
++ FILE *fp = fopen("cf_test.out", "w");
++ if (fp != 0) {
++ char *result = "long";
++#ifdef USE_WIDEC_SUPPORT
++ /*
++ * If wchar_t is smaller than a long, it must be an int or a
++ * short. We prefer not to use a short anyway.
++ */
++ if (sizeof(unsigned long) > sizeof(wchar_t))
++ result = "int";
++#endif
++ if (sizeof(unsigned long) > sizeof(unsigned int)) {
++ int n;
++ unsigned int x;
++ for (n = 0; n < WANT_BITS; n++) {
++ unsigned int y = (x >> n);
++ if (y != 1 || x == 0) {
++ x = 0;
++ break;
++ }
++ }
++ /*
++ * If x is nonzero, an int is big enough for the bits
++ * that we want.
++ */
++ result = (x != 0) ? "int" : "long";
++ }
++ fputs(result, fp);
++ fclose(fp);
++ }
++ exit(0);
++}
++ ],
++ [cf_cv_typeof_chtype=`cat cf_test.out`],
++ [cf_cv_typeof_chtype=long],
++ [cf_cv_typeof_chtype=long])
++ rm -f cf_test.out
++ ])
++AC_MSG_RESULT($cf_cv_typeof_chtype)
++
++AC_SUBST(cf_cv_typeof_chtype)
++AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
++
++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"
++AC_SUBST(cf_cv_1UL)
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
++dnl -----------------
++dnl
++AC_DEFUN([CF_TYPE_SIGACTION],
++[
++AC_MSG_CHECKING([for type sigaction_t])
++AC_CACHE_VAL(cf_cv_type_sigaction,[
++ AC_TRY_COMPILE([
++#include <signal.h>],
++ [sigaction_t x],
++ [cf_cv_type_sigaction=yes],
++ [cf_cv_type_sigaction=no])])
++AC_MSG_RESULT($cf_cv_type_sigaction)
++test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
++dnl --------------------
++dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
++dnl won't, but they're still there.
++AC_DEFUN([CF_UNSIGNED_LITERALS],
++[
++AC_MSG_CHECKING([if unsigned literals are legal])
++AC_CACHE_VAL(cf_cv_unsigned_literals,[
++ AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
++ [cf_cv_unsigned_literals=yes],
++ [cf_cv_unsigned_literals=no])
++ ])
++AC_MSG_RESULT($cf_cv_unsigned_literals)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
++dnl --------
++dnl Make an uppercase version of a variable
++dnl $1=uppercase($2)
++AC_DEFUN([CF_UPPER],
++[
++$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_VERBOSE version: 2 updated: 1997/09/05 10:45:14
++dnl ----------
++dnl Use AC_VERBOSE w/o the warnings
++AC_DEFUN([CF_VERBOSE],
++[test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20
++dnl -------------
++dnl Check if type wide-character type $1 is declared, and if so, which header
++dnl file is needed. The second parameter is used to set a shell variable when
++dnl the type is not found. The first parameter sets a shell variable for the
++dnl opposite sense.
++AC_DEFUN([CF_WCHAR_TYPE],
++[
++# This is needed on Tru64 5.0 to declare $1
++AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
++AC_TRY_COMPILE([
++#include <stdlib.h>
++#include <stdarg.h>
++#include <stdio.h>
++#ifdef HAVE_LIBUTF8_H
++#include <libutf8.h>
++#endif],
++ [$1 state],
++ [cf_cv_$1=no],
++ [AC_TRY_COMPILE([
++#include <stdlib.h>
++#include <stdarg.h>
++#include <stdio.h>
++#include <wchar.h>
++#ifdef HAVE_LIBUTF8_H
++#include <libutf8.h>
++#endif],
++ [$1 value],
++ [cf_cv_$1=yes],
++ [cf_cv_$1=unknown])])])
++
++if test "$cf_cv_$1" = yes ; then
++ AC_DEFINE(NEED_WCHAR_H)
++ NEED_WCHAR_H=1
++fi
++
++ifelse($2,,,[
++# if we do not find $1 in either place, use substitution to provide a fallback.
++if test "$cf_cv_$1" = unknown ; then
++ $2=1
++fi
++])
++ifelse($3,,,[
++# if we find $1 in either place, use substitution to provide a fallback.
++if test "$cf_cv_$1" != unknown ; then
++ $3=1
++fi
++])
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
++dnl -------------------
++dnl Allow library's ABI to be overridden. Generally this happens when a
++dnl packager has incremented the ABI past that used in the original package,
++dnl and wishes to keep doing this.
++dnl
++dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
++dnl symbol.
++AC_DEFUN([CF_WITH_ABI_VERSION],[
++test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
++AC_ARG_WITH(abi-version,
++[ --with-abi-version=XXX override derived ABI version],
++[AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
++ cf_cv_abi_version=$withval])
++ CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
++ifelse($1,,,[
++$1_ABI=$cf_cv_abi_version
++])
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_DBMALLOC version: 2 updated: 2002/12/29 21:11:45
++dnl ----------------
++dnl Configure-option for dbmalloc
++AC_DEFUN([CF_WITH_DBMALLOC],[
++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
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_DMALLOC version: 2 updated: 2002/12/29 21:11:45
++dnl ---------------
++dnl Configure-option for dmalloc
++AC_DEFUN([CF_WITH_DMALLOC],[
++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
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_LIBTOOL version: 9 updated: 2004/01/16 14:55:37
++dnl ---------------
++dnl Provide a configure option to incorporate libtool. Define several useful
++dnl symbols for the makefile rules.
++dnl
++dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
++dnl macros from libtool.m4 which is in the aclocal directory of automake.
++dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
++dnl But that still does not work properly since the macro is expanded outside
++dnl the CF_WITH_LIBTOOL macro:
++dnl
++dnl #!/bin/sh
++dnl ACLOCAL=`aclocal --print-ac-dir`
++dnl if test -z "$ACLOCAL" ; then
++dnl echo cannot find aclocal directory
++dnl exit 1
++dnl elif test ! -f $ACLOCAL/libtool.m4 ; then
++dnl echo cannot find libtool.m4 file
++dnl exit 1
++dnl fi
++dnl
++dnl LOCAL=aclocal.m4
++dnl ORIG=aclocal.m4.orig
++dnl
++dnl trap "mv $ORIG $LOCAL" 0 1 2 5 15
++dnl rm -f $ORIG
++dnl mv $LOCAL $ORIG
++dnl
++dnl # sed the LIBTOOL= assignment to omit the current directory?
++dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
++dnl cat $ORIG >>$LOCAL
++dnl
++dnl autoconf-257 $*
++dnl
++AC_DEFUN([CF_WITH_LIBTOOL],
++[
++ifdef([AC_PROG_LIBTOOL],,[
++LIBTOOL=
++])
++# common library maintenance symbols that are convenient for libtool scripts:
++LIB_CREATE='$(AR) -cr'
++LIB_OBJECT='$(OBJECTS)'
++LIB_SUFFIX=.a
++LIB_PREP="$RANLIB"
++
++# symbols used to prop libtool up to enable it to determine what it should be
++# doing:
++LIB_CLEAN=
++LIB_COMPILE=
++LIB_LINK=
++LIB_INSTALL=
++LIB_UNINSTALL=
++
++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" != "no"; then
++ifdef([AC_PROG_LIBTOOL],[
++ # missing_content_AC_PROG_LIBTOOL{{
++ AC_PROG_LIBTOOL
++ # missing_content_AC_PROG_LIBTOOL}}
++],[
++ if test "$with_libtool" != "yes" ; then
++ CF_PATH_SYNTAX(with_libtool)
++ LIBTOOL=$with_libtool
++ else
++ AC_PATH_PROG(LIBTOOL,libtool)
++ fi
++ if test -z "$LIBTOOL" ; then
++ AC_MSG_ERROR(Cannot find libtool)
++ fi
++])dnl
++ LIB_CREATE='$(LIBTOOL) --mode=link $(CC) -rpath $(DESTDIR)$(libdir) -version-info `cut -f1 $(srcdir)/VERSION` -o'
++ LIB_OBJECT='$(OBJECTS:.o=.lo)'
++ LIB_SUFFIX=.la
++ LIB_CLEAN='$(LIBTOOL) --mode=clean'
++ LIB_COMPILE='$(LIBTOOL) --mode=compile'
++ LIB_LINK='$(LIBTOOL) --mode=link'
++ LIB_INSTALL='$(LIBTOOL) --mode=install'
++ LIB_UNINSTALL='$(LIBTOOL) --mode=uninstall'
++ LIB_PREP=:
++
++ # Show the version of libtool
++ AC_MSG_CHECKING(version of libtool)
++
++ # Save the version in a cache variable - this is not entirely a good
++ # thing, but the version string from libtool is very ugly, and for
++ # bug reports it might be useful to have the original string.
++ cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
++ AC_MSG_RESULT($cf_cv_libtool_version)
++ if test -z "$cf_cv_libtool_version" ; then
++ AC_MSG_ERROR(This is not libtool)
++ fi
++
++ # special hack to add --tag option for C++ compiler
++ case $cf_cv_libtool_version in
++ 1.[[5-9]]*|[[2-9]]*)
++ LIBTOOL_CXX="$LIBTOOL --tag=CXX"
++ ;;
++ *)
++ LIBTOOL_CXX="$LIBTOOL"
++ ;;
++ esac
++else
++ LIBTOOL=""
++ LIBTOOL_CXX=""
++fi
++
++test -z "$LIBTOOL" && ECHO_LT=
++
++AC_SUBST(LIBTOOL)
++AC_SUBST(LIBTOOL_CXX)
++
++AC_SUBST(LIB_CREATE)
++AC_SUBST(LIB_OBJECT)
++AC_SUBST(LIB_SUFFIX)
++AC_SUBST(LIB_PREP)
++
++AC_SUBST(LIB_CLEAN)
++AC_SUBST(LIB_COMPILE)
++AC_SUBST(LIB_LINK)
++AC_SUBST(LIB_INSTALL)
++AC_SUBST(LIB_UNINSTALL)
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_PATH version: 6 updated: 1998/10/11 00:40:17
++dnl ------------
++dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
++dnl defaulting to yes/no.
++dnl
++dnl $1 = option name
++dnl $2 = help-text
++dnl $3 = environment variable to set
++dnl $4 = default value, shown in the help-message, must be a constant
++dnl $5 = default value, if it's an expression & cannot be in the help-message
++dnl
++AC_DEFUN([CF_WITH_PATH],
++[AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
++ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
++CF_PATH_SYNTAX(withval)
++eval $3="$withval"
++AC_SUBST($3)dnl
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_PATHLIST version: 5 updated: 2001/12/10 01:28:30
++dnl ----------------
++dnl Process an option specifying a list of colon-separated paths.
++dnl
++dnl $1 = option name
++dnl $2 = help-text
++dnl $3 = environment variable to set
++dnl $4 = default value, shown in the help-message, must be a constant
++dnl $5 = default value, if it's an expression & cannot be in the help-message
++dnl $6 = flag to tell if we want to define or substitute
++dnl
++AC_DEFUN([CF_WITH_PATHLIST],[
++AC_REQUIRE([CF_PATHSEP])
++AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
++ifelse($4,,[withval=${$3}],[withval=${$3-ifelse($5,,$4,$5)}]))dnl
++
++IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${PATHSEP}"
++cf_dst_path=
++for cf_src_path in $withval
++do
++ CF_PATH_SYNTAX(cf_src_path)
++ test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
++ cf_dst_path="${cf_dst_path}${cf_src_path}"
++done
++IFS="$ac_save_ifs"
++
++ifelse($6,define,[
++# Strip single quotes from the value, e.g., when it was supplied as a literal
++# for $4 or $5.
++case $cf_dst_path in #(vi
++\'*)
++ cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
++ ;;
++esac
++cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
++])
++
++eval '$3="$cf_dst_path"'
++AC_SUBST($3)dnl
++
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
++dnl -------------------
++dnl Allow library's release-version to be overridden. Generally this happens when a
++dnl packager has incremented the release-version past that used in the original package,
++dnl and wishes to keep doing this.
++dnl
++dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
++dnl and {package}_MINOR symbols
++dnl symbol.
++AC_DEFUN([CF_WITH_REL_VERSION],[
++test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
++AC_ARG_WITH(rel-version,
++[ --with-rel-version=XXX override derived release version],
++[AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
++ cf_cv_rel_version=$withval])
++ifelse($1,,[
++ CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
++],[
++ $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
++ $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
++ CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
++ CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
++])
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
++dnl ----------------
++dnl If we can compile with sysmouse, make it available unless it is not wanted.
++AC_DEFUN([CF_WITH_SYSMOUSE],[
++# not everyone has "test -c"
++if test -c /dev/sysmouse 2>/dev/null ; then
++AC_MSG_CHECKING(if you want to use sysmouse)
++AC_ARG_WITH(sysmouse,
++ [ --with-sysmouse use sysmouse (FreeBSD console)],
++ [cf_with_sysmouse=$withval],
++ [cf_with_sysmouse=maybe])
++ if test "$cf_with_sysmouse" != no ; then
++ AC_TRY_COMPILE([
++#include <osreldate.h>
++#if (__FreeBSD_version >= 400017)
++#include <sys/consio.h>
++#include <sys/fbio.h>
++#else
++#include <machine/console.h>
++#endif
++],[
++ struct mouse_info the_mouse;
++ ioctl(0, CONS_MOUSECTL, &the_mouse);
++],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
++ fi
++AC_MSG_RESULT($cf_with_sysmouse)
++test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_XOPEN_SOURCE version: 11 updated: 2004/01/26 20:58:41
++dnl ---------------
++dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
++dnl or adapt to the vendor's definitions to get equivalent functionality.
++AC_DEFUN([CF_XOPEN_SOURCE],[
++case $host_os in #(vi
++freebsd*) #(vi
++ CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600"
++ ;;
++hpux*) #(vi
++ CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
++ ;;
++irix6.*) #(vi
++ CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
++ ;;
++linux*) #(vi
++ CF_GNU_SOURCE
++ ;;
++mirbsd*) #(vi
++ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
++ ;;
++netbsd*) #(vi
++ # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
++ ;;
++openbsd*) #(vi
++ # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
++ ;;
++osf[[45]]*) #(vi
++ CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
++ ;;
++sco*) #(vi
++ # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
++ ;;
++solaris*) #(vi
++ CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
++ ;;
++*)
++ AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
++ AC_TRY_COMPILE([#include <sys/types.h>],[
++#ifndef _XOPEN_SOURCE
++make an error
++#endif],
++ [cf_cv_xopen_source=no],
++ [cf_save="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
++ AC_TRY_COMPILE([#include <sys/types.h>],[
++#ifdef _XOPEN_SOURCE
++make an error
++#endif],
++ [cf_cv_xopen_source=no],
++ [cf_cv_xopen_source=yes])
++ CPPFLAGS="$cf_save"
++ ])
++])
++test "$cf_cv_xopen_source" = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
++
++ # FreeBSD 5.x headers demand this...
++ AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_xopen_source,[
++ AC_TRY_COMPILE([#include <sys/types.h>],[
++#ifndef _POSIX_C_SOURCE
++make an error
++#endif],
++ [cf_cv_xopen_source=no],
++ [cf_save="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE"
++ AC_TRY_COMPILE([#include <sys/types.h>],[
++#ifdef _POSIX_C_SOURCE
++make an error
++#endif],
++ [cf_cv_xopen_source=no],
++ [cf_cv_xopen_source=yes])
++ CPPFLAGS="$cf_save"
++ ])
++])
++test "$cf_cv_xopen_source" = yes && CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE"
++ ;;
++esac
++])
+--- /dev/null
++++ ncurses-5.4/m4/templates.m4
+@@ -0,0 +1,78 @@
++AH_TEMPLATE([BROKEN_LINKER], [too lazy to enter descriptions])
++AH_TEMPLATE([BSD_TPUTS], [too lazy to enter descriptions])
++AH_TEMPLATE([CC_HAS_INLINE_FUNCS], [too lazy to enter descriptions])
++AH_TEMPLATE([CC_HAS_PROTOS], [too lazy to enter descriptions])
++AH_TEMPLATE([CPP_HAS_PARAM_INIT], [too lazy to enter descriptions])
++AH_TEMPLATE([CPP_HAS_VSCAN_FUNC], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_BIG_CORE], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_BSD_CGETENT], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_BUILTIN_H], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_CURSES_VERSION], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_GETTIMEOFDAY], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_GPP_BUILTIN_H], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_GXX_BUILTIN_H], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_HAS_KEY], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_ISASCII], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_LIBGPM], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_LIBUTF8_H], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_MKSTEMP], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_NC_ALLOC_H], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_REGEXPR_H_FUNCS], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_REGEXP_H_FUNCS], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_REGEX_H_FUNCS], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_RESIZETERM], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_RESIZE_TERM], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_SIZECHANGE], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_SLK_COLOR], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_SYS_TIME_SELECT], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_TCGETATTR], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_TYPE_SIGACTION], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_USE_DEFAULT_COLORS], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_VFSCANF], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_VSSCANF], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_WORKING_POLL], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE_WRESIZE], [too lazy to enter descriptions])
++AH_TEMPLATE([HAVE__DOSCAN], [too lazy to enter descriptions])
++AH_TEMPLATE([MIXEDCASE_FILENAMES], [too lazy to enter descriptions])
++AH_TEMPLATE([NCURSES_EXPANDED], [too lazy to enter descriptions])
++AH_TEMPLATE([NCURSES_EXT_FUNCS], [too lazy to enter descriptions])
++AH_TEMPLATE([NCURSES_NOMACROS], [too lazy to enter descriptions])
++AH_TEMPLATE([NCURSES_NO_PADDING], [too lazy to enter descriptions])
++AH_TEMPLATE([NCURSES_PATHSEP], [too lazy to enter descriptions])
++AH_TEMPLATE([NCURSES_VERSION_STRING], [too lazy to enter descriptions])
++AH_TEMPLATE([NDEBUG], [too lazy to enter descriptions])
++AH_TEMPLATE([NEED_WCHAR_H], [too lazy to enter descriptions])
++AH_TEMPLATE([NO_LEAKS], [too lazy to enter descriptions])
++AH_TEMPLATE([PROG_EXT], [too lazy to enter descriptions])
++AH_TEMPLATE([PURE_TERMINFO], [too lazy to enter descriptions])
++AH_TEMPLATE([SVR4_ACTION], [too lazy to enter descriptions])
++AH_TEMPLATE([SVR4_TERMIO], [too lazy to enter descriptions])
++AH_TEMPLATE([SYSTEM_NAME], [too lazy to enter descriptions])
++AH_TEMPLATE([TERMINFO], [too lazy to enter descriptions])
++AH_TEMPLATE([TERMINFO_DIRS], [too lazy to enter descriptions])
++AH_TEMPLATE([TERMPATH], [too lazy to enter descriptions])
++AH_TEMPLATE([TYPEOF_CHTYPE], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_ASSUMED_COLOR], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_COLORFGBG], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_DATABASE], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_GETCAP], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_GETCAP_CACHE], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_HARD_TABS], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_HASHMAP], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_HOME_TERMINFO], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_LINKS], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_MY_MEMMOVE], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_OK_BCOPY], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_RCS_IDS], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_ROOT_ENVIRON], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_SAFE_SPRINTF], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_SCROLL_HINTS], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_SIGWINCH], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_STDIO_VSCAN], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_STRSTREAM_VSCAN], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_STRSTREAM_VSCAN_CAST], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_SYMLINKS], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_SYSMOUSE], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_TERMCAP], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_WIDEC_SUPPORT], [too lazy to enter descriptions])
++AH_TEMPLATE([USE_XMC_SUPPORT], [too lazy to enter descriptions])
diff --git a/meta/recipes-core/ncurses/ncurses_5.4.bb b/meta/recipes-core/ncurses/ncurses_5.4.bb
new file mode 100644
index 0000000000..e69c1c0673
--- /dev/null
+++ b/meta/recipes-core/ncurses/ncurses_5.4.bb
@@ -0,0 +1,8 @@
+PR = "r14"
+
+SRC_URI = "${GNU_MIRROR}/ncurses/ncurses-${PV}.tar.gz \
+ file://makefile_tweak.patch;patch=1 \
+ file://visibility.patch;patch=1"
+S = "${WORKDIR}/ncurses-${PV}"
+
+require ncurses.inc