diff --git a/contrib/ncurses/COPYING b/contrib/ncurses/COPYING new file mode 100644 index 000000000000..6e3b39483181 --- /dev/null +++ b/contrib/ncurses/COPYING @@ -0,0 +1,28 @@ +Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, distribute with modifications, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name(s) of the above copyright +holders shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Software without prior written +authorization. + +-- vile:txtmode fc=72 +-- $Id: COPYING,v 1.2 2014/01/18 23:59:29 tom Exp $ diff --git a/contrib/ncurses/INSTALL b/contrib/ncurses/INSTALL index eb26ab103ef8..9b0ac23d88b1 100644 --- a/contrib/ncurses/INSTALL +++ b/contrib/ncurses/INSTALL @@ -1,5 +1,5 @@ ------------------------------------------------------------------------------- --- Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. -- +-- Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. -- -- -- -- Permission is hereby granted, free of charge, to any person obtaining a -- -- copy of this software and associated documentation files (the -- @@ -25,7 +25,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: INSTALL,v 1.155 2011/03/31 08:27:24 tom Exp $ +-- $Id: INSTALL,v 1.168 2013/08/03 23:15:23 tom Exp $ --------------------------------------------------------------------- How to install Ncurses/Terminfo on your system --------------------------------------------------------------------- @@ -315,6 +315,10 @@ SUMMARY OF CONFIGURE OPTIONS: programs are useful in this configuration, e.g., reset and tput versus infocmp and tic. + --disable-db-install + Do not install the terminal database. This is used to omit features + for packages, as done with --without-progs. + --disable-ext-funcs Disable function-extensions. Configure ncurses without the functions that are not specified by XSI. See ncurses/modules for the exact @@ -407,13 +411,14 @@ SUMMARY OF CONFIGURE OPTIONS: --disable-tic-depends When building shared libraries, normally the tic library is linked to - depend upon the ncurses library (and in turn, on the term-library if - the --with-termlib option was given). The tic- and term-libraries - ABI does not depend on the --enable-widec option. Some packagers have - used this to reduce the number of library files which are packaged - by using only one copy of those libraries. To make this work properly, + depend upon the ncurses library (or equivalently, on the tinfo-library + if the --with-termlib option was given). The tic- and tinfo-library + ABIs do not depend on the --enable-widec option. Some packagers have + used this to reduce the number of library files which are packaged by + using only one copy of those libraries. To make this work properly, the tic library must be built without an explicit dependency on the - ncurses (or ncursesw) library. Use this configure option to do that. + underlying library (ncurses vs ncursesw, tinfo vs tinfow). Use this + configure option to do that. For example configure --with-ticlib --with-shared --disable-tic-depends @@ -555,6 +560,9 @@ SUMMARY OF CONFIGURE OPTIONS: library by reducing global and static variables. This option is also set if --with-pthread is used. + Enabling this option adds a "t" to the library names, except for the + special case when --enable-weak-symbols is also used. + --enable-rpath Use rpath option when generating shared libraries, and (with some restrictions) when linking the corresponding programs. This originally @@ -595,6 +603,14 @@ SUMMARY OF CONFIGURE OPTIONS: reducing the need for juggling the global SP value with set_term() and delscreen(). + --enable-string-hacks + Controls whether strlcat and strlcpy may be used. The same issue + applies to OpenBSD's warnings about snprintf, noting that this function + is weakly standardized. + + Aside from stifling these warnings, there is no functional improvement + in ncurses. + --enable-symlinks If your system supports symbolic links, make tic use symbolic links rather than hard links to save diskspace when writing aliases in the @@ -616,6 +632,12 @@ SUMMARY OF CONFIGURE OPTIONS: match is found in the terminfo database. See also the --enable-getcap and --enable-getcap-cache options. + Termcap support requires run-time parsing rather than loading + predigested data. If you have specified --with-ticlib, then you + cannot have termcap support since run-time parsing is done in the + tic library, which is intentionally not part of normal linkage + dependencies. + --enable-warnings Turn on GCC compiler warnings. There should be only a few. @@ -740,6 +762,12 @@ SUMMARY OF CONFIGURE OPTIONS: executables, e.g., by setting "--with-chtype=long" (the configure script supplies "unsigned"). + --with-cxx-shared + When --with-shared is set, build libncurses++ as a shared library. + This implicitly relies upon building with gcc/g++, since other + compiler suites may have differences in the way shared libraries are + built. libtool by the way has similar limitations. + --with-database=XXX Specify the terminfo source file to install. Usually you will wish to install ncurses' default (misc/terminfo.src). Certain systems @@ -824,7 +852,17 @@ SUMMARY OF CONFIGURE OPTIONS: NOTE: a few systems build shared libraries with fixed pathnames; this option probably will not work for those configurations. - --with-libtool[=XXX] + --with-lib-prefix=XXX + OS/2 EMX used a different naming convention from most Unix-like + platforms. It required that the "lib" part of a library name was + omitted. Newer EMX as part of eComStation does not follow that + convention. Use this option to override the configure script's + assumptions about the library-prefix. If this option is omitted, it + uses the original OS/2 EMX convention for that platform. Use + "--with-lib-prefix=lib" for the newer EMX in eComStation. Use + "--without-lib-prefix" to suppress it for other odd platforms. + + --with-libtool[=XXX] Generate libraries with libtool. If this option is selected, then it overrides all other library model specifications. Note that libtool must already be installed, uses makefile rules dependent on GNU make, @@ -904,6 +942,10 @@ SUMMARY OF CONFIGURE OPTIONS: --with-pkg-config=[DIR] Check for pkg-config, optionally specifying its path. + --with-pkg-config-libdir=[DIR] + If pkg-config was found, override the automatic check for its library + path. + --with-profile Generate profile-libraries These are named by adding "_p" to the root, e.g., libncurses_p.a @@ -996,10 +1038,27 @@ SUMMARY OF CONFIGURE OPTIONS: library dependencies for tic and other programs built with the tic library. + --with-tparm-arg[=XXX] + Override the type used for tparm() arguments, which normally is a + "long". However the function must assume that its arguments can hold a + pointer to char's which is not always workable for 64-bit platforms. A + better choice would be intptr_t, which was not available at the time + tparm's interface was defined. + + If the option is not given, this defaults to "long". + --with-trace Configure the trace() function as part of the all models of the ncurses library. Normally it is part of the debug (libncurses_g) library only. + --with-xterm-kbs=XXX + Configure xterm's terminfo entries to use either BS (^H, i.e., ASCII + backspace) or DEL (^?, or 127). XXX can be BS (or bs, 8) or DEL + (or del, 127). + + During installation, the makefile and scripts modifies the "xterm+kbs" + terminfo entry to use this setting. + --with-valgrind For testing, compile with debug option. This also sets the --disable-leaks option. @@ -1024,6 +1083,8 @@ SUMMARY OF CONFIGURE OPTIONS: install as "ncurses.h" and modify the installed headers and manpages accordingly. + Likewise, do not install an alias "curses" for the ncurses manpage. + --without-cxx XSI curses declares "bool" as part of the interface. C++ also declares "bool". Neither specifies the size and type of booleans, but both @@ -1726,20 +1787,37 @@ CONFIGURING FALLBACK ENTRIES: By default, there are no entries on the fallback list. After you have built the ncurses suite for the first time, you can change the list (the process needs infocmp(1)). To do so, use the script - ncurses/tinfo/MKfallback.sh. A configure script option + ncurses/tinfo/MKfallback.sh. The configure script option --with-fallbacks does this (it accepts a comma-separated list of the names you wish, and does not require a rebuild). If you wanted (say) to have linux, vt100, and xterm fallbacks, you - would use the commands + might use the commands cd ncurses; - tinfo/MKfallback.sh linux vt100 xterm >fallback.c + tinfo/MKfallback.sh \ + $TERMINFO \ + ../misc/terminfo.src \ + `which tic` \ + linux vt100 xterm >fallback.c + + The first three parameters of the script are normally supplied by + the configured makefiles via the "--with-fallbacks" option. They + are + + 1) the location of the terminfo database + 2) the source for the terminfo entries + 3) the location of the tic program, used to create a terminfo + database. Then just rebuild and reinstall the library as you would normally. You can restore the default empty fallback list with - tinfo/MKfallback.sh >fallback.c + tinfo/MKfallback.sh \ + $TERMINFO \ + ../misc/terminfo.src \ + `which tic` \ + >fallback.c The overhead for an empty fallback list is one trivial stub function. Any non-empty fallback list is const-ed and therefore lives in sharable diff --git a/contrib/ncurses/MANIFEST b/contrib/ncurses/MANIFEST index 421cc678cd6b..e35f9854ccc9 100644 --- a/contrib/ncurses/MANIFEST +++ b/contrib/ncurses/MANIFEST @@ -190,6 +190,7 @@ ./Ada95/src/terminal_interface-curses-text_io.ads ./Ada95/src/terminal_interface-curses-trace.adb_p ./Ada95/src/terminal_interface.ads +./COPYING ./INSTALL ./MANIFEST ./Makefile.in @@ -545,6 +546,8 @@ ./include/nc_alloc.h ./include/nc_mingw.h ./include/nc_panel.h +./include/nc_string.h +./include/nc_termios.h ./include/nc_tparm.h ./include/ncurses_cfg.hin ./include/ncurses_defs @@ -656,6 +659,8 @@ ./man/legacy_coding.3x ./man/make_sed.sh ./man/man_db.renames +./man/manhtml.aliases +./man/manhtml.externs ./man/manlinks.sed ./man/menu.3x ./man/menu_attributes.3x @@ -764,7 +769,6 @@ ./mk-0th.awk ./mk-1st.awk ./mk-2nd.awk -./mk-dlls.sh.in ./mk-hdr.awk ./ncurses/Makefile.in ./ncurses/README @@ -850,7 +854,6 @@ ./ncurses/base/lib_wattron.c ./ncurses/base/lib_winch.c ./ncurses/base/lib_window.c -./ncurses/base/memmove.c ./ncurses/base/nc_panel.c ./ncurses/base/resizeterm.c ./ncurses/base/safe_sprintf.c @@ -867,6 +870,14 @@ ./ncurses/llib-lncursest ./ncurses/llib-lncursestw ./ncurses/llib-lncursesw +./ncurses/llib-ltic +./ncurses/llib-ltict +./ncurses/llib-ltictw +./ncurses/llib-lticw +./ncurses/llib-ltinfo +./ncurses/llib-ltinfot +./ncurses/llib-ltinfotw +./ncurses/llib-ltinfow ./ncurses/modules ./ncurses/tinfo/MKcaptab.awk ./ncurses/tinfo/MKcaptab.sh @@ -915,10 +926,10 @@ ./ncurses/tinfo/make_hash.c ./ncurses/tinfo/make_keys.c ./ncurses/tinfo/name_match.c +./ncurses/tinfo/obsolete.c ./ncurses/tinfo/parse_entry.c ./ncurses/tinfo/read_entry.c ./ncurses/tinfo/read_termcap.c -./ncurses/tinfo/setbuf.c ./ncurses/tinfo/strings.c ./ncurses/tinfo/tinfo_driver.c ./ncurses/tinfo/trim_sgr0.c @@ -943,8 +954,6 @@ ./ncurses/tty/lib_tstp.c ./ncurses/tty/lib_twait.c ./ncurses/tty/lib_vidattr.c -./ncurses/tty/tty_display.h -./ncurses/tty/tty_input.h ./ncurses/tty/tty_update.c ./ncurses/wcwidth.h ./ncurses/widechar/charable.c @@ -967,9 +976,34 @@ ./ncurses/widechar/lib_vline_set.c ./ncurses/widechar/lib_wacs.c ./ncurses/widechar/lib_wunctrl.c +./ncurses/widechar/widechars.c ./ncurses/win32con/gettimeofday.c ./ncurses/win32con/wcwidth.c ./ncurses/win32con/win_driver.c +./package/debian-mingw/changelog +./package/debian-mingw/compat +./package/debian-mingw/control +./package/debian-mingw/copyright +./package/debian-mingw/rules +./package/debian-mingw/source/format +./package/debian-mingw/watch +./package/debian-mingw64/changelog +./package/debian-mingw64/compat +./package/debian-mingw64/control +./package/debian-mingw64/copyright +./package/debian-mingw64/rules +./package/debian-mingw64/source/format +./package/debian-mingw64/watch +./package/debian/changelog +./package/debian/compat +./package/debian/control +./package/debian/copyright +./package/debian/rules +./package/debian/source/format +./package/debian/watch +./package/mingw-ncurses.nsi +./package/mingw-ncurses.spec +./package/ncurses.spec ./panel/Makefile.in ./panel/headers ./panel/llib-lpanel @@ -1022,12 +1056,14 @@ ./test/cardfile.dat ./test/chgat.c ./test/clip_printw.c +./test/color_name.h ./test/color_set.c ./test/configure ./test/configure.in ./test/demo_altkeys.c ./test/demo_defkey.c ./test/demo_forms.c +./test/demo_forms.txt ./test/demo_keyok.c ./test/demo_menus.c ./test/demo_panels.c @@ -1036,6 +1072,7 @@ ./test/ditto.c ./test/dots.c ./test/dots_mvcur.c +./test/dots_termcap.c ./test/echochar.c ./test/edit_field.c ./test/edit_field.h @@ -1043,6 +1080,7 @@ ./test/firework.c ./test/firstlast.c ./test/foldkeys.c +./test/form_driver_w.c ./test/gdc.6 ./test/gdc.c ./test/hanoi.c @@ -1073,6 +1111,7 @@ ./test/package/debian/rules ./test/package/debian/source/format ./test/package/debian/watch +./test/package/mingw-ncurses-examples.spec ./test/package/ncurses-examples.spec ./test/programs ./test/railroad.c @@ -1092,12 +1131,15 @@ ./test/test_instr.c ./test/test_inwstr.c ./test/test_opaque.c +./test/test_vid_puts.c +./test/test_vidputs.c ./test/testaddch.c ./test/testcurs.c ./test/testscanw.c ./test/tracemunch ./test/view.c ./test/widechars-utf8.txt +./test/widechars.h ./test/worm.c ./test/xmas.c ./test/xterm-16color.dat diff --git a/contrib/ncurses/Makefile.in b/contrib/ncurses/Makefile.in index d891e002fd83..803746c2b6a7 100644 --- a/contrib/ncurses/Makefile.in +++ b/contrib/ncurses/Makefile.in @@ -1,6 +1,6 @@ -# $Id: Makefile.in,v 1.30 2010/11/27 21:45:27 tom Exp $ +# $Id: Makefile.in,v 1.38 2014/01/18 20:19:45 tom Exp $ ############################################################################## -# Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. # +# Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. # # # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # @@ -27,7 +27,7 @@ # authorization. # ############################################################################## # -# Author: Thomas E. Dickey 1996,1997 +# Author: Thomas E. Dickey 1996-on # # Master Makefile for ncurses library. @@ -35,7 +35,8 @@ SHELL = /bin/sh VPATH = @srcdir@ DESTDIR=@DESTDIR@ -CF_MFLAGS = @cf_cv_makeflags@ DESTDIR="$(DESTDIR)" +RPATH_LIST=@RPATH_LIST@ +TOP_MFLAGS = @cf_cv_makeflags@ DESTDIR="$(DESTDIR)" RPATH_LIST="$(RPATH_LIST)" @SET_MAKE@ @@ -48,13 +49,17 @@ srcdir = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ bindir = @bindir@ ticdir = @TERMINFO@ includedir = @includedir@ +includesubdir = @includesubdir@ libdir = @libdir@ mandir = @mandir@ +include_dir = ${includedir}${includesubdir} + INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ @@ -74,25 +79,22 @@ preinstall : @ echo '' @ echo ' bin directory: '$(bindir) @ echo ' lib directory: '$(libdir) - @ echo ' include directory: '$(includedir) + @ echo ' include directory: '$(include_dir) @ echo ' man directory: '$(mandir) @MAKE_TERMINFO@ @ echo ' terminfo directory: '$(ticdir) @ echo '' - @ test "$(includedir)" = "$(prefix)/include" || \ + @ test "$(include_dir)" = "$(prefix)/include" || \ echo '** Include-directory is not in a standard location' - @ test ! -f $(includedir)/termcap.h || \ - fgrep NCURSES_VERSION $(includedir)/termcap.h >/dev/null || \ + @ test ! -f $(include_dir)/termcap.h || \ + fgrep NCURSES_VERSION $(include_dir)/termcap.h >/dev/null || \ echo '** Will overwrite non-ncurses termcap.h' - @ test ! -f $(includedir)/curses.h || \ - fgrep NCURSES_VERSION $(includedir)/curses.h >/dev/null || \ + @ test ! -f $(include_dir)/curses.h || \ + fgrep NCURSES_VERSION $(include_dir)/curses.h >/dev/null || \ echo '** Will overwrite non-ncurses curses.h' -dlls: libs - $(SHELL) $(srcdir)/mk-dlls.sh - distclean \ realclean :: - -rm -f mk-dlls.sh mingw_arch + # Put the common rules here so that we can easily construct the list of # directories to visit. diff --git a/contrib/ncurses/NEWS b/contrib/ncurses/NEWS index e8f9cefbabdd..e7cbd9bf1c56 100644 --- a/contrib/ncurses/NEWS +++ b/contrib/ncurses/NEWS @@ -1,5 +1,5 @@ ------------------------------------------------------------------------------- --- Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. -- +-- Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. -- -- -- -- Permission is hereby granted, free of charge, to any person obtaining a -- -- copy of this software and associated documentation files (the -- @@ -25,7 +25,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.1682 2011/04/04 00:02:42 tom Exp $ +-- $Id: NEWS,v 1.2172 2014/02/23 01:19:35 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -45,6 +45,1360 @@ See the AUTHORS file for the corresponding full names. Changes through 1.9.9e did not credit all contributions; it is not possible to add this information. +20140222 + + fix some compiler warnings in win_driver.c + + updated notes for wsvt25 based on tack and vttest -TD + + add teken entry to show actual properties of FreeBSD's "xterm" + console -TD + +20140215 + + in-progress changes to win_driver.c to implement output without + allocating a console-buffer. This uses a pre-existing environment + variable NCGDB used by Juergen Pfeifer for debugging (prompted by + discussion with Erwin Waterlander regarding Console2, which hangs + when reading in an allocated console-buffer). + + add -t option to gdc.c, and modify to accept "S" to step through the + scrolling-stages. + + regenerate NCURSES-Programming-HOWTO.html to fix some of the broken + html emitted by docbook. + +20140209 + + modify CF_XOPEN_SOURCE macro to omit followup check to determine if + _XOPEN_SOURCE can/should be defined. g++ 4.7.2 built on Solaris 10 + has some header breakage due to its own predefinition of this symbol + (report by Jean-Pierre Flori, Sage #15796). + +20140201 + + add/use symbol NCURSES_PAIRS_T like NCURSES_COLOR_T, to illustrate + which "short" types are for color pairs and which are color values. + + fix build for s390x, by correcting field bit offsets in generated + representation clauses when int=32 long=64 and endian=big, or at + least on s390x (patch by Nicolas Boulenguez). + + minor cleanup change to test/form_driver_w.c (patch by Gaute Hope). + +20140125 + + remove unnecessary ifdef's in Ada95/gen/gen.c, which reportedly do + not work as is with gcc 4.8 due to fixes using chtype cast made for + new compiler warnings by gcc 4.8 in 20130824 (Debian #735753, patch + by Nicolas Boulenguez). + +20140118 + + apply includesubdir variable which was introduced in 20130805 to + gen-pkgconfig.in (Debian #735782). + +20131221 + + further improved man2html, used this to fix broken links in html + manpages. See + ftp://invisible-island.net/ncurses/patches/man2html + +20131214 + + modify configure-script/ifdef's to allow OLD_TTY feature to be + suppressed if the type of ospeed is configured using the option + --with-ospeed to not be a short. By default, it is a short for + termcap-compatibility (adapted from suggestion by Christian + Weisgerber). + + correct a typo in _nc_baudrate() (patch by Christian Weisgerber, + cf: 20061230). + + fix a few -Wlogical-op warnings. + + updated llib-l* files. + +20131207 + + add form_driver_w() entrypoint to wide-character forms library, as + well as test program form_driver_w (adapted from patch by Gaute + Hope). + +20131123 + + minor fix for CF_GCC_WARNINGS to special-case options which are not + recognized by clang. + +20131116 + + add special case to configure script to move _XOPEN_SOURCE_EXTENDED + definition from CPPFLAGS to CFLAGS if it happens to be needed for + Solaris, because g++ errors with that definition (report by + Jean-Pierre Flori, Sage #15268). + + correct logic in infocmp's -i option which was intended to ignore + strings which correspond to function-keys as candidates for piecing + together initialization- or reset-strings. The problem dates to + 1.9.7a, but was overlooked until changes in -Wlogical-op warnings for + gcc 4.8 (report by David Binderman). + + updated CF_GCC_WARNINGS to documented options for gcc 4.9.0, adding + checks for -Wextra, -Wignored-qualifiers and -Wlogical-op + + updated CF_GCC_WARNINGS to documented options for gcc 4.9.0, moving + checks for -Wextra and -Wdeclaration-after-statement into the macro, + and adding checks for -Wignored-qualifiers, -Wlogical-op and + -Wvarargs + + updated CF_CURSES_UNCTRL_H and CF_SHARED_OPTS macros from ongoing + work on cdk. + + update config.sub from + http://git.savannah.gnu.org/cgit/config.git + +20131110 + + minor cleanup of terminfo.tail + +20131102 + + use TS extension to describe xterm's title-escapes -TD + + modify terminator and nsterm-s to use xterm+sl-twm building block -TD + + update hurd.ti, add xenl to reflect 2011-03-06 change in + http://git.savannah.gnu.org/cgit/hurd/hurd.git/log/console/display.c + (Debian #727119). + + simplify pfkey expression in ansi.sys -TD + +20131027 + + correct/simplify ifdef's for cur_term versus broken-linker and + reentrant options (report by Jean-Pierre Flori, cf: 20090530). + + modify release/version combinations in test build-scripts to make + them more consistent with other packages. + +20131019 + + add nc_mingw.h to installed headers for MinGW port; needed for + compiling ncurses-examples. + + add rpm-script for testing cross-compile of ncurses-examples. + +20131014 + + fix new typo in CF_ADA_INCLUDE_DIRS macro (report by Roumen Petrov). + +20131012 + + fix a few compiler warnings in progs and test. + + minor fix to package/debian-mingw/rules, do not strip dll's. + + minor fixes to configure script for empty $prefix, e.g., when doing + cross-compiles to MinGW. + + add script for building test-packages of binaries cross-compiled to + MinGW using NSIS. + +20131005 + + minor fixes for ncurses-example package and makefile. + + add scripts for test-builds of cross-compiler packages for ncurses6 + to MinGW. + +20130928 + + some build-fixes for ncurses-examples with NetBSD-6.0 curses, though + it lacks some common functions such as use_env() which is not yet + addressed. + + build-fix and some compiler warning fixes for ncurses-examples with + OpenBSD 5.3 + + fix a possible null-pointer reference in a trace message from newterm. + + quiet a few warnings from NetBSD 6.0 namespace pollution by + nonstandard popcount() function in standard strings.h header. + + ignore g++ 4.2.1 warnings for "-Weffc++" in c++/cursesmain.cc + + fix a few overlooked places for --enable-string-hacks option. + +20130921 + + fix typo in curs_attr.3x (patch by Sven Joachim, cf: 20130831). + + build-fix for --with-shared option for DragonFly and FreeBSD (report + by Rong-En Fan, cf: 20130727). + +20130907 + + build-fixes for MSYS for two test-programs (patches by Ray Donnelly, + Alexey Pavlov). + + revert change to two of the dpkg format files, to work with dpkg + before/after Debian #700177. + + fix gcc -Wconversion warning in wattr_get() macro. + + add msys and msysdll to known host/configuration types (patch by + Alexey Pavlov). + + modify CF_RPATH_HACK configure macro to not rely upon "-u" option + of sort, improving portability. + + minor improvements for test-programs from reviewing Solaris port. + + update config.guess, config.sub from + http://git.savannah.gnu.org/cgit/config.git + +20130831 + + modify test/ncurses.c b/B tests to display lines only for the + attributes which a given terminal supports, to make room for an + italics test. + + completed ncv table in terminfo.tail; it did not list the wide + character codes listed in X/Open Curses issue 7. + + add A_ITALIC extension (prompted by discussion with Egmont Koblinger). + +20130824 + + fix some gcc 4.8 -Wconversion warnings. + + change format of dpkg test-scripts to quilted to work around bug + introduced by Debian #700177. + + discard cached keyname() values if meta() is changed after a value + was cached using (report by Kurban Mallachiev). + +20130816 + + add checks in tic to warn about terminals which lack cursor + addressing, capabilities or having those, are marked as hard_copy or + generic_type. + + use --without-progs in mingw-ncurses rpm. + + split out _nc_init_termtype() from alloc_entry.c to use in MinGW + port when tic and other programs are not needed. + +20130805 + + minor fixes to the --disable-overwrite logic, to ensure that the + configured $(includedir) is not cancelled by the mingwxx-filesystem + rpm macros. + + add --disable-db-install configure option, to simplify building + cross-compile support packages. + + add mingw-ncurses.spec file, for testing cross-compiles. + +20130727 + + improve configure macros from ongoing work on cdk, dialog, xterm: + + CF_ADD_LIB_AFTER - fix a problem with -Wl options + + CF_RPATH_HACK - add missing result-message + + CF_SHARED_OPTS - modify to use $rel_builddir in cygwin and mingw + dll symbols (which can be overridden) rather than explicit "../". + + CF_SHARED_OPTS - modify NetBSD and DragonFly symbols to use ${CC} + rather than ${LD} to improve rpath support. + + CF_SHARED_OPTS - add a symbol to denote the temporary files that + are created by the macro, to simplify clean-rules. + + CF_X_ATHENA - trim extra libraries to work with -Wl,--as-needed + + fix a regression in hashed-database support for NetBSD, which uses + the key-size differently from other implementations (cf: 20121229). + +20130720 + + further improvements for setupterm manpage, clarifying the + initialization of cur_term. + +20130713 + + improve manpages for initscr and setupterm. + + minor compiler-warning fixes + +20130706 + + add fallback defs for and (cf: 20120225). + + add check for size of wchar_t, use that to suppress a chunk of + wcwidth.h in MinGW port. + + quiet linker warnings for MinGW cross-compile with dll's using the + --enable-auto-import flag. + + add ncurses.map rule to ncurses/Makefile to help diagnose symbol + table issues. + +20130622 + + modify the clear program to take into account the E3 extended + capability to clear the terminal's scrollback buffer (patch by + Miroslav Lichvar, Redhat #815790). + + clarify in resizeterm manpage that LINES and COLS are updated. + + updated ansi example in terminfo.tail, correct misordered example + of sgr. + + fix other doclifter warnings for manpages + + remove unnecessary ".ta" in terminfo.tail, add missing ".fi" + (patch by Eric Raymond). + +20130615 + + minor changes to some configure macros to make them more reusable. + + fixes for tabs program (prompted by report by Nick Andrik): + + corrected logic in command-line parsing of -a and -c predefined + tab-lists options. + + allow "-0" and "-8" options to be combined with others, e.g.,"-0d". + + make warning messages more consistent with the other utilities by + not printing the full pathname of the program. + + add -V option for consistency with other utilities. + + fix off-by-one in columns for tabs program when processing an option + such as "-5" (patch by Nick Andrik). + +20130608 + + add to test/demo_forms.c examples of using the menu-hooks as well + as showing how the menu item user-data can be used to pass a callback + function pointer. + + add test/dots_termcap.c + + remove setupterm call from test/demo_termcap.c + + build-fix if --disable-ext-funcs configure option is used. + + modified test/edit_field.c and test/demo_forms.c to move the lengths + into a user-data structure, keeping the original string for later + expansion to free-format input/out demo. + + modified test/demo_forms.c to load data from file. + + added note to clarify Terminal.app's non-emulation of the various + terminal types listed in the preferences dialog -TD + + fix regression in error-reporting in lib_setup.c (Debian #711134, + cf: 20121117). + + build-fix for a case where --enable-broken_linker and + --enable-reentrant options are combined (report by George R Goffe). + +20130525 + + modify mvcur() to distinguish between internal use by the ncurses + library, and external callers, preventing it from reading the content + of the screen which is only nonblank when curses calls have updated + it. This makes test/dots_mvcur.c avoid painting colored cells in + the left margin of the display. + + minor fix to test/dots_mvcur.c + + move configured symbols USE_DATABASE and USE_TERMCAP to term.h as + NCURSES_USE_DATABASE and NCURSES_USE_TERMCAP to allow consistent + use of these symbols in term_entry.h + +20130518 + + corrected ifdefs in test/testcurs.c to allow comparison of mouse + interface versus pdcurses (cf: 20130316). + + add pow() to configure-check for math library, needed since + 20121208 for test/hanoi (Debian #708056). + + regenerated html manpages. + + update doctype used for html documentation. + +20130511 + + move nsterm-related entries out of "obsolete" section to more + plausible "ansi consoles" -TD + + additional cleanup of table-of-contents by reordering -TD + + revise fix for check for 8-bit value in _nc_insert_ch(); prior fix + prevented inserts when video attributes were attached to the data + (cf: 20121215) (Redhat #959534). + +20130504 + + fixes for issues found by Coverity: + + correct FNKEY() macro in progs/dump_entry.c, allowing kf11-kf63 to + display when infocmp's -R option is used for HP or AIX subsets. + + fix dead-code issue with test/movewindow.c + + improve limited-checking in _nc_read_termtype(). + +20130427 + + fix clang 3.2 warning in progs/dump_entry.c + + drop AC_TYPE_SIGNAL check; ncurses relies on c89 and later. + +20130413 + + add MinGW to cases where ncurses installs by default into /usr + (prompted by discussion with Daniel Silva Ferreira). + + add -D option to infocmp's usage-message (patch by Miroslav Lichvar). + + add a missing 'int' type for main function in configure check for + type of bool variable, to work with clang 3.2 (report by Dmitri + Gribenko). + + improve configure check for static_cast, to work with clang 3.2 + (report by Dmitri Gribenko). + + re-order rule for demo.o and macros defining header dependencies in + c++/Makefile.in to accommodate gmake (report by Dmitri Gribenko). + +20130406 + + improve parameter checking in copywin(). + + modify configure script to work around OS X's "libtool" program, to + choose glibtool instead. At the same time, chance the autoconf macro + to look for a "tool" rather than a "prog", to help with potential use + in cross-compiling. + + separate the rpath usage for c++ library from demo program + (Redhat #911540) + + update/correct header-dependencies in c++ makefile (report by Werner + Fink). + + add --with-cxx-shared to dpkg-script, as done for rpm-script. + +20130324 + + build-fix for libtool configuration (reports by Daniel Silva Ferreira + and Roumen Petrov). + +20130323 + + build-fix for OS X, to handle changes for --with-cxx-shared feature + (report by Christian Ebert). + + change initialization for vt220, similar entries for consistency + with cursor-key strings (NetBSD #47674) -TD + + further improvements to linux-16color (Benjamin Sittler) + +20130316 + + additional fix for tic.c, to allocate missing buffer space. + + eliminate configure-script warnings for gen-pkgconfig.in + + correct typo in sgr string for sun-color, + add bold for consistency with sgr, + change smso for consistency with sgr -TD + + correct typo in sgr string for terminator -TD + + add blink to the attributes masked by ncv in linux-16color (report + by Benjamin Sittler) + + improve warning message from post-load checking for missing "%?" + operator by tic/infocmp by showing the entry name and capability. + + minor formatting improvement to tic/infocmp -f option to ensure + line split after "%;". + + amend scripting for --with-cxx-shared option to handle the debug + library "libncurses++_g.a" (report by Sven Joachim). + +20130309 + + amend change to toe.c for reading from /dev/zero, to ensure that + there is a buffer for the temporary filename (cf: 20120324). + + regenerated html manpages. + + fix typo in terminfo.head (report by Sven Joachim, cf: 20130302). + + updated some autoconf macros: + + CF_ACVERSION_CHECK, from byacc 1.9 20130304 + + CF_INTEL_COMPILER, CF_XOPEN_SOURCE from luit 2.0-20130217 + + add configure option --with-cxx-shared to permit building + libncurses++ as a shared library when using g++, e.g., the same + limitations as libtool but better integrated with the usual build + configuration (Redhat #911540). + + modify MKkey_defs.sh to filter out build-path which was unnecessarily + shown in curses.h (Debian #689131). + +20130302 + + add section to terminfo manpage discussing user-defined capabilities. + + update manpage description of NCURSES_NO_SETBUF, explaining why it + is obsolete. + + add a check in waddch_nosync() to ensure that tab characters are + treated as control characters; some broken locales claim they are + printable. + + add some traces to the Windows console driver. + + initialize a temporary array in _nc_mbtowc, needed for some cases + of raw input in MinGW port. + +20130218 + + correct ifdef on change to lib_twait.c (report by Werner Fink). + + update config.guess, config.sub + +20130216 + + modify test/testcurs.c to work with mouse for ncurses as it does for + pdcurses. + + modify test/knight.c to work with mouse for pdcurses as it does for + ncurses. + + modify internal recursion in wgetch() which handles cooked mode to + check if the call to wgetnstr() returned an error. This can happen + when both nocbreak() and nodelay() are set, for instance (report by + Nils Christopher Brause) (cf: 960418). + + fixes for issues found by Coverity: + + add a check for valid position in ClearToEOS() + + fix in lib_twait.c when --enable-wgetch-events is used, pointer + use after free. + + improve a limit-check in make_hash.c + + fix a memory leak in hashed_db.c + +20130209 + + modify test/configure script to make it simpler to override names + of curses-related libraries, to help with linking with pdcurses in + MinGW environment. + + if the --with-terminfo-dirs configure option is not used, there is + no corresponding compiled-in value for that. Fill in "no default + value" for that part of the manpage substitution. + +20130202 + + correct initialization in knight.c which let it occasionally make + an incorrect move (cf: 20001028). + + improve documentation of the terminfo/termcap search path. + +20130126 + + further fixes to mvcur to pass callback function (cf: 20130112), + needed to make test/dots_mvcur work. + + reduce calls to SetConsoleActiveScreenBuffer in win_driver.c, to + help reduce flicker. + + modify configure script to omit "+b" from linker options for very + old HP-UX systems (report by Dennis Grevenstein) + + add HP-UX workaround for missing EILSEQ on old HP-UX systems (patch + by Dennis Grevenstein). + + restore memmove/strdup support for antique systems (request by + Dennis Grevenstein). + + change %l behavior in tparm to push the string length onto the stack + rather than saving the formatted length into the output buffer + (report by Roy Marples, cf: 980620). + +20130119 + + fixes for issues found by Coverity: + + fix memory leak in safe_sprintf.c + + add check for return-value in tty_update.c + + correct initialization for -s option in test/view.c + + add check for numeric overflow in lib_instr.c + + improve error-checking in copywin + + add advice in infocmp manpage for termcap users (Debian #698469). + + add "-y" option to test/demo_termcap and test/demo_terminfo to + demonstrate behavior with/without extended capabilities. + + updated termcap manpage to document legacy termcap behavior for + matching capability names. + + modify name-comparison for tgetstr, etc., to accommodate legacy + applications as well as to improve compatbility with BSD 4.2 + termcap implementations (Debian #698299) (cf: 980725). + +20130112 + + correct prototype in manpage for vid_puts. + + drop ncurses/tty/tty_display.h, ncurses/tty/tty_input.h, since they + are unused in the current driver model. + + modify mvcur to use stdout except when called within the ncurses + library. + + modify vidattr and vid_attr to use stdout as documented in manpage. + + amend changes made to buffering in 20120825 so that the low-level + putp() call uses stdout rather than ncurses' internal buffering. + The putp_sp() call does the same, for consistency (Redhat #892674). + +20130105 + + add "-s" option to test/view.c to allow it to start in single-step + mode, reducing size of trace files when it is used for debugging + MinGW changes. + + revert part of 20121222 change to tinfo_driver.c + + add experimental logic in win_driver.c to improve optimization of + screen updates. This does not yet work with double-width characters, + so it is ifdef'd out for the moment (prompted by report by Erwin + Waterlander regarding screen flicker). + +20121229 + + fix coverity warnings regarding copying into fixed-size buffers. + + add throw-declarations in the c++ binding per Coverity warning. + + minor changes to new-items for consistent reference to bug-report + numbers. + +20121222 + + add *.dSYM directories to clean-rule in ncurses directory makefile, + for Mac OS builds. + + add a configure check for gcc option -no-cpp-precomp, which is not + available in all Mac OS X configurations (report by Andras Salamon, + cf: 20011208). + + improve 20021221 workaround for broken acs, handling a case where + that ACS_xxx character is not in the acsc string but there is a known + wide-character which can be used. + +20121215 + + fix several warnings from clang 3.1 --analyze, includes correcting + a null-pointer check in _nc_mvcur_resume. + + correct display of double-width characters with MinGW port (report + by Erwin Waterlander). + + replace MinGW's wcrtomb(), fixing a problem with _nc_viscbuf + > fixes based on Coverity report: + + correct coloring in test/bs.c + + correct check for 8-bit value in _nc_insert_ch(). + + remove dead code in progs/tset.c, test/linedata.h + + add null-pointer checks in lib_tracemse.c, panel.priv.h, and some + test-programs. + +20121208 + + modify test/knight.c to show the number of choices possible for + each position in automove option, e.g., to allow user to follow + Warnsdorff's rule to solve the puzzle. + + modify test/hanoi.c to show the minimum number of moves possible for + the given number of tiles (prompted by patch by Lucas Gioia). + > fixes based on Coverity report: + + remove a few redundant checks. + + correct logic in test/bs.c, when randomly placing a specific type of + ship. + + check return value from remove/unlink in tic. + + check return value from sscanf in test/ncurses.c + + fix a null dereference in c++/cursesw.cc + + fix two instances of uninitialized variables when configuring for the + terminal driver. + + correct scope of variable used in SetSafeOutcWrapper macro. + + set umask when calling mkstemp in tic. + + initialize wbkgrndset() temporary variable when extended-colors are + used. + +20121201 + + also replace MinGW's wctomb(), fixing a problem with setcchar(). + + modify test/view.c to load UTF-8 when built with MinGW by using + regular win32 API because the MinGW functions mblen() and mbtowc() + do not work. + +20121124 + + correct order of color initialization versus display in some of the + test-programs, e.g., test_addstr.c + > fixes based on Coverity report: + + delete windows on exit from some of the test-programs. + +20121117 + > fixes based on Coverity report: + + add missing braces around FreeAndNull in two places. + + various fixes in test/ncurses.c + + improve limit-checks in tinfo/make_hash.c, tinfo/read_entry.c + + correct malloc size in progs/infocmp.c + + guard against negative array indices in test/knight.c + + fix off-by-one limit check in test/color_name.h + + add null-pointer check in progs/tabs.c, test/bs.c, test/demo_forms.c, + test/inchs.c + + fix memory-leak in tinfo/lib_setup.c, progs/toe.c, + test/clip_printw.c, test/demo_menus.c + + delete unused windows in test/chgat.c, test/clip_printw.c, + test/insdelln.c, test/newdemo.c on error-return. + +20121110 + + modify configure macro CF_INCLUDE_DIRS to put $CPPFLAGS after the + local -I include options in case someone has set conflicting -I + options in $CPPFLAGS (prompted by patch for ncurses/Makefile.in by + Vassili Courzakis). + + modify the ncurses*-config scripts to eliminate relative paths from + the RPATH_LIST variable, e.g., "../lib" as used in installing shared + libraries or executables. + +20121102 + + realign these related pages: + curs_add_wchstr.3x + curs_addchstr.3x + curs_addstr.3x + curs_addwstr.3x + and fix a long-ago error in curs_addstr.3x which said that a -1 + length parameter would only write as much as fit onto one line + (report by Reuben Thomas). + + remove obsolete fallback _nc_memmove() for memmove()/bcopy(). + + remove obsolete fallback _nc_strdup() for strdup(). + + cancel any debug-rpm in package/ncurses.spec + + reviewed vte-2012, reverted most of the change since it was incorrect + based on testing with tack -TD + + un-cancel the initc in vte-256color, since this was implemented + starting with version 0.20 in 2009 -TD + +20121026 + + improve malloc/realloc checking (prompted by discussion in Redhat + #866989). + + add ncurses test-program as "ncurses6" to the rpm- and dpkg-scripts. + + updated configure macros CF_GCC_VERSION and CF_WITH_PATHLIST. The + first corrects pattern used for Mac OS X's customization of gcc. + +20121017 + + fix change to _nc_scroll_optimize(), which incorrectly freed memory + (Redhat #866989). + +20121013 + + add vte-2012, gnome-2012, making these the defaults for vte/gnome + (patch by Christian Persch). + +20121006 + + improve CF_GCC_VERSION to work around Debian's customization of gcc + --version message. + + improve configure macros as done in byacc: + + drop 2.13 compatibility; use 2.52.xxxx version only since EMX port + has used that for a while. + + add 3rd parameter to AC_DEFINE's to allow autoheader to run, i.e., + for experimental use. + + remove unused configure macros. + + modify configure script and makefiles to quiet new autoconf warning + for LIBS_TO_MAKE variable. + + modify configure script to show $PATH_SEPARATOR variable. + + update config.guess, config.sub + +20120922 + + modify setupterm to set its copy of TERM to "unknown" if configured + for the terminal driver and TERM was null or empty. + + modify treatment of TERM variable for MinGW port to allow explicit + use of the windows console driver by checking if $TERM is set to + "#win32con" or an abbreviation of that. + + undo recent change to fallback definition of vsscanf() to build with + older Solaris compilers (cf: 20120728). + +20120908 + + add test-screens to test/ncurses to show 256-characters at a time, + to help with MinGW port. + +20120903 + + simplify varargs logic in lib_printw.c; va_copy is no longer needed + there. + + modifications for MinGW port to make wide-character display usable. + +20120902 + + regenerate configure script (report by Sven Joachim, cf: 20120901). + +20120901 + + add a null-pointer check in _nc_flush (cf: 20120825). + + fix a case in _nc_scroll_optimize() where the _oldnums_list array + might not be allocated. + + improve comparisons in configure.in for unset shell variables. + +20120826 + + increase size of ncurses' output-buffer, in case of very small + initial screen-sizes. + + fix evaluation of TERMINFO and TERMINFO_DIRS default values as needed + after changes to use --datarootdir (reports by Gabriele Balducci, + Roumen Petrov). + +20120825 + + change output buffering scheme, using buffer maintained by ncurses + rather than stdio, to avoid problems with SIGTSTP handling (report + by Brian Bloniarz). + +20120811 + + update autoconf patch to 2.52.20120811, adding --datarootdir + (prompted by discussion with Erwin Waterlander). + + improve description of --enable-reentrant option in README and the + INSTALL file. + + add nsterm-256color, make this the default nsterm -TD + + remove bw from nsterm-bce, per testing with tack -TD + +20120804 + + update test/configure, adding check for tinfo library. + + improve limit-checks for the getch fifo (report by Werner Fink). + + fix a remaining mismatch between $with_echo and the symbols updated + for CF_DISABLE_ECHO affecting parameters for mk-2nd.awk (report by + Sven Joachim, cf: 20120317). + + modify followup check for pkg-config's library directory in the + --enable-pc-files option to validate syntax (report by Sven Joachim, + cf: 20110716). + +20120728 + + correct path for ncurses_mingw.h in include/headers, in case build + is done outside source-tree (patch by Roumen Petrov). + + modify some older xterm entries to align with xterm source -TD + + separate "xterm-old" alias from "xterm-r6" -TD + + add E3 extended capability to xterm-basic and putty -TD + + parenthesize parameters of other macros in curses.h -TD + + parenthesize parameter of COLOR_PAIR and PAIR_NUMBER in curses.h + in case it happens to be a comma-expression, etc. (patch by Nick + Black). + +20120721 + + improved form_request_by_name() and menu_request_by_name(). + + eliminate two fixed-size buffers in toe.c + + extend use_tioctl() to have expected behavior when use_env(FALSE) and + use_tioctl(TRUE) are called. + + modify ncurses test-program, adding -E and -T options to demonstrate + use_env() versus use_tioctl(). + +20120714 + + add use_tioctl() function (adapted from patch by Werner Fink, + Novell #769788): + +20120707 + + add ncurses_mingw.h to installed headers (prompted by patch by + Juergen Pfeifer). + + clarify return-codes from wgetch() in response to SIGWINCH (prompted + by Novell #769788). + + modify resizeterm() to always push a KEY_RESIZE onto the fifo, even + if screensize is unchanged. Modify _nc_update_screensize() to push a + KEY_RESIZE if there was a SIGWINCH, even if it does not call + resizeterm(). These changes eliminate the case where a SIGWINCH is + received, but ERR returned from wgetch or wgetnstr because the screen + dimensions did not change (Novell #769788). + +20120630 + + add --enable-interop to sample package scripts (suggested by Juergen + Pfeifer). + + update CF_PATH_SYNTAX macro, from mawk changes. + + modify mk-0th.awk to allow for generating llib-ltic, etc., though + some work is needed on cproto to work with lib_gen.c to update + llib-lncurses. + + remove redundant getenv() cal in database-iterator leftover from + cleanup in 20120622 changes (report by Sven Joachim). + +20120622 + + add -d, -e and -q options to test/demo_terminfo and test/demo_termcap + + fix caching of environment variables in database-iterator (patch by + Philippe Troin, Redhat #831366). + +20120616 + + add configure check to distinguish clang from gcc to eliminate + warnings about unused command-line parameters when compiler warnings + are enabled. + + improve behavior when updating terminfo entries which are hardlinked + by allowing for the possibility that an alias has been repurposed to + a new primary name. + + fix some strict compiler warnings based on package scripts. + + further fixes for configure check for working poll (Debian #676461). + +20120608 + + fix an uninitialized variable in -c/-n logic for infocmp changes + (cf: 20120526). + + corrected fix for building c++ binding with clang 3.0 (report/patch + by Richard Yao, Gentoo #417613, cf: 20110409) + + correct configure check for working poll, fixing the case where stdin + is redirected, e.g., in rpm/dpkg builds (Debian #676461). + + add rpm- and dpkg-scripts, to test those build-environments. + The resulting packages are used only for testing. + +20120602 + + add kdch1 aka "Remove" to vt220 and vt220-8 entries -TD + + add kdch1, etc., to qvt108 -TD + + add dl1/il1 to some entries based on dl/il values -TD + + add dl to simpleterm -TD + + add consistency-checks in tic for insert-line vs delete-line + controls, and insert/delete-char keys + + correct no-leaks logic in infocmp when doing comparisons, fixing + duplicate free of entries given via the command-line, and freeing + entries loaded from the last-but-one of files specified on the + command-line. + + add kdch1 to wsvt25 entry from NetBSD CVS (reported by David Lord, + analysis by Martin Husemann). + + add cnorm/civis to wsvt25 entry from NetBSD CVS (report/analysis by + Onno van der Linden). + +20120526 + + extend -c and -n options of infocmp to allow comparing more than two + entries. + + correct check in infocmp for number of terminal names when more than + two are given. + + correct typo in curs_threads.3x (report by Yanhui Shen on + freebsd-hackers mailing list). + +20120512 + + corrected 'op' for bterm (report by Samuel Thibault) -TD + + modify test/background.c to demonstrate a background character + holding a colored ACS_HLINE. The behavior differs from SVr4 due to + the thick- and double-line extension (cf: 20091003). + + modify handling of acs characters in PutAttrChar to avoid mapping an + unmapped character to a space with A_ALTCHARSET set. + + rewrite vt520 entry based on vt420 -TD + +20120505 + + remove p6 (bold) from opus3n1+ for consistency -TD + + remove acs stuff from env230 per clues in Ingres termcap -TD + + modify env230 sgr/sgr0 to match other capabilities -TD + + modify smacs/rmacs in bq300-8 to match sgr/sgr0 -TD + + make sgr for dku7202 agree with other caps -TD + + make sgr for ibmpc agree with other caps -TD + + make sgr for tek4107 agree with other caps -TD + + make sgr for ndr9500 agree with other caps -TD + + make sgr for sco-ansi agree with other caps -TD + + make sgr for d410 agree with other caps -TD + + make sgr for d210 agree with other caps -TD + + make sgr for d470c, d470c-7b agree with other caps -TD + + remove redundant AC_DEFINE for NDEBUG versus Makefile definition. + + fix a back-link in _nc_delink_entry(), which is needed if ncurses is + configured with --enable-termcap and --disable-getcap. + +20120428 + + fix some inconsistencies between vt320/vt420, e.g., cnorm/civis -TD + + add eslok flag to dec+sl -TD + + dec+sl applies to vt320 and up -TD + + drop wsl width from xterm+sl -TD + + reuse xterm+sl in putty and nsca-m -TD + + add ansi+tabs to vt520 -TD + + add ansi+enq to vt220-vt520 -TD + + fix a compiler warning in example in ncurses-intro.doc (Paul Waring). + + added paragraph in keyname manpage telling how extended capabilities + are interpreted as key definitions. + + modify tic's check of conflicting key definitions to include extended + capability strings in addition to the existing check on predefined + keys. + +20120421 + + improve cleanup of temporary files in tic using atexit(). + + add msgr to vt420, similar DEC vtXXX entries -TD + + add several missing vt420 capabilities from vt220 -TD + + factor out ansi+pp from several entries -TD + + change xterm+sl and xterm+sl-twm to include only the status-line + capabilities and not "use=xterm", making them more generally useful + as building-blocks -TD + + add dec+sl building block, as example -TD + +20120414 + + add XT to some terminfo entries to improve usefulness for other + applications than screen, which would like to pretend that xterm's + title is a status-line. -TD + + change use-clauses in ansi-mtabs, hp2626, and hp2622 based on review + of ordering and overrides -TD + + add consistency check in tic for screen's "XT" capability. + + add section in terminfo.src summarizing the user-defined capabilities + used in that file -TD + +20120407 + + fix an inconsistency between tic/infocmp "-x" option; tic omits all + non-standard capabilities, while infocmp was ignoring only the user + definable capabilities. + + improve special case in tic parsing of description to allow it to be + followed by terminfo capabilities. Previously the description had to + be the last field on an input line to allow tic to distinguish + between termcap and terminfo format while still allowing commas to be + embedded in the description. + + correct variable name in gen_edit.sh which broke configurability of + the --with-xterm-kbs option. + + revert 2011-07-16 change to "linux" alias, return to "linux2.2" -TD + + further amend 20110910 change, providing for configure-script + override of the "linux" terminfo entry to install and changing the + default for that to "linux2.2" (Debian #665959). + +20120331 + + update Ada95/configure to use CF_DISABLE_ECHO (cf: 20120317). + + correct order of use-clauses in st-256color -TD + + modify configure script to look for gnatgcc if the Ada95 binding + is built, in preference to the default gcc/cc (suggested by + Nicolas Boulenguez). + + modify configure script to ensure that the same -On option used for + the C compiler in CFLAGS is used for ADAFLAGS rather than simply + using "-O3" (suggested by Nicolas Boulenguez) + +20120324 + + amend an old fix so that next_char() exits properly for empty files, + e.g., from reading /dev/null (cf: 20080804). + + modify tic so that it can read from the standard input, or from + a character device. Because tic uses seek's, this requires writing + the data to a temporary file first (prompted by remark by Sven + Joachim) (cf: 20000923). + +20120317 + + correct a check made in lib_napms.c, so that terminfo applications + can again use napms() (cf: 20110604). + + add a note in tic.h regarding required casts for ABSENT_BOOLEAN + (cf: 20040327). + + correct scripting for --disable-echo option in test/configure. + + amend check for missing c++ compiler to work when no error is + reported, and no variables set (cf: 20021206). + + add/use configure macro CF_DISABLE_ECHO. + +20120310 + + fix some strict compiler warnings for abi6 and 64-bits. + + use begin_va_copy/end_va_copy macros in lib_printw.c (cf: 20120303). + + improve a limit-check in infocmp.c (Werner Fink): + +20120303 + + minor tidying of terminfo.tail, clarify reason for limitation + regarding mapping of \0 to \200 + + minor improvement to _nc_copy_termtype(), using memcpy to replace + loops. + + fix no-leaks checking in test/demo_termcap.c to account for multiple + calls to setupterm(). + + modified the libgpm change to show previous load as a problem in the + debug-trace. + > merge some patches from OpenSUSE rpm (Werner Fink): + + ncurses-5.7-printw.dif, fixes for varargs handling in lib_printw.c + + ncurses-5.7-gpm.dif, do not dlopen libgpm if already loaded by + runtime linker + + ncurses-5.6-fallback.dif, do not free arrays and strings from static + fallback entries + +20120228 + + fix breakage in tic/infocmp from 20120225 (report by Werner Fink). + +20120225 + + modify configure script to allow creating dll's for MinGW when + cross-compiling. + + add --enable-string-hacks option to control whether strlcat and + strlcpy may be used. The same issue applies to OpenBSD's warnings + about snprintf, noting that this function is weakly standardized. + + add configure checks for strlcat, strlcpy and snprintf, to help + reduce bogus warnings with OpenBSD builds. + + build-fix for OpenBSD 4.9 to supply consistent intptr_t declaration + (cf:20111231) + + update config.guess, config.sub + +20120218 + + correct CF_ETIP_DEFINES configure macro, making it exit properly on + the first success (patch by Pierre Labastie). + + improve configure macro CF_MKSTEMP by moving existence-check for + mkstemp out of the AC_TRY_RUN, to help with cross-compiles. + + improve configure macro CF_FUNC_POLL from luit changes to detect + broken implementations, e.g., with Mac OS X. + + add configure option --with-tparm-arg + + build-fix for MinGW cross-compiling, so that make_hash does not + depend on TTY definition (cf: 20111008). + +20120211 + + make sgr for xterm-pcolor agree with other caps -TD + + make sgr for att5425 agree with other caps -TD + + make sgr for att630 agree with other caps -TD + + make sgr for linux entries agree with other caps -TD + + make sgr for tvi9065 agree with other caps -TD + + make sgr for ncr260vt200an agree with other caps -TD + + make sgr for ncr160vt100pp agree with other caps -TD + + make sgr for ncr260vt300an agree with other caps -TD + + make sgr for aaa-60-dec-rv, aaa+dec agree with other caps -TD + + make sgr for cygwin, cygwinDBG agree with other caps -TD + + add configure option --with-xterm-kbs to simplify configuration for + Linux versus most other systems. + +20120204 + + improved tic -D option, avoid making target directory and provide + better diagnostics. + +20120128 + + add mach-gnu (Debian #614316, patch by Samuel Thibault) + + add mach-gnu-color, tweaks to mach-gnu terminfo -TD + + make sgr for sun-color agree with smso -TD + + make sgr for prism9 agree with other caps -TD + + make sgr for icl6404 agree with other caps -TD + + make sgr for ofcons agree with other caps -TD + + make sgr for att5410v1, att4415, att620 agree with other caps -TD + + make sgr for aaa-unk, aaa-rv agree with other caps -TD + + make sgr for avt-ns agree with other caps -TD + + amend fix intended to separate fixups for acsc to allow "tic -cv" to + give verbose warnings (cf: 20110730). + + modify misc/gen-edit.sh to make the location of the tabset directory + consistent with misc/Makefile.in, i.e., using ${datadir}/tabset + (Debian #653435, patch by Sven Joachim). + +20120121 + + add --with-lib-prefix option to allow configuring for old/new flavors + of OS/2 EMX. + + modify check for gnat version to allow for year, as used in FreeBSD + port. + + modify check_existence() in db_iterator.c to simply check if the + path is a directory or file, according to the need. Checking for + directory size also gives no usable result with OS/2 (cf: 20120107). + + support OS/2 kLIBC (patch by KO Myung-Han). + +20120114 + + several improvements to test/movewindow.c (prompted by discussion on + Linux Mint forum): + + modify movement commands to make them continuous + + rewrote the test for mvderwin + + rewrote the test for recursive mvwin + + split-out reusable CF_WITH_NCURSES_ETC macro in test/configure.in + + updated configure macro CF_XOPEN_SOURCE, build-fixes for Mac OS X + and OpenBSD. + + regenerated html manpages. + +20120107 + + various improvments for MinGW (Juergen Pfeifer): + + modify stat() calls to ignore the st_size member + + drop mk-dlls.sh script. + + change recommended regular expression library. + + modify rain.c to allow for threaded configuraton. + + modify tset.c to allow for case when size-change logic is not used. + +20111231 + + modify toe's report when -a and -s options are combined, to add + a column showing which entries belong to a given database. + + add -s option to toe, to sort its output. + + modify progs/toe.c, simplifying use of db-iterator results to use + caching improvements from 20111001 and 20111126. + + correct generation of pc-files when ticlib or termlib options are + given to rename the corresponding tic- or tinfo-libraries (report + by Sven Joachim). + +20111224 + + document a portability issue with tput, i.e., that scripts which work + with ncurses may fail in other implementations that do no parameter + analysis. + + add putty-sco entry -TD + +20111217 + + review/fix places in manpages where --program-prefix configure option + was not being used. + + add -D option to infocmp, to show the database locations that it + could use. + + fix build for the special case where term-driver, ticlib and termlib + are all enabled. The terminal driver depends on a few features in + the base ncurses library, so tic's dependencies include both ncurses + and termlib. + + fix build work for term-driver when --enable-wgetch-events option is + enabled. + + use types to fix some questionable casts to void*. + +20111210 + + modify configure script to check if thread library provides + pthread_mutexattr_settype(), e.g., not provided by Solaris 2.6 + + modify configure script to suppress check to define _XOPEN_SOURCE + for IRIX64, since its header files have a conflict versus + _SGI_SOURCE. + + modify configure script to add ".pc" files for tic- and + tinfo-libraries, which were omitted in recent change (cf: 20111126). + + fix inconsistent checks on $PKG_CONFIG variable in configure script. + +20111203 + + modify configure-check for etip.h dependencies, supplying a temporary + copy of ncurses_dll.h since it is a generated file (prompted by + Debian #646977). + + modify CF_CPP_PARAM_INIT "main" function to work with current C++. + +20111126 + + correct database iterator's check for duplicate entries + (cf: 20111001). + + modify database iterator to ignore $TERMCAP when it is not an + absolute pathname. + + add -D option to tic, to show the database locations that it could + use. + + improve description of database locations in tic manpage. + + modify the configure script to generate a list of the ".pc" files to + generate, rather than deriving the list from the libraries which have + been built (patch by Mike Frysinger). + + use AC_CHECK_TOOLS in preference to AC_PATH_PROGS when searching for + ncurses*-config, e.g., in Ada95/configure and test/configure (adapted + from patch by Mike Frysinger). + +20111119 + + remove obsolete/conflicting fallback definition for _POSIX_SOURCE + from curses.priv.h, fixing a regression with IRIX64 and Tru64 + (cf: 20110416) + + modify _nc_tic_dir() to ensure that its return-value is nonnull, + i.e., the database iterator was not initialized. This case is needed + to when tic is translating to termcap, rather than loading the + database (cf: 20111001). + +20111112 + + add pccon entries for OpenBSD console (Alexei Malinin). + + build-fix for OpenBSD 4.9 with gcc 4.2.1, setting _XOPEN_SOURCE to + 600 to work around inconsistent ifdef'ing of wcstof between C and + C++ header files. + + modify capconvert script to accept more than exact match on "xterm", + e.g., the "xterm-*" variants, to exclude from the conversion (patch + by Robert Millan). + + add -lc_r as alternative for -lpthread, allows build of threaded code + in older FreeBSD machines. + + build-fix for MirBSD, which fails when either _XOPEN_SOURCE or + _POSIX_SOURCE are defined. + + fix a typo misc/Makefile.in, used in uninstalling pc-files. + +20111030 + + modify make_db_path() to allow creating "terminfo.db" in the same + directory as an existing "terminfo" directory. This fixes a case + where switching between hashed/filesystem databases would cause the + new hashed database to be installed in the next best location - + root's home directory. + + add variable cf_cv_prog_gnat_correct to those passed to + config.status, fixing a problem with Ada95 builds (cf: 20111022). + + change feature test from _XPG5 to _XOPEN_SOURCE in two places, to + accommodate broken implementations for _XPG6. + + eliminate usage of NULL symbol from etip.h, to reduce header + interdependencies. + + add configure check to decide when to add _XOPEN_SOURCE define to + compiler options, i.e., for Solaris 10 and later (cf: 20100403). + This is a workaround for gcc 4.6, which fails to build the c++ + binding if that symbol is defined by the application, due to + incorrectly combining the corresponding feature test macros + (report by Peter Kruse). + +20111022 + + correct logic for discarding mouse events, retaining the partial + events used to build up click, double-click, etc, until needed + (cf: 20110917). + + fix configure script to avoid creating unused Ada95 makefile when + gnat does not work. + + cleanup width-related gcc 3.4.3 warnings for 64-bit platform, for the + internal functions of libncurses. The external interface of courses + uses bool, which still produces these warnings. + +20111015 + + improve description of --disable-tic-depends option to make it + clear that it may be useful whether or not the --with-termlib + option is also given (report by Sven Joachim). + + amend termcap equivalent for set_pglen_inch to use the X/Open + "YI" rather than the obsolete Solaris 2.5 "sL" (cf: 990109). + + improve manpage for tgetent differences from termcap library. + +20111008 + + moved static data from db_iterator.c to lib_data.c + + modify db_iterator.c for memory-leak checking, fix one leak. + + modify misc/gen-pkgconfig.in to use Requires.private for the parts + of ncurses rather than Requires, as well as Libs.private for the + other library dependencies (prompted by Debian #644728). + +20111001 + + modify tic "-K" option to only set the strict-flag rather than force + source-output. That allows the same flag to control the parser for + input and output of termcap source. + + modify _nc_getent() to ignore backslash at the end of a comment line, + making it consistent with ncurses' parser. + + restore a special-case check for directory needed to make termcap + text files load as if they were databases (cf: 20110924). + + modify tic's resolution/collision checking to attempt to remove the + conflicting alias from the second entry in the pair, which is + normally following in the source file. Also improved the warning + message to make it simpler to see which alias is the problem. + + improve performance of the database iterator by caching search-list. + +20110925 + + add a missing "else" in changes to _nc_read_tic_entry(). + +20110924 + + modify _nc_read_tic_entry() so that hashed-database is checked before + filesystem. + + updated CF_CURSES_LIBS check in test/configure script. + + modify configure script and makefiles to split TIC_ARGS and + TINFO_ARGS into pieces corresponding to LDFLAGS and LIBS variables, + to help separate searches for tic- and tinfo-libraries (patch by Nick + Alcock aka "Nix"). + + build-fix for lib_mouse.c changes (cf: 20110917). + +20110917 + + fix compiler warning for clang 2.9 + + improve merging of mouse events (integrated patch by Damien + Guibouret). + + correct mask-check used in lib_mouse for wheel mouse buttons 4/5 + (patch by Damien Guibouret). + +20110910 + + modify misc/gen_edit.sh to select a "linux" entry which works with + the current kernel rather than assuming it is always "linux3.0" + (cf: 20110716). + + revert a change to getmouse() which had the undesirable side-effect + of suppressing button-release events (report by Damien Guibouret, + cf: 20100102). + + add xterm+kbs fragment from xterm #272 -TD + + add configure option --with-pkg-config-libdir to provide control over + the actual directory into which pc-files are installed, do not use + the pkg-config environment variables (discussion with Frederic L W + Meunier). + + add link to mailing-list archive in announce.html.in, as done in + FAQ (prompted by question by Andrius Bentkus). + + improve manpage install by adjusting the "#include" examples to + show the ncurses-subdirectory used when --disable-overwrite option + is used. + + install an alias for "curses" to the ncurses manpage, tied to the + --with-curses-h configure option (suggested by Reuben Thomas). + +20110903 + + propagate error-returns from wresize, i.e., the internal + increase_size and decrease_size functions through resize_term (report + by Tim van der Molen, cf: 20020713). + + fix typo in tset manpage (patch by Sven Joachim). + +20110820 + + add a check to ensure that termcap files which might have "^?" do + not use the terminfo interpretation as "\177". + + minor cleanup of X-terminal emulator section of terminfo.src -TD + + add terminator entry -TD + + add simpleterm entry -TD + + improve wattr_get macros by ensuring that if the window pointer is + null, then the attribute and color values returned will be zero + (cf: 20110528). + +20110813 + + add substitution for $RPATH_LIST to misc/ncurses-config.in + + improve performance of tic with hashed-database by caching the + database connection, using atexit() to cleanup. + + modify treatment of 2-character aliases at the beginning of termcap + entries so they are not counted in use-resolution, since these are + guaranteed to be unique. Also ignore these aliases when reporting + the primary name of the entry (cf: 20040501) + + double-check gn (generic) flag in terminal descriptions to + accommodate old/buggy termcap databases which misused that feature. + + minor fixes to _nc_tgetent(), ensure buffer is initialized even on + error-return. + +20110807 + + improve rpath fix from 20110730 by ensuring that the new $RPATH_LIST + variable is defined in the makefiles which use it. + + build-fix for DragonFlyBSD's pkgsrc in test/configure script. + + build-fixes for NetBSD 5.1 with termcap support enabled. + + corrected k9 in dg460-ansi, add other features based on manuals -TD + + improve trimming of whitespace at the end of terminfo/termcap output + from tic/infocmp. + + when writing termcap source, ensure that colons in the description + field are translated to a non-delimiter, i.e., "=". + + add "-0" option to tic/infocmp, to make the termcap/terminfo source + use a single line. + + add a null-pointer check when handling the $CC variable. + +20110730 + + modify configure script and makefiles in c++ and progs to allow the + directory used for rpath option to be overridden, e.g., to work + around updates to the variables used by tic during an install. + + add -K option to tic/infocmp, to provide stricter BSD-compatibility + for termcap output. + + add _nc_strict_bsd variable in tic library which controls the + "strict" BSD termcap compatibility from 20110723, plus these + features: + + allow escapes such as "\8" and "\9" when reading termcap + + disallow "\a", "\e", "\l", "\s" and "\:" escapes when reading + termcap files, passing through "a", "e", etc. + + expand "\:" as "\072" on output. + + modify _nc_get_token() to reset the token's string value in case + there is a string-typed token lacking the "=" marker. + + fix a few memory leaks in _nc_tgetent. + + fix a few places where reading from a termcap file could refer to + freed memory. + + add an overflow check when converting terminfo/termcap numeric + values, since terminfo stores those in a short, and they must be + positive. + + correct internal variables used for translating to termcap "%>" + feature, and translating from termcap %B to terminfo, needed by + tctest (cf: 19991211). + + amend a minor fix to acsc when loading a termcap file to separate it + from warnings needed for tic (cf: 20040710) + + modify logic in _nc_read_entry() and _nc_read_tic_entry() to allow + a termcap file to be handled via TERMINFO_DIRS. + + modify _nc_infotocap() to include non-mandatory padding when + translating to termcap. + + modify _nc_read_termcap_entry(), passing a flag in the case where + getcap is used, to reduce interactive warning messages. + +20110723 + + add a check in start_color() to limit color-pairs to 256 when + extended colors are not supported (patch by David Benjamin). + + modify setcchar to omit no-longer-needed OR'ing of color pair in + the SetAttr() macro (patch by David Benjamin). + + add kich1 to sun terminfo entry (Yuri Pankov) + + use bold rather than reverse for smso in sun-color terminfo entry + (Yuri Pankov). + + improve generation of termcap using tic/infocmp -C option, e.g., + to correspond with 4.2BSD (prompted by discussion with Yuri Pankov + regarding Schilling's test program): + + translate %02 and %03 to %2 and %3 respectively. + + suppress string capabilities which use %s, not supported by tgoto + + use \040 rather than \s + + expand null characters as \200 rather than \0 + + modify configure script to support shared libraries for DragonFlyBSD. + +20110716 + + replace an assert() in _nc_Free_Argument() with a regular null + pointer check (report/analysis by Franjo Ivancic). + + modify configure --enable-pc-files option to take into account the + PKG_CONFIG_PATH variable (report by Frederic L W Meunier). + + add/use xterm+tmux chunk from xterm #271 -TD + + resync xterm-new entry from xterm #271 -TD + + add E3 extended capability to linux-basic (Miroslav Lichvar) + + add linux2.2, linux2.6, linux3.0 entries to give context for E3 -TD + + add SI/SO change to linux2.6 entry (Debian #515609) -TD + + fix inconsistent tabset path in pcmw (Todd C. Miller). + + remove a backslash which continued comment, obscuring altos3 + definition with OpenBSD toolset (Nicholas Marriott). + +20110702 + + add workaround from xterm #271 changes to ensure that compiler flags + are not used in the $CC variable. + + improve support for shared libraries, tested with AIX 5.3, 6.1 and + 7.1 with both gcc 4.2.4 and cc. + + modify configure checks for AIX to include release 7.x + + add loader flags/libraries to libtool options so that dynamic loading + works properly, adapted from ncurses-5.7-ldflags-with-libtool.patch + at gentoo prefix repository (patch by Michael Haubenwallner). + +20110626 + + move include of nc_termios.h out of term_entry.h, since the latter + is installed, e.g., for tack while the former is not (report by + Sven Joachim). + +20110625 + + improve cleanup() function in lib_tstp.c, using _exit() rather than + exit() and checking for SIGTERM rather than SIGQUIT (prompted by + comments forwarded by Nicholas Marriott). + + reduce name pollution from term.h, moving fallback #define's for + tcgetattr(), etc., to new private header nc_termios.h (report by + Sergio NNX). + + two minor fixes for tracing (patch by Vassili Courzakis). + + improve trace initialization by starting it in use_env() and + ripoffline(). + + review old email, add details for some changelog entries. + +20110611 + + update minix entry to minix 3.2 (Thomas Cort). + + fix a strict compiler warning in change to wattr_get (cf: 20110528). + +20110604 + + fixes for MirBSD port: + + set default prefix to /usr. + + add support for shared libraries in configure script. + + use S_ISREG and S_ISDIR consistently, with fallback definitions. + + add a few more checks based on ncurses/link_test. + + modify MKlib_gen.sh to handle sp-funcs renaming of NCURSES_OUTC type. + +20110528 + + add case to CF_SHARED_OPTS for Interix (patch by Markus Duft). + + used ncurses/link_test to check for behavior when the terminal has + not been initialized and when an application passes null pointers + to the library. Added checks to cover this (prompted by Redhat + #707344). + + modify MKlib_gen.sh to make its main() function call each function + with zero parameters, to help find inconsistent checking for null + pointers, etc. + +20110521 + + fix warnings from clang 2.7 "--analyze" + +20110514 + + compiler-warning fixes in panel and progs. + + modify CF_PKG_CONFIG macro, from changes to tin -TD + + modify CF_CURSES_FUNCS configure macro, used in test directory + configure script: + + work around (non-optimizer) bug in gcc 4.2.1 which caused + test-expression to be omitted from executable. + + force the linker to see a link-time expression of a symbol, to + help work around weak-symbol issues. + +20110507 + + update discussion of MKfallback.sh script in INSTALL; normally the + script is used automatically via the configured makefiles. However + there are still occasions when it might be used directly by packagers + (report by Gunter Schaffler). + + modify misc/ncurses-config.in to omit the "-L" option from the + "--libs" output if the library directory is /usr/lib. + + change order of tests for curses.h versus ncurses.h headers in the + configure scripts for Ada95 and test-directories, to look for + ncurses.h, from fixes to tin -TD + + modify ncurses/tinfo/access.c to account for Tandem's root uid + (report by Joachim Schmitz). + +20110430 + + modify rules in Ada95/src/Makefile.in to ensure that the PIC option + is not used when building a static library (report by Nicolas + Boulenguez): + + Ada95 build-fix for big-endian architectures such as sparc. This + undoes one of the fixes from 20110319, which added an "Unused" member + to representation clauses, replacing that with pragmas to suppress + warnings about unused bits (patch by Nicolas Boulenguez): + +20110423 + + add check in test/configure for use_window, use_screen. + + add configure-checks for getopt's variables, which may be declared + as different types on some Unix systems. + + add check in test/configure for some legacy curses types of the + function pointer passed to tputs(). + + modify init_pair() to accept -1's for color value after + assume_default_colors() has been called (Debian #337095). + + modify test/background.c, adding commmand-line options to demonstrate + assume_default_colors() and use_default_colors(). + +20110416 + + modify configure script/source-code to only define _POSIX_SOURCE if + the checks for sigaction and/or termios fail, and if _POSIX_C_SOURCE + and _XOPEN_SOURCE are undefined (report by Valentin Ochs). + + update config.guess, config.sub + +20110409 + + fixes to build c++ binding with clang 3.0 (patch by Alexander + Kolesen). + + add check for unctrl.h in test/configure, to work around breakage in + some ncurses packages. + + add "--disable-widec" option to test/configure script. + + add "--with-curses-colr" and "--with-curses-5lib" options to the + test/configure script to address testing with very old machines. + 20110404 5.9 release for upload to ftp.gnu.org 20110402 @@ -100,7 +1454,7 @@ it is not possible to add this information. + modify configure script to provide value for HTML_DIR in Ada95/gen/Makefile.in, which depends on whether the Ada95 binding is distributed separately (report by Nicolas Boulenguez). - + modify configure script to add -g and/or -O3 to ADAFLAGS if the + + modify configure script to add "-g" and/or "-O3" to ADAFLAGS if the CFLAGS for the build has these options. + amend change from 20070324, to not add 1 to the result of getmaxx and getmaxy in the Ada binding (report by Nicolas Boulenguez for @@ -155,7 +1509,7 @@ it is not possible to add this information. 20110212 + regenerated html manpages. + use _tracef() in show_where() function of tic, to work correctly with - special case of trace configuration. + special case of trace configuration. 20110205 + add xterm-utf8 entry as a demo of the U8 feature -TD @@ -219,7 +1573,7 @@ it is not possible to add this information. version which works with termcap. + remove obsolete emacs "Local Variables" section from documentation (request by Sven Joachim). - + update doc/html/index.html to include NCURSES-Programming-HOWTO.html + + update doc/html/index.html to include NCURSES-Programming-HOWTO.html (report by Sven Joachim). 20101128 @@ -294,8 +1648,8 @@ it is not possible to add this information. Sven Joachim). + add parameterized cursor-controls to linux-basic (report by Dae) -TD > patch by Juergen Pfeifer: - + document how to build 32-bit libraries in README.MinGW - + fixes to filename computation in mk-dlls.sh.in + + document how to build 32-bit libraries in README.MinGW + + fixes to filename computation in mk-dlls.sh.in + use POSIX locale in mk-dlls.sh.in rather than en_US (report by Sven Joachim). + add a check in mk-dlls.sh.in to obtain the size of a pointer to @@ -478,7 +1832,7 @@ it is not possible to add this information. 20100417 + modify _nc_capcmp() to work with cancelled strings. + correct translation of "^" in _nc_infotocap(), used to transform - terminfo to termcap strings + terminfo to termcap strings + add configure --disable-rpath-hack, to allow disabling the feature which adds rpath options for libraries in unusual places. + improve CF_RPATH_HACK_2 by checking if the rpath option for a given @@ -1533,8 +2887,8 @@ it is not possible to add this information. that library. + add/modify null-pointer checks in several functions for SP and/or the WINDOW* parameter (report by Thorben Krueger). - + fixes for field_buffer() in formw library (see Redhat Bugzilla - #310071, patches by Miroslav Lichvar). + + fixes for field_buffer() in formw library (see Redhat #310071, + patches by Miroslav Lichvar). + improve performance of NCURSES_CHAR_EQ code (patch by Miroslav Lichvar). + update/improve mlterm and rxvt terminfo entries, e.g., for @@ -1645,7 +2999,7 @@ it is not possible to add this information. + modify configure script to quiet c++ build with libtool when the --disable-echo option is used. + modify configure script to disable ada95 if libtool is selected, - writing a warning message (addresses FreeBSD ports/114493). + writing a warning message (addresses FreeBSD #114493). + update config.guess, config.sub 20070707 @@ -2130,8 +3484,7 @@ it is not possible to add this information. + workaround for 20050806 ifdef's change to allow visbuf.c to compile when using --with-termlib --with-trace options. + improve tgetstr() by making the return value point into the user's - buffer, if provided (patch by Miroslav Lichvar (see Redhat Bugzilla - #202480)). + buffer, if provided (patch by Miroslav Lichvar (see Redhat #202480)). + correct libraries needed for foldkeys (report by Stanislav Ievlev) 20060826 @@ -2144,10 +3497,10 @@ it is not possible to add this information. source output (Debian #378783). + modify configure script to ensure that if the C compiler is used rather than the loader in making shared libraries, the $(CFLAGS) - variable is also used (Redhat Bugzilla #199369). + variable is also used (Redhat #199369). + port hashed-db code to db2 and db3. + fix a bug in tgetent() from 20060625 and 20060715 changes - (patch/analysis by Miroslav Lichvar (see Redhat Bugzilla #202480)). + (patch/analysis by Miroslav Lichvar (see Redhat #202480)). 20060805 + updated xterm function-keys terminfo to match xterm #216 -TD @@ -2939,7 +4292,7 @@ it is not possible to add this information. of cur_term if the same output was selected. This now reuses it only when setupterm() is called from tgetent(), which has no notion of separate SCREENs. Note that tgetent() must be called after initscr() - or newterm() to use this feature (Redhat Bugzilla #140326). + or newterm() to use this feature (Redhat #140326). + add a check in CF_BUILD_CC macro to ensure that developer has given the --with-build-cc option when cross-compiling (report by Alexandre Campo). @@ -3032,7 +4385,7 @@ it is not possible to add this information. entries, e.g., so it can analyze the xterm-8bit entry. + add morphos terminfo entry, improve amiga-8bit entry (Pavel Fedin). + correct translation of "%%" in terminfo format to termcap, e.g., - using "tic -C" (Redhat Bugzilla #130921). + using "tic -C" (Redhat #130921). + modified configure script CF_XOPEN_SOURCE macro to ensure that if it defines _POSIX_C_SOURCE, that it defines it to a specific value (comp.os.stratus newsgroup comment). @@ -3043,9 +4396,9 @@ it is not possible to add this information. However that did find a coding error in Assume_Default_Colors(). + modify several terminfo entries to ensure xterm mouse and cursor visibility are reset in rs2 string: hurd, putty, gnome, - konsole-base, mlterm, Eterm, screen (Debian #265784, #55637). The - xterm entries are left alone - old ones for compatibility, and the - new ones do not require this change. -TD + konsole-base, mlterm, Eterm, screen (Debian #265784, Debian #55637). + The xterm entries are left alone - old ones for compatibility, and + the new ones do not require this change. -TD 20040814 + fake a SIGWINCH in newterm() to accommodate buggy terminal emulators @@ -3076,8 +4429,8 @@ it is not possible to add this information. + modify "tic -cv" to ignore delays when comparing strings. Also modify it to ignore a canceled sgr string, e.g., for terminals which cannot properly combine attributes in one control sequence. - + corrections for gnome and konsole entries (Redhat Bugzilla #122815, - patch by Hans de Goede) + + corrections for gnome and konsole entries (Redhat #122815, patch by + Hans de Goede) > terminfo updates -TD + make ncsa-m rmacs/smacs consistent with sgr + add sgr, rc/sc and ech to syscons entries @@ -3090,7 +4443,7 @@ it is not possible to add this information. > terminfo updates -TD + add xterm-pc-fkeys + review/update gnome and gnome-rh90 entries (prompted by Redhat - Bugzilla #122815). + #122815). + review/update konsole entries + add sgr, correct sgr0 for kterm and mlterm + correct tsl string in kterm @@ -3503,7 +4856,7 @@ it is not possible to add this information. generated when cross-compiling for DJGPP. + modify infocmp to omit check for $TERM for operations that do not require it, e.g., "infocmp -e" used to build fallback list (report by - Koblinger Egmont). + Egmont Koblinger). 20031004 + add terminfo entries for DJGPP. @@ -4204,7 +5557,7 @@ it is not possible to add this information. + add a check in kgetch() for cooked characters in the fifo to avoid calling fifo_push() when a KEY_RESIZE is available (report/analysis by Sam Varshavchik ). - + fix an overlooked case for bugzilla #68199 (Philippe Blain). + + fix an overlooked case for Redhat #68199 (Philippe Blain). + ensure clearerr() is called before using ferror() e.g., in lib_screen.c (report by Philippe Blain). @@ -4212,7 +5565,7 @@ it is not possible to add this information. + modify lib_screen.c and lib_newwin.c to maintain the SCREEN-specific pointers for curscr/stdscr/newscr when scr_save() and scr_restore() modify the global curscr/stdscr/newscr variables. Fixes Redhat - bugzilla #68199 dated 2002-07-07. + #68199. + add checks for null pointer in calls to tparm() and tgoto() based on FreeBSD bug report. If ncurses were built with termcap support, and the first call to tgoto() were a zero-length string, the result would @@ -4245,7 +5598,7 @@ it is not possible to add this information. Olaf Buddenhagen ). + modified wresize() to ensure that a failed realloc will not corrupt the window structure, and to make subwindows fit within the resized - window (completes Debian #87678, #101699) + window (completes Debian #87678, Debian #101699) 20020803 + fix an off-by-one in lib_pad.c check for limits of pad (patch by @@ -4940,9 +6293,9 @@ it is not possible to add this information. which may be in libutf8. + remove some unnecessary text from curs_extend.3x and default_colors.3x which caused man-db to make incorrect symbolic - links (Debian bug report #99550). + links (Debian #99550). + add configure check if cast for _IO_va_list is needed to compile - C++ vscan code (Debian bug report #97945). + C++ vscan code (Debian #97945). > several patches from Sven Verdoolaege: + correct code that used non-standard auto-initialization of a struct, which gcc allows (report by Larry Virden). @@ -5077,7 +6430,7 @@ it is not possible to add this information. + add some examples of customizing screen's terminfo: screen.xterm-xfree86, screen.xterm-r6, screen.teraterm -TD + modify screen's terminfo entry to match the khome/kend in screen - 3.09.08 (Debian bug report #92215). + 3.09.08 (Debian #92215). + correct a memory leak in forms library (report by Stefan Vogtner ) (patch by Juergen Pfeifer). @@ -5091,12 +6444,12 @@ it is not possible to add this information. + add .cc.ii rule to c++ makefile, to get preprocessor output for debugging. + correct configure script handling of @keyword@ substitutions when the - --with-manpage-renames option is given (cf: 20000715, fixes Debian - bug #89939). + --with-manpage-renames option is given (cf: 20000715, fixes Debian + #89939). + report stack underflow/overflow in tparm() when tic -cv option is given. + remove spurious "%|" operator from xterm-xfree86 terminfo entry, - (reported by Adam Costello , Debian bug #89222). + (reported by Adam Costello , Debian #89222). 20010310 + cleanup of newdemo.c, fixing some ambiguous expressions noted by gcc @@ -5800,7 +7153,7 @@ it is not possible to add this information. + correct spelling error in terminfo entry name: bq300-rv was given as bg300-rv in esr's version. + modify redrawwin() macro so its parameter is fully parenthesized - (fixes Debian bug report #61088). + (fixes Debian #61088). + correct formatting error in dump_entry() which set incorrect column value when no newline trimming was needed at the end of an entry, before appending "use=" clauses (cf: 960406). @@ -6530,7 +7883,7 @@ it is not possible to add this information. handling in lynx (reported by Kim DeVaughn). 990306 pre-release - + add -G option to tic and infocmp, to reverse the -g option. + + add -G option to tic and infocmp, to reverse the "-g" option. + recode functions in name_match.c to avoid use of strncpy, which caused a 4-fold slowdown in tic (cf: 980530). + correct a few warnings about sign-extension in recent changes. @@ -6901,7 +8254,7 @@ it is not possible to add this information. since that is a little more efficient. + minor correction to infocmp to avoid displaying "difference" between two capabilities that are rendered in equivalent forms. - + add -g option to tic/infocmp to force character constants to be + + add "-g" option to tic/infocmp to force character constants to be displayed in quoted form. Otherwise their decimal values are shown. + modify setupterm so that cancelled strings are treated the same as absent strings, cancelled and absent booleans false (does not affect @@ -8979,15 +10332,18 @@ it is not possible to add this information. + correction to #317. > patch 317 (ESR): + re-add _nc_hash_map - + modify EmitRange to maintain position as per original design. - + add hashtest.c, program to time the hashmap optimization. + + modify EmitRange to maintain position as per original design + (patch by A. Lukyanov). + + modify test/ncurses.c and tputs, etc., to allow trace counting + output characters. + + add hashtest.c program to time the hashmap optimization. > patch 316 (ESR): + add logic to deal with magic-cookie (how was this tested?) (lib_doupdate.c). + add ncurses.c driver for magic-cookie, some fixes to ncurses.c > patch 315 (ESR): - + merged Alexander V Lukyanov's patch to use ech and rep - untested - (lib_doupdate.c). + + merge changes to lib_doupdate.c to use ech and rep - untested + (patch by Alexander V Lukyanov). + modified handling of interrupted system calls - untested (lib_getch.c, lib_twait.c). + new function _nc_mvcur_resume() @@ -9059,12 +10415,12 @@ it is not possible to add this information. + corrected typo in dtterm description. > patch 313 (ESR): + add dtterm description - + clarify ncurses 'i' test (drop vscanf subtest) + + clarify ncurses 'i' test (drop mvwscanw subtest) 960810 - snapshot + correct nl()/nonl() to work as per SVr4 & XSI. + minor fixes to ncurses.c (use 'noraw()', mvscanw return-code) - + refine configure-test for -g option (Tim Mooney). + + refine configure-test for "-g" option (Tim Mooney). + correct interaction between O_BLANK and NEW_LINE request in form library (Juergen Pfeifer) @@ -9073,7 +10429,8 @@ it is not possible to add this information. > patch 312 (ESR): correct terminfo.src corrupted by #310 > patch 311 (ESR): - + fix idlok() and idcok() and the default of the idlok switch. + + fix idlok() and idcok() and the default of the idlok switch (report + by Ville Sulko). 960803 - snapshot + corrected tparm to handle capability strings without explicit pop @@ -9083,7 +10440,7 @@ it is not possible to add this information. > patch 310 (ESR): + documentation and prototyping errors for has_color, immedok and idcok (reported by William P Setzer ) - + updated qnx terminfo entry (by Michael Hunter) + + updated qnx terminfo entry (patch by Michael Hunter) 960730 + eliminate quoted includes in ncurses subdirectory, ensure config.h @@ -9095,7 +10452,7 @@ it is not possible to add this information. + call cbreak() in initscr(), as per XSI & SVr4. + turn off hardware echo in initscr() as per XSI & SVr4 > patch 309 (ESR): - + terminfo changes (9.3.10), from BRL + + terminfo changes (9.3.9), from BRL + add more checks to terminfo parser. + add more symbols to infocmp. @@ -9114,6 +10471,7 @@ it is not possible to add this information. > patch 308 (ESR): + terminfo changes (9.3.8) + modified logic of error-reporting in terminfo parser + + fix option-processing bug in toe. 960713 - snapshot + always check for since ISC needs it to declare @@ -9122,9 +10480,19 @@ it is not possible to add this information. by Juergen Pfeifer, Mike Long) + add LOCAL_LDFLAGS2 symbol (Juergen Pfeifer) + corrected prototype for delay_output() -- bump ABI to 3.2 - + terminfo patches #306/307 (ESR). + + patch 307 (ESR): + + enable more translations of nonstandard caps, and document them. + + misc/terminfo.src update to 9.13.8 + + patch 306 (ESR): + moved logic that filters out rmul and rmso from setupterm to newterm where it is less likely to interfere with termcap applications. + + cosmetic fixes to test/ncurses.c + + modify open() call in ncurses/read_entry.c to use O_RDONLY symbol + rather than constant (report by mib). + + misc/terminfo.src sgr0 and acsc changes (report by Philippe De + Muyter). + + modify ncurses/comp_parse.c so that entries containing a "+" can + have missing rmcup vs smcup. 960707 + rollback ESR's #305 change to terminfo.src (it breaks existing @@ -9139,7 +10507,6 @@ it is not possible to add this information. + make lib_vidattr.c more readable using macros. + filter out rmul, rmso that conflict with sgr0 when reading terminal descriptions. - + added sanity-checking of various paired string attributes (ESR). + work around autoconf bug, force $INSTALL to absolute path (reported by Zeyd). + modify man-page install for BSDI to install preformatted .0 files @@ -9152,6 +10519,12 @@ it is not possible to add this information. + disable scrollok during the ncurses 'p' test; if it is enabled the stdscr will scroll when putting the box-corners in the lower-right of the screen. + > patch 305 (ESR): + + added sanity-checking of various paired string attributes. + + misc/terminfo.src update to 9.13.7 (report by A. Lukyanov). + + modify man/Makefile.in to make terminfo.5 during normal build. + > patch 304 (ESR): + + corrected allocation-length for $HOME/.terminfo path. 960629 - snapshot + check return code of _nc_mvcur_scrolln() in _nc_scroll_optimize() for @@ -9234,6 +10607,7 @@ it is not possible to add this information. + better fix for nvi refresh-bug (Rick Marshall) + fix for bug in handling of interrupted keystroke waits, (Werner Fleck). + + misc/ncurses-intro.html syntax fix (Kajiyama Tamito). 960601 - snapshot + auto-configure man-page compression-format and renames for Debian. @@ -9248,7 +10622,7 @@ it is not possible to add this information. + enhancement to the control over the new PC-style soft key format. allow caller now to select whether or not one wants to have the index-line; see curs_slk.3x for documentation (Juergen Pfeifer). - + typos, don't use inline with -g (Philippe De Muyter) + + typos, don't use inline with "-g" (Philippe De Muyter) + fixes for menus & wattr-, slk-functions (Juergen Pfeifer) 960526 - snapshot @@ -9263,6 +10637,9 @@ it is not possible to add this information. + include sys/types.h in case stdlib.h does not declare size_t. + fixes for makefile (Tim Mooney) + fixes for menus & forms (Juergen Pfeifer) + > patch 302 (ESR): + + improve hash function (suggested by Alexander V Lukyanov). + + 9.13.4 update for terminfo.src 960518 - snapshot + revised ncurses.c panner test, let pad abut all 4 sides of screen. @@ -9275,6 +10652,8 @@ it is not possible to add this information. confusion, and made this check for the /usr/lib/terminfo pre-existing directory. > patches 299-301 (ESR): + + html fixes (Phillippe de Muyter). + + fix typo in ncurses-intro.html (report by Fabrizio Polacco). + added hashmap.c + mods to tracing, especially for ACS chars. + corrected off-by-one in IDCtransform. @@ -9294,13 +10673,21 @@ it is not possible to add this information. > patches 297, 298 (ESR): + implement TERMINFO_DIRS, and -o option of tic + added TRACE_IEVENT - + removed boolean version of 'getm' - + added lib_print.c (for Rick Marshall) - + added has_key() + + fix REQ_TOGGLE_ITEM in menu/menu_driver.c; it could select but not + deselect. + + added lib_print.c (request by Rick Marshall). + + added has_key() (request by Juergen Pfeifer). + + do not issue clrtoeol or clrtobot if the relevant portion of the line + is already blank (analysis by Keith Bostic). + + add parentheses for parameters of COLOR_PAIR and PAIR_NUMBER macros + (analysis by Jurgen Eidt). + + update screen's notion of cursor position in endwin() (analysis by + Alexander Lukyanov). + added 't' to ncurses.c test. + moved delay_output() to lib_tputs.c + removed tparam() (was added in 1.9.9, but conflicts with emacs and is not part of X/Open Curses). + + removed boolean version of 'getm'. + misc cursor & optimization fixes. 960504 - snapshot @@ -9326,11 +10713,20 @@ it is not possible to add this information. + make TIOCGWINSZ configure test less stringent, in case user configures via terminal that cannot get screen size. > patches 295, 296 (ESR): - + new "-e" option of tic. - + fix for "infocmp -e". - + restore working-directory in read_termcap.c + split lib_kernel.c, lib_setup.c and names.c in order to reduce overhead for programs that use only termcap features. + + new "-e" and "-h" options of tic (request by Tony Nugent). + + fix bug in mandatory-delay logic in lib_tputs.c (report by Sven + Verdoolaege). + + fix for "infocmp -e" to emit correct initializers (reported by Manual + J Novoa III). + + restore working-directory in read_termcap.c (report by Kayvan + Sylvan). + + use "-h" option on Solaris when generating shared libraries on + Solaris 2.5 to record the library name in the file, for assisting + the loader (patch by Scott Kramer). + + undo patch #294 changes to form and menu libraries (request by + Juergen Pfeifer). 960418 - snapshot + use autoconf 2.9 @@ -9338,10 +10734,22 @@ it is not possible to add this information. definitions via , modified macros in lib_raw.c to avoid K&R-style substitution) > patches 293, 294 (ESR): - + mods to wgetch() in cooked mode - + corrected askuser() logic in tset - + correct interaction of endwin() with mouse processing + + rewrite wsyncup(), wsyncdown(), as well as small fixes to form and + menu libraries to fix echo-breakage introduced by 1.8.9, 1.9.9e + changes (patches by Juergen Pfeifer). + + fix compile under QNX 4.2 by defining ONLCR in lib_raw.c when + __QNX__ is defined (patch by Michael Hunter). + + modify setupterm() to match documentation for its return value, fix + newterm to work with this change (report by Emmet Lazich). + + add checks in getch() for error, return ERR as appropriate (report by + Emmet Lazich). + + mods to wgetch() in cooked mode (report by Pete Seebach). + + corrected askuser() logic in tset (patch by Remco Treffkorn). + + correct interaction of endwin() with mouse processing (report by + Michael Elkins). + added trace support for TTY flags + + update terminfo.src to 9.13.1 + + FreeBSD console entries (patch by Andrew Chernov). 960406 + fixes for NeXT, ISC and HPUX auto-configure diff --git a/contrib/ncurses/README b/contrib/ncurses/README index 56bc38586f48..c509352b785e 100644 --- a/contrib/ncurses/README +++ b/contrib/ncurses/README @@ -1,5 +1,5 @@ ------------------------------------------------------------------------------- --- Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. -- +-- Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. -- -- -- -- Permission is hereby granted, free of charge, to any person obtaining a -- -- copy of this software and associated documentation files (the -- @@ -25,7 +25,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: README,v 1.23 2006/04/22 22:19:37 tom Exp $ +-- $Id: README,v 1.25 2012/08/11 20:11:26 tom Exp $ ------------------------------------------------------------------------------- README file for the ncurses package @@ -78,6 +78,10 @@ features are provided by ifdef's in the header files. The wide-character library interfaces are not binary-compatible with the non-wide-character version. +If you configure using the --enable-reentrant option, a "t" is appended to the +library names (e.g., libncursest.a) and the resulting libraries have a +different binary interface which makes the ncurses interface more "opaque". + The ncurses libraries implement the curses API. The panel, menu and forms libraries implement clones of the SVr4 panel, menu and forms APIs. The source code for these lives in the `ncurses', `panel', `menu', and `form' directories @@ -122,8 +126,9 @@ The utilities are as follows: tic -- terminfo source to binary compiler infocmp -- terminfo binary to source decompiler/comparator clear -- emits clear-screen for current terminal + tabs -- set tabs on a terminal tput -- shell-script access to terminal capabilities. - toe -- table of entries utility + toe -- table of entries utility tset -- terminal-initialization utility The first two (tic and infocmp) are used for manipulating terminfo @@ -153,8 +158,10 @@ Thomas Dickey (maintainer for 1.9.9g through 4.1, resuming with FSF's 5.0): configuration scripts, porting, mods to adhere to XSI Curses in the areas of background color, terminal modes. Also memory leak testing, the wresize, default colors and key definition extensions and numerous - bug fixes (more than half of those enumerated in NEWS beginning with - the internal release 1.8.9). + bug fixes -- more than half of those enumerated in NEWS beginning with + the internal release 1.8.9, see + + http://invisible-island.net/personal/changelogs.html Florian La Roche (official maintainer for FSF's ncurses 4.2) Beginning with release 4.2, ncurses is distributed under an MIT-style diff --git a/contrib/ncurses/README.MinGW b/contrib/ncurses/README.MinGW index d111b3877840..f7d789777a1d 100644 --- a/contrib/ncurses/README.MinGW +++ b/contrib/ncurses/README.MinGW @@ -1,5 +1,5 @@ ------------------------------------------------------------------------------- --- Copyright (c) 2008-2010,2011 Free Software Foundation, Inc. -- +-- Copyright (c) 2008-2011,2012 Free Software Foundation, Inc. -- -- -- -- Permission is hereby granted, free of charge, to any person obtaining a -- -- copy of this software and associated documentation files (the -- @@ -25,7 +25,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: README.MinGW,v 1.5 2011/02/26 16:57:17 tom Exp $ +-- $Id: README.MinGW,v 1.9 2012/09/22 17:46:04 tom Exp $ -- Author: Juergen Pfeifer ------------------------------------------------------------------------------- @@ -39,7 +39,7 @@ from http://www.mingw.org To build ncurses for native Windows, you need the MinGW toolchain. The original MinGW toolchain from the above site is only for 32-Bit Windows. As Windows Server - and also regular workstations - are moving to 64-Bit, it -seems to be reasonable to have a toolchain that supports both architectures. +seems to be reasonable to have a toolchain that supports both architectures. I recommend to use the TDM gcc toolchain which you can find at http://tdm-gcc.tdragon.net/download. Go to the download section and select the bundle installer for tdm64 (MinGW-w64). This installs a multilib version @@ -47,7 +47,7 @@ of the gcc toolchain that can compile for native 32- and 64-Bit Windows versions. It also comes with a working pthread implementation. The latest config and build scripts we use for MinGW have only been tested -for the gcc-4.4 compiler toolchain (or better). +for the gcc-4.6.1 compiler toolchain (or better). Using MinGW is a pragmatic decision, it's the easiest way to port this heavily UNIX based sourcebase to native Windows. The goal is of course @@ -55,22 +55,13 @@ to provide the includes, libraries and DLLs to be used with the more common traditional development environments on Windows, mainly with Microsoft Visual Studio. -If you start a bash from the MSYS environment, please make sure that the -Microsoft Development tools are in your PATH right after the MinGW -tools. The LIB.EXE tool is the only one needed. You need this only if -you want to build DLLs that work with native Windows programs. If you -don't have any Microsoft Development tools on your machine, consider -at least to get the free "Visual C++ 2010 Express Edition". -It contains the LIB.EXE tool. You may also use this compiler to test -writing native Windows programs using the ncurses DLLs without using -MinGW then for writing apps. - -It is necessary to unset the TERM environment variable, to activate the -Windows console-driver. +The TERM environment variable must be set specially to active the Windows +console-driver. The driver checks if TERM is set to "#win32con" (explicit +use) or if TERM is unset or empty (implicit). Please also make sure that MSYS links to the correct directory containing your MinGW toolchain. For TDM this is usually C:\MinGW64. In your Windows -CMD.EXE command shell go to the MSYS root directory (most probably +CMD.EXE command shell go to the MSYS root directory (most probably C:\MSYS or C:\MSYS\1.0) and verify, that there is a junction point mingw that points to the MinGW toolchain directory. If not, delete the mingw directory and use the mklink command (or the linkd.exe utility on older @@ -79,62 +70,60 @@ Windows) to create the junction point. This code requires WindowsNT 5.1 or better, which means on the client Windows XP or better, on the server Windows Server 2003 or better. -In order to build ncurses for the planned interop layer with .NET, we -recommend to use these options with configure +I recommend using libtool to build ncurses on MinGW, because libtool +knows exactly how to build dll's on Windows for use with MinGW. +To build a modern but still small footprint ncurses that provides +hooks for interop, I recommend using these options: + + --with-libtool --disable-home-terminfo - --enable-reentrant + --enable-database + --disable-termcap --enable-sp-funcs --enable-term-driver --enable-interop - --with-pthread (if using TDM toolchain as recommended) -This is the configuration commandline as I'm using it at the moment: +This is the configuration commandline as I'm using it at the moment (assuming +environment variable MINGW_ROOT to hold the root directory name of your MinGW +build): ./configure \ - --prefix=/mingw \ - --without-cxx-binding \ + --prefix=$MINGW_ROOT \ + --with-cxx \ --without-ada \ --enable-warnings \ --enable-assertions \ - --enable-reentrant \ - --with-debug \ - --with-normal \ --disable-home-terminfo \ + --enable-database \ --enable-sp-funcs \ --enable-term-driver \ --enable-interop \ - --with-pthread + --disable-termcap \ + --with-progs \ + --with-libtool \ + --enable-pc-files \ + --mandir=$MINGW_ROOT/share/man -If you are on a 64-Bit Windows system and want to build a 32-Bit version -of ncurses, you may use this commandline for configuration (when using -the TDM toolchain): +Please note that it is also necessary to set this environment variable: -CC="gcc -m32" LD="ld -m32" ./configure \ - --prefix=/mingw \ - --without-cxx-binding \ - --without-ada \ - --enable-warnings \ - --enable-assertions \ - --enable-reentrant \ - --with-debug \ - --with-normal \ - --disable-home-terminfo \ - --enable-sp-funcs \ - --enable-term-driver \ - --enable-interop \ - --with-pthread +export PATH_SEPARATOR=";" + +in order to parse the terminfo paths correctly. Terminfo paths should +always be separated by a seeeemicolon,even when running under MSYS. + +To support regular expressions properly, ncurses under MinGW should be +linked against the gnurx regex library, which must be built separately +under MinGW. See + + ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/libgnurx-src-2.5.zip All the options above are - like the whole Windows support - experimental. -In order to build the DLLs, after your regular make you must call - - make dlls - A lot is still TODO, e.g.: - - Wide Character support + - Wide Character support (display is workable, but input untested) The Win32Con driver should actually only use Unicode in the future. - Thread support (locking). If using TDM toolchain this is done by @@ -145,5 +134,5 @@ A lot is still TODO, e.g.: - Workarounds for MinGW's filesystem access are necessary to make infocmp work (though tic works). -To support terminfo, we need to have an ioctl() simulation for the -serial and networked Terminals. +To support terminfo, we would need to have an ioctl() simulation for the +serial and networked terminals. diff --git a/contrib/ncurses/aclocal.m4 b/contrib/ncurses/aclocal.m4 index 9a828559d4ab..e73959ecc239 100644 --- a/contrib/ncurses/aclocal.m4 +++ b/contrib/ncurses/aclocal.m4 @@ -1,5 +1,5 @@ dnl*************************************************************************** -dnl Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * +dnl Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. * dnl * dnl Permission is hereby granted, free of charge, to any person obtaining a * dnl copy of this software and associated documentation files (the * @@ -28,7 +28,7 @@ dnl*************************************************************************** dnl dnl Author: Thomas E. Dickey 1995-on dnl -dnl $Id: aclocal.m4,v 1.553 2011/03/31 23:35:38 tom Exp $ +dnl $Id: aclocal.m4,v 1.686 2014/02/10 00:37:02 tom Exp $ dnl Macros used in NCURSES auto-configuration script. dnl dnl These macros are maintained separately from NCURSES. The copyright on @@ -62,7 +62,33 @@ AC_DEFUN([AM_LANGINFO_CODESET], fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_ADA_INCLUDE_DIRS version: 6 updated: 2010/02/26 19:52:07 +dnl CF_ACVERSION_CHECK version: 4 updated: 2013/03/04 19:52:56 +dnl ------------------ +dnl Conditionally generate script according to whether we're using a given autoconf. +dnl +dnl $1 = version to compare against +dnl $2 = code to use if AC_ACVERSION is at least as high as $1. +dnl $3 = code to use if AC_ACVERSION is older than $1. +define([CF_ACVERSION_CHECK], +[ +ifdef([AC_ACVERSION], ,[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])dnl +ifdef([m4_version_compare], +[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])], +[CF_ACVERSION_COMPARE( +AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])), +AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl +dnl --------------------------------------------------------------------------- +dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53 +dnl -------------------- +dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1, +dnl MAJOR2, MINOR2, TERNARY2, +dnl PRINTABLE2, not FOUND, FOUND) +define([CF_ACVERSION_COMPARE], +[ifelse(builtin([eval], [$2 < $5]), 1, +[ifelse([$8], , ,[$8])], +[ifelse([$9], , ,[$9])])])dnl +dnl --------------------------------------------------------------------------- +dnl CF_ADA_INCLUDE_DIRS version: 8 updated: 2013/10/14 04:24:07 dnl ------------------- dnl Construct the list of include-options for the C programs in the Ada95 dnl binding. @@ -76,7 +102,7 @@ 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 + if test x$prefix != x/usr ; then ACPPFLAGS="$ACPPFLAGS -I\${includedir}" fi else @@ -291,7 +317,7 @@ dnl $1 = libraries to add, with the "-l", etc. dnl $2 = variable to update (default $LIBS) AC_DEFUN([CF_ADD_LIBS],[ifelse($2,,LIBS,[$2])="$1 [$]ifelse($2,,LIBS,[$2])"])dnl dnl --------------------------------------------------------------------------- -dnl CF_ADD_SUBDIR_PATH version: 3 updated: 2010/07/03 20:58:12 +dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05 dnl ------------------ dnl Append to a search-list for a nonstandard header/lib-file dnl $1 = the variable to return as result @@ -301,9 +327,9 @@ dnl $4 = the directory under which we will test for subdirectories dnl $5 = a directory that we do not want $4 to match AC_DEFUN([CF_ADD_SUBDIR_PATH], [ -test "$4" != "$5" && \ +test "x$4" != "x$5" && \ test -d "$4" && \ -ifelse([$5],NONE,,[(test $5 = NONE || test "$4" != "$5") &&]) { +ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) { test -n "$verbose" && echo " ... testing for $3-directories under $4" test -d $4/$3 && $1="[$]$1 $4/$3" test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2" @@ -313,76 +339,6 @@ ifelse([$5],NONE,,[(test $5 = NONE || test "$4" != "$5") &&]) { } ])dnl dnl --------------------------------------------------------------------------- -dnl CF_ANSI_CC_CHECK version: 10 updated: 2010/10/23 15:52:32 -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: 4 updated: 2008/03/23 14:48:54 -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_MSG_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_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31 dnl -------------- dnl Allow user to disable a normally-on option. @@ -465,7 +421,7 @@ fi AC_SUBST(ARFLAGS) ]) dnl --------------------------------------------------------------------------- -dnl CF_AWK_BIG_PRINTF version: 3 updated: 2008/12/27 12:30:03 +dnl CF_AWK_BIG_PRINTF version: 4 updated: 2011/10/30 17:09:50 dnl ----------------- dnl Check if awk can handle big strings using printf. Some older versions of dnl awk choke on large strings passed via "%s". @@ -479,8 +435,8 @@ AC_DEFUN([CF_AWK_BIG_PRINTF], eval $2=no ;; *) #(vi - if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' \ - | $AWK '{ printf "%d\n", length([$]0); }' | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then + if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \ + | $AWK '{ printf "%d\n", length([$]0); }' 2>/dev/null | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then eval $2=yes else eval $2=no @@ -536,7 +492,7 @@ else AC_MSG_RESULT(no) fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_BOOL_SIZE version: 12 updated: 2006/12/16 12:33:30 +dnl CF_BOOL_SIZE version: 13 updated: 2013/04/13 18:03:21 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. @@ -570,7 +526,7 @@ AC_CACHE_VAL(cf_cv_type_of_bool,[ #endif -main() +int main() { FILE *fp = fopen("cf_test.out", "w"); if (fp != 0) { @@ -604,7 +560,7 @@ if test "$cf_cv_type_of_bool" = unknown ; then fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15 +dnl CF_BUILD_CC version: 7 updated: 2012/10/06 15:31:55 dnl ----------- dnl If we're cross-compiling, allow the user to override the tools and their dnl options. The configure script is oriented toward identifying the host @@ -614,7 +570,8 @@ dnl dnl $1 = default for $CPPFLAGS dnl $2 = default for $LIBS AC_DEFUN([CF_BUILD_CC],[ -AC_REQUIRE([CF_PROG_EXT]) +CF_ACVERSION_CHECK(2.52,, + [AC_REQUIRE([CF_PROG_EXT])]) if test "$cross_compiling" = yes ; then # defaults that we might want to override @@ -695,7 +652,33 @@ AC_SUBST(BUILD_EXEEXT) AC_SUBST(BUILD_OBJEXT) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00 +dnl CF_CC_ENV_FLAGS version: 1 updated: 2012/10/03 05:25:49 +dnl --------------- +dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content +dnl into CC. This will not help with broken scripts that wrap the compiler with +dnl options, but eliminates a more common category of user confusion. +AC_DEFUN([CF_CC_ENV_FLAGS], +[ +# This should have been defined by AC_PROG_CC +: ${CC:=cc} + +AC_MSG_CHECKING(\$CC variable) +case "$CC" in #(vi +*[[\ \ ]]-[[IUD]]*) + AC_MSG_RESULT(broken) + AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options) + # humor him... + cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'` + CC=`echo "$CC" | sed -e 's/[[ ]].*//'` + CF_ADD_CFLAGS($cf_flags) + ;; +*) + AC_MSG_RESULT(ok) + ;; +esac +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_CFG_DEFAULTS version: 10 updated: 2013/09/07 13:54:05 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 @@ -713,7 +696,7 @@ 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*|freebsd*|linux*|cygwin*|k*bsd*-gnu) + openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*) prefix=/usr ;; *) prefix=$ac_default_prefix @@ -749,30 +732,51 @@ AC_MSG_RESULT($includedir) fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52 +dnl CF_CGETENT version: 5 updated: 2012/10/06 17:56:13 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_CACHE_CHECK(for terminal-capability database functions,cf_cv_cgetent,[ AC_TRY_LINK([ #include ],[ char temp[128]; char *buf = temp; char *db_array = temp; - cgetent(&buf, /* int *, */ &db_array, "vt100"); + cgetent(&buf, &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) + +if test "$cf_cv_cgetent" = yes +then + AC_DEFINE(HAVE_BSD_CGETENT,1,[Define to 1 if we have BSD cgetent]) +AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[ +AC_TRY_LINK([ +#include ],[ + char temp[128]; + char *buf = temp; +#ifndef _NETBSD_SOURCE /* given, since April 2004 in stdlib.h */ + const char *db_array = temp; + cgetent(&buf, &db_array, "vt100"); +#endif + cgetcap(buf, "tc", '='); + cgetmatch(buf, "tc"); + ], + [cf_cv_cgetent_const=yes], + [cf_cv_cgetent_const=no]) +]) + if test "$cf_cv_cgetent_const" = yes + then + AC_DEFINE_UNQUOTED(CGETENT_CONST,const,[Define to const if needed for some BSD cgetent variations]) + fi +fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59 +dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03 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. @@ -795,7 +799,7 @@ else system_name="`(hostname) 2>/dev/null`" fi fi -test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name") +test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the 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" @@ -908,7 +912,82 @@ if test "$cf_cv_check_gpm_wgetch" != yes ; then fi ])])dnl dnl --------------------------------------------------------------------------- -dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18 +dnl CF_CHECK_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09 +dnl ------------------------ +dnl Show the version of libtool +dnl +dnl Save the version in a cache variable - this is not entirely a good thing, +dnl but the version string from libtool is very ugly, and for bug reports it +dnl might be useful to have the original string. +AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[ +if test -n "$LIBTOOL" && test "$LIBTOOL" != none +then + AC_MSG_CHECKING(version of $LIBTOOL) + CF_LIBTOOL_VERSION + AC_MSG_RESULT($cf_cv_libtool_version) + if test -z "$cf_cv_libtool_version" ; then + AC_MSG_ERROR(This is not GNU libtool) + fi +else + AC_MSG_ERROR(GNU libtool has not been found) +fi +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_CHECK_WCHAR_H version: 1 updated: 2011/10/29 15:01:05 +dnl ---------------- +dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED +AC_DEFUN([CF_CHECK_WCHAR_H],[ +AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[ +AC_TRY_COMPILE( +[ +#include +#include +],[ + wint_t foo = 0; + int bar = iswpunct(foo)], + [cf_cv_wchar_h_okay=yes], + [cf_cv_wchar_h_okay=no])]) + +if test $cf_cv_wchar_h_okay = no +then + CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED) +fi +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35 +dnl ----------------- +dnl Check if the given compiler is really clang. clang's C driver defines +dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does +dnl not ignore some gcc options. +dnl +dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to +dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from +dnl the wrappers for gcc and g++ warnings. +dnl +dnl $1 = GCC (default) or GXX +dnl $2 = CLANG_COMPILER (default) +dnl $3 = CFLAGS (default) or CXXFLAGS +AC_DEFUN([CF_CLANG_COMPILER],[ +ifelse([$2],,CLANG_COMPILER,[$2])=no + +if test "$ifelse([$1],,[$1],GCC)" = yes ; then + AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler) + cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])" + ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments" + AC_TRY_COMPILE([],[ +#ifdef __clang__ +#else +make an error +#endif +],[ifelse([$2],,CLANG_COMPILER,[$2])=yes +cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments" +],[]) + ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS" + AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2])) +fi +]) +dnl --------------------------------------------------------------------------- +dnl CF_CPP_PARAM_INIT version: 6 updated: 2012/10/06 17:56:13 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 @@ -932,7 +1011,7 @@ TEST::TEST(int x = 1) // some compilers do not like second initializer { value = x; } -void main() { } +int main() { } ], [cf_cv_cpp_param_init=yes], [cf_cv_cpp_param_init=no], @@ -940,10 +1019,10 @@ void main() { } AC_LANG_RESTORE ]) fi -test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT) +test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT,1,[Define to 1 if C++ has parameter initialization]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43 +dnl CF_CPP_STATIC_CAST version: 3 updated: 2013/04/13 18:03:21 dnl ------------------ dnl Check if the C++ compiler accepts static_cast in generics. This appears to dnl not be supported in g++ before 3.0 @@ -965,7 +1044,7 @@ public: int begin_x = 0) { } - + NCursesPanel(); ~NCursesPanel(); }; @@ -996,10 +1075,58 @@ public: fi -test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST) +test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST,1,[Define to 1 if C++ has static_cast]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_C_INLINE version: 3 updated: 2010/05/01 15:14:41 +dnl CF_CXX_AR_FLAGS version: 1 updated: 2011/10/29 08:35:34 +dnl --------------- +dnl Setup special archiver flags for given compilers. +AC_DEFUN([CF_CXX_AR_FLAGS],[ + CXX_AR='$(AR)' + CXX_ARFLAGS='$(ARFLAGS)' + case $cf_cv_system_name in #(vi + irix*) #(vi + if test "$GXX" != yes ; then + CXX_AR='$(CXX)' + CXX_ARFLAGS='-ar -o' + fi + ;; + sco3.2v5*) #(vi + CXXLDFLAGS="-u main" + ;; + solaris2*) + if test "$GXX" != yes ; then + CXX_AR='$(CXX)' + CXX_ARFLAGS='-xar -o' + fi + ;; + esac + AC_SUBST(CXXLDFLAGS) + AC_SUBST(CXX_AR) + AC_SUBST(CXX_ARFLAGS) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_CXX_IOSTREAM_NAMESPACE version: 2 updated: 2012/10/06 17:56:13 +dnl ------------------------- +dnl For c++, check if iostream uses "std::" namespace. +AC_DEFUN([CF_CXX_IOSTREAM_NAMESPACE],[ +AC_CHECK_HEADERS(iostream) +if test x"$ac_cv_header_iostream" = xyes ; then + AC_MSG_CHECKING(if iostream uses std-namespace) + AC_TRY_COMPILE([ +#include +using std::endl; +using std::cerr;],[ +cerr << "testing" << endl; +],[cf_iostream_namespace=yes],[cf_iostream_namespace=no]) + AC_MSG_RESULT($cf_iostream_namespace) + if test "$cf_iostream_namespace" = yes ; then + AC_DEFINE(IOSTREAM_NAMESPACE,1,[Define to 1 if C++ has namespace iostream]) + fi +fi +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_C_INLINE version: 4 updated: 2012/06/16 14:55:39 dnl ----------- dnl Check if the C compiler supports "inline". dnl $1 is the name of a shell variable to set if inline is supported @@ -1010,6 +1137,9 @@ $1= if test "$ac_cv_c_inline" != no ; then $1=inline if test "$INTEL_COMPILER" = yes + then + : + elif test "$CLANG_COMPILER" = yes then : elif test "$GCC" = yes @@ -1057,7 +1187,44 @@ done AC_SUBST(DIRS_TO_MAKE) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_DISABLE_LEAKS version: 6 updated: 2010/07/23 04:14:32 +dnl CF_DISABLE_ECHO version: 12 updated: 2012/10/06 16:30:28 +dnl --------------- +dnl You can always use "make -n" to see the actual options, but it's hard to +dnl pick out/analyze warning messages when the compile-line is long. +dnl +dnl Sets: +dnl ECHO_LT - symbol to control if libtool is verbose +dnl ECHO_LD - symbol to prefix "cc -o" lines +dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o) +dnl SHOW_CC - symbol to put before explicit "cc -c" lines +dnl ECHO_CC - symbol to put before any "cc" line +dnl +AC_DEFUN([CF_DISABLE_ECHO],[ +AC_MSG_CHECKING(if you want to see long compiling messages) +CF_ARG_DISABLE(echo, + [ --disable-echo do not display "compiling" commands], + [ + ECHO_LT='--silent' + ECHO_LD='@echo linking [$]@;' + RULE_CC='@echo compiling [$]<' + SHOW_CC='@echo compiling [$]@' + ECHO_CC='@' +],[ + ECHO_LT='' + ECHO_LD='' + RULE_CC='' + SHOW_CC='' + ECHO_CC='' +]) +AC_MSG_RESULT($enableval) +AC_SUBST(ECHO_LT) +AC_SUBST(ECHO_LD) +AC_SUBST(RULE_CC) +AC_SUBST(SHOW_CC) +AC_SUBST(ECHO_CC) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03 dnl ---------------- dnl Combine no-leak checks with the libraries or tools that are used for the dnl checks. @@ -1075,8 +1242,8 @@ AC_ARG_ENABLE(leaks, AC_MSG_RESULT($with_no_leaks) if test "$with_no_leaks" = yes ; then - AC_DEFINE(NO_LEAKS) - AC_DEFINE(YY_NO_LEAKS) + AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.]) + AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.]) fi ])dnl dnl --------------------------------------------------------------------------- @@ -1123,6 +1290,30 @@ if test "$cf_disable_rpath_hack" = no ; then fi ]) dnl --------------------------------------------------------------------------- +dnl CF_ENABLE_PC_FILES version: 9 updated: 2012/08/04 13:59:54 +dnl ------------------ +dnl This is the "--enable-pc-files" option, which is available if there is a +dnl pkg-config configuration on the local machine. +AC_DEFUN([CF_ENABLE_PC_FILES],[ +AC_REQUIRE([CF_PKG_CONFIG]) +AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR]) + +if test "$PKG_CONFIG" != none ; then + AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG) + AC_ARG_ENABLE(pc-files, + [ --enable-pc-files generate and install .pc files for pkg-config], + [enable_pc_files=$enableval], + [enable_pc_files=no]) + AC_MSG_RESULT($enable_pc_files) + if test "$enable_pc_files" != no + then + CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR) + fi +else + enable_pc_files=no +fi +])dnl +dnl --------------------------------------------------------------------------- dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42 dnl --------------- dnl Check if the rpath option should be used, setting cache variable @@ -1137,6 +1328,37 @@ AC_ARG_ENABLE(rpath, AC_MSG_RESULT($cf_cv_enable_rpath) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_ENABLE_STRING_HACKS version: 3 updated: 2013/01/26 16:26:12 +dnl ---------------------- +dnl On a few platforms, the compiler and/or loader nags with untruthful +dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect, +dnl and implying that most uses of the recommended alternatives are correct. +dnl +dnl Factually speaking, no one has actually counted the number of uses of these +dnl functions versus the total of incorrect uses. Samples of a few thousand +dnl instances are meaningless compared to the hundreds of millions of lines of +dnl existing C code. +dnl +dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some +dnl platforms, in implementations of varying quality. Likewise, snprintf is +dnl standard - but evolved through phases, and older implementations are likely +dnl to yield surprising results, as documented in manpages on various systems. +AC_DEFUN([CF_ENABLE_STRING_HACKS], +[ +AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings) +AC_ARG_ENABLE(string-hacks, + [ --enable-string-hacks work around bogus compiler/loader warnings], + [with_string_hacks=$enableval], + [with_string_hacks=no]) +AC_MSG_RESULT($with_string_hacks) + +if test "x$with_string_hacks" = "xyes"; then + AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings]) + AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings) + AC_CHECK_FUNCS( strlcat strlcpy snprintf ) +fi +])dnl +dnl --------------------------------------------------------------------------- dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39 dnl -------- dnl Check if 'errno' is declared in @@ -1145,7 +1367,7 @@ AC_DEFUN([CF_ERRNO], CF_CHECK_ERRNO(errno) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43 +dnl CF_ETIP_DEFINES version: 5 updated: 2012/02/18 17:51:07 dnl --------------- dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between dnl math.h and builtin.h, only for ncurses @@ -1154,11 +1376,17 @@ AC_DEFUN([CF_ETIP_DEFINES], AC_MSG_CHECKING(for special defines needed for etip.h) cf_save_CXXFLAGS="$CXXFLAGS" cf_result="none" + +# etip.h includes ncurses.h which includes ncurses_dll.h +# But ncurses_dll.h is generated - fix here. +test -d include || mkdir include +test -f include/ncurses_dll.h || sed -e 's/@NCURSES_WRAP_PREFIX@/'$NCURSES_WRAP_PREFIX'/g' ${srcdir}/include/ncurses_dll.h.in >include/ncurses_dll.h + 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" + CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -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([ @@ -1167,7 +1395,7 @@ AC_TRY_COMPILE([ 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 + break 2 ],[]) done done @@ -1305,7 +1533,35 @@ ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5]) fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_FUNC_DLSYM version: 2 updated: 2010/05/29 16:31:02 +dnl CF_FIXUP_ADAFLAGS version: 1 updated: 2012/03/31 18:48:10 +dnl ----------------- +dnl make ADAFLAGS consistent with CFLAGS +AC_DEFUN([CF_FIXUP_ADAFLAGS],[ + AC_MSG_CHECKING(optimization options for ADAFLAGS) + case "$CFLAGS" in + *-g*) + CF_ADD_ADAFLAGS(-g) + ;; + esac + case "$CFLAGS" in + *-O*) + cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[ ]].*//'` + CF_ADD_ADAFLAGS($cf_O_flag) + ;; + esac + AC_MSG_RESULT($ADAFLAGS) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09 +dnl -------------- +dnl Forget that we saw the given tool. +AC_DEFUN([CF_FORGET_TOOL],[ +unset ac_cv_prog_ac_ct_$1 +unset ac_ct_$1 +unset $1 +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_FUNC_DLSYM version: 3 updated: 2012/10/06 11:17:15 dnl ------------- dnl Test for dlsym() and related functions, as well as libdl. dnl @@ -1332,7 +1588,7 @@ if test "$cf_have_dlsym" = yes ; then dlclose(obj); } }],[ - AC_DEFINE(HAVE_LIBDL)],[ + AC_DEFINE(HAVE_LIBDL,1,[Define to 1 if we have dl library])],[ AC_MSG_ERROR(Cannot link test program for libdl)]) AC_MSG_RESULT(ok) else @@ -1340,7 +1596,7 @@ else fi ]) dnl --------------------------------------------------------------------------- -dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30 +dnl CF_FUNC_MEMMOVE version: 8 updated: 2012/10/04 20:12:20 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. @@ -1365,13 +1621,13 @@ int main() { ]) ],[cf_cv_good_bcopy=no]) if test "$cf_cv_good_bcopy" = yes ; then - AC_DEFINE(USE_OK_BCOPY) + AC_DEFINE(USE_OK_BCOPY,1,[Define to 1 to use bcopy when memmove is unavailable]) else - AC_DEFINE(USE_MY_MEMMOVE) + AC_DEFINE(USE_MY_MEMMOVE,1,[Define to 1 to use replacement function when memmove is unavailable]) fi ])])dnl dnl --------------------------------------------------------------------------- -dnl CF_FUNC_NANOSLEEP version: 3 updated: 2006/12/16 12:33:30 +dnl CF_FUNC_NANOSLEEP version: 4 updated: 2012/10/06 17:56:13 dnl ----------------- dnl Check for existence of workable nanosleep() function. Some systems, e.g., dnl AIX 4.x, provide a non-working version. @@ -1402,7 +1658,7 @@ int main() { [cf_cv_func_nanosleep=no], [cf_cv_func_nanosleep=unknown])]) -test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP) +test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()]) ]) dnl --------------------------------------------------------------------------- dnl CF_FUNC_OPENPTY version: 3 updated: 2010/05/29 16:31:02 @@ -1433,14 +1689,17 @@ AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[ ]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30 +dnl CF_FUNC_POLL version: 8 updated: 2012/10/04 05:24:07 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 #include +#include +#include #ifdef HAVE_POLL_H #include #else @@ -1450,19 +1709,42 @@ int main() { struct pollfd myfds; int ret; - myfds.fd = 0; + /* check for Darwin bug with respect to "devices" */ + myfds.fd = open("/dev/null", 1); /* O_WRONLY */ + if (myfds.fd < 0) + myfds.fd = 0; myfds.events = POLLIN; + myfds.revents = 0; ret = poll(&myfds, 1, 100); - ${cf_cv_main_return:-return}(ret != 0); + + if (ret < 0 || (myfds.revents & POLLNVAL)) { + ret = -1; + } else { + int fd = 0; + if (!isatty(fd)) { + fd = open("/dev/tty", 2); /* O_RDWR */ + } + + if (fd >= 0) { + /* also check with standard input */ + myfds.fd = fd; + myfds.events = POLLIN; + myfds.revents = 0; + ret = poll(&myfds, 1, 100); + } else { + ret = -1; + } + } + ${cf_cv_main_return:-return}(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) +test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL,1,[Define to 1 if the poll function seems to work]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24 +dnl CF_FUNC_TERMIOS version: 3 updated: 2012/10/06 17:56:13 dnl --------------- dnl Some old/broken variations define tcgetattr() only as a macro in dnl termio(s).h @@ -1488,10 +1770,10 @@ 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) +test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR,1,[Define to 1 if we have tcgetattr]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10 +dnl CF_FUNC_VSSCANF version: 4 updated: 2012/10/06 17:56:13 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 @@ -1529,14 +1811,14 @@ AC_TRY_LINK([ 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);; +vsscanf) AC_DEFINE(HAVE_VSSCANF,1,[Define to 1 if we have vsscanf]);; #(vi +vfscanf) AC_DEFINE(HAVE_VFSCANF,1,[Define to 1 if we have vfscanf]);; #(vi +_doscan) AC_DEFINE(HAVE__DOSCAN,1,[Define to 1 if we have _doscan]);; esac ])dnl dnl --------------------------------------------------------------------------- -dnl CF_GCC_ATTRIBUTES version: 14 updated: 2010/10/23 15:52:32 +dnl CF_GCC_ATTRIBUTES version: 16 updated: 2012/10/02 20:55:03 dnl ----------------- dnl Test for availability of useful gcc __attribute__ directives to quiet dnl compiler warnings. Though useful, not all are supported -- and contrary @@ -1614,27 +1896,27 @@ EOF test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute) cat conftest.h >>confdefs.h case $cf_attribute in #(vi + noreturn) #(vi + AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc]) + ;; printf) #(vi - if test "$cf_printf_attribute" = no ; then - cat >>confdefs.h <>confdefs.h <>confdefs.h <>confdefs.h < conftest.$ac_ext <], +[int x = optind; char *y = optarg], +[cf_cv_getopt_header=$cf_header + break]) +done +]) +if test $cf_cv_getopt_header != none ; then + AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if we need to include getopt.h]) +fi +])dnl +dnl --------------------------------------------------------------------------- dnl CF_GNAT_GENERICS version: 2 updated: 2011/03/23 20:24:41 dnl ---------------- AC_DEFUN([CF_GNAT_GENERICS], @@ -1828,7 +2145,7 @@ fi AC_SUBST(PRAGMA_UNREF) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_GNAT_PROJECTS version: 2 updated: 2011/03/23 20:24:41 +dnl CF_GNAT_PROJECTS version: 4 updated: 2013/09/07 14:05:46 dnl ---------------- dnl GNAT projects are configured with ".gpr" project files. dnl GNAT libraries are a further development, using the project feature. @@ -1845,7 +2162,7 @@ case $cf_gnat_version in #(vi ;; *) case $cf_cv_system_name in #(vi - cygwin*) #(vi + cygwin*|msys*) #(vi ;; *) mkdir conftest.src conftest.bin conftest.lib @@ -2040,7 +2357,7 @@ fi rm -rf conftest* *~conftest* ])dnl dnl --------------------------------------------------------------------------- -dnl CF_GNAT_VERSION version: 17 updated: 2011/03/23 20:24:41 +dnl CF_GNAT_VERSION version: 18 updated: 2012/01/21 19:28:10 dnl --------------- dnl Verify version of GNAT. AC_DEFUN([CF_GNAT_VERSION], @@ -2052,7 +2369,7 @@ cf_gnat_version=`${cf_ada_make:-gnatmake} -v 2>&1 | \ AC_MSG_RESULT($cf_gnat_version) case $cf_gnat_version in #(vi -3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*) #(vi +3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]]) #(vi cf_cv_prog_gnat_correct=yes ;; *) @@ -2092,7 +2409,7 @@ make an error test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" ])dnl dnl --------------------------------------------------------------------------- -dnl CF_GPP_LIBRARY version: 10 updated: 2010/05/29 16:31:02 +dnl CF_GPP_LIBRARY version: 11 updated: 2012/10/06 17:56:13 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 @@ -2119,9 +2436,9 @@ if test "$GXX" = yes; then [cf_cxx_library=yes CF_ADD_LIB($cf_gpp_libname,CXXLIBS) if test "$cf_gpp_libname" = cpp ; then - AC_DEFINE(HAVE_GPP_BUILTIN_H) + AC_DEFINE(HAVE_GPP_BUILTIN_H,1,[Define to 1 if we have gpp builtin.h]) else - AC_DEFINE(HAVE_GXX_BUILTIN_H) + AC_DEFINE(HAVE_GXX_BUILTIN_H,1,[Define to 1 if we have g++ builtin.h]) fi], [AC_TRY_LINK([ #include @@ -2129,28 +2446,28 @@ if test "$GXX" = yes; then [two_arg_error_handler_t foo2 = lib_error_handler], [cf_cxx_library=yes CF_ADD_LIB($cf_gpp_libname,CXXLIBS) - AC_DEFINE(HAVE_BUILTIN_H)], + AC_DEFINE(HAVE_BUILTIN_H,1,[Define to 1 if we have builtin.h])], [cf_cxx_library=no])]) LIBS="$cf_save" AC_MSG_RESULT($cf_cxx_library) fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_GXX_VERSION version: 6 updated: 2010/10/23 15:44:18 +dnl CF_GXX_VERSION version: 7 updated: 2012/06/16 14:55:39 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++) + AC_MSG_CHECKING(version of ${CXX:-g++}) GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`" test -z "$GXX_VERSION" && GXX_VERSION=unknown AC_MSG_RESULT($GXX_VERSION) fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_GXX_WARNINGS version: 6 updated: 2010/08/14 18:25:37 +dnl CF_GXX_WARNINGS version: 8 updated: 2013/11/16 14:27:53 dnl --------------- dnl Check if the compiler supports useful warning options. dnl @@ -2173,6 +2490,7 @@ AC_DEFUN([CF_GXX_WARNINGS], [ CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS) +CF_CLANG_COMPILER(GXX,CLANG_CPLUSPLUS,CXXFLAGS) AC_REQUIRE([CF_GXX_VERSION]) @@ -2238,16 +2556,17 @@ then for cf_opt in \ Wabi \ fabi-version=0 \ + Wextra \ + Wignored-qualifiers \ + Wlogical-op \ Woverloaded-virtual \ Wsign-promo \ Wsynth \ Wold-style-cast \ Wcast-align \ Wcast-qual \ - Wmissing-prototypes \ Wpointer-arith \ Wshadow \ - Wstrict-prototypes \ Wundef $cf_gxx_extra_warnings $1 do CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt" @@ -2464,7 +2783,7 @@ AC_DEFUN([CF_HELP_MESSAGE], [AC_DIVERT_HELP([$1])dnl ])dnl dnl --------------------------------------------------------------------------- -dnl CF_INCLUDE_DIRS version: 6 updated: 2009/01/06 19:37:40 +dnl CF_INCLUDE_DIRS version: 8 updated: 2013/10/12 16:45:09 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 @@ -2472,25 +2791,25 @@ 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="$CPPFLAGS -I. -I../include" -if test "$srcdir" != "."; then - CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include" -fi if test "$GCC" != yes; then - CPPFLAGS="$CPPFLAGS -I\${includedir}" + CPPFLAGS="-I\${includedir} $CPPFLAGS" elif test "$includedir" != "/usr/include"; then if test "$includedir" = '${prefix}/include' ; then - if test $prefix != /usr ; then - CPPFLAGS="$CPPFLAGS -I\${includedir}" + if test x$prefix != x/usr ; then + CPPFLAGS="-I\${includedir} $CPPFLAGS" fi else - CPPFLAGS="$CPPFLAGS -I\${includedir}" + CPPFLAGS="-I\${includedir} $CPPFLAGS" fi fi +if test "$srcdir" != "."; then + CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS" +fi +CPPFLAGS="-I. -I../include $CPPFLAGS" AC_SUBST(CPPFLAGS) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_INTEL_COMPILER version: 4 updated: 2010/05/26 05:38:42 +dnl CF_INTEL_COMPILER version: 5 updated: 2013/02/10 10:41:05 dnl ----------------- dnl Check if the given compiler is really the Intel compiler for Linux. It dnl tries to imitate gcc, but does not return an error when it finds a mismatch @@ -2504,6 +2823,7 @@ dnl $1 = GCC (default) or GXX dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS dnl $3 = CFLAGS (default) or CXXFLAGS AC_DEFUN([CF_INTEL_COMPILER],[ +AC_REQUIRE([AC_CANONICAL_HOST]) ifelse([$2],,INTEL_COMPILER,[$2])=no if test "$ifelse([$1],,[$1],GCC)" = yes ; then @@ -2527,7 +2847,7 @@ cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc" fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52 +dnl CF_ISASCII version: 4 updated: 2012/10/06 17:56:13 dnl ---------- dnl Check if we have either a function or macro for 'isascii()'. AC_DEFUN([CF_ISASCII], @@ -2539,10 +2859,10 @@ AC_CACHE_VAL(cf_cv_have_isascii,[ [cf_cv_have_isascii=no]) ])dnl AC_MSG_RESULT($cf_cv_have_isascii) -test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII) +test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50 +dnl CF_LARGEFILE version: 8 updated: 2012/10/06 08:57:51 dnl ------------ dnl Add checks for large file support. AC_DEFUN([CF_LARGEFILE],[ @@ -2576,12 +2896,12 @@ ifdef([AC_FUNC_FSEEKO],[ [cf_cv_struct_dirent64=yes], [cf_cv_struct_dirent64=no]) ]) - test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64) + test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64]) fi ]) ]) dnl --------------------------------------------------------------------------- -dnl CF_LDFLAGS_STATIC version: 8 updated: 2010/10/23 14:39:56 +dnl CF_LDFLAGS_STATIC version: 10 updated: 2011/09/24 12:51:48 dnl ----------------- dnl Check for compiler/linker flags used to temporarily force usage of static dnl libraries. This depends on the compiler and platform. Use this to help @@ -2602,7 +2922,7 @@ if test "$GCC" = yes ; then esac else case $cf_cv_system_name in #( - aix[[456]]*) #( from ld manpage + aix[[4-7]]*) #( from ld manpage LDFLAGS_STATIC=-bstatic LDFLAGS_SHARED=-bdynamic ;; @@ -2652,7 +2972,17 @@ EOF int cf_ldflags_static(FILE *fp); ],[ return cf_ldflags_static(stdin); -],[cf_ldflags_static=yes],[cf_ldflags_static=no]) +],[ + # some linkers simply ignore the -dynamic + case x`file conftest$ac_exeext 2>/dev/null` in #(vi + *static*) # (vi + cf_ldflags_static=no + ;; + *) + cf_ldflags_static=yes + ;; + esac +],[cf_ldflags_static=no]) rm -f libconftest.* LIBS="$cf_save_LIBS" @@ -2673,7 +3003,7 @@ AC_SUBST(LDFLAGS_STATIC) AC_SUBST(LDFLAGS_SHARED) ]) dnl --------------------------------------------------------------------------- -dnl CF_LD_RPATH_OPT version: 3 updated: 2010/06/02 05:03:05 +dnl CF_LD_RPATH_OPT version: 5 updated: 2011/07/17 14:48:41 dnl --------------- dnl For the given system and compiler, find the compiler flags to pass to the dnl loader to use the "rpath" feature. @@ -2694,10 +3024,10 @@ irix*) #(vi linux*|gnu*|k*bsd*-gnu) #(vi LD_RPATH_OPT="-Wl,-rpath," ;; -openbsd[[2-9]].*) #(vi +openbsd[[2-9]].*|mirbsd*) #(vi LD_RPATH_OPT="-Wl,-rpath," ;; -freebsd*) #(vi +dragonfly*|freebsd*) #(vi LD_RPATH_OPT="-rpath " ;; netbsd*) #(vi @@ -2756,11 +3086,23 @@ CF_SUBDIR_PATH($1,$2,lib) $1="$cf_library_path_list [$]$1" ])dnl dnl --------------------------------------------------------------------------- -dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16 +dnl CF_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09 +dnl ------------------ +AC_DEFUN([CF_LIBTOOL_VERSION],[ +if test -n "$LIBTOOL" && test "$LIBTOOL" != none +then + cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'` +else + cf_cv_libtool_version= +fi +test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_LIB_PREFIX version: 9 updated: 2012/01/21 19:28:10 dnl ------------- dnl Compute the library-prefix for the given host system dnl $1 = variable to set -AC_DEFUN([CF_LIB_PREFIX], +define([CF_LIB_PREFIX], [ case $cf_cv_system_name in #(vi OS/2*|os2*) #(vi @@ -2773,11 +3115,11 @@ ifelse($1,,,[$1=$LIB_PREFIX]) AC_SUBST(LIB_PREFIX) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_LIB_RULES version: 61 updated: 2010/10/23 16:10:30 +dnl CF_LIB_RULES version: 74 updated: 2013/09/07 13:54:05 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 LIBS_TO_MAKE list in +dnl subdirectory is a library-source directory, modify the Libs_To_Make 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 @@ -2786,15 +3128,19 @@ dnl one: dnl lib.so -> dnl lib.so. -> dnl lib.so.. +dnl +dnl Note: Libs_To_Make is mixed case, since it is not a pure autoconf variable. AC_DEFUN([CF_LIB_RULES], [ -CF_LIB_PREFIX(cf_prefix) +cf_prefix=$LIB_PREFIX AC_REQUIRE([CF_SUBST_NCURSES_VERSION]) -if test $cf_cv_shlib_version = cygdll ; then +case $cf_cv_shlib_version in #(vi +cygdll|msysdll|mingw) TINFO_NAME=$TINFO_ARG_SUFFIX TINFO_SUFFIX=.dll -fi + ;; +esac if test -n "$TINFO_SUFFIX" ; then case $TINFO_SUFFIX in @@ -2820,79 +3166,78 @@ do elif test -f $srcdir/$cf_dir/modules; then SHARED_LIB= - LIBS_TO_MAKE= + Libs_To_Make= for cf_item in $cf_LIST_MODELS do CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf) + cf_libname=$cf_dir + test "$cf_dir" = c++ && cf_libname=ncurses++ 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*) - case .${LIB_SUFFIX} in - .tw*) - cf_suffix=`echo $cf_suffix | sed 's/^tw//'` - cf_suffix=tw'.${REL_VERSION}'"$cf_suffix" + if test -n "${LIB_SUFFIX}" + then + cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'` + else + cf_shared_suffix="$cf_suffix" + fi + if test "$cf_cv_do_symlinks" = yes ; then + cf_version_name= + + case "$cf_cv_shlib_version" in #(vi + rel) #(vi + cf_version_name=REL_VERSION ;; - .t*) - cf_suffix=`echo $cf_suffix | sed 's/^t//'` - cf_suffix=t'.${REL_VERSION}'"$cf_suffix" - ;; - .w*) - cf_suffix=`echo $cf_suffix | sed 's/^w//'` - cf_suffix=w'.${REL_VERSION}'"$cf_suffix" - ;; - *) - cf_suffix='.${REL_VERSION}'"$cf_suffix" + abi) + cf_version_name=ABI_VERSION ;; esac - ;; #(vi - *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;; - esac + + if test -n "$cf_version_name" + then + case "$cf_cv_system_name" in #(vi + darwin*) + # "w", etc? + cf_suffix="${LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix" + ;; #(vi + *) + cf_suffix="$cf_suffix"'.${'$cf_version_name'}' + ;; + esac + fi + if test -n "${LIB_SUFFIX}" + then + cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'` + else + cf_shared_suffix="$cf_suffix" + fi + 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. + case $cf_cv_shlib_version in #(vi + cygdll) #(vi + cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` + Libs_To_Make="$Libs_To_Make ../lib/cyg${cf_libname}${cf_cygsuf}" + continue ;; - abi) - case "$cf_cv_system_name" in #(vi - darwin*) - case .${LIB_SUFFIX} in - .tw*) - cf_suffix=`echo $cf_suffix | sed 's/^tw//'` - cf_suffix=tw'.${ABI_VERSION}'"$cf_suffix" - ;; - .t*) - cf_suffix=`echo $cf_suffix | sed 's/^t//'` - cf_suffix=t'.${ABI_VERSION}'"$cf_suffix" - ;; - .w*) - cf_suffix=`echo $cf_suffix | sed 's/^w//'` - cf_suffix=w'.${ABI_VERSION}'"$cf_suffix" - ;; - *) - cf_suffix='.${ABI_VERSION}'"$cf_suffix" - ;; - esac - ;; #(vi - *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;; - esac + msysdll) #(vi + cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` + Libs_To_Make="$Libs_To_Make ../lib/msys-${cf_libname}${cf_cygsuf}" + continue + ;; + mingw) + cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` + Libs_To_Make="$Libs_To_Make ../lib/lib${cf_libname}${cf_cygsuf}" + continue ;; 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 - cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` - LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}" - continue - fi - fi - LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}" + Libs_To_Make="$Libs_To_Make ../lib/${cf_prefix}${cf_libname}${cf_suffix}" done if test $cf_dir = ncurses ; then cf_subsets="$LIB_SUBSETS" cf_r_parts="$cf_subsets" - cf_liblist="$LIBS_TO_MAKE" + cf_liblist="$Libs_To_Make" while test -n "$cf_r_parts" do @@ -2912,7 +3257,7 @@ do ;; esac if test -n "$cf_item"; then - LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE" + Libs_To_Make="$cf_item $Libs_To_Make" fi else break @@ -2922,13 +3267,40 @@ do cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'` fi - sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \ + if test $cf_dir = c++; then + if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then + cf_list= + for cf_item in $Libs_To_Make + do + case $cf_item in + *.a) + ;; + *) + cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"` + ;; + esac + for cf_test in $cf_list + do + if test "$cf_test" = "$cf_item" + then + cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'` + cf_item= + break + fi + done + test -n "$cf_item" && cf_list="$cf_list $cf_item" + done + Libs_To_Make="$cf_list" + fi + fi + + sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \ -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" \ + libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \ $srcdir/$cf_dir/modules >>$cf_dir/Makefile for cf_subset in $cf_subsets @@ -2936,8 +3308,23 @@ 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) + + CXX_MODEL=$cf_ITEM + if test "$CXX_MODEL" = SHARED; then + case $cf_cv_shlib_version in #(vi + cygdll|msysdll|mingw) #(vi + test "x$with_shared_cxx" = xno && CF_VERBOSE(overriding CXX_MODEL to SHARED) + with_shared_cxx=yes + ;; + *) + test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL + ;; + esac + fi + CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf) CF_OBJ_SUBDIR($cf_item,cf_subdir) @@ -2955,6 +3342,8 @@ do cf_libname=$TICS_LIB_SUFFIX ;; esac + elif test $cf_dir = c++ ; then + cf_libname=ncurses++$LIB_SUFFIX else cf_libname=${cf_libname}$LIB_SUFFIX fi @@ -3006,10 +3395,12 @@ do name=${cf_libname}${cf_dir_suffix} \ traces=$LIB_TRACING \ MODEL=$cf_ITEM \ + CXX_MODEL=$CXX_MODEL \ model=$cf_subdir \ prefix=$cf_prefix \ suffix=$cf_suffix \ subset=$cf_subset \ + driver=$cf_cv_term_driver \ SymLink="$LN_S" \ TermlibRoot=$TINFO_NAME \ TermlibSuffix=$TINFO_SUFFIX \ @@ -3048,7 +3439,7 @@ do done fi - echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >>Makefile + echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@' >>Makefile done for cf_dir in $SRC_SUBDIRS @@ -3063,7 +3454,7 @@ do echo 'libs \' >> Makefile echo 'install.libs \' >> Makefile echo 'uninstall.libs ::' >> Makefile - echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >> Makefile + echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@' >> Makefile ;; esac fi @@ -3086,7 +3477,7 @@ install.libs \\ uninstall.libs \\ install.$cf_dir \\ uninstall.$cf_dir :: - cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@ + cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \[$]@ CF_EOF elif test -f $srcdir/$cf_dir/headers; then cat >> Makefile <> Makefile <> Makefile <> Makefile <$cf_edit_man <>$cf_man_alias <<-CF_EOF2 s,@DATADIR@,\$datadir,g - s,@TERMINFO@,\$TERMINFO,g - s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g - s,@NCURSES_MINOR@,\$NCURSES_MINOR,g - s,@NCURSES_PATCH@,\$NCURSES_PATCH,g - s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g + s,@TERMINFO@,\${TERMINFO:="no default value"},g + s,@TERMINFO_DIRS@,\${TERMINFO_DIRS:="no default value"},g + s,@NCURSES_MAJOR@,\${NCURSES_MAJOR:="no default value"},g + s,@NCURSES_MINOR@,\${NCURSES_MINOR:="no default value"},g + s,@NCURSES_PATCH@,\${NCURSES_PATCH:="no default value"},g + s,@NCURSES_OSPEED@,\${NCURSES_OSPEED:="no default value"},g CF_EOF ifelse($1,,,[ for cf_name in $1 @@ -3949,7 +4333,9 @@ CF_EOF if test "$MANPAGE_ALIASES" != no ; then cat >>$cf_edit_man <>$cf_edit_man <\$TMP.out + mv \$TMP.out \$TMP +CF_EOF +fi + if test $with_curses_h != yes ; then cat >>$cf_edit_man <\$TMP.out @@ -4154,7 +4547,7 @@ ifelse($1,,[ fi ]) dnl --------------------------------------------------------------------------- -dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55 +dnl CF_MIXEDCASE_FILENAMES version: 6 updated: 2013/10/08 17:47:05 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. @@ -4163,7 +4556,7 @@ 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 + *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi cf_cv_mixedcase=no ;; *) @@ -4181,10 +4574,10 @@ else rm -f conftest CONFTEST fi ]) -test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES) +test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_MKSTEMP version: 7 updated: 2010/08/14 18:25:37 +dnl CF_MKSTEMP version: 9 updated: 2012/10/03 04:34:49 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). @@ -4226,11 +4619,13 @@ int main() } ],[cf_cv_func_mkstemp=yes ],[cf_cv_func_mkstemp=no -],[AC_CHECK_FUNC(mkstemp) -]) +],[cf_cv_func_mkstemp=maybe]) ]) +if test "x$cf_cv_func_mkstemp" = xmaybe ; then + AC_CHECK_FUNC(mkstemp) +fi if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then - AC_DEFINE(HAVE_MKSTEMP) + AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.]) fi ])dnl dnl --------------------------------------------------------------------------- @@ -4258,14 +4653,14 @@ if test "${with_abi_version+set}" != set; then fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05 +dnl CF_NO_LEAKS_OPTION version: 5 updated: 2012/10/02 20:55:03 dnl ------------------ dnl see CF_WITH_NO_LEAKS AC_DEFUN([CF_NO_LEAKS_OPTION],[ AC_MSG_CHECKING(if you want to use $1 for testing) AC_ARG_WITH($1, [$2], - [AC_DEFINE($3)ifelse([$4],,[ + [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[ $4 ]) : ${with_cflags:=-g} @@ -4306,7 +4701,7 @@ else fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31 +dnl CF_OBJ_SUBDIR version: 6 updated: 2013/09/07 14:06:10 dnl ------------- dnl Compute the object-directory name from the given model name AC_DEFUN([CF_OBJ_SUBDIR], @@ -4318,7 +4713,7 @@ AC_DEFUN([CF_OBJ_SUBDIR], profile) $2='obj_p' ;; shared) case $cf_cv_system_name in #(vi - cygwin) #(vi + cygwin|msys) #(vi $2='objects' ;; *) $2='obj_s' ;; @@ -4326,20 +4721,23 @@ AC_DEFUN([CF_OBJ_SUBDIR], esac ])dnl dnl --------------------------------------------------------------------------- -dnl CF_PATHSEP version: 5 updated: 2010/05/26 05:38:42 +dnl CF_PATHSEP version: 6 updated: 2012/09/29 18:38:12 dnl ---------- -dnl Provide a value for the $PATH and similar separator +dnl Provide a value for the $PATH and similar separator (or amend the value +dnl as provided in autoconf 2.5x). AC_DEFUN([CF_PATHSEP], [ + AC_MSG_CHECKING(for PATH separator) case $cf_cv_system_name in os2*) PATH_SEPARATOR=';' ;; - *) PATH_SEPARATOR=':' ;; + *) ${PATH_SEPARATOR:=':'} ;; esac ifelse([$1],,,[$1=$PATH_SEPARATOR]) AC_SUBST(PATH_SEPARATOR) + AC_MSG_RESULT($PATH_SEPARATOR) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_PATH_SYNTAX version: 13 updated: 2010/05/26 05:38:42 +dnl CF_PATH_SYNTAX version: 14 updated: 2012/06/19 20:58:54 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 @@ -4359,7 +4757,7 @@ case ".[$]$1" in #(vi ;; .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX ;; -.\[$]{*prefix}*) #(vi +.\[$]{*prefix}*|.\[$]{*dir}*) #(vi eval $1="[$]$1" case ".[$]$1" in #(vi .NONE/*) @@ -4376,7 +4774,7 @@ case ".[$]$1" in #(vi esac ])dnl dnl --------------------------------------------------------------------------- -dnl CF_PKG_CONFIG version: 4 updated: 2011/02/18 20:26:24 +dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22 dnl ------------- dnl Check for the package-config program, unless disabled by command-line. AC_DEFUN([CF_PKG_CONFIG], @@ -4393,7 +4791,9 @@ no) #(vi PKG_CONFIG=none ;; yes) #(vi - AC_PATH_TOOL(PKG_CONFIG, pkg-config, none) + CF_ACVERSION_CHECK(2.52, + [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)], + [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)]) ;; *) PKG_CONFIG=$withval @@ -4554,6 +4954,19 @@ AC_PROG_AWK test -z "$AWK" && AC_MSG_ERROR(No awk program found) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_PROG_CC version: 3 updated: 2012/10/06 15:31:55 +dnl ---------- +dnl standard check for CC, plus followup sanity checks +dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name +AC_DEFUN([CF_PROG_CC],[ +ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)]) +CF_GCC_VERSION +CF_ACVERSION_CHECK(2.52, + [AC_PROG_CC_STDC], + [CF_ANSI_CC_REQD]) +CF_CC_ENV_FLAGS +])dnl +dnl --------------------------------------------------------------------------- dnl CF_PROG_CC_C_O version: 3 updated: 2010/08/14 18:25:37 dnl -------------- dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that @@ -4593,31 +5006,6 @@ else fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30 -dnl -------------- -dnl Check if C (preprocessor) -U and -D options are processed in the order -dnl given rather than by type of option. Some compilers insist on apply all -dnl of the -U options after all of the -D options. Others allow mixing them, -dnl and may predefine symbols that conflict with those we define. -AC_DEFUN([CF_PROG_CC_U_D], -[ -AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[ - cf_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS" - AC_TRY_COMPILE([],[ -#ifndef U_D_OPTIONS -make an undefined-error -#endif -#ifdef D_U_OPTIONS -make a defined-error -#endif - ],[ - cf_cv_cc_u_d_options=yes],[ - cf_cv_cc_u_d_options=no]) - CPPFLAGS="$cf_save_CPPFLAGS" -]) -])dnl -dnl --------------------------------------------------------------------------- dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59 dnl ------------- dnl AC_PROG_EGREP was introduced in autoconf 2.53. @@ -4633,32 +5021,7 @@ AC_DEFUN([CF_PROG_EGREP], test -z "$EGREP" && AC_MSG_ERROR(No egrep program found) ])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_GNAT version: 1 updated: 2010/06/19 15:22:18 +dnl CF_PROG_GNAT version: 2 updated: 2011/10/22 14:01:47 dnl ------------ dnl Check for gnatmake, ensure that it is complete. AC_DEFUN([CF_PROG_GNAT],[ @@ -4666,6 +5029,7 @@ cf_ada_make=gnatmake AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no) if test "$ac_cv_prog_gnat_exists" = no; then cf_ada_make= + cf_cv_prog_gnat_correct=no else CF_GNAT_VERSION AC_CHECK_PROG(M4_exists, m4, yes, no) @@ -4709,7 +5073,7 @@ case $INSTALL in esac ])dnl dnl --------------------------------------------------------------------------- -dnl CF_PROG_LDCONFIG version: 2 updated: 2008/12/13 14:08:40 +dnl CF_PROG_LDCONFIG version: 3 updated: 2011/06/04 20:09:13 dnl ---------------- dnl Check for ldconfig, needed to fixup shared libraries that would be built dnl and then used in the install. @@ -4718,7 +5082,7 @@ if test "$cross_compiling" = yes ; then LDCONFIG=: else case "$cf_cv_system_name" in #(vi -dragonfly*|freebsd*) #(vi +dragonfly*|mirbsd*|freebsd*) #(vi test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R" ;; *) LDPATH=$PATH:/sbin:/usr/sbin @@ -4759,7 +5123,7 @@ AC_MSG_RESULT($cf_prog_ln_sf) test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f" ])dnl dnl --------------------------------------------------------------------------- -dnl CF_REGEX version: 8 updated: 2010/08/07 14:09:44 +dnl CF_REGEX version: 10 updated: 2012/10/04 20:12:20 dnl -------- dnl Attempt to determine if we've got one of the flavors of regular-expression dnl code that we can support. @@ -4771,7 +5135,7 @@ cf_regex_func=no cf_regex_libs="regex re" case $host_os in #(vi mingw*) - cf_regex_libs="regex.dll $cf_regex_libs" + cf_regex_libs="gnurx $cf_regex_libs" ;; esac @@ -4833,9 +5197,9 @@ esac case $cf_cv_regex_hdrs in #(vi no) AC_MSG_WARN(no regular expression header found) ;; #(vi - regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;; #(vi - regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;; #(vi - regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;; + regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS,1,[Define to 1 to include regex.h for regular expressions]) ;; #(vi + regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS,1,[Define to 1 to include regexp.h for regular expressions]) ;; #(vi + regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS,1,[Define to 1 to include regexpr.h for regular expressions]) ;; esac ])dnl dnl --------------------------------------------------------------------------- @@ -4869,7 +5233,7 @@ define([CF_REMOVE_LIB], $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'` ])dnl dnl --------------------------------------------------------------------------- -dnl CF_RPATH_HACK version: 9 updated: 2011/02/13 13:31:33 +dnl CF_RPATH_HACK version: 11 updated: 2013/09/01 13:02:00 dnl ------------- AC_DEFUN([CF_RPATH_HACK], [ @@ -4886,8 +5250,8 @@ if test -n "$LD_RPATH_OPT" ; then AC_TRY_LINK([#include ], [printf("Hello");], - [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort -u` - cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort -u`]) + [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq` + cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`]) # If we passed the link-test, but get a "not found" on a given library, # this could be due to inept reconfiguration of gcc to make it only @@ -4920,6 +5284,8 @@ AC_TRY_LINK([#include ], CF_RPATH_HACK_2(LIBS) CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS) +else + AC_MSG_RESULT(no) fi AC_SUBST(EXTRA_LDFLAGS) ])dnl @@ -4984,18 +5350,19 @@ CF_VERBOSE(...checked $1 [$]$1) AC_SUBST(EXTRA_LDFLAGS) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_SHARED_OPTS version: 64 updated: 2010/06/05 16:51:16 +dnl CF_SHARED_OPTS version: 84 updated: 2013/11/03 06:26:10 dnl -------------- 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 Notes: +dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within +dnl the build-tree, i.e., by making use of the libraries that are compiled in +dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the +dnl shared library since that can lead to unexpected results at runtime. +dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared +dnl libraries 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. @@ -5010,12 +5377,19 @@ 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]) AC_REQUIRE([CF_LD_RPATH_OPT]) + RM_SHARED_OPTS= LOCAL_LDFLAGS= LOCAL_LDFLAGS2= LD_SHARED_OPTS= INSTALL_LIB="-m 644" + : ${rel_builddir:=.} + + shlibdir=$libdir + AC_SUBST(shlibdir) + + MAKE_DLLS="#" + AC_SUBST(MAKE_DLLS) cf_cv_do_symlinks=no cf_ld_rpath_opt= @@ -5040,6 +5414,7 @@ AC_DEFUN([CF_SHARED_OPTS], AC_MSG_RESULT($cf_cv_shlib_version) cf_cv_rm_so_locs=no + cf_try_cflags= # Some less-capable ports of gcc support only -fpic CC_SHARED_OPTS= @@ -5059,10 +5434,14 @@ AC_DEFUN([CF_SHARED_OPTS], cf_cv_shlib_version_infix=no case $cf_cv_system_name in #(vi - aix[[56]]*) #(vi + aix4.[3-9]*|aix[[5-7]]*) #(vi if test "$GCC" = yes; then CC_SHARED_OPTS= - MK_SHARED_LIB='$(CC) -shared' + MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@' + else + # CC_SHARED_OPTS='-qpic=large -G' + # perhaps "-bM:SRE -bnoentry -bexpall" + MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@' fi ;; beos*) #(vi @@ -5070,9 +5449,12 @@ AC_DEFUN([CF_SHARED_OPTS], ;; cygwin*) #(vi CC_SHARED_OPTS= - MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}' + MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}' + RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" cf_cv_shlib_version=cygdll cf_cv_shlib_version_infix=cygdll + shlibdir=$bindir + MAKE_DLLS= cat >mk_shared_lib.sh <<-CF_EOF #!/bin/sh SHARED_LIB=\[$]1 @@ -5083,12 +5465,34 @@ AC_DEFUN([CF_SHARED_OPTS], ** SHARED_LIB \[$]SHARED_LIB ** IMPORT_LIB \[$]IMPORT_LIB EOF - exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB} + exec \[$]* -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB} +CF_EOF + chmod +x mk_shared_lib.sh + ;; + msys*) #(vi + CC_SHARED_OPTS= + MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}' + RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" + cf_cv_shlib_version=msysdll + cf_cv_shlib_version_infix=msysdll + shlibdir=$bindir + MAKE_DLLS= + cat >mk_shared_lib.sh <<-CF_EOF + #!/bin/sh + SHARED_LIB=\[$]1 + IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\` + shift + cat <<-EOF + Linking shared library + ** SHARED_LIB \[$]SHARED_LIB + ** IMPORT_LIB \[$]IMPORT_LIB +EOF + exec \[$]* -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB} CF_EOF chmod +x mk_shared_lib.sh ;; darwin*) #(vi - EXTRA_CFLAGS="-no-cpp-precomp" + cf_try_cflags="no-cpp-precomp" CC_SHARED_OPTS="-dynamic" MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]' test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi @@ -5102,6 +5506,14 @@ CF_EOF LDFLAGS="$LDFLAGS -Wl,-search_paths_first" fi ;; + hpux[[7-8]]*) #(vi + # HP-UX 8.07 ld lacks "+b" option used for libdir search-list + if test "$GCC" != yes; then + CC_SHARED_OPTS='+Z' + fi + MK_SHARED_LIB='${LD} -b -o $[@]' + INSTALL_LIB="-m 555" + ;; hpux*) #(vi # (tested with gcc 2.7.2 -- I don't have c89) if test "$GCC" = yes; then @@ -5115,9 +5527,19 @@ CF_EOF # readonly to exploit a quirk in the memory manager. INSTALL_LIB="-m 555" ;; + interix*) + test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel + if test "$cf_cv_shlib_version" = rel; then + cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}' + else + cf_shared_soname='`basename $@`' + fi + CC_SHARED_OPTS= + MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $@' + ;; irix*) #(vi if test "$cf_cv_enable_rpath" = yes ; then - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" + EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" fi # tested with IRIX 5.2 and 'cc'. if test "$GCC" != yes; then @@ -5134,18 +5556,45 @@ CF_EOF LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" fi if test "$cf_cv_enable_rpath" = yes ; then - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" + EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" fi CF_SHARED_SONAME MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]' ;; - openbsd[[2-9]].*) #(vi + mingw*) #(vi + cf_cv_shlib_version=mingw + cf_cv_shlib_version_infix=mingw + shlibdir=$bindir + MAKE_DLLS= + if test "$DFT_LWR_MODEL" = "shared" ; then + LOCAL_LDFLAGS="-Wl,--enable-auto-import" + LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" + EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS" + fi + CC_SHARED_OPTS= + MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}' + RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" + cat >mk_shared_lib.sh <<-CF_EOF + #!/bin/sh + SHARED_LIB=\[$]1 + IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\` + shift + cat <<-EOF + Linking shared library + ** SHARED_LIB \[$]SHARED_LIB + ** IMPORT_LIB \[$]IMPORT_LIB +EOF + exec \[$]* -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB} +CF_EOF + chmod +x mk_shared_lib.sh + ;; + openbsd[[2-9]].*|mirbsd*) #(vi if test "$DFT_LWR_MODEL" = "shared" ; then LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" fi if test "$cf_cv_enable_rpath" = yes ; then - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" + EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" fi CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" CF_SHARED_SONAME @@ -5156,12 +5605,12 @@ CF_EOF MK_SHARED_LIB='${LD} -Bshareable -o $[@]' test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel ;; - freebsd*) #(vi + dragonfly*|freebsd*) #(vi CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)" - LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS" - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" + LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS" + EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" fi CF_SHARED_SONAME MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]' @@ -5171,7 +5620,7 @@ CF_EOF if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)" LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" + EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" if test "$cf_cv_shlib_version" = auto; then if test -f /usr/libexec/ld.elf_so; then cf_cv_shlib_version=abi @@ -5182,7 +5631,7 @@ CF_EOF CF_SHARED_SONAME MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]' else - MK_SHARED_LIB='${LD} -shared -Bshareable -o $[@]' + MK_SHARED_LIB='${CC} -Wl,-shared -Wl,-Bshareable -o $[@]' fi ;; osf*|mls+*) #(vi @@ -5276,20 +5725,57 @@ CF_EOF ;; esac - if test -n "$cf_ld_rpath_opt" ; then - MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}" + if test -n "$cf_try_cflags" + then +cat > conftest.$ac_ext < +int main(int argc, char *argv[[]]) +{ + printf("hello\n"); + return (argv[[argc-1]] == 0) ; +} +EOF + cf_save_CFLAGS="$CFLAGS" + for cf_opt in $cf_try_cflags + do + CFLAGS="$cf_save_CFLAGS -$cf_opt" + AC_MSG_CHECKING(if CFLAGS option -$cf_opt works) + if AC_TRY_EVAL(ac_compile); then + AC_MSG_RESULT(yes) + cf_save_CFLAGS="$CFLAGS" + else + AC_MSG_RESULT(no) + fi + done + CFLAGS="$cf_save_CFLAGS" fi + + # RPATH_LIST is a colon-separated list of directories + test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}" + test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}" + + test $cf_cv_rm_so_locs = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations" + + CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS) + CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB) + AC_SUBST(CC_SHARED_OPTS) AC_SUBST(LD_RPATH_OPT) AC_SUBST(LD_SHARED_OPTS) AC_SUBST(MK_SHARED_LIB) + AC_SUBST(RM_SHARED_OPTS) + AC_SUBST(LINK_PROGS) AC_SUBST(LINK_TESTS) + AC_SUBST(EXTRA_LDFLAGS) AC_SUBST(LOCAL_LDFLAGS) AC_SUBST(LOCAL_LDFLAGS2) + AC_SUBST(INSTALL_LIB) + AC_SUBST(RPATH_LIST) ])dnl dnl --------------------------------------------------------------------------- dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43 @@ -5369,7 +5855,7 @@ done fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12 +dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20 dnl --------------- dnl signal handler, but there are some gcc depedencies in that recommendation. dnl Try anyway. @@ -5401,10 +5887,10 @@ static void handler(int sig) done ]) AC_MSG_RESULT($cf_cv_sig_atomic_t) -test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t) +test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16 +dnl CF_SIZECHANGE version: 9 updated: 2012/10/06 11:17:15 dnl ------------- dnl Check for definitions & structures needed for window size-changing dnl FIXME: check that this works with "snake" (HP-UX 10.x) @@ -5465,7 +5951,7 @@ do done ]) if test "$cf_cv_sizechange" != no ; then - AC_DEFINE(HAVE_SIZECHANGE) + AC_DEFINE(HAVE_SIZECHANGE,1,[Define to 1 if sizechar declarations are provided]) case $cf_cv_sizechange in #(vi NEED*) AC_DEFINE_UNQUOTED($cf_cv_sizechange ) @@ -5474,7 +5960,7 @@ if test "$cf_cv_sizechange" != no ; then fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_SRC_MODULES version: 21 updated: 2010/09/04 17:37:40 +dnl CF_SRC_MODULES version: 27 updated: 2013/08/03 18:18:08 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 @@ -5497,6 +5983,7 @@ else TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2" fi +PC_MODULES_TO_MAKE="ncurses${DFT_ARG_SUFFIX}" cf_cv_src_modules= for cf_dir in $1 do @@ -5535,6 +6022,7 @@ do TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS" TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2" fi + PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${DFT_ARG_SUFFIX}" fi fi done @@ -5561,11 +6049,21 @@ done if test "x$cf_with_tests" != "xno" ; then SRC_SUBDIRS="$SRC_SUBDIRS test" fi -test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc" -test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++" +if test "x$cf_with_db_install" = xyes; then + test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc" +fi +if test "$cf_with_cxx_binding" != no; then + PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${DFT_ARG_SUFFIX}" + SRC_SUBDIRS="$SRC_SUBDIRS c++" +fi + +test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX" +test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX" + +AC_SUBST(PC_MODULES_TO_MAKE) ADA_SUBDIRS= -if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then +if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f $srcdir/Ada95/Makefile.in; then SRC_SUBDIRS="$SRC_SUBDIRS Ada95" ADA_SUBDIRS="gen src" if test "x$cf_with_tests" != "xno" ; then @@ -5624,13 +6122,13 @@ 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 CF_STRUCT_SIGACTION version: 5 updated: 2012/10/06 17:56:13 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],[ +AC_REQUIRE([CF_XOPEN_SOURCE]) + if test "$ac_cv_func_sigaction" = yes; then AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE) AC_TRY_COMPILE([ @@ -5645,22 +6143,24 @@ AC_TRY_COMPILE([ #include ], [struct sigaction act], [sigact_bad=yes - AC_DEFINE(SVR4_ACTION)], + AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE])], [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 CF_STRUCT_TERMIOS version: 7 updated: 2012/10/06 17:56:13 dnl ----------------- dnl Some machines require _POSIX_SOURCE to completely define struct termios. -dnl If so, define SVR4_TERMIO AC_DEFUN([CF_STRUCT_TERMIOS],[ +AC_REQUIRE([CF_XOPEN_SOURCE]) + AC_CHECK_HEADERS( \ termio.h \ termios.h \ unistd.h \ ) + if test "$ISC" = yes ; then AC_CHECK_HEADERS( sys/termio.h ) fi @@ -5680,7 +6180,7 @@ if test "$ac_cv_header_termios_h" = yes ; then #include ], [struct termios foo; int x = foo.c_iflag], termios_bad=unknown, - termios_bad=yes AC_DEFINE(SVR4_TERMIO)) + termios_bad=yes AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE])) ]) AC_MSG_RESULT($termios_bad) fi @@ -5704,23 +6204,6 @@ CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix) CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03 -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)) -CF_SUBST_IF([-z "[$]$2"], [$2], [$3]) -cf_cv_subst_$2=[$]$2 -AC_MSG_RESULT([$]$2) -]) -])dnl -dnl --------------------------------------------------------------------------- dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03 dnl ----------- dnl Shorthand macro for substituting things that the user may override @@ -5766,7 +6249,7 @@ 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 CF_SYS_TIME_SELECT version: 5 updated: 2012/10/04 05:24:07 dnl ------------------ dnl Check if we can include with ; this breaks on dnl older SCO configurations. @@ -5786,19 +6269,58 @@ AC_TRY_COMPILE([ [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) +test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT,1,[Define to 1 if we can include with ]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23 +dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32 dnl --------------- dnl Define a top_builddir symbol, for applications that need an absolute path. AC_DEFUN([CF_TOP_BUILDDIR], [ -top_builddir=`pwd` +top_builddir=ifelse($1,,`pwd`,$1) AC_SUBST(top_builddir) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30 +dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50 +dnl ------------------- +dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we +dnl can define it successfully. +AC_DEFUN([CF_TRY_XOPEN_SOURCE],[ +AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[ + AC_TRY_COMPILE([ +#include +#include +#include +],[ +#ifndef _XOPEN_SOURCE +make an error +#endif], + [cf_cv_xopen_source=no], + [cf_save="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" + AC_TRY_COMPILE([ +#include +#include +#include +],[ +#ifdef _XOPEN_SOURCE +make an error +#endif], + [cf_cv_xopen_source=no], + [cf_cv_xopen_source=$cf_XOPEN_SOURCE]) + CPPFLAGS="$cf_save" + ]) +]) + +if test "$cf_cv_xopen_source" != no ; then + CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE) + CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE) + cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" + CF_ADD_CFLAGS($cf_temp_xopen_source) +fi +]) +dnl --------------------------------------------------------------------------- +dnl CF_TYPEOF_CHTYPE version: 9 updated: 2012/10/06 17:56:13 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 @@ -5847,10 +6369,10 @@ int main() AC_MSG_RESULT($cf_cv_typeof_chtype) AC_SUBST(cf_cv_typeof_chtype) -AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype) +AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype,[Define to actual type if needed for chtype]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52 +dnl CF_TYPE_SIGACTION version: 4 updated: 2012/10/06 17:56:13 dnl ----------------- dnl AC_DEFUN([CF_TYPE_SIGACTION], @@ -5863,7 +6385,7 @@ AC_CACHE_VAL(cf_cv_type_sigaction,[ [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) +test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION,1,[Define to 1 if we have the sigaction_t type]) ])dnl dnl --------------------------------------------------------------------------- dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16 @@ -5890,7 +6412,7 @@ AC_DEFUN([CF_UPPER], $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ])dnl dnl --------------------------------------------------------------------------- -dnl CF_UTF8_LIB version: 7 updated: 2010/06/20 09:24:28 +dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51 dnl ----------- dnl Check for multibyte support, and if not found, utf8 compatibility library AC_DEFUN([CF_UTF8_LIB], @@ -5909,14 +6431,14 @@ AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[ # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between # ncurses/ncursesw: if test "$cf_cv_utf8_lib" = "add-on" ; then - AC_DEFINE(HAVE_LIBUTF8_H) + AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h]) CF_ADD_INCDIR($cf_cv_header_path_utf8) CF_ADD_LIBDIR($cf_cv_library_path_utf8) CF_ADD_LIBS($cf_cv_library_file_utf8) fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_VA_COPY version: 2 updated: 2010/03/04 05:37:29 +dnl CF_VA_COPY version: 3 updated: 2012/10/06 11:17:15 dnl ---------- dnl check for va_copy, part of stdarg.h dnl Also, workaround for glibc's __va_copy, by checking for both. @@ -5931,7 +6453,7 @@ AC_TRY_LINK([ cf_cv_have_va_copy=yes, cf_cv_have_va_copy=no)]) -test "$cf_cv_have_va_copy" = yes && AC_DEFINE(HAVE_VA_COPY) +test "$cf_cv_have_va_copy" = yes && AC_DEFINE(HAVE_VA_COPY,1,[Define to 1 if we have va_copy]) AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[ AC_TRY_LINK([ @@ -5943,7 +6465,7 @@ AC_TRY_LINK([ cf_cv_have___va_copy=yes, cf_cv_have___va_copy=no)]) -test "$cf_cv_have___va_copy" = yes && AC_DEFINE(HAVE___VA_COPY) +test "$cf_cv_have___va_copy" = yes && AC_DEFINE(HAVE___VA_COPY,1,[Define to 1 if we have __va_copy]) ]) dnl --------------------------------------------------------------------------- dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12 @@ -5954,7 +6476,7 @@ AC_DEFUN([CF_VERBOSE], CF_MSG_LOG([$1]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_WCHAR_TYPE version: 3 updated: 2010/05/26 16:44:57 +dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58 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 @@ -5986,7 +6508,7 @@ AC_TRY_COMPILE([ [cf_cv_$1=unknown])])]) if test "$cf_cv_$1" = yes ; then - AC_DEFINE(NEED_WCHAR_H) + AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h]) NEED_WCHAR_H=1 fi @@ -6149,7 +6671,7 @@ if test "$with_dmalloc" = yes ; then fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54 +dnl CF_WITH_GPM version: 8 updated: 2012/10/06 17:56:13 dnl ----------- dnl dnl The option parameter (if neither yes/no) is assumed to be the name of @@ -6165,10 +6687,10 @@ AC_MSG_RESULT($with_gpm) if test "$with_gpm" != no ; then AC_CHECK_HEADER(gpm.h,[ - AC_DEFINE(HAVE_GPM_H) + AC_DEFINE(HAVE_GPM_H,1,[Define to 1 if we have gpm.h header]) if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then CF_VERBOSE(assuming we really have GPM library) - AC_DEFINE(HAVE_LIBGPM) + AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library]) else AC_CHECK_LIB(gpm,Gpm_Open,[:],[ AC_MSG_ERROR(Cannot link with GPM library) @@ -6182,7 +6704,7 @@ if test "$with_gpm" != no ; then fi ]) dnl --------------------------------------------------------------------------- -dnl CF_WITH_LIBTOOL version: 26 updated: 2010/10/23 15:55:24 +dnl CF_WITH_LIBTOOL version: 30 updated: 2013/09/07 13:54:05 dnl --------------- dnl Provide a configure option to incorporate libtool. Define several useful dnl symbols for the makefile rules. @@ -6252,13 +6774,20 @@ ifdef([AC_PROG_LIBTOOL],[ CF_PATH_SYNTAX(with_libtool) LIBTOOL=$with_libtool else - AC_PATH_PROG(LIBTOOL,libtool) + AC_CHECK_TOOLS(LIBTOOL,[libtool glibtool],none) + CF_LIBTOOL_VERSION + if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool + then + CF_FORGET_TOOL(LIBTOOL) + AC_CHECK_TOOLS(LIBTOOL,[glibtool],none) + CF_LIBTOOL_VERSION + fi fi if test -z "$LIBTOOL" ; then AC_MSG_ERROR(Cannot find libtool) fi ])dnl - LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} -o' + LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o' LIB_OBJECT='${OBJECTS:.o=.lo}' LIB_SUFFIX=.la LIB_CLEAN='${LIBTOOL} --mode=clean' @@ -6268,22 +6797,12 @@ ifdef([AC_PROG_LIBTOOL],[ 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 '/^$/d' |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 GNU libtool) - fi + CF_CHECK_LIBTOOL_VERSION # special hack to add -no-undefined (which libtool should do for itself) LT_UNDEF= case "$cf_cv_system_name" in #(vi - cygwin*|mingw32*|uwin*|aix[[456]]) #(vi + cygwin*|msys*|mingw32*|uwin*|aix[[4-7]]) #(vi LT_UNDEF=-no-undefined ;; esac @@ -6323,7 +6842,33 @@ AC_SUBST(LIB_UNINSTALL) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_WITH_PATH version: 10 updated: 2010/10/23 15:44:18 +dnl CF_WITH_LIB_PREFIX version: 1 updated: 2012/01/21 19:28:10 +dnl ------------------ +dnl Allow the library-prefix to be overridden. OS/2 EMX originally had no +dnl "lib" prefix, e.g., because it used the dll naming convention. +dnl +dnl $1 = variable to set +AC_DEFUN([CF_WITH_LIB_PREFIX], +[ +AC_MSG_CHECKING(if you want to have a library-prefix) +AC_ARG_WITH(lib-prefix, + [ --with-lib-prefix override library-prefix], + [with_lib_prefix=$withval], + [with_lib_prefix=auto]) +AC_MSG_RESULT($with_lib_prefix) + +if test $with_lib_prefix = auto +then + CF_LIB_PREFIX($1) +elif test $with_lib_prefix = no +then + LIB_PREFIX= +else + LIB_PREFIX=$with_lib_prefix +fi +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19 dnl ------------ dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just dnl defaulting to yes/no. @@ -6340,11 +6885,11 @@ ifelse([$4],,[withval="${$3}"],[withval="${$3:-ifelse([$5],,[$4],[$5])}"]))dnl if ifelse([$5],,true,[test -n "$5"]) ; then CF_PATH_SYNTAX(withval) fi -$3="$withval" +eval $3="$withval" AC_SUBST($3)dnl ])dnl dnl --------------------------------------------------------------------------- -dnl CF_WITH_PATHLIST version: 7 updated: 2010/10/23 16:10:30 +dnl CF_WITH_PATHLIST version: 9 updated: 2012/10/18 05:05:24 dnl ---------------- dnl Process an option specifying a list of colon-separated paths. dnl @@ -6365,7 +6910,7 @@ 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}:" + test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR" cf_dst_path="${cf_dst_path}${cf_src_path}" done IFS="$ac_save_ifs" @@ -6381,12 +6926,65 @@ esac cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'` ]) -eval '$3="$cf_dst_path"' +# This may use the prefix/exec_prefix symbols which will only yield "NONE" +# so we have to check/work around. We do prefer the result of "eval"... +eval cf_dst_eval="$cf_dst_path" +case "x$cf_dst_eval" in #(vi +xNONE*) #(vi + $3=$cf_dst_path + ;; +*) + $3="$cf_dst_eval" + ;; +esac AC_SUBST($3)dnl ])dnl dnl --------------------------------------------------------------------------- -dnl CF_WITH_PTHREAD version: 3 updated: 2010/05/29 16:31:02 +dnl CF_WITH_PKG_CONFIG_LIBDIR version: 2 updated: 2011/12/10 18:58:47 +dnl ------------------------- +dnl Allow the choice of the pkg-config library directory to be overridden. +AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[ +if test "$PKG_CONFIG" != none ; then + AC_MSG_CHECKING(for $PKG_CONFIG library directory) + AC_ARG_WITH(pkg-config-libdir, + [ --with-pkg-config-libdir=XXX use given directory for installing pc-files], + [PKG_CONFIG_LIBDIR=$withval], + [PKG_CONFIG_LIBDIR=yes]) + + case x$PKG_CONFIG_LIBDIR in #(vi + x/*) #(vi + ;; + xyes) #(vi + # look for the library directory using the same prefix as the executable + cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'` + case x`(arch) 2>/dev/null` in #(vi + *64) #(vi + for cf_config in $cf_path/share $cf_path/lib64 $cf_path/lib32 $cf_path/lib + do + if test -d $cf_config/pkgconfig + then + PKG_CONFIG_LIBDIR=$cf_config/pkgconfig + break + fi + done + ;; + *) + PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig + ;; + esac + ;; + *) + ;; + esac + + AC_MSG_RESULT($PKG_CONFIG_LIBDIR) +fi + +AC_SUBST(PKG_CONFIG_LIBDIR) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_WITH_PTHREAD version: 6 updated: 2012/10/06 17:41:51 dnl --------------- dnl Check for POSIX thread library. AC_DEFUN([CF_WITH_PTHREAD], @@ -6400,25 +6998,30 @@ AC_MSG_RESULT($with_pthread) if test "$with_pthread" != no ; then AC_CHECK_HEADER(pthread.h,[ - AC_DEFINE(HAVE_PTHREADS_H) + AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header]) - AC_MSG_CHECKING(if we can link with the pthread library) - cf_save_LIBS="$LIBS" - CF_ADD_LIB(pthread) - AC_TRY_LINK([ + for cf_lib_pthread in pthread c_r + do + AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library) + cf_save_LIBS="$LIBS" + CF_ADD_LIB($cf_lib_pthread) + AC_TRY_LINK([ #include ],[ - int rc = pthread_create(0,0,0,0); + int rc = pthread_create(0,0,0,0); + int r2 = pthread_mutexattr_settype(0, 0); ],[with_pthread=yes],[with_pthread=no]) - LIBS="$cf_save_LIBS" - AC_MSG_RESULT($with_pthread) + LIBS="$cf_save_LIBS" + AC_MSG_RESULT($with_pthread) + test "$with_pthread" = yes && break + done - if test "$with_pthread" = yes ; then - CF_ADD_LIB(pthread) - AC_DEFINE(HAVE_LIBPTHREADS) - else - AC_MSG_ERROR(Cannot link with pthread library) - fi + if test "$with_pthread" = yes ; then + CF_ADD_LIB($cf_lib_pthread) + AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library]) + else + AC_MSG_ERROR(Cannot link with pthread library) + fi ]) fi ]) @@ -6448,7 +7051,7 @@ ifelse($1,,[ ]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43 +dnl CF_WITH_SYSMOUSE version: 3 updated: 2012/10/06 17:56:13 dnl ---------------- dnl If we can compile with sysmouse, make it available unless it is not wanted. AC_DEFUN([CF_WITH_SYSMOUSE],[ @@ -6474,10 +7077,30 @@ AC_ARG_WITH(sysmouse, ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no]) fi AC_MSG_RESULT($cf_with_sysmouse) -test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE) +test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE,1,[Define to 1 if we can/should use the sysmouse interface]) fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12 +dnl --------------- +dnl For testing, override the derived host system-type which is used to decide +dnl things such as the linker commands used to build shared libraries. This is +dnl normally chosen automatically based on the type of system which you are +dnl building on. We use it for testing the configure script. +dnl +dnl This is different from the --host option: it is used only for testing parts +dnl of the configure script which would not be reachable with --host since that +dnl relies on the build environment being real, rather than mocked up. +AC_DEFUN([CF_WITH_SYSTYPE],[ +CF_CHECK_CACHE([AC_CANONICAL_SYSTEM]) +AC_ARG_WITH(system-type, + [ --with-system-type=XXX test: override derived host system-type], +[AC_MSG_WARN(overriding system type to $withval) + cf_cv_system_name=$withval + host_os=$withval +]) +])dnl +dnl --------------------------------------------------------------------------- dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21 dnl ---------------- AC_DEFUN([CF_WITH_VALGRIND],[ @@ -6486,7 +7109,7 @@ CF_NO_LEAKS_OPTION(valgrind, [USE_VALGRIND]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_XOPEN_SOURCE version: 35 updated: 2011/02/20 20:37:37 +dnl CF_XOPEN_SOURCE version: 46 updated: 2014/02/09 19:30:15 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, @@ -6496,16 +7119,17 @@ dnl Parameters: dnl $1 is the nominal value for _XOPEN_SOURCE dnl $2 is the nominal value for _POSIX_C_SOURCE AC_DEFUN([CF_XOPEN_SOURCE],[ +AC_REQUIRE([AC_CANONICAL_HOST]) cf_XOPEN_SOURCE=ifelse([$1],,500,[$1]) cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2]) cf_xopen_source= case $host_os in #(vi -aix[[456]]*) #(vi +aix[[4-7]]*) #(vi cf_xopen_source="-D_ALL_SOURCE" ;; -cygwin) #(vi +cygwin|msys) #(vi cf_XOPEN_SOURCE=600 ;; darwin[[0-8]].*) #(vi @@ -6513,6 +7137,7 @@ darwin[[0-8]].*) #(vi ;; darwin*) #(vi cf_xopen_source="-D_DARWIN_C_SOURCE" + cf_XOPEN_SOURCE= ;; freebsd*|dragonfly*) #(vi # 5.x headers associate @@ -6530,15 +7155,23 @@ hpux*) #(vi ;; irix[[56]].*) #(vi cf_xopen_source="-D_SGI_SOURCE" + cf_XOPEN_SOURCE= ;; linux*|gnu*|mint*|k*bsd*-gnu) #(vi CF_GNU_SOURCE ;; mirbsd*) #(vi - # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks + # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks and other headers which use u_int / u_short types + cf_XOPEN_SOURCE= + CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) ;; netbsd*) #(vi - # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw + cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw + ;; +openbsd[[4-9]]*) #(vi + # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw + cf_xopen_source="-D_BSD_SOURCE" + cf_XOPEN_SOURCE=600 ;; openbsd*) #(vi # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw @@ -6552,36 +7185,12 @@ nto-qnx*) #(vi sco*) #(vi # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer ;; -solaris2.1[[0-9]]) #(vi - cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" - ;; -solaris2.[[1-9]]) #(vi +solaris2.*) #(vi cf_xopen_source="-D__EXTENSIONS__" + cf_cv_xopen_source=broken ;; *) - AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[ - AC_TRY_COMPILE([#include ],[ -#ifndef _XOPEN_SOURCE -make an error -#endif], - [cf_cv_xopen_source=no], - [cf_save="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" - AC_TRY_COMPILE([#include ],[ -#ifdef _XOPEN_SOURCE -make an error -#endif], - [cf_cv_xopen_source=no], - [cf_cv_xopen_source=$cf_XOPEN_SOURCE]) - CPPFLAGS="$cf_save" - ]) -]) - if test "$cf_cv_xopen_source" != no ; then - CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE) - CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE) - cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" - CF_ADD_CFLAGS($cf_temp_xopen_source) - fi + CF_TRY_XOPEN_SOURCE CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) ;; esac @@ -6589,4 +7198,33 @@ esac if test -n "$cf_xopen_source" ; then CF_ADD_CFLAGS($cf_xopen_source) fi + +dnl In anything but the default case, we may have system-specific setting +dnl which is still not guaranteed to provide all of the entrypoints that +dnl _XOPEN_SOURCE would yield. +if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then + AC_MSG_CHECKING(if _XOPEN_SOURCE really is set) + AC_TRY_COMPILE([#include ],[ +#ifndef _XOPEN_SOURCE +make an error +#endif], + [cf_XOPEN_SOURCE_set=yes], + [cf_XOPEN_SOURCE_set=no]) + AC_MSG_RESULT($cf_XOPEN_SOURCE_set) + if test $cf_XOPEN_SOURCE_set = yes + then + AC_TRY_COMPILE([#include ],[ +#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE +make an error +#endif], + [cf_XOPEN_SOURCE_set_ok=yes], + [cf_XOPEN_SOURCE_set_ok=no]) + if test $cf_XOPEN_SOURCE_set_ok = no + then + AC_MSG_WARN(_XOPEN_SOURCE is lower than requested) + fi + else + CF_TRY_XOPEN_SOURCE + fi +fi ]) diff --git a/contrib/ncurses/announce.html.in b/contrib/ncurses/announce.html.in index e385204de503..a07dc0573325 100644 --- a/contrib/ncurses/announce.html.in +++ b/contrib/ncurses/announce.html.in @@ -1,8 +1,7 @@ - + + "HTML Tidy for Linux (vers 25 March 2009), see www.w3.org"> Announcing ncurses @VERSION@ @@ -42,12 +42,13 @@ -

Announcing ncurses @VERSION@

The ncurses (new curses) - library is a free software emulation of curses in System V - Release 4.0, and more. It uses terminfo format, supports pads and - color and multiple highlights and forms characters and - function-key mapping, and has all the other SYSV-curses - enhancements over BSD curses. +

Announcing ncurses @VERSION@

+ +

The ncurses (new curses) library is a free software emulation + of curses in System V Release 4.0, and more. It uses terminfo + format, supports pads and color and multiple highlights and forms + characters and function-key mapping, and has all the other + SYSV-curses enhancements over BSD curses.

In mid-June 1995, the maintainer of 4.4BSD curses declared that he considered 4.4BSD curses obsolete, and encouraged the @@ -73,38 +74,50 @@ It is also available at ftp://invisible-island.net/ncurses/ .

-

Release Notes

This release is designed to be upward - compatible from ncurses 5.0 through 5.8; very few applications - will require recompilation, depending on the platform. These are - the highlights from the change-log since ncurses 5.8 release. -

- This is a bug-fix release, correcting a small number of urgent problems - in the ncurses library from the 5.8 release. -

- It also improves the Ada95 binding: +

Release Notes

+ +

This release is designed to be upward compatible from ncurses + 5.0 through 5.8; very few applications will require + recompilation, depending on the platform. These are the + highlights from the change-log since ncurses 5.8 release.

+ +

This is a bug-fix release, correcting a small number of urgent + problems in the ncurses library from the 5.8 release.

+ +

It also improves the Ada95 binding:

+
    -
  • fixes a longstanding portability problem with its use of the - set_field_type - function. Because that function uses variable-length argument lists, - its interface with gnat does not work with certain platforms. -
  • improves configurability and portability, particularly when built - separately from the main ncurses tree. The 5.8 release introduced - scripts which can be used to construct separate tarballs for the - Ada95 and ncurses examples. -

    Those were a proof of concept. For the 5.9 release, those - scripts are augmented with rpm- and dpkg-scripts used in test builds - against a variety of gnat- and system ncurses versions as old as - gnat 3.15 and ncurses 5.4 (see snapshots and systems tested - here. -

  • additional improvements were made for portability of the - ncurses examples, adding rpm- and dpkg-scripts for test-builds. - See - this page - for snapshots and other information. +
  • fixes a longstanding portability problem with its use of + the set_field_type + function. Because that function uses variable-length argument + lists, its interface with gnat does not work with certain + platforms.
  • + +
  • improves configurability and portability, particularly when + built separately from the main ncurses tree. The 5.8 release + introduced scripts which can be used to construct separate + tarballs for the Ada95 and ncurses examples. + +

    Those were a proof of concept. For the 5.9 release, those + scripts are augmented with rpm- and dpkg-scripts used in test + builds against a variety of gnat- and system ncurses versions + as old as gnat 3.15 and ncurses 5.4 (see snapshots and + systems tested here.

    +
  • + +
  • additional improvements were made for portability of the + ncurses examples, adding rpm- and dpkg-scripts for test-builds. + See this + page for snapshots and other information.
-

Features of Ncurses

The ncurses package is fully - compatible with SVr4 (System V Release 4) curses: +

Features of Ncurses

+ +

The ncurses package is fully compatible with SVr4 (System V + Release 4) curses:

  • All 257 of the SVr4 calls have been implemented (and are @@ -132,8 +145,10 @@ entries for use with less capable curses/terminfo versions such as the HP/UX and AIX ports.
  • -
The ncurses package also has many useful extensions over - SVr4: + + +

The ncurses package also has many useful extensions over + SVr4:

  • The API is 8-bit clean and base-level conformant with the @@ -249,12 +264,14 @@ interface.
-

State of the Package

Numerous bugs present in earlier - versions have been fixed; the library is far more reliable than - it used to be. Bounds checking in many `dangerous' entry points - has been improved. The code is now type-safe according to gcc - -Wall. The library has been checked for malloc leaks and arena - corruption by the Purify memory-allocation tester. +

State of the Package

+ +

Numerous bugs present in earlier versions have been fixed; the + library is far more reliable than it used to be. Bounds checking + in many `dangerous' entry points has been improved. The code is + now type-safe according to gcc -Wall. The library has been + checked for malloc leaks and arena corruption by the Purify + memory-allocation tester.

The ncurses code has been tested with a wide variety of applications including (versions starting with those noted):

@@ -321,8 +338,10 @@
newsreader, supporting color, MIME http://www.tin.org/
- as well as some that use ncurses for the terminfo support - alone: + + +

as well as some that use ncurses for the terminfo support + alone:

minicom
@@ -341,15 +360,17 @@

The ncurses distribution includes a selection of test programs (including a few games).

-

Who's Who and What's What

Zeyd Ben-Halim started it from - a previous package pcurses, written by Pavel Curtis. Eric S. - Raymond continued development. Jürgen Pfeifer wrote most of - the form and menu libraries. Ongoing work is being done by - Thomas Dickey. - Thomas Dickey acts as the maintainer for the Free Software - Foundation, which holds the copyright on ncurses. Contact the - current maintainers at bug-ncurses@gnu.org. +

Who's Who and What's What

+ +

Zeyd Ben-Halim started it from a previous package pcurses, + written by Pavel Curtis. Eric S. Raymond continued development. + Jürgen Pfeifer wrote most of the form and menu libraries. + Ongoing work is being done by Thomas Dickey. Thomas + Dickey acts as the maintainer for the Free Software Foundation, + which holds the copyright on ncurses. Contact the current + maintainers at bug-ncurses@gnu.org.

To join the ncurses mailing list, please write email to bug-ncurses-request@gnu.org containing the line:

@@ -364,6 +385,13 @@ are made available at ftp://invisible-island.net/ncurses/ .

+

There is an archive of the mailing list here:

+ +

http://lists.gnu.org/archive/html/bug-ncurses + (also https)

+

Future Plans

    @@ -371,15 +399,19 @@ support.
  • Ports to more systems, including DOS and Windows.
  • -
We need people to help with these projects. If you are - interested in working on them, please join the ncurses list. + -

Other Related Resources

The distribution provides a newer - version of the terminfo-format terminal description file once - maintained by Eric +

We need people to help with these projects. If you are + interested in working on them, please join the ncurses list.

+ +

Other Related Resources

+ +

The distribution provides a newer version of the + terminfo-format terminal description file once maintained by + Eric Raymond . Unlike the older version, the termcap and terminfo data are provided in the same file, and provides several - user-definable extensions beyond the X/Open specification. + user-definable extensions beyond the X/Open specification.

You can find lots of information on terminal-related topics not covered in the terminfo file at . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner. Please send patches (context -# diff format) to and include a ChangeLog -# entry. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). # -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. +# Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# +# Please send patches with a ChangeLog entry to config-patches@gnu.org. + me=`echo "$0" | sed -e 's,.*/,,'` @@ -56,9 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free -Software Foundation, Inc. +Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -92,7 +84,7 @@ if test $# != 0; then exit 1 fi -trap 'exit 1' HUP INT TERM +trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires @@ -106,7 +98,7 @@ trap 'exit 1' HUP INT TERM set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || @@ -140,12 +132,33 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + ;; +esac + # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward @@ -202,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} @@ -220,10 +237,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in - *4.0) + *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; - *5.*) + *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac @@ -270,7 +287,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead @@ -301,7 +321,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) + arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) @@ -326,8 +346,8 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; @@ -495,7 +515,7 @@ EOF else echo i586-dg-dgux${UNAME_RELEASE} fi - exit ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; @@ -597,50 +617,50 @@ EOF sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac + esac ;; + esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + sed 's/^ //' << EOF >$dummy.c - #define _HPUX_SOURCE - #include - #include + #define _HPUX_SOURCE + #include + #include - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa @@ -789,21 +809,26 @@ EOF echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; + i*:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 @@ -820,8 +845,8 @@ EOF echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks @@ -849,70 +874,81 @@ EOF exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null | \ - grep -q __ARM_EABI__ + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) - echo cris-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) - echo frv-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) - LIBC=gnu - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build @@ -931,54 +967,63 @@ EOF #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; + or1k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; or32:Linux:*:*) - echo or32-unknown-linux-gnu - exit ;; + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-gnu + echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit ;; + echo hppa64-unknown-linux-${LIBC} + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu + echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-tilera-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu + echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1093,7 +1138,7 @@ EOF && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; + && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ @@ -1136,8 +1181,8 @@ EOF echo ns32k-sni-sysv fi exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) @@ -1165,9 +1210,9 @@ EOF exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv${UNAME_RELEASE} else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. @@ -1182,6 +1227,9 @@ EOF BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1208,26 +1256,28 @@ EOF exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - i386) - eval $set_cc_for_build - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - UNAME_PROCESSOR="x86_64" - fi - fi ;; - unknown) UNAME_PROCESSOR=powerpc ;; - esac + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; @@ -1237,7 +1287,7 @@ EOF NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; - NSE-?:NONSTOP_KERNEL:*:*) + NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) @@ -1306,11 +1356,11 @@ EOF i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; esac -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - eval $set_cc_for_build cat >$dummy.c < printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 - "4" + "4" #else - "" + "" #endif - ); exit (0); + ); exit (0); #endif #endif diff --git a/contrib/ncurses/config.sub b/contrib/ncurses/config.sub index de11910f0b15..61cb4bc22db8 100755 --- a/contrib/ncurses/config.sub +++ b/contrib/ncurses/config.sub @@ -1,38 +1,31 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -# Free Software Foundation, Inc. +# Copyright 1992-2013 Free Software Foundation, Inc. -timestamp='2010-09-11' +timestamp='2013-10-01' -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches to . Submit a context -# diff and a properly formatted GNU ChangeLog entry. +# Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -75,9 +68,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free -Software Foundation, Inc. +Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -125,13 +116,17 @@ esac maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] @@ -154,7 +149,7 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze) + -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; @@ -175,10 +170,10 @@ case $os in os=-chorusos basic_machine=$1 ;; - -chorusrdb) - os=-chorusrdb + -chorusrdb) + os=-chorusrdb basic_machine=$1 - ;; + ;; -hiux*) os=-hiuxwe2 ;; @@ -223,6 +218,12 @@ case $os in -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; -lynx*) os=-lynxos ;; @@ -247,20 +248,28 @@ case $basic_machine in # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ + | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | be32 | be64 \ | bfin \ - | c4x | clipper \ + | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ + | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep | metag \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -278,30 +287,32 @@ case $basic_machine in | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ - | nds32 | nds32le | nds32be\ - | nios | nios2 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ - | or32 \ + | open8 \ + | or1k | or32 \ | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ - | rx \ + | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ - | v850 | v850e \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; @@ -314,8 +325,7 @@ case $basic_machine in c6x) basic_machine=tic6x-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12 | picochip) - # Motorola 68HC11/12. + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; @@ -325,12 +335,27 @@ case $basic_machine in basic_machine=mt-unknown ;; + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; + basic_machine=$basic_machine-pc + ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 @@ -339,25 +364,31 @@ case $basic_machine in # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ + | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | clipper-* | craynv-* | cydra-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -375,31 +406,34 @@ case $basic_machine in | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ - | romp-* | rs6000-* | rx-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile-* | tilegx-* \ + | tile*-* \ | tron-* \ | ubicom32-* \ - | v850-* | v850e-* | vax-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) @@ -539,7 +573,7 @@ case $basic_machine in basic_machine=craynv-cray os=-unicosmp ;; - cr16) + cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; @@ -697,7 +731,6 @@ case $basic_machine in i370-ibm* | ibm*) basic_machine=i370-ibm ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 @@ -755,11 +788,15 @@ case $basic_machine in basic_machine=ns32k-utek os=-sysv ;; - microblaze) + microblaze*) basic_machine=microblaze-xilinx ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; mingw32) - basic_machine=i386-pc + basic_machine=i686-pc os=-mingw32 ;; mingw32ce) @@ -794,10 +831,18 @@ case $basic_machine in ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; + msys) + basic_machine=i686-pc + os=-msys + ;; mvs) basic_machine=i370-ibm os=-mvs ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; ncr3000) basic_machine=i486-ncr os=-sysv4 @@ -950,9 +995,10 @@ case $basic_machine in ;; power) basic_machine=power-ibm ;; - ppc) basic_machine=powerpc-unknown + ppc | ppcbe) basic_machine=powerpc-unknown ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown @@ -977,7 +1023,11 @@ case $basic_machine in basic_machine=i586-unknown os=-pw32 ;; - rdos) + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) basic_machine=i386-pc os=-rdos ;; @@ -1046,6 +1096,9 @@ case $basic_machine in basic_machine=i860-stratus os=-sysv4 ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; sun2) basic_machine=m68000-sun ;; @@ -1102,13 +1155,8 @@ case $basic_machine in basic_machine=t90-cray os=-unicos ;; - # This must be matched before tile*. - tilegx*) - basic_machine=tilegx-unknown - os=-linux-gnu - ;; tile*) - basic_machine=tile-unknown + basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) @@ -1178,6 +1226,9 @@ case $basic_machine in xps | xps100) basic_machine=xps100-honeywell ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; ymp) basic_machine=ymp-cray os=-unicos @@ -1303,21 +1354,21 @@ case $os in -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* \ + | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ + | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-uclibc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ @@ -1449,9 +1500,6 @@ case $os in -aros*) os=-aros ;; - -kaos*) - os=-kaos - ;; -zvmoe) os=-zvmoe ;; @@ -1500,6 +1548,12 @@ case $basic_machine in c4x-* | tic4x-*) os=-coff ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; tic54x-*) os=-coff ;; @@ -1527,9 +1581,6 @@ case $basic_machine in ;; m68000-sun) os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 ;; m68*-cisco) os=-aout @@ -1543,6 +1594,9 @@ case $basic_machine in mips*-*) os=-elf ;; + or1k-*) + os=-elf + ;; or32-*) os=-coff ;; diff --git a/contrib/ncurses/configure b/contrib/ncurses/configure index 639b790dc3ac..c8368523b9ab 100755 --- a/contrib/ncurses/configure +++ b/contrib/ncurses/configure @@ -1,7 +1,7 @@ #! /bin/sh -# From configure.in Revision: 1.520 . +# From configure.in Revision: 1.577 . # Guess values for system-dependent variables and create Makefiles. -# Generated by Autoconf 2.52.20101002. +# Generated by Autoconf 2.52.20121002. # # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. @@ -171,15 +171,16 @@ x_libraries=NONE bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' +datarootdir='${prefix}/share' +datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' +infodir='${datarootdir}/info' +mandir='${datarootdir}/man' # Identity of this package. PACKAGE_NAME= @@ -230,6 +231,13 @@ do | --da=*) datadir=$ac_optarg ;; + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. @@ -505,7 +513,7 @@ do done # Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ +for ac_var in bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` @@ -654,15 +662,16 @@ Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data [PREFIX/share] + --datarootdir=DIR read-only architecture-independent data [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] + --infodir=DIR info documentation [DATAROOTDIR/info] + --mandir=DIR man documentation [DATAROOTDIR/man] EOF cat <<\EOF @@ -694,14 +703,16 @@ Optional Features: --with-rel-version=XXX override derived release version --with-abi-version=XXX override derived ABI version --with-system-type=XXX test: override derived host system-type + --without-ada suppress check for Ada95, don't build demo --without-cxx do not adjust ncurses bool to match C++ --without-cxx-binding do not build C++ binding and demo - --without-ada suppress check for Ada95, don't build demo + --disable-db-install suppress install of terminal database --without-manpages suppress install of manpages - --without-progs suppress build with programs (e.g., tic) - --without-tests suppress build with test-programs + --without-progs suppress build/install with programs (e.g., tic) + --without-tests suppress build/install with test-programs --without-curses-h install curses.h as ncurses.h only --with-pkg-config{=path} enable/disable use of pkg-config + --with-pkg-config-libdir=XXX use given directory for installing pc-files --enable-pc-files generate and install .pc files for pkg-config --enable-mixed-case tic should assume mixed-case filenames --with-install-prefix prefixes actual install-location ($DESTDIR) @@ -719,6 +730,8 @@ Options to Specify the Libraries Built/Used: --with-normal generate normal-libraries (default) --with-debug generate debug-libraries (default) --with-profile generate profile-libraries + --with-cxx-shared generate C++ shared-libraries + --with-lib-prefix override library-prefix --with-termlib generate separate terminfo library --with-ticlib generate separate tic library --with-gpm use Alessandro Rubini's GPM library @@ -735,6 +748,7 @@ Fine-Tuning Your Configuration: --with-hashed-db specify hashed-database library --with-fallbacks=XXX specify list of fallback terminal descriptions --without-xterm-new specify if xterm terminfo should be old version + --with-xterm-kbs=XXX specify if xterm backspace sends BS or DEL --with-terminfo-dirs=XXX specify list of terminfo directories (default: DATADIR/terminfo) --with-default-terminfo-dir=DIR default terminfo directory (default: DATADIR/terminfo) --disable-big-core assume machine has little memory @@ -759,6 +773,7 @@ Fine-Tuning Your Configuration: --with-ospeed=TYPE override type of ospeed variable --with-mmask-t=TYPE override type of mmask_t --with-ccharw-max=XXX override size CCHARW_MAX + --with-tparm-arg=TYPE override parameter type of tparm --with-rcs-ids compile-in RCS identifiers Options to Specify How Manpages are Installed: --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and @@ -796,8 +811,9 @@ Experimental Code: --disable-scroll-hints compile without scroll-hints code --enable-wgetch-events compile with experimental wgetch-events code Testing/development Options: - --enable-echo build: display "compiling" commands (default) + --disable-echo do not display "compiling" commands --enable-warnings build: turn on GCC compiler warnings + --enable-string-hacks work around bogus compiler/loader warnings --enable-assertions test: turn on generation of assertion code --with-dmalloc test: use Gray Watson's dmalloc library --with-dbmalloc test: use Conor Cahill's dbmalloc library @@ -883,7 +899,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.52.20101002. Invocation command line was +generated by GNU Autoconf 2.52.20121002. Invocation command line was $ $0 $@ @@ -1007,7 +1023,7 @@ if test -z "$CONFIG_SITE"; then fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then - { echo "$as_me:1010: loading site script $ac_site_file" >&5 + { echo "$as_me:1026: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} cat "$ac_site_file" >&5 . "$ac_site_file" @@ -1018,7 +1034,7 @@ if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then - { echo "$as_me:1021: loading cache $cache_file" >&5 + { echo "$as_me:1037: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; @@ -1026,7 +1042,7 @@ echo "$as_me: loading cache $cache_file" >&6;} esac fi else - { echo "$as_me:1029: creating cache $cache_file" >&5 + { echo "$as_me:1045: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi @@ -1042,21 +1058,21 @@ for ac_var in `(set) 2>&1 | eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) - { echo "$as_me:1045: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 + { echo "$as_me:1061: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) - { echo "$as_me:1049: error: \`$ac_var' was not set in the previous run" >&5 + { echo "$as_me:1065: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:1055: error: \`$ac_var' has changed since the previous run:" >&5 + { echo "$as_me:1071: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:1057: former value: $ac_old_val" >&5 + { echo "$as_me:1073: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:1059: current value: $ac_new_val" >&5 + { echo "$as_me:1075: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; @@ -1075,9 +1091,9 @@ echo "$as_me: current value: $ac_new_val" >&2;} fi done if $ac_cache_corrupted; then - { echo "$as_me:1078: error: changes in the environment can compromise the build" >&5 + { echo "$as_me:1094: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:1080: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 + { { echo "$as_me:1096: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi @@ -1098,10 +1114,10 @@ esac echo "#! $SHELL" >conftest.sh echo "exit 0" >>conftest.sh chmod +x conftest.sh -if { (echo "$as_me:1101: PATH=\".;.\"; conftest.sh") >&5 +if { (echo "$as_me:1117: PATH=\".;.\"; conftest.sh") >&5 (PATH=".;."; conftest.sh) 2>&5 ac_status=$? - echo "$as_me:1104: \$? = $ac_status" >&5 + echo "$as_me:1120: \$? = $ac_status" >&5 (exit $ac_status); }; then ac_path_separator=';' else @@ -1114,7 +1130,7 @@ ac_config_headers="$ac_config_headers include/ncurses_cfg.h:include/ncurses_cfg. top_builddir=`pwd` -echo "$as_me:1117: checking for egrep" >&5 +echo "$as_me:1133: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1124,11 +1140,11 @@ else else ac_cv_prog_egrep='egrep' fi fi -echo "$as_me:1127: result: $ac_cv_prog_egrep" >&5 +echo "$as_me:1143: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep -test -z "$EGREP" && { { echo "$as_me:1131: error: No egrep program found" >&5 +test -z "$EGREP" && { { echo "$as_me:1147: error: No egrep program found" >&5 echo "$as_me: error: No egrep program found" >&2;} { (exit 1); exit 1; }; } @@ -1138,7 +1154,7 @@ NCURSES_PATCH="`$ac_cv_prog_egrep '^NCURSES_PATCH[ ]*=' $srcdir/dist.mk | sed - cf_cv_abi_version=${NCURSES_MAJOR} cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR} cf_cv_timestamp=`date` -echo "$as_me:1141: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5 +echo "$as_me:1157: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5 echo "${ECHO_T}Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&6 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0 @@ -1146,7 +1162,7 @@ test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0 # Check whether --with-rel-version or --without-rel-version was given. if test "${with_rel_version+set}" = set; then withval="$with_rel_version" - { echo "$as_me:1149: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5 + { echo "$as_me:1165: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5 echo "$as_me: WARNING: overriding release version $cf_cv_rel_version to $withval" >&2;} cf_cv_rel_version=$withval fi; @@ -1159,13 +1175,13 @@ if test -n "$NCURSES_MAJOR" ; then [0-9]*) #(vi ;; *) - { { echo "$as_me:1162: error: Release major-version is not a number: $NCURSES_MAJOR" >&5 + { { echo "$as_me:1178: error: Release major-version is not a number: $NCURSES_MAJOR" >&5 echo "$as_me: error: Release major-version is not a number: $NCURSES_MAJOR" >&2;} { (exit 1); exit 1; }; } ;; esac else - { { echo "$as_me:1168: error: Release major-version value is empty" >&5 + { { echo "$as_me:1184: error: Release major-version value is empty" >&5 echo "$as_me: error: Release major-version value is empty" >&2;} { (exit 1); exit 1; }; } fi @@ -1175,13 +1191,13 @@ if test -n "$NCURSES_MINOR" ; then [0-9]*) #(vi ;; *) - { { echo "$as_me:1178: error: Release minor-version is not a number: $NCURSES_MINOR" >&5 + { { echo "$as_me:1194: error: Release minor-version is not a number: $NCURSES_MINOR" >&5 echo "$as_me: error: Release minor-version is not a number: $NCURSES_MINOR" >&2;} { (exit 1); exit 1; }; } ;; esac else - { { echo "$as_me:1184: error: Release minor-version value is empty" >&5 + { { echo "$as_me:1200: error: Release minor-version value is empty" >&5 echo "$as_me: error: Release minor-version value is empty" >&2;} { (exit 1); exit 1; }; } fi @@ -1191,7 +1207,7 @@ test -z "$cf_cv_abi_version" && cf_cv_abi_version=0 # Check whether --with-abi-version or --without-abi-version was given. if test "${with_abi_version+set}" = set; then withval="$with_abi_version" - { echo "$as_me:1194: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5 + { echo "$as_me:1210: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5 echo "$as_me: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&2;} cf_cv_abi_version=$withval fi; @@ -1201,13 +1217,13 @@ if test -n "$cf_cv_abi_version" ; then [0-9]*) #(vi ;; *) - { { echo "$as_me:1204: error: ABI version is not a number: $cf_cv_abi_version" >&5 + { { echo "$as_me:1220: error: ABI version is not a number: $cf_cv_abi_version" >&5 echo "$as_me: error: ABI version is not a number: $cf_cv_abi_version" >&2;} { (exit 1); exit 1; }; } ;; esac else - { { echo "$as_me:1210: error: ABI version value is empty" >&5 + { { echo "$as_me:1226: error: ABI version value is empty" >&5 echo "$as_me: error: ABI version value is empty" >&2;} { (exit 1); exit 1; }; } fi @@ -1229,7 +1245,7 @@ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do fi done if test -z "$ac_aux_dir"; then - { { echo "$as_me:1232: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 + { { echo "$as_me:1248: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi @@ -1239,11 +1255,11 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || - { { echo "$as_me:1242: error: cannot run $ac_config_sub" >&5 + { { echo "$as_me:1258: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } -echo "$as_me:1246: checking build system type" >&5 +echo "$as_me:1262: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1252,23 +1268,23 @@ else test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && - { { echo "$as_me:1255: error: cannot guess build type; you must specify one" >&5 + { { echo "$as_me:1271: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || - { { echo "$as_me:1259: error: $ac_config_sub $ac_cv_build_alias failed." >&5 + { { echo "$as_me:1275: error: $ac_config_sub $ac_cv_build_alias failed." >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;} { (exit 1); exit 1; }; } fi -echo "$as_me:1264: result: $ac_cv_build" >&5 +echo "$as_me:1280: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$as_me:1271: checking host system type" >&5 +echo "$as_me:1287: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1277,12 +1293,12 @@ else test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || - { { echo "$as_me:1280: error: $ac_config_sub $ac_cv_host_alias failed" >&5 + { { echo "$as_me:1296: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi -echo "$as_me:1285: result: $ac_cv_host" >&5 +echo "$as_me:1301: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` @@ -1290,7 +1306,7 @@ host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then - echo "$as_me:1293: checking target system type" >&5 + echo "$as_me:1309: checking target system type" >&5 echo $ECHO_N "checking target system type... $ECHO_C" >&6 if test "${ac_cv_target+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1299,12 +1315,12 @@ else test "x$ac_cv_target_alias" = "x" && ac_cv_target_alias=$ac_cv_host_alias ac_cv_target=`$ac_config_sub $ac_cv_target_alias` || - { { echo "$as_me:1302: error: $ac_config_sub $ac_cv_target_alias failed" >&5 + { { echo "$as_me:1318: error: $ac_config_sub $ac_cv_target_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;} { (exit 1); exit 1; }; } fi -echo "$as_me:1307: result: $ac_cv_target" >&5 +echo "$as_me:1323: result: $ac_cv_target" >&5 echo "${ECHO_T}$ac_cv_target" >&6 target=$ac_cv_target target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` @@ -1324,7 +1340,8 @@ else system_name="`(hostname) 2>/dev/null`" fi fi -test -n "$system_name" && cat >>confdefs.h <>confdefs.h <&5 +test -n "$cf_cv_system_name" && echo "$as_me:1355: result: Configuring for $cf_cv_system_name" >&5 echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6 if test ".$system_name" != ".$cf_cv_system_name" ; then - echo "$as_me:1342: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5 + echo "$as_me:1359: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5 echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6 - { { echo "$as_me:1344: error: \"Please remove config.cache and try again.\"" >&5 + { { echo "$as_me:1361: error: \"Please remove config.cache and try again.\"" >&5 echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;} { (exit 1); exit 1; }; } fi @@ -1349,9 +1366,11 @@ fi # Check whether --with-system-type or --without-system-type was given. if test "${with_system_type+set}" = set; then withval="$with_system_type" - { echo "$as_me:1352: WARNING: overriding system type to $withval" >&5 + { echo "$as_me:1369: WARNING: overriding system type to $withval" >&5 echo "$as_me: WARNING: overriding system type to $withval" >&2;} - cf_cv_system_name=$withval + cf_cv_system_name=$withval + host_os=$withval + fi; ### Save the given $CFLAGS to allow user-override. @@ -1359,23 +1378,23 @@ cf_user_CFLAGS="$CFLAGS" ### Default install-location -echo "$as_me:1362: checking for prefix" >&5 +echo "$as_me:1381: checking for prefix" >&5 echo $ECHO_N "checking for prefix... $ECHO_C" >&6 if test "x$prefix" = "xNONE" ; then case "$cf_cv_system_name" in # non-vendor systems don't have a conflict - openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu) + openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*) prefix=/usr ;; *) prefix=$ac_default_prefix ;; esac fi -echo "$as_me:1374: result: $prefix" >&5 +echo "$as_me:1393: result: $prefix" >&5 echo "${ECHO_T}$prefix" >&6 if test "x$prefix" = "xNONE" ; then -echo "$as_me:1378: checking for default include-directory" >&5 +echo "$as_me:1397: checking for default include-directory" >&5 echo $ECHO_N "checking for default include-directory... $ECHO_C" >&6 test -n "$verbose" && echo 1>&6 for cf_symbol in \ @@ -1398,11 +1417,26 @@ do fi test -n "$verbose" && echo " tested $cf_dir" 1>&6 done -echo "$as_me:1401: result: $includedir" >&5 +echo "$as_me:1420: result: $includedir" >&5 echo "${ECHO_T}$includedir" >&6 fi ### Checks for programs. + +# Check whether --with-ada or --without-ada was given. +if test "${with_ada+set}" = set; then + withval="$with_ada" + cf_with_ada=$withval +else + cf_with_ada=yes +fi; +if test "x$cf_with_ada" = xyes +then + cf_PROG_CC="gnatgcc gcc cc" +else + cf_PROG_CC="gcc cc" +fi + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -1410,213 +1444,11 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_main_return=return if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo "$as_me:1415: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_CC="${ac_tool_prefix}gcc" -echo "$as_me:1430: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:1438: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:1441: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo "$as_me:1450: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_CC="gcc" -echo "$as_me:1465: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:1473: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:1476: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -echo "$as_me:1489: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_CC="${ac_tool_prefix}cc" -echo "$as_me:1504: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:1512: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:1515: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:1524: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_CC="cc" -echo "$as_me:1539: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:1547: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:1550: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:1563: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue -fi -ac_cv_prog_CC="cc" -echo "$as_me:1583: found $ac_dir/$ac_word" >&5 -break -done - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" ${1+"$@"} - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:1605: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:1608: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl + for ac_prog in $cf_PROG_CC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:1619: checking for $ac_word" >&5 +echo "$as_me:1451: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1631,7 +1463,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_CC="$ac_tool_prefix$ac_prog" -echo "$as_me:1634: found $ac_dir/$ac_word" >&5 +echo "$as_me:1466: found $ac_dir/$ac_word" >&5 break done @@ -1639,10 +1471,10 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:1642: result: $CC" >&5 + echo "$as_me:1474: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else - echo "$as_me:1645: result: no" >&5 + echo "$as_me:1477: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1651,11 +1483,11 @@ fi fi if test -z "$CC"; then ac_ct_CC=$CC - for ac_prog in cl + for ac_prog in $cf_PROG_CC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:1658: checking for $ac_word" >&5 +echo "$as_me:1490: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1670,7 +1502,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ac_ct_CC="$ac_prog" -echo "$as_me:1673: found $ac_dir/$ac_word" >&5 +echo "$as_me:1505: found $ac_dir/$ac_word" >&5 break done @@ -1678,10 +1510,10 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - echo "$as_me:1681: result: $ac_ct_CC" >&5 + echo "$as_me:1513: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else - echo "$as_me:1684: result: no" >&5 + echo "$as_me:1516: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1691,34 +1523,32 @@ done CC=$ac_ct_CC fi -fi - -test -z "$CC" && { { echo "$as_me:1696: error: no acceptable cc found in \$PATH" >&5 +test -z "$CC" && { { echo "$as_me:1526: error: no acceptable cc found in \$PATH" >&5 echo "$as_me: error: no acceptable cc found in \$PATH" >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. -echo "$as_me:1701:" \ +echo "$as_me:1531:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:1704: \"$ac_compiler --version &5\"") >&5 +{ (eval echo "$as_me:1534: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? - echo "$as_me:1707: \$? = $ac_status" >&5 + echo "$as_me:1537: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:1709: \"$ac_compiler -v &5\"") >&5 +{ (eval echo "$as_me:1539: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? - echo "$as_me:1712: \$? = $ac_status" >&5 + echo "$as_me:1542: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:1714: \"$ac_compiler -V &5\"") >&5 +{ (eval echo "$as_me:1544: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? - echo "$as_me:1717: \$? = $ac_status" >&5 + echo "$as_me:1547: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF -#line 1721 "configure" +#line 1551 "configure" #include "confdefs.h" int @@ -1734,13 +1564,13 @@ ac_clean_files="$ac_clean_files a.out a.exe" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -echo "$as_me:1737: checking for C compiler default output" >&5 +echo "$as_me:1567: checking for C compiler default output" >&5 echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:1740: \"$ac_link_default\"") >&5 +if { (eval echo "$as_me:1570: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? - echo "$as_me:1743: \$? = $ac_status" >&5 + echo "$as_me:1573: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last @@ -1763,34 +1593,34 @@ done else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 -{ { echo "$as_me:1766: error: C compiler cannot create executables" >&5 +{ { echo "$as_me:1596: error: C compiler cannot create executables" >&5 echo "$as_me: error: C compiler cannot create executables" >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext -echo "$as_me:1772: result: $ac_file" >&5 +echo "$as_me:1602: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -echo "$as_me:1777: checking whether the C compiler works" >&5 +echo "$as_me:1607: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' - { (eval echo "$as_me:1783: \"$ac_try\"") >&5 + { (eval echo "$as_me:1613: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1786: \$? = $ac_status" >&5 + echo "$as_me:1616: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { echo "$as_me:1793: error: cannot run C compiled programs. + { { echo "$as_me:1623: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'." >&2;} @@ -1798,24 +1628,24 @@ If you meant to cross compile, use \`--host'." >&2;} fi fi fi -echo "$as_me:1801: result: yes" >&5 +echo "$as_me:1631: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -echo "$as_me:1808: checking whether we are cross compiling" >&5 +echo "$as_me:1638: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:1810: result: $cross_compiling" >&5 +echo "$as_me:1640: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 -echo "$as_me:1813: checking for executable suffix" >&5 +echo "$as_me:1643: checking for executable suffix" >&5 echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6 -if { (eval echo "$as_me:1815: \"$ac_link\"") >&5 +if { (eval echo "$as_me:1645: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:1818: \$? = $ac_status" >&5 + echo "$as_me:1648: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will @@ -1831,25 +1661,25 @@ for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do esac done else - { { echo "$as_me:1834: error: cannot compute EXEEXT: cannot compile and link" >&5 + { { echo "$as_me:1664: error: cannot compute EXEEXT: cannot compile and link" >&5 echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext -echo "$as_me:1840: result: $ac_cv_exeext" >&5 +echo "$as_me:1670: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT -echo "$as_me:1846: checking for object suffix" >&5 +echo "$as_me:1676: checking for object suffix" >&5 echo $ECHO_N "checking for object suffix... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 1852 "configure" +#line 1682 "configure" #include "confdefs.h" int @@ -1861,10 +1691,10 @@ main () } _ACEOF rm -f conftest.o conftest.obj -if { (eval echo "$as_me:1864: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:1694: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:1867: \$? = $ac_status" >&5 + echo "$as_me:1697: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in @@ -1876,24 +1706,24 @@ done else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 -{ { echo "$as_me:1879: error: cannot compute OBJEXT: cannot compile" >&5 +{ { echo "$as_me:1709: error: cannot compute OBJEXT: cannot compile" >&5 echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -echo "$as_me:1886: result: $ac_cv_objext" >&5 +echo "$as_me:1716: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -echo "$as_me:1890: checking whether we are using the GNU C compiler" >&5 +echo "$as_me:1720: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 1896 "configure" +#line 1726 "configure" #include "confdefs.h" int @@ -1908,16 +1738,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:1911: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:1741: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:1914: \$? = $ac_status" >&5 + echo "$as_me:1744: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:1917: \"$ac_try\"") >&5 + { (eval echo "$as_me:1747: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1920: \$? = $ac_status" >&5 + echo "$as_me:1750: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else @@ -1929,19 +1759,19 @@ rm -f conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -echo "$as_me:1932: result: $ac_cv_c_compiler_gnu" >&5 +echo "$as_me:1762: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" -echo "$as_me:1938: checking whether $CC accepts -g" >&5 +echo "$as_me:1768: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 1944 "configure" +#line 1774 "configure" #include "confdefs.h" int @@ -1953,16 +1783,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:1956: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:1786: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:1959: \$? = $ac_status" >&5 + echo "$as_me:1789: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:1962: \"$ac_try\"") >&5 + { (eval echo "$as_me:1792: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1965: \$? = $ac_status" >&5 + echo "$as_me:1795: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else @@ -1972,7 +1802,7 @@ ac_cv_prog_cc_g=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:1975: result: $ac_cv_prog_cc_g" >&5 +echo "$as_me:1805: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS @@ -1999,16 +1829,16 @@ cat >conftest.$ac_ext <<_ACEOF #endif _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2002: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:1832: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2005: \$? = $ac_status" >&5 + echo "$as_me:1835: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2008: \"$ac_try\"") >&5 + { (eval echo "$as_me:1838: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2011: \$? = $ac_status" >&5 + echo "$as_me:1841: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ ''\ @@ -2020,7 +1850,7 @@ if { (eval echo "$as_me:2002: \"$ac_compile\"") >&5 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF -#line 2023 "configure" +#line 1853 "configure" #include "confdefs.h" #include $ac_declaration @@ -2033,16 +1863,16 @@ exit (42); } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2036: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:1866: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2039: \$? = $ac_status" >&5 + echo "$as_me:1869: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2042: \"$ac_try\"") >&5 + { (eval echo "$as_me:1872: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2045: \$? = $ac_status" >&5 + echo "$as_me:1875: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -2052,7 +1882,7 @@ continue fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF -#line 2055 "configure" +#line 1885 "configure" #include "confdefs.h" $ac_declaration int @@ -2064,16 +1894,16 @@ exit (42); } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2067: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:1897: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2070: \$? = $ac_status" >&5 + echo "$as_me:1900: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2073: \"$ac_try\"") >&5 + { (eval echo "$as_me:1903: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2076: \$? = $ac_status" >&5 + echo "$as_me:1906: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -2103,21 +1933,212 @@ ac_main_return=return GCC_VERSION=none if test "$GCC" = yes ; then - echo "$as_me:2106: checking version of $CC" >&5 + echo "$as_me:1936: checking version of $CC" >&5 echo $ECHO_N "checking version of $CC... $ECHO_C" >&6 - GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`" + GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`" test -z "$GCC_VERSION" && GCC_VERSION=unknown - echo "$as_me:2110: result: $GCC_VERSION" >&5 + echo "$as_me:1940: result: $GCC_VERSION" >&5 echo "${ECHO_T}$GCC_VERSION" >&6 fi +echo "$as_me:1944: checking for $CC option to accept ANSI C" >&5 +echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_stdc=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +#line 1952 "configure" +#include "confdefs.h" +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +# 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 10.20 and later -Ae +# HP-UX older versions -Aa -D_HPUX_SOURCE +# SVR4 -Xc -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (eval echo "$as_me:2001: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:2004: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:2007: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:2010: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_stdc=$ac_arg +break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext +done +rm -f conftest.$ac_ext conftest.$ac_objext +CC=$ac_save_CC + +fi + +case "x$ac_cv_prog_cc_stdc" in + x|xno) + echo "$as_me:2027: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6 ;; + *) + echo "$as_me:2030: result: $ac_cv_prog_cc_stdc" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 + CC="$CC $ac_cv_prog_cc_stdc" ;; +esac + +# This should have been defined by AC_PROG_CC +: ${CC:=cc} + +echo "$as_me:2038: checking \$CC variable" >&5 +echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6 +case "$CC" in #(vi +*[\ \ ]-[IUD]*) + echo "$as_me:2042: result: broken" >&5 +echo "${ECHO_T}broken" >&6 + { echo "$as_me:2044: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5 +echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;} + # humor him... + cf_flags=`echo "$CC" | sed -e 's/^[^ ]*[ ]//'` + CC=`echo "$CC" | sed -e 's/[ ].*//'` + +cf_fix_cppflags=no +cf_new_cflags= +cf_new_cppflags= +cf_new_extra_cppflags= + +for cf_add_cflags in $cf_flags +do +case $cf_fix_cppflags in +no) + case $cf_add_cflags in #(vi + -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi + case $cf_add_cflags in + -D*) + cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'` + + test "${cf_add_cflags}" != "${cf_tst_cflags}" \ + && test -z "${cf_tst_cflags}" \ + && cf_fix_cppflags=yes + + if test $cf_fix_cppflags = yes ; then + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + continue + elif test "${cf_tst_cflags}" = "\"'" ; then + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + continue + fi + ;; + esac + case "$CPPFLAGS" in + *$cf_add_cflags) #(vi + ;; + *) #(vi + case $cf_add_cflags in #(vi + -D*) + cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` + +CPPFLAGS=`echo "$CPPFLAGS" | \ + sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ + -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` + + ;; + esac + cf_new_cppflags="$cf_new_cppflags $cf_add_cflags" + ;; + esac + ;; + *) + cf_new_cflags="$cf_new_cflags $cf_add_cflags" + ;; + esac + ;; +yes) + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + + cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` + + test "${cf_add_cflags}" != "${cf_tst_cflags}" \ + && test -z "${cf_tst_cflags}" \ + && cf_fix_cppflags=no + ;; +esac +done + +if test -n "$cf_new_cflags" ; then + + CFLAGS="$CFLAGS $cf_new_cflags" +fi + +if test -n "$cf_new_cppflags" ; then + + CPPFLAGS="$CPPFLAGS $cf_new_cppflags" +fi + +if test -n "$cf_new_extra_cppflags" ; then + + EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +fi + + ;; +*) + echo "$as_me:2130: result: ok" >&5 +echo "${ECHO_T}ok" >&6 + ;; +esac + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_main_return=return -echo "$as_me:2120: checking how to run the C preprocessor" >&5 +echo "$as_me:2141: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then @@ -2138,18 +2159,18 @@ do # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF -#line 2141 "configure" +#line 2162 "configure" #include "confdefs.h" #include Syntax error _ACEOF -if { (eval echo "$as_me:2146: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:2167: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:2152: \$? = $ac_status" >&5 + echo "$as_me:2173: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -2172,17 +2193,17 @@ rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF -#line 2175 "configure" +#line 2196 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:2179: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:2200: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:2185: \$? = $ac_status" >&5 + echo "$as_me:2206: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -2219,7 +2240,7 @@ fi else ac_cv_prog_CPP=$CPP fi -echo "$as_me:2222: result: $CPP" >&5 +echo "$as_me:2243: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes @@ -2229,18 +2250,18 @@ do # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF -#line 2232 "configure" +#line 2253 "configure" #include "confdefs.h" #include Syntax error _ACEOF -if { (eval echo "$as_me:2237: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:2258: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:2243: \$? = $ac_status" >&5 + echo "$as_me:2264: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -2263,17 +2284,17 @@ rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF -#line 2266 "configure" +#line 2287 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:2270: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:2291: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:2276: \$? = $ac_status" >&5 + echo "$as_me:2297: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -2301,7 +2322,7 @@ rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else - { { echo "$as_me:2304: error: C preprocessor \"$CPP\" fails sanity check" >&5 + { { echo "$as_me:2325: error: C preprocessor \"$CPP\" fails sanity check" >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;} { (exit 1); exit 1; }; } fi @@ -2314,14 +2335,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_main_return=return if test $ac_cv_c_compiler_gnu = yes; then - echo "$as_me:2317: checking whether $CC needs -traditional" >&5 + echo "$as_me:2338: checking whether $CC needs -traditional" >&5 echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6 if test "${ac_cv_prog_gcc_traditional+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_pattern="Autoconf.*'x'" cat >conftest.$ac_ext <<_ACEOF -#line 2324 "configure" +#line 2345 "configure" #include "confdefs.h" #include int Autoconf = TIOCGETP; @@ -2336,7 +2357,7 @@ rm -rf conftest* if test $ac_cv_prog_gcc_traditional = no; then cat >conftest.$ac_ext <<_ACEOF -#line 2339 "configure" +#line 2360 "configure" #include "confdefs.h" #include int Autoconf = TCGETA; @@ -2349,14 +2370,14 @@ rm -rf conftest* fi fi -echo "$as_me:2352: result: $ac_cv_prog_gcc_traditional" >&5 +echo "$as_me:2373: result: $ac_cv_prog_gcc_traditional" >&5 echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6 if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi fi -echo "$as_me:2359: checking whether $CC understands -c and -o together" >&5 +echo "$as_me:2380: checking whether $CC understands -c and -o together" >&5 echo $ECHO_N "checking whether $CC understands -c and -o together... $ECHO_C" >&6 if test "${cf_cv_prog_CC_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2372,15 +2393,15 @@ CF_EOF # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' -if { (eval echo "$as_me:2375: \"$ac_try\"") >&5 +if { (eval echo "$as_me:2396: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2378: \$? = $ac_status" >&5 + echo "$as_me:2399: \$? = $ac_status" >&5 (exit $ac_status); } && - test -f conftest2.$ac_objext && { (eval echo "$as_me:2380: \"$ac_try\"") >&5 + test -f conftest2.$ac_objext && { (eval echo "$as_me:2401: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2383: \$? = $ac_status" >&5 + echo "$as_me:2404: \$? = $ac_status" >&5 (exit $ac_status); }; then eval cf_cv_prog_CC_c_o=yes @@ -2391,318 +2412,24 @@ rm -rf conftest* fi if test $cf_cv_prog_CC_c_o = yes; then - echo "$as_me:2394: result: yes" >&5 + echo "$as_me:2415: result: yes" >&5 echo "${ECHO_T}yes" >&6 else - echo "$as_me:2397: result: no" >&5 + echo "$as_me:2418: result: no" >&5 echo "${ECHO_T}no" >&6 fi -echo "$as_me:2401: checking for POSIXized ISC" >&5 -echo $ECHO_N "checking for POSIXized ISC... $ECHO_C" >&6 -if test -d /etc/conf/kconfig.d && - grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 -then - echo "$as_me:2406: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - ISC=yes # If later tests want to check for ISC. - -cat >>confdefs.h <<\EOF -#define _POSIX_SOURCE 1 -EOF - - if test "$GCC" = yes; then - CC="$CC -posix" - else - CC="$CC -Xp" - fi -else - echo "$as_me:2420: result: no" >&5 -echo "${ECHO_T}no" >&6 - ISC= -fi - -echo "$as_me:2425: checking for ${CC:-cc} option to accept ANSI C" >&5 -echo $ECHO_N "checking for ${CC:-cc} option to accept ANSI C... $ECHO_C" >&6 -if test "${cf_cv_ansi_cc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -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_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_arg -do -case $cf_fix_cppflags in -no) - case $cf_add_cflags in #(vi - -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi - case $cf_add_cflags in - -D*) - cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "${cf_add_cflags}" != "${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test $cf_fix_cppflags = yes ; then - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - continue - fi - ;; - esac - case "$CPPFLAGS" in - *$cf_add_cflags) #(vi - ;; - *) #(vi - case $cf_add_cflags in #(vi - -D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - cf_new_cppflags="$cf_new_cppflags $cf_add_cflags" - ;; - esac - ;; - *) - cf_new_cflags="$cf_new_cflags $cf_add_cflags" - ;; - esac - ;; -yes) - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - - cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` - - test "${cf_add_cflags}" != "${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - CFLAGS="$CFLAGS $cf_new_cflags" -fi - -if test -n "$cf_new_cppflags" ; then - - CPPFLAGS="$CPPFLAGS $cf_new_cppflags" -fi - -if test -n "$cf_new_extra_cppflags" ; then - - EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" -fi - - cat >conftest.$ac_ext <<_ACEOF -#line 2529 "configure" -#include "confdefs.h" - -#ifndef CC_HAS_PROTOS -#if !defined(__STDC__) || (__STDC__ != 1) -choke me -#endif -#endif - -int -main () -{ - - int test (int i, double x); - struct s1 {int (*f) (int a);}; - struct s2 {int (*f) (double a);}; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:2550: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:2553: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2556: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:2559: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_ansi_cc="$cf_arg"; break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext -done -CFLAGS="$cf_save_CFLAGS" -CPPFLAGS="$cf_save_CPPFLAGS" - -fi -echo "$as_me:2572: result: $cf_cv_ansi_cc" >&5 -echo "${ECHO_T}$cf_cv_ansi_cc" >&6 - -if test "$cf_cv_ansi_cc" != "no"; then -if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_cv_ansi_cc -do -case $cf_fix_cppflags in -no) - case $cf_add_cflags in #(vi - -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi - case $cf_add_cflags in - -D*) - cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "${cf_add_cflags}" != "${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test $cf_fix_cppflags = yes ; then - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - continue - fi - ;; - esac - case "$CPPFLAGS" in - *$cf_add_cflags) #(vi - ;; - *) #(vi - case $cf_add_cflags in #(vi - -D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - cf_new_cppflags="$cf_new_cppflags $cf_add_cflags" - ;; - esac - ;; - *) - cf_new_cflags="$cf_new_cflags $cf_add_cflags" - ;; - esac - ;; -yes) - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - - cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` - - test "${cf_add_cflags}" != "${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - CFLAGS="$CFLAGS $cf_new_cflags" -fi - -if test -n "$cf_new_cppflags" ; then - - CPPFLAGS="$CPPFLAGS $cf_new_cppflags" -fi - -if test -n "$cf_new_extra_cppflags" ; then - - EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" -fi - -else - cat >>confdefs.h <<\EOF -#define CC_HAS_PROTOS 1 -EOF - -fi -fi - -if test "$cf_cv_ansi_cc" = "no"; then - { { echo "$as_me:2665: 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" >&5 -echo "$as_me: 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" >&2;} - { (exit 1); exit 1; }; } -fi - -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 - -PROG_EXT="$EXEEXT" - -test -n "$PROG_EXT" && cat >>confdefs.h <&5 +echo "$as_me:2432: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_LDCONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2719,7 +2446,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_LDCONFIG="$ac_dir/$ac_word" - echo "$as_me:2722: found $ac_dir/$ac_word" >&5 + echo "$as_me:2449: found $ac_dir/$ac_word" >&5 break fi done @@ -2730,10 +2457,10 @@ fi LDCONFIG=$ac_cv_path_LDCONFIG if test -n "$LDCONFIG"; then - echo "$as_me:2733: result: $LDCONFIG" >&5 + echo "$as_me:2460: result: $LDCONFIG" >&5 echo "${ECHO_T}$LDCONFIG" >&6 else - echo "$as_me:2736: result: no" >&5 + echo "$as_me:2463: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -2741,7 +2468,7 @@ fi esac fi -echo "$as_me:2744: checking if you want to ensure bool is consistent with C++" >&5 +echo "$as_me:2471: checking if you want to ensure bool is consistent with C++" >&5 echo $ECHO_N "checking if you want to ensure bool is consistent with C++... $ECHO_C" >&6 # Check whether --with-cxx or --without-cxx was given. @@ -2751,7 +2478,7 @@ if test "${with_cxx+set}" = set; then else cf_with_cxx=yes fi; -echo "$as_me:2754: result: $cf_with_cxx" >&5 +echo "$as_me:2481: result: $cf_with_cxx" >&5 echo "${ECHO_T}$cf_with_cxx" >&6 if test "X$cf_with_cxx" = Xno ; then CXX="" @@ -2769,7 +2496,7 @@ if test -n "$ac_tool_prefix"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:2772: checking for $ac_word" >&5 +echo "$as_me:2499: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2784,7 +2511,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" -echo "$as_me:2787: found $ac_dir/$ac_word" >&5 +echo "$as_me:2514: found $ac_dir/$ac_word" >&5 break done @@ -2792,10 +2519,10 @@ fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then - echo "$as_me:2795: result: $CXX" >&5 + echo "$as_me:2522: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else - echo "$as_me:2798: result: no" >&5 + echo "$as_me:2525: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -2808,7 +2535,7 @@ if test -z "$CXX"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:2811: checking for $ac_word" >&5 +echo "$as_me:2538: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2823,7 +2550,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ac_ct_CXX="$ac_prog" -echo "$as_me:2826: found $ac_dir/$ac_word" >&5 +echo "$as_me:2553: found $ac_dir/$ac_word" >&5 break done @@ -2831,10 +2558,10 @@ fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then - echo "$as_me:2834: result: $ac_ct_CXX" >&5 + echo "$as_me:2561: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else - echo "$as_me:2837: result: no" >&5 + echo "$as_me:2564: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -2846,32 +2573,32 @@ test -n "$ac_ct_CXX" || ac_ct_CXX="g++" fi # Provide some information about the compiler. -echo "$as_me:2849:" \ +echo "$as_me:2576:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:2852: \"$ac_compiler --version &5\"") >&5 +{ (eval echo "$as_me:2579: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? - echo "$as_me:2855: \$? = $ac_status" >&5 + echo "$as_me:2582: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:2857: \"$ac_compiler -v &5\"") >&5 +{ (eval echo "$as_me:2584: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? - echo "$as_me:2860: \$? = $ac_status" >&5 + echo "$as_me:2587: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:2862: \"$ac_compiler -V &5\"") >&5 +{ (eval echo "$as_me:2589: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? - echo "$as_me:2865: \$? = $ac_status" >&5 + echo "$as_me:2592: \$? = $ac_status" >&5 (exit $ac_status); } -echo "$as_me:2868: checking whether we are using the GNU C++ compiler" >&5 +echo "$as_me:2595: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 2874 "configure" +#line 2601 "configure" #include "confdefs.h" int @@ -2886,16 +2613,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2889: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2616: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2892: \$? = $ac_status" >&5 + echo "$as_me:2619: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2895: \"$ac_try\"") >&5 + { (eval echo "$as_me:2622: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2898: \$? = $ac_status" >&5 + echo "$as_me:2625: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else @@ -2907,19 +2634,19 @@ rm -f conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi -echo "$as_me:2910: result: $ac_cv_cxx_compiler_gnu" >&5 +echo "$as_me:2637: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" -echo "$as_me:2916: checking whether $CXX accepts -g" >&5 +echo "$as_me:2643: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 2922 "configure" +#line 2649 "configure" #include "confdefs.h" int @@ -2931,16 +2658,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2934: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2661: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2937: \$? = $ac_status" >&5 + echo "$as_me:2664: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2940: \"$ac_try\"") >&5 + { (eval echo "$as_me:2667: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2943: \$? = $ac_status" >&5 + echo "$as_me:2670: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else @@ -2950,7 +2677,7 @@ ac_cv_prog_cxx_g=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:2953: result: $ac_cv_prog_cxx_g" >&5 +echo "$as_me:2680: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS @@ -2977,7 +2704,7 @@ for ac_declaration in \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF -#line 2980 "configure" +#line 2707 "configure" #include "confdefs.h" #include $ac_declaration @@ -2990,16 +2717,16 @@ exit (42); } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2993: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2720: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2996: \$? = $ac_status" >&5 + echo "$as_me:2723: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2999: \"$ac_try\"") >&5 + { (eval echo "$as_me:2726: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:3002: \$? = $ac_status" >&5 + echo "$as_me:2729: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -3009,7 +2736,7 @@ continue fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF -#line 3012 "configure" +#line 2739 "configure" #include "confdefs.h" $ac_declaration int @@ -3021,16 +2748,16 @@ exit (42); } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:3024: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2751: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:3027: \$? = $ac_status" >&5 + echo "$as_me:2754: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:3030: \"$ac_try\"") >&5 + { (eval echo "$as_me:2757: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:3033: \$? = $ac_status" >&5 + echo "$as_me:2760: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -3053,11 +2780,11 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_main_return=return - # autoconf 2.5x removed the error - by hardcoding it to g++. + # autoconf 2.5x removed the error (hardcoding it to g++, or just blank) if test "$CXX" = "g++" ; then # Extract the first word of "g++", so it can be a program name with args. set dummy g++; ac_word=$2 -echo "$as_me:3060: checking for $ac_word" >&5 +echo "$as_me:2787: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -3074,7 +2801,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_CXX="$ac_dir/$ac_word" - echo "$as_me:3077: found $ac_dir/$ac_word" >&5 + echo "$as_me:2804: found $ac_dir/$ac_word" >&5 break fi done @@ -3085,28 +2812,30 @@ fi CXX=$ac_cv_path_CXX if test -n "$CXX"; then - echo "$as_me:3088: result: $CXX" >&5 + echo "$as_me:2815: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else - echo "$as_me:3091: result: no" >&5 + echo "$as_me:2818: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi - if test "$CXX" = "g++" ; then - { echo "$as_me:3097: WARNING: ignoring hardcoded g++" >&5 -echo "$as_me: WARNING: ignoring hardcoded g++" >&2;} + case "x$CXX" in #(vi + x|xg++) + { echo "$as_me:2825: WARNING: You don't have any C++ compiler, too bad" >&5 +echo "$as_me: WARNING: You don't have any C++ compiler, too bad" >&2;} cf_with_cxx=no; CXX=""; GXX=""; - fi + ;; + esac fi GXX_VERSION=none if test "$GXX" = yes; then - echo "$as_me:3105: checking version of g++" >&5 -echo $ECHO_N "checking version of g++... $ECHO_C" >&6 + echo "$as_me:2834: checking version of ${CXX:-g++}" >&5 +echo $ECHO_N "checking version of ${CXX:-g++}... $ECHO_C" >&6 GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`" test -z "$GXX_VERSION" && GXX_VERSION=unknown - echo "$as_me:3109: result: $GXX_VERSION" >&5 + echo "$as_me:2838: result: $GXX_VERSION" >&5 echo "${ECHO_T}$GXX_VERSION" >&6 fi @@ -3114,12 +2843,12 @@ case $GXX_VERSION in 1*|2.[0-6]*) # GXX=""; CXX=""; ac_cv_prog_gxx=no # cf_cxx_library=no - { echo "$as_me:3117: WARNING: templates do not work" >&5 + { echo "$as_me:2846: WARNING: templates do not work" >&5 echo "$as_me: WARNING: templates do not work" >&2;} ;; esac -echo "$as_me:3122: checking if you want to build C++ binding and demo" >&5 +echo "$as_me:2851: checking if you want to build C++ binding and demo" >&5 echo $ECHO_N "checking if you want to build C++ binding and demo... $ECHO_C" >&6 # Check whether --with-cxx-binding or --without-cxx-binding was given. @@ -3129,23 +2858,28 @@ if test "${with_cxx_binding+set}" = set; then else cf_with_cxx_binding=$cf_with_cxx fi; -echo "$as_me:3132: result: $cf_with_cxx_binding" >&5 +echo "$as_me:2861: result: $cf_with_cxx_binding" >&5 echo "${ECHO_T}$cf_with_cxx_binding" >&6 -echo "$as_me:3135: checking if you want to build with Ada95" >&5 +echo "$as_me:2864: checking if you want to build with Ada95" >&5 echo $ECHO_N "checking if you want to build with Ada95... $ECHO_C" >&6 - -# Check whether --with-ada or --without-ada was given. -if test "${with_ada+set}" = set; then - withval="$with_ada" - cf_with_ada=$withval -else - cf_with_ada=yes -fi; -echo "$as_me:3145: result: $cf_with_ada" >&5 +echo "$as_me:2866: result: $cf_with_ada" >&5 echo "${ECHO_T}$cf_with_ada" >&6 -echo "$as_me:3148: checking if you want to install manpages" >&5 +echo "$as_me:2869: checking if you want to install terminal database" >&5 +echo $ECHO_N "checking if you want to install terminal database... $ECHO_C" >&6 + +# Check whether --enable-db-install or --disable-db-install was given. +if test "${enable_db_install+set}" = set; then + enableval="$enable_db_install" + cf_with_db_install=$enableval +else + cf_with_db_install=yes +fi; +echo "$as_me:2879: result: $cf_with_db_install" >&5 +echo "${ECHO_T}$cf_with_db_install" >&6 + +echo "$as_me:2882: checking if you want to install manpages" >&5 echo $ECHO_N "checking if you want to install manpages... $ECHO_C" >&6 # Check whether --with-manpages or --without-manpages was given. @@ -3155,10 +2889,10 @@ if test "${with_manpages+set}" = set; then else cf_with_manpages=yes fi; -echo "$as_me:3158: result: $cf_with_manpages" >&5 +echo "$as_me:2892: result: $cf_with_manpages" >&5 echo "${ECHO_T}$cf_with_manpages" >&6 -echo "$as_me:3161: checking if you want to build programs such as tic" >&5 +echo "$as_me:2895: checking if you want to build programs such as tic" >&5 echo $ECHO_N "checking if you want to build programs such as tic... $ECHO_C" >&6 # Check whether --with-progs or --without-progs was given. @@ -3168,10 +2902,10 @@ if test "${with_progs+set}" = set; then else cf_with_progs=yes fi; -echo "$as_me:3171: result: $cf_with_progs" >&5 +echo "$as_me:2905: result: $cf_with_progs" >&5 echo "${ECHO_T}$cf_with_progs" >&6 -echo "$as_me:3174: checking if you want to build test-programs" >&5 +echo "$as_me:2908: checking if you want to build test-programs" >&5 echo $ECHO_N "checking if you want to build test-programs... $ECHO_C" >&6 # Check whether --with-tests or --without-tests was given. @@ -3181,10 +2915,10 @@ if test "${with_tests+set}" = set; then else cf_with_tests=yes fi; -echo "$as_me:3184: result: $cf_with_tests" >&5 +echo "$as_me:2918: result: $cf_with_tests" >&5 echo "${ECHO_T}$cf_with_tests" >&6 -echo "$as_me:3187: checking if you wish to install curses.h" >&5 +echo "$as_me:2921: checking if you wish to install curses.h" >&5 echo $ECHO_N "checking if you wish to install curses.h... $ECHO_C" >&6 # Check whether --with-curses-h or --without-curses-h was given. @@ -3194,7 +2928,7 @@ if test "${with_curses_h+set}" = set; then else with_curses_h=yes fi; -echo "$as_me:3197: result: $with_curses_h" >&5 +echo "$as_me:2931: result: $with_curses_h" >&5 echo "${ECHO_T}$with_curses_h" >&6 modules_to_build="ncurses" @@ -3220,7 +2954,7 @@ for ac_prog in mawk gawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:3223: checking for $ac_word" >&5 +echo "$as_me:2957: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -3235,7 +2969,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_AWK="$ac_prog" -echo "$as_me:3238: found $ac_dir/$ac_word" >&5 +echo "$as_me:2972: found $ac_dir/$ac_word" >&5 break done @@ -3243,21 +2977,21 @@ fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then - echo "$as_me:3246: result: $AWK" >&5 + echo "$as_me:2980: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else - echo "$as_me:3249: result: no" >&5 + echo "$as_me:2983: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done -test -z "$AWK" && { { echo "$as_me:3256: error: No awk program found" >&5 +test -z "$AWK" && { { echo "$as_me:2990: error: No awk program found" >&5 echo "$as_me: error: No awk program found" >&2;} { (exit 1); exit 1; }; } -echo "$as_me:3260: checking for egrep" >&5 +echo "$as_me:2994: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -3267,11 +3001,11 @@ else else ac_cv_prog_egrep='egrep' fi fi -echo "$as_me:3270: result: $ac_cv_prog_egrep" >&5 +echo "$as_me:3004: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep -test -z "$EGREP" && { { echo "$as_me:3274: error: No egrep program found" >&5 +test -z "$EGREP" && { { echo "$as_me:3008: error: No egrep program found" >&5 echo "$as_me: error: No egrep program found" >&2;} { (exit 1); exit 1; }; } @@ -3287,7 +3021,7 @@ echo "$as_me: error: No egrep program found" >&2;} # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:3290: checking for a BSD compatible install" >&5 +echo "$as_me:3024: checking for a BSD compatible install" >&5 echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then @@ -3336,7 +3070,7 @@ fi INSTALL=$ac_install_sh fi fi -echo "$as_me:3339: result: $INSTALL" >&5 +echo "$as_me:3073: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. @@ -3361,7 +3095,7 @@ for ac_prog in tdlint lint alint splint lclint do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:3364: checking for $ac_word" >&5 +echo "$as_me:3098: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_LINT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -3376,7 +3110,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_LINT="$ac_prog" -echo "$as_me:3379: found $ac_dir/$ac_word" >&5 +echo "$as_me:3113: found $ac_dir/$ac_word" >&5 break done @@ -3384,28 +3118,28 @@ fi fi LINT=$ac_cv_prog_LINT if test -n "$LINT"; then - echo "$as_me:3387: result: $LINT" >&5 + echo "$as_me:3121: result: $LINT" >&5 echo "${ECHO_T}$LINT" >&6 else - echo "$as_me:3390: result: no" >&5 + echo "$as_me:3124: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$LINT" && break done -echo "$as_me:3397: checking whether ln -s works" >&5 +echo "$as_me:3131: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then - echo "$as_me:3401: result: yes" >&5 + echo "$as_me:3135: result: yes" >&5 echo "${ECHO_T}yes" >&6 else - echo "$as_me:3404: result: no, using $LN_S" >&5 + echo "$as_me:3138: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6 fi -echo "$as_me:3408: checking if $LN_S -f options work" >&5 +echo "$as_me:3142: checking if $LN_S -f options work" >&5 echo $ECHO_N "checking if $LN_S -f options work... $ECHO_C" >&6 rm -f conf$$.src conf$$dst @@ -3417,12 +3151,12 @@ else cf_prog_ln_sf=no fi rm -f conf$$.dst conf$$src -echo "$as_me:3420: result: $cf_prog_ln_sf" >&5 +echo "$as_me:3154: result: $cf_prog_ln_sf" >&5 echo "${ECHO_T}$cf_prog_ln_sf" >&6 test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f" -echo "$as_me:3425: checking for long file names" >&5 +echo "$as_me:3159: checking for long file names" >&5 echo $ECHO_N "checking for long file names... $ECHO_C" >&6 if test "${ac_cv_sys_long_file_names+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -3461,7 +3195,7 @@ for ac_dir in . $ac_tmpdirs `eval echo $prefix/lib $exec_prefix/lib` ; do rm -rf $ac_xdir 2>/dev/null done fi -echo "$as_me:3464: result: $ac_cv_sys_long_file_names" >&5 +echo "$as_me:3198: result: $ac_cv_sys_long_file_names" >&5 echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6 if test $ac_cv_sys_long_file_names = yes; then @@ -3473,7 +3207,7 @@ fi # if we find pkg-config, check if we should install the ".pc" files. -echo "$as_me:3476: checking if you want to use pkg-config" >&5 +echo "$as_me:3210: checking if you want to use pkg-config" >&5 echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6 # Check whether --with-pkg-config or --without-pkg-config was given. @@ -3483,7 +3217,7 @@ if test "${with_pkg_config+set}" = set; then else cf_pkg_config=yes fi; -echo "$as_me:3486: result: $cf_pkg_config" >&5 +echo "$as_me:3220: result: $cf_pkg_config" >&5 echo "${ECHO_T}$cf_pkg_config" >&6 case $cf_pkg_config in #(vi @@ -3491,10 +3225,11 @@ no) #(vi PKG_CONFIG=none ;; yes) #(vi - if test -n "$ac_tool_prefix"; then + +if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -echo "$as_me:3497: checking for $ac_word" >&5 +echo "$as_me:3232: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -3511,7 +3246,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word" - echo "$as_me:3514: found $ac_dir/$ac_word" >&5 + echo "$as_me:3249: found $ac_dir/$ac_word" >&5 break fi done @@ -3522,10 +3257,10 @@ fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then - echo "$as_me:3525: result: $PKG_CONFIG" >&5 + echo "$as_me:3260: result: $PKG_CONFIG" >&5 echo "${ECHO_T}$PKG_CONFIG" >&6 else - echo "$as_me:3528: result: no" >&5 + echo "$as_me:3263: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -3534,7 +3269,7 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 -echo "$as_me:3537: checking for $ac_word" >&5 +echo "$as_me:3272: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -3551,7 +3286,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word" - echo "$as_me:3554: found $ac_dir/$ac_word" >&5 + echo "$as_me:3289: found $ac_dir/$ac_word" >&5 break fi done @@ -3563,10 +3298,10 @@ fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then - echo "$as_me:3566: result: $ac_pt_PKG_CONFIG" >&5 + echo "$as_me:3301: result: $ac_pt_PKG_CONFIG" >&5 echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6 else - echo "$as_me:3569: result: no" >&5 + echo "$as_me:3304: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -3597,7 +3332,7 @@ case ".$PKG_CONFIG" in #(vi ;; .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX ;; -.\${*prefix}*) #(vi +.\${*prefix}*|.\${*dir}*) #(vi eval PKG_CONFIG="$PKG_CONFIG" case ".$PKG_CONFIG" in #(vi .NONE/*) @@ -3609,7 +3344,7 @@ case ".$PKG_CONFIG" in #(vi PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%` ;; *) - { { echo "$as_me:3612: error: expected a pathname, not \"$PKG_CONFIG\"" >&5 + { { echo "$as_me:3347: error: expected a pathname, not \"$PKG_CONFIG\"" >&5 echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;} { (exit 1); exit 1; }; } ;; @@ -3617,16 +3352,51 @@ esac fi -if test "$PKG_CONFIG" != no ; then - echo "$as_me:3621: checking if we should install .pc files for $PKG_CONFIG" >&5 -echo $ECHO_N "checking if we should install .pc files for $PKG_CONFIG... $ECHO_C" >&6 +if test "$PKG_CONFIG" != none ; then + echo "$as_me:3356: checking for $PKG_CONFIG library directory" >&5 +echo $ECHO_N "checking for $PKG_CONFIG library directory... $ECHO_C" >&6 - # Leave this as something that can be overridden in the environment. - if test -z "$PKG_CONFIG_LIBDIR" ; then - PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`/lib/pkgconfig - fi - PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'` - if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then +# Check whether --with-pkg-config-libdir or --without-pkg-config-libdir was given. +if test "${with_pkg_config_libdir+set}" = set; then + withval="$with_pkg_config_libdir" + PKG_CONFIG_LIBDIR=$withval +else + PKG_CONFIG_LIBDIR=yes +fi; + + case x$PKG_CONFIG_LIBDIR in #(vi + x/*) #(vi + ;; + xyes) #(vi + # look for the library directory using the same prefix as the executable + cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'` + case x`(arch) 2>/dev/null` in #(vi + *64) #(vi + for cf_config in $cf_path/share $cf_path/lib64 $cf_path/lib32 $cf_path/lib + do + if test -d $cf_config/pkgconfig + then + PKG_CONFIG_LIBDIR=$cf_config/pkgconfig + break + fi + done + ;; + *) + PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig + ;; + esac + ;; + *) + ;; + esac + + echo "$as_me:3393: result: $PKG_CONFIG_LIBDIR" >&5 +echo "${ECHO_T}$PKG_CONFIG_LIBDIR" >&6 +fi + +if test "$PKG_CONFIG" != none ; then + echo "$as_me:3398: checking if we should install .pc files for $PKG_CONFIG" >&5 +echo $ECHO_N "checking if we should install .pc files for $PKG_CONFIG... $ECHO_C" >&6 # Check whether --enable-pc-files or --disable-pc-files was given. if test "${enable_pc_files+set}" = set; then @@ -3635,18 +3405,48 @@ if test "${enable_pc_files+set}" = set; then else enable_pc_files=no fi; - echo "$as_me:3638: result: $enable_pc_files" >&5 + echo "$as_me:3408: result: $enable_pc_files" >&5 echo "${ECHO_T}$enable_pc_files" >&6 - else - echo "$as_me:3641: result: no" >&5 -echo "${ECHO_T}no" >&6 - { echo "$as_me:3643: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&5 -echo "$as_me: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&2;} - enable_pc_files=no - fi + if test "$enable_pc_files" != no + then + +if test "x$prefix" != xNONE; then + cf_path_syntax="$prefix" +else + cf_path_syntax="$ac_default_prefix" fi -echo "$as_me:3649: checking if we should assume mixed-case filenames" >&5 +case ".$PKG_CONFIG_LIBDIR" in #(vi +.\$\(*\)*|.\'*\'*) #(vi + ;; +..|./*|.\\*) #(vi + ;; +.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX + ;; +.\${*prefix}*|.\${*dir}*) #(vi + eval PKG_CONFIG_LIBDIR="$PKG_CONFIG_LIBDIR" + case ".$PKG_CONFIG_LIBDIR" in #(vi + .NONE/*) + PKG_CONFIG_LIBDIR=`echo $PKG_CONFIG_LIBDIR | sed -e s%NONE%$cf_path_syntax%` + ;; + esac + ;; #(vi +.no|.NONE/*) + PKG_CONFIG_LIBDIR=`echo $PKG_CONFIG_LIBDIR | sed -e s%NONE%$cf_path_syntax%` + ;; +*) + { { echo "$as_me:3438: error: expected a pathname, not \"$PKG_CONFIG_LIBDIR\"" >&5 +echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG_LIBDIR\"" >&2;} + { (exit 1); exit 1; }; } + ;; +esac + + fi +else + enable_pc_files=no +fi + +echo "$as_me:3449: checking if we should assume mixed-case filenames" >&5 echo $ECHO_N "checking if we should assume mixed-case filenames... $ECHO_C" >&6 # Check whether --enable-mixed-case or --disable-mixed-case was given. @@ -3656,11 +3456,11 @@ if test "${enable_mixed_case+set}" = set; then else enable_mixedcase=auto fi; -echo "$as_me:3659: result: $enable_mixedcase" >&5 +echo "$as_me:3459: result: $enable_mixedcase" >&5 echo "${ECHO_T}$enable_mixedcase" >&6 if test "$enable_mixedcase" = "auto" ; then -echo "$as_me:3663: checking if filesystem supports mixed-case filenames" >&5 +echo "$as_me:3463: checking if filesystem supports mixed-case filenames" >&5 echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6 if test "${cf_cv_mixedcase+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -3668,7 +3468,7 @@ else if test "$cross_compiling" = yes ; then case $target_alias in #(vi - *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi + *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi cf_cv_mixedcase=no ;; *) @@ -3687,16 +3487,18 @@ else fi fi -echo "$as_me:3690: result: $cf_cv_mixedcase" >&5 +echo "$as_me:3490: result: $cf_cv_mixedcase" >&5 echo "${ECHO_T}$cf_cv_mixedcase" >&6 -test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF +test "$cf_cv_mixedcase" = yes && +cat >>confdefs.h <<\EOF #define MIXEDCASE_FILENAMES 1 EOF else cf_cv_mixedcase=$enable_mixedcase - if test "$enable_mixedcase" = "yes" ; then - cat >>confdefs.h <<\EOF + if test "x$enable_mixedcase" = "xyes" ; then + +cat >>confdefs.h <<\EOF #define MIXEDCASE_FILENAMES 1 EOF @@ -3704,7 +3506,7 @@ EOF fi # do this after mixed-case option (tags/TAGS is not as important as tic). -echo "$as_me:3707: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "$as_me:3509: checking whether ${MAKE-make} sets \${MAKE}" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then @@ -3724,11 +3526,11 @@ fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:3727: result: yes" >&5 + echo "$as_me:3529: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else - echo "$as_me:3731: result: no" >&5 + echo "$as_me:3533: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi @@ -3737,7 +3539,7 @@ for ac_prog in exctags ctags do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:3740: checking for $ac_word" >&5 +echo "$as_me:3542: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CTAGS+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -3752,7 +3554,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_CTAGS="$ac_prog" -echo "$as_me:3755: found $ac_dir/$ac_word" >&5 +echo "$as_me:3557: found $ac_dir/$ac_word" >&5 break done @@ -3760,10 +3562,10 @@ fi fi CTAGS=$ac_cv_prog_CTAGS if test -n "$CTAGS"; then - echo "$as_me:3763: result: $CTAGS" >&5 + echo "$as_me:3565: result: $CTAGS" >&5 echo "${ECHO_T}$CTAGS" >&6 else - echo "$as_me:3766: result: no" >&5 + echo "$as_me:3568: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -3774,7 +3576,7 @@ for ac_prog in exetags etags do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:3777: checking for $ac_word" >&5 +echo "$as_me:3579: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ETAGS+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -3789,7 +3591,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ETAGS="$ac_prog" -echo "$as_me:3792: found $ac_dir/$ac_word" >&5 +echo "$as_me:3594: found $ac_dir/$ac_word" >&5 break done @@ -3797,10 +3599,10 @@ fi fi ETAGS=$ac_cv_prog_ETAGS if test -n "$ETAGS"; then - echo "$as_me:3800: result: $ETAGS" >&5 + echo "$as_me:3602: result: $ETAGS" >&5 echo "${ECHO_T}$ETAGS" >&6 else - echo "$as_me:3803: result: no" >&5 + echo "$as_me:3605: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -3809,7 +3611,7 @@ done # Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args. set dummy ${CTAGS:-ctags}; ac_word=$2 -echo "$as_me:3812: checking for $ac_word" >&5 +echo "$as_me:3614: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -3824,7 +3626,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_MAKE_LOWER_TAGS="yes" -echo "$as_me:3827: found $ac_dir/$ac_word" >&5 +echo "$as_me:3629: found $ac_dir/$ac_word" >&5 break done @@ -3833,17 +3635,17 @@ fi fi MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS if test -n "$MAKE_LOWER_TAGS"; then - echo "$as_me:3836: result: $MAKE_LOWER_TAGS" >&5 + echo "$as_me:3638: result: $MAKE_LOWER_TAGS" >&5 echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6 else - echo "$as_me:3839: result: no" >&5 + echo "$as_me:3641: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "$cf_cv_mixedcase" = yes ; then # Extract the first word of "${ETAGS:-etags}", so it can be a program name with args. set dummy ${ETAGS:-etags}; ac_word=$2 -echo "$as_me:3846: checking for $ac_word" >&5 +echo "$as_me:3648: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -3858,7 +3660,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_MAKE_UPPER_TAGS="yes" -echo "$as_me:3861: found $ac_dir/$ac_word" >&5 +echo "$as_me:3663: found $ac_dir/$ac_word" >&5 break done @@ -3867,10 +3669,10 @@ fi fi MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS if test -n "$MAKE_UPPER_TAGS"; then - echo "$as_me:3870: result: $MAKE_UPPER_TAGS" >&5 + echo "$as_me:3672: result: $MAKE_UPPER_TAGS" >&5 echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6 else - echo "$as_me:3873: result: no" >&5 + echo "$as_me:3675: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -3890,7 +3692,7 @@ else MAKE_LOWER_TAGS="#" fi -echo "$as_me:3893: checking for makeflags variable" >&5 +echo "$as_me:3695: checking for makeflags variable" >&5 echo $ECHO_N "checking for makeflags variable... $ECHO_C" >&6 if test "${cf_cv_makeflags+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -3924,13 +3726,13 @@ CF_EOF rm -f cf_makeflags.tmp fi -echo "$as_me:3927: result: $cf_cv_makeflags" >&5 +echo "$as_me:3729: result: $cf_cv_makeflags" >&5 echo "${ECHO_T}$cf_cv_makeflags" >&6 if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo "$as_me:3933: checking for $ac_word" >&5 +echo "$as_me:3735: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -3945,7 +3747,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" -echo "$as_me:3948: found $ac_dir/$ac_word" >&5 +echo "$as_me:3750: found $ac_dir/$ac_word" >&5 break done @@ -3953,10 +3755,10 @@ fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then - echo "$as_me:3956: result: $RANLIB" >&5 + echo "$as_me:3758: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else - echo "$as_me:3959: result: no" >&5 + echo "$as_me:3761: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -3965,7 +3767,7 @@ if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 -echo "$as_me:3968: checking for $ac_word" >&5 +echo "$as_me:3770: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -3980,7 +3782,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ac_ct_RANLIB="ranlib" -echo "$as_me:3983: found $ac_dir/$ac_word" >&5 +echo "$as_me:3785: found $ac_dir/$ac_word" >&5 break done @@ -3989,10 +3791,10 @@ fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then - echo "$as_me:3992: result: $ac_ct_RANLIB" >&5 + echo "$as_me:3794: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else - echo "$as_me:3995: result: no" >&5 + echo "$as_me:3797: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -4004,7 +3806,7 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args. set dummy ${ac_tool_prefix}ld; ac_word=$2 -echo "$as_me:4007: checking for $ac_word" >&5 +echo "$as_me:3809: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -4019,7 +3821,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_LD="${ac_tool_prefix}ld" -echo "$as_me:4022: found $ac_dir/$ac_word" >&5 +echo "$as_me:3824: found $ac_dir/$ac_word" >&5 break done @@ -4027,10 +3829,10 @@ fi fi LD=$ac_cv_prog_LD if test -n "$LD"; then - echo "$as_me:4030: result: $LD" >&5 + echo "$as_me:3832: result: $LD" >&5 echo "${ECHO_T}$LD" >&6 else - echo "$as_me:4033: result: no" >&5 + echo "$as_me:3835: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -4039,7 +3841,7 @@ if test -z "$ac_cv_prog_LD"; then ac_ct_LD=$LD # Extract the first word of "ld", so it can be a program name with args. set dummy ld; ac_word=$2 -echo "$as_me:4042: checking for $ac_word" >&5 +echo "$as_me:3844: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -4054,7 +3856,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ac_ct_LD="ld" -echo "$as_me:4057: found $ac_dir/$ac_word" >&5 +echo "$as_me:3859: found $ac_dir/$ac_word" >&5 break done @@ -4063,10 +3865,10 @@ fi fi ac_ct_LD=$ac_cv_prog_ac_ct_LD if test -n "$ac_ct_LD"; then - echo "$as_me:4066: result: $ac_ct_LD" >&5 + echo "$as_me:3868: result: $ac_ct_LD" >&5 echo "${ECHO_T}$ac_ct_LD" >&6 else - echo "$as_me:4069: result: no" >&5 + echo "$as_me:3871: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -4078,7 +3880,7 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 -echo "$as_me:4081: checking for $ac_word" >&5 +echo "$as_me:3883: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -4093,7 +3895,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_AR="${ac_tool_prefix}ar" -echo "$as_me:4096: found $ac_dir/$ac_word" >&5 +echo "$as_me:3898: found $ac_dir/$ac_word" >&5 break done @@ -4101,10 +3903,10 @@ fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then - echo "$as_me:4104: result: $AR" >&5 + echo "$as_me:3906: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else - echo "$as_me:4107: result: no" >&5 + echo "$as_me:3909: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -4113,7 +3915,7 @@ if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 -echo "$as_me:4116: checking for $ac_word" >&5 +echo "$as_me:3918: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -4128,7 +3930,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ac_ct_AR="ar" -echo "$as_me:4131: found $ac_dir/$ac_word" >&5 +echo "$as_me:3933: found $ac_dir/$ac_word" >&5 break done @@ -4137,10 +3939,10 @@ fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then - echo "$as_me:4140: result: $ac_ct_AR" >&5 + echo "$as_me:3942: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6 else - echo "$as_me:4143: result: no" >&5 + echo "$as_me:3945: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -4149,10 +3951,84 @@ else AR="$ac_cv_prog_AR" fi +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nm", so it can be a program name with args. +set dummy ${ac_tool_prefix}nm; ac_word=$2 +echo "$as_me:3957: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_NM+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$NM"; then + ac_cv_prog_NM="$NM" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_NM="${ac_tool_prefix}nm" +echo "$as_me:3972: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +NM=$ac_cv_prog_NM +if test -n "$NM"; then + echo "$as_me:3980: result: $NM" >&5 +echo "${ECHO_T}$NM" >&6 +else + echo "$as_me:3983: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_NM"; then + ac_ct_NM=$NM + # Extract the first word of "nm", so it can be a program name with args. +set dummy nm; ac_word=$2 +echo "$as_me:3992: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_NM+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_NM"; then + ac_cv_prog_ac_ct_NM="$ac_ct_NM" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_ac_ct_NM="nm" +echo "$as_me:4007: found $ac_dir/$ac_word" >&5 +break +done + + test -z "$ac_cv_prog_ac_ct_NM" && ac_cv_prog_ac_ct_NM="nm" +fi +fi +ac_ct_NM=$ac_cv_prog_ac_ct_NM +if test -n "$ac_ct_NM"; then + echo "$as_me:4016: result: $ac_ct_NM" >&5 +echo "${ECHO_T}$ac_ct_NM" >&6 +else + echo "$as_me:4019: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + NM=$ac_ct_NM +else + NM="$ac_cv_prog_NM" +fi + if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 -echo "$as_me:4155: checking for $ac_word" >&5 +echo "$as_me:4031: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -4167,7 +4043,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_AR="${ac_tool_prefix}ar" -echo "$as_me:4170: found $ac_dir/$ac_word" >&5 +echo "$as_me:4046: found $ac_dir/$ac_word" >&5 break done @@ -4175,10 +4051,10 @@ fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then - echo "$as_me:4178: result: $AR" >&5 + echo "$as_me:4054: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else - echo "$as_me:4181: result: no" >&5 + echo "$as_me:4057: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -4187,7 +4063,7 @@ if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 -echo "$as_me:4190: checking for $ac_word" >&5 +echo "$as_me:4066: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -4202,7 +4078,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ac_ct_AR="ar" -echo "$as_me:4205: found $ac_dir/$ac_word" >&5 +echo "$as_me:4081: found $ac_dir/$ac_word" >&5 break done @@ -4211,10 +4087,10 @@ fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then - echo "$as_me:4214: result: $ac_ct_AR" >&5 + echo "$as_me:4090: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6 else - echo "$as_me:4217: result: no" >&5 + echo "$as_me:4093: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -4223,7 +4099,7 @@ else AR="$ac_cv_prog_AR" fi -echo "$as_me:4226: checking for options to update archives" >&5 +echo "$as_me:4102: checking for options to update archives" >&5 echo $ECHO_N "checking for options to update archives... $ECHO_C" >&6 if test "${cf_cv_ar_flags+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -4246,13 +4122,13 @@ else rm -f conftest.a cat >conftest.$ac_ext <&5 + if { (eval echo "$as_me:4128: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:4255: \$? = $ac_status" >&5 + echo "$as_me:4131: \$? = $ac_status" >&5 (exit $ac_status); } ; then echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&5 $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&5 1>/dev/null @@ -4263,7 +4139,7 @@ EOF else test -n "$verbose" && echo " cannot compile test-program" 1>&6 -echo "${as_me:-configure}:4266: testing cannot compile test-program ..." 1>&5 +echo "${as_me:-configure}:4142: testing cannot compile test-program ..." 1>&5 break fi @@ -4271,7 +4147,7 @@ echo "${as_me:-configure}:4266: testing cannot compile test-program ..." 1>&5 rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext fi -echo "$as_me:4274: result: $cf_cv_ar_flags" >&5 +echo "$as_me:4150: result: $cf_cv_ar_flags" >&5 echo "${ECHO_T}$cf_cv_ar_flags" >&6 if test -n "$ARFLAGS" ; then @@ -4282,20 +4158,20 @@ else ARFLAGS=$cf_cv_ar_flags fi -echo "$as_me:4285: checking if you have specified an install-prefix" >&5 +echo "$as_me:4161: checking if you have specified an install-prefix" >&5 echo $ECHO_N "checking if you have specified an install-prefix... $ECHO_C" >&6 # Check whether --with-install-prefix or --without-install-prefix was given. if test "${with_install_prefix+set}" = set; then withval="$with_install_prefix" - case "$withval" in #(vi - yes|no) #(vi + case "x$withval" in #(vi + xyes|xno) #(vi ;; *) DESTDIR="$withval" ;; esac fi; -echo "$as_me:4298: result: $DESTDIR" >&5 +echo "$as_me:4174: result: $DESTDIR" >&5 echo "${ECHO_T}$DESTDIR" >&6 ############################################################################### @@ -4323,7 +4199,7 @@ else do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:4326: checking for $ac_word" >&5 +echo "$as_me:4202: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_BUILD_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -4338,7 +4214,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_BUILD_CC="$ac_prog" -echo "$as_me:4341: found $ac_dir/$ac_word" >&5 +echo "$as_me:4217: found $ac_dir/$ac_word" >&5 break done @@ -4346,10 +4222,10 @@ fi fi BUILD_CC=$ac_cv_prog_BUILD_CC if test -n "$BUILD_CC"; then - echo "$as_me:4349: result: $BUILD_CC" >&5 + echo "$as_me:4225: result: $BUILD_CC" >&5 echo "${ECHO_T}$BUILD_CC" >&6 else - echo "$as_me:4352: result: no" >&5 + echo "$as_me:4228: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -4357,12 +4233,12 @@ fi done fi; - echo "$as_me:4360: checking for native build C compiler" >&5 + echo "$as_me:4236: checking for native build C compiler" >&5 echo $ECHO_N "checking for native build C compiler... $ECHO_C" >&6 - echo "$as_me:4362: result: $BUILD_CC" >&5 + echo "$as_me:4238: result: $BUILD_CC" >&5 echo "${ECHO_T}$BUILD_CC" >&6 - echo "$as_me:4365: checking for native build C preprocessor" >&5 + echo "$as_me:4241: checking for native build C preprocessor" >&5 echo $ECHO_N "checking for native build C preprocessor... $ECHO_C" >&6 # Check whether --with-build-cpp or --without-build-cpp was given. @@ -4372,10 +4248,10 @@ if test "${with_build_cpp+set}" = set; then else BUILD_CPP='${BUILD_CC} -E' fi; - echo "$as_me:4375: result: $BUILD_CPP" >&5 + echo "$as_me:4251: result: $BUILD_CPP" >&5 echo "${ECHO_T}$BUILD_CPP" >&6 - echo "$as_me:4378: checking for native build C flags" >&5 + echo "$as_me:4254: checking for native build C flags" >&5 echo $ECHO_N "checking for native build C flags... $ECHO_C" >&6 # Check whether --with-build-cflags or --without-build-cflags was given. @@ -4383,10 +4259,10 @@ if test "${with_build_cflags+set}" = set; then withval="$with_build_cflags" BUILD_CFLAGS="$withval" fi; - echo "$as_me:4386: result: $BUILD_CFLAGS" >&5 + echo "$as_me:4262: result: $BUILD_CFLAGS" >&5 echo "${ECHO_T}$BUILD_CFLAGS" >&6 - echo "$as_me:4389: checking for native build C preprocessor-flags" >&5 + echo "$as_me:4265: checking for native build C preprocessor-flags" >&5 echo $ECHO_N "checking for native build C preprocessor-flags... $ECHO_C" >&6 # Check whether --with-build-cppflags or --without-build-cppflags was given. @@ -4394,10 +4270,10 @@ if test "${with_build_cppflags+set}" = set; then withval="$with_build_cppflags" BUILD_CPPFLAGS="$withval" fi; - echo "$as_me:4397: result: $BUILD_CPPFLAGS" >&5 + echo "$as_me:4273: result: $BUILD_CPPFLAGS" >&5 echo "${ECHO_T}$BUILD_CPPFLAGS" >&6 - echo "$as_me:4400: checking for native build linker-flags" >&5 + echo "$as_me:4276: checking for native build linker-flags" >&5 echo $ECHO_N "checking for native build linker-flags... $ECHO_C" >&6 # Check whether --with-build-ldflags or --without-build-ldflags was given. @@ -4405,10 +4281,10 @@ if test "${with_build_ldflags+set}" = set; then withval="$with_build_ldflags" BUILD_LDFLAGS="$withval" fi; - echo "$as_me:4408: result: $BUILD_LDFLAGS" >&5 + echo "$as_me:4284: result: $BUILD_LDFLAGS" >&5 echo "${ECHO_T}$BUILD_LDFLAGS" >&6 - echo "$as_me:4411: checking for native build linker-libraries" >&5 + echo "$as_me:4287: checking for native build linker-libraries" >&5 echo $ECHO_N "checking for native build linker-libraries... $ECHO_C" >&6 # Check whether --with-build-libs or --without-build-libs was given. @@ -4416,7 +4292,7 @@ if test "${with_build_libs+set}" = set; then withval="$with_build_libs" BUILD_LIBS="$withval" fi; - echo "$as_me:4419: result: $BUILD_LIBS" >&5 + echo "$as_me:4295: result: $BUILD_LIBS" >&5 echo "${ECHO_T}$BUILD_LIBS" >&6 # this assumes we're on Unix. @@ -4426,7 +4302,7 @@ echo "${ECHO_T}$BUILD_LIBS" >&6 : ${BUILD_CC:='${CC}'} if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then - { { echo "$as_me:4429: error: Cross-build requires two compilers. + { { echo "$as_me:4305: error: Cross-build requires two compilers. Use --with-build-cc to specify the native compiler." >&5 echo "$as_me: error: Cross-build requires two compilers. Use --with-build-cc to specify the native compiler." >&2;} @@ -4451,7 +4327,7 @@ fi ### shared, for example. cf_list_models="" -echo "$as_me:4454: checking if libtool -version-number should be used" >&5 +echo "$as_me:4330: checking if libtool -version-number should be used" >&5 echo $ECHO_N "checking if libtool -version-number should be used... $ECHO_C" >&6 # Check whether --enable-libtool-version or --disable-libtool-version was given. @@ -4468,7 +4344,7 @@ else cf_libtool_version=yes fi; -echo "$as_me:4471: result: $cf_libtool_version" >&5 +echo "$as_me:4347: result: $cf_libtool_version" >&5 echo "${ECHO_T}$cf_libtool_version" >&6 if test "$cf_libtool_version" = yes ; then @@ -4493,7 +4369,7 @@ LIB_LINK='${CC}' LIB_INSTALL= LIB_UNINSTALL= -echo "$as_me:4496: checking if you want to build libraries with libtool" >&5 +echo "$as_me:4372: checking if you want to build libraries with libtool" >&5 echo $ECHO_N "checking if you want to build libraries with libtool... $ECHO_C" >&6 # Check whether --with-libtool or --without-libtool was given. @@ -4503,7 +4379,7 @@ if test "${with_libtool+set}" = set; then else with_libtool=no fi; -echo "$as_me:4506: result: $with_libtool" >&5 +echo "$as_me:4382: result: $with_libtool" >&5 echo "${ECHO_T}$with_libtool" >&6 if test "$with_libtool" != "no"; then @@ -4522,7 +4398,7 @@ case ".$with_libtool" in #(vi ;; .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX ;; -.\${*prefix}*) #(vi +.\${*prefix}*|.\${*dir}*) #(vi eval with_libtool="$with_libtool" case ".$with_libtool" in #(vi .NONE/*) @@ -4534,7 +4410,7 @@ case ".$with_libtool" in #(vi with_libtool=`echo $with_libtool | sed -e s%NONE%$cf_path_syntax%` ;; *) - { { echo "$as_me:4537: error: expected a pathname, not \"$with_libtool\"" >&5 + { { echo "$as_me:4413: error: expected a pathname, not \"$with_libtool\"" >&5 echo "$as_me: error: expected a pathname, not \"$with_libtool\"" >&2;} { (exit 1); exit 1; }; } ;; @@ -4542,50 +4418,199 @@ esac LIBTOOL=$with_libtool else - # Extract the first word of "libtool", so it can be a program name with args. -set dummy libtool; ac_word=$2 -echo "$as_me:4547: checking for $ac_word" >&5 + if test -n "$ac_tool_prefix"; then + for ac_prog in libtool glibtool + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +echo "$as_me:4426: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_LIBTOOL+set}" = set; then +if test "${ac_cv_prog_LIBTOOL+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - case $LIBTOOL in - [\\/]* | ?:[\\/]*) - ac_cv_path_LIBTOOL="$LIBTOOL" # Let the user override the test with a path. - ;; - *) + if test -n "$LIBTOOL"; then + ac_cv_prog_LIBTOOL="$LIBTOOL" # Let the user override the test. +else ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. - if $as_executable_p "$ac_dir/$ac_word"; then - ac_cv_path_LIBTOOL="$ac_dir/$ac_word" - echo "$as_me:4564: found $ac_dir/$ac_word" >&5 - break -fi + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_LIBTOOL="$ac_tool_prefix$ac_prog" +echo "$as_me:4441: found $ac_dir/$ac_word" >&5 +break done - ;; -esac fi -LIBTOOL=$ac_cv_path_LIBTOOL - +fi +LIBTOOL=$ac_cv_prog_LIBTOOL if test -n "$LIBTOOL"; then - echo "$as_me:4575: result: $LIBTOOL" >&5 + echo "$as_me:4449: result: $LIBTOOL" >&5 echo "${ECHO_T}$LIBTOOL" >&6 else - echo "$as_me:4578: result: no" >&5 + echo "$as_me:4452: result: no" >&5 echo "${ECHO_T}no" >&6 fi + test -n "$LIBTOOL" && break + done +fi +if test -z "$LIBTOOL"; then + ac_ct_LIBTOOL=$LIBTOOL + for ac_prog in libtool glibtool +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:4465: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_LIBTOOL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_LIBTOOL"; then + ac_cv_prog_ac_ct_LIBTOOL="$ac_ct_LIBTOOL" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_ac_ct_LIBTOOL="$ac_prog" +echo "$as_me:4480: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +ac_ct_LIBTOOL=$ac_cv_prog_ac_ct_LIBTOOL +if test -n "$ac_ct_LIBTOOL"; then + echo "$as_me:4488: result: $ac_ct_LIBTOOL" >&5 +echo "${ECHO_T}$ac_ct_LIBTOOL" >&6 +else + echo "$as_me:4491: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$ac_ct_LIBTOOL" && break +done +test -n "$ac_ct_LIBTOOL" || ac_ct_LIBTOOL="none" + + LIBTOOL=$ac_ct_LIBTOOL +fi + +if test -n "$LIBTOOL" && test "$LIBTOOL" != none +then + cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'` +else + cf_cv_libtool_version= +fi +test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version + + if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool + then + +unset ac_cv_prog_ac_ct_LIBTOOL +unset ac_ct_LIBTOOL +unset LIBTOOL + + if test -n "$ac_tool_prefix"; then + for ac_prog in glibtool + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +echo "$as_me:4522: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_LIBTOOL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$LIBTOOL"; then + ac_cv_prog_LIBTOOL="$LIBTOOL" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_LIBTOOL="$ac_tool_prefix$ac_prog" +echo "$as_me:4537: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +LIBTOOL=$ac_cv_prog_LIBTOOL +if test -n "$LIBTOOL"; then + echo "$as_me:4545: result: $LIBTOOL" >&5 +echo "${ECHO_T}$LIBTOOL" >&6 +else + echo "$as_me:4548: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$LIBTOOL" && break + done +fi +if test -z "$LIBTOOL"; then + ac_ct_LIBTOOL=$LIBTOOL + for ac_prog in glibtool +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:4561: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_LIBTOOL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_LIBTOOL"; then + ac_cv_prog_ac_ct_LIBTOOL="$ac_ct_LIBTOOL" # Let the user override the test. +else + ac_save_IFS=$IFS; IFS=$ac_path_separator +ac_dummy="$PATH" +for ac_dir in $ac_dummy; do + IFS=$ac_save_IFS + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue +ac_cv_prog_ac_ct_LIBTOOL="$ac_prog" +echo "$as_me:4576: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +ac_ct_LIBTOOL=$ac_cv_prog_ac_ct_LIBTOOL +if test -n "$ac_ct_LIBTOOL"; then + echo "$as_me:4584: result: $ac_ct_LIBTOOL" >&5 +echo "${ECHO_T}$ac_ct_LIBTOOL" >&6 +else + echo "$as_me:4587: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$ac_ct_LIBTOOL" && break +done +test -n "$ac_ct_LIBTOOL" || ac_ct_LIBTOOL="none" + + LIBTOOL=$ac_ct_LIBTOOL +fi + +if test -n "$LIBTOOL" && test "$LIBTOOL" != none +then + cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'` +else + cf_cv_libtool_version= +fi +test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version + + fi fi if test -z "$LIBTOOL" ; then - { { echo "$as_me:4584: error: Cannot find libtool" >&5 + { { echo "$as_me:4609: error: Cannot find libtool" >&5 echo "$as_me: error: Cannot find libtool" >&2;} { (exit 1); exit 1; }; } fi - LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} -o' + LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o' LIB_OBJECT='${OBJECTS:.o=.lo}' LIB_SUFFIX=.la LIB_CLEAN='${LIBTOOL} --mode=clean' @@ -4595,26 +4620,36 @@ echo "$as_me: error: Cannot find libtool" >&2;} LIB_UNINSTALL='${LIBTOOL} --mode=uninstall' LIB_PREP=: - # Show the version of libtool - echo "$as_me:4599: checking version of libtool" >&5 -echo $ECHO_N "checking version of libtool... $ECHO_C" >&6 +if test -n "$LIBTOOL" && test "$LIBTOOL" != none +then + echo "$as_me:4625: checking version of $LIBTOOL" >&5 +echo $ECHO_N "checking version of $LIBTOOL... $ECHO_C" >&6 - # 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. "(" +if test -n "$LIBTOOL" && test "$LIBTOOL" != none +then cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'` - echo "$as_me:4606: result: $cf_cv_libtool_version" >&5 +else + cf_cv_libtool_version= +fi +test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version + + echo "$as_me:4636: result: $cf_cv_libtool_version" >&5 echo "${ECHO_T}$cf_cv_libtool_version" >&6 if test -z "$cf_cv_libtool_version" ; then - { { echo "$as_me:4609: error: This is not GNU libtool" >&5 + { { echo "$as_me:4639: error: This is not GNU libtool" >&5 echo "$as_me: error: This is not GNU libtool" >&2;} { (exit 1); exit 1; }; } fi +else + { { echo "$as_me:4644: error: GNU libtool has not been found" >&5 +echo "$as_me: error: GNU libtool has not been found" >&2;} + { (exit 1); exit 1; }; } +fi # special hack to add -no-undefined (which libtool should do for itself) LT_UNDEF= case "$cf_cv_system_name" in #(vi - cygwin*|mingw32*|uwin*|aix[456]) #(vi + cygwin*|msys*|mingw32*|uwin*|aix[4-7]) #(vi LT_UNDEF=-no-undefined ;; esac @@ -4642,7 +4677,7 @@ cf_list_models="$cf_list_models libtool" else -echo "$as_me:4645: checking if you want to build shared libraries" >&5 +echo "$as_me:4680: checking if you want to build shared libraries" >&5 echo $ECHO_N "checking if you want to build shared libraries... $ECHO_C" >&6 # Check whether --with-shared or --without-shared was given. @@ -4652,11 +4687,11 @@ if test "${with_shared+set}" = set; then else with_shared=no fi; -echo "$as_me:4655: result: $with_shared" >&5 +echo "$as_me:4690: result: $with_shared" >&5 echo "${ECHO_T}$with_shared" >&6 -test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared" +test "x$with_shared" = "xyes" && cf_list_models="$cf_list_models shared" -echo "$as_me:4659: checking if you want to build static libraries" >&5 +echo "$as_me:4694: checking if you want to build static libraries" >&5 echo $ECHO_N "checking if you want to build static libraries... $ECHO_C" >&6 # Check whether --with-normal or --without-normal was given. @@ -4666,11 +4701,11 @@ if test "${with_normal+set}" = set; then else with_normal=yes fi; -echo "$as_me:4669: result: $with_normal" >&5 +echo "$as_me:4704: result: $with_normal" >&5 echo "${ECHO_T}$with_normal" >&6 -test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal" +test "x$with_normal" = "xyes" && cf_list_models="$cf_list_models normal" -echo "$as_me:4673: checking if you want to build debug libraries" >&5 +echo "$as_me:4708: checking if you want to build debug libraries" >&5 echo $ECHO_N "checking if you want to build debug libraries... $ECHO_C" >&6 # Check whether --with-debug or --without-debug was given. @@ -4680,11 +4715,11 @@ if test "${with_debug+set}" = set; then else with_debug=yes fi; -echo "$as_me:4683: result: $with_debug" >&5 +echo "$as_me:4718: result: $with_debug" >&5 echo "${ECHO_T}$with_debug" >&6 -test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug" +test "x$with_debug" = "xyes" && cf_list_models="$cf_list_models debug" -echo "$as_me:4687: checking if you want to build profiling libraries" >&5 +echo "$as_me:4722: checking if you want to build profiling libraries" >&5 echo $ECHO_N "checking if you want to build profiling libraries... $ECHO_C" >&6 # Check whether --with-profile or --without-profile was given. @@ -4694,27 +4729,44 @@ if test "${with_profile+set}" = set; then else with_profile=no fi; -echo "$as_me:4697: result: $with_profile" >&5 +echo "$as_me:4732: result: $with_profile" >&5 echo "${ECHO_T}$with_profile" >&6 -test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile" +test "x$with_profile" = "xyes" && cf_list_models="$cf_list_models profile" fi +if test "X$cf_with_cxx_binding" != Xno; then +if test "x$with_shared" = "xyes"; then +echo "$as_me:4740: checking if you want to build C++ shared libraries" >&5 +echo $ECHO_N "checking if you want to build C++ shared libraries... $ECHO_C" >&6 + +# Check whether --with-cxx-shared or --without-cxx-shared was given. +if test "${with_cxx_shared+set}" = set; then + withval="$with_cxx_shared" + with_shared_cxx=$withval +else + with_shared_cxx=no +fi; +echo "$as_me:4750: result: $with_shared_cxx" >&5 +echo "${ECHO_T}$with_shared_cxx" >&6 +fi +fi + ############################################################################### -echo "$as_me:4705: checking for specified models" >&5 +echo "$as_me:4757: checking for specified models" >&5 echo $ECHO_N "checking for specified models... $ECHO_C" >&6 test -z "$cf_list_models" && cf_list_models=normal test "$with_libtool" != "no" && cf_list_models=libtool -echo "$as_me:4709: result: $cf_list_models" >&5 +echo "$as_me:4761: result: $cf_list_models" >&5 echo "${ECHO_T}$cf_list_models" >&6 ### Use the first model as the default, and save its suffix for use in building ### up test-applications. -echo "$as_me:4714: checking for default model" >&5 +echo "$as_me:4766: checking for default model" >&5 echo $ECHO_N "checking for default model... $ECHO_C" >&6 DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'` -echo "$as_me:4717: result: $DFT_LWR_MODEL" >&5 +echo "$as_me:4769: result: $DFT_LWR_MODEL" >&5 echo "${ECHO_T}$DFT_LWR_MODEL" >&6 DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` @@ -4728,6 +4780,22 @@ LIB_NAME=ncurses LIB_DIR=../lib LIB_2ND=../../lib +echo "$as_me:4783: checking if you want to have a library-prefix" >&5 +echo $ECHO_N "checking if you want to have a library-prefix... $ECHO_C" >&6 + +# Check whether --with-lib-prefix or --without-lib-prefix was given. +if test "${with_lib_prefix+set}" = set; then + withval="$with_lib_prefix" + with_lib_prefix=$withval +else + with_lib_prefix=auto +fi; +echo "$as_me:4793: result: $with_lib_prefix" >&5 +echo "${ECHO_T}$with_lib_prefix" >&6 + +if test $with_lib_prefix = auto +then + case $cf_cv_system_name in #(vi OS/2*|os2*) #(vi LIB_PREFIX='' @@ -4737,13 +4805,28 @@ LIB_2ND=../../lib esac cf_prefix=$LIB_PREFIX -LIB_PREFIX=$cf_prefix +elif test $with_lib_prefix = no +then + LIB_PREFIX= +else + LIB_PREFIX=$with_lib_prefix +fi LIB_SUFFIX= + echo "$as_me:4817: checking for PATH separator" >&5 +echo $ECHO_N "checking for PATH separator... $ECHO_C" >&6 + case $cf_cv_system_name in + os2*) PATH_SEPARATOR=';' ;; + *) ${PATH_SEPARATOR:=':'} ;; + esac + + echo "$as_me:4824: result: $PATH_SEPARATOR" >&5 +echo "${ECHO_T}$PATH_SEPARATOR" >&6 + ############################################################################### -echo "$as_me:4746: checking if you want to build a separate terminfo library" >&5 +echo "$as_me:4829: checking if you want to build a separate terminfo library" >&5 echo $ECHO_N "checking if you want to build a separate terminfo library... $ECHO_C" >&6 # Check whether --with-termlib or --without-termlib was given. @@ -4753,10 +4836,10 @@ if test "${with_termlib+set}" = set; then else with_termlib=no fi; -echo "$as_me:4756: result: $with_termlib" >&5 +echo "$as_me:4839: result: $with_termlib" >&5 echo "${ECHO_T}$with_termlib" >&6 -echo "$as_me:4759: checking if you want to build a separate tic library" >&5 +echo "$as_me:4842: checking if you want to build a separate tic library" >&5 echo $ECHO_N "checking if you want to build a separate tic library... $ECHO_C" >&6 # Check whether --with-ticlib or --without-ticlib was given. @@ -4766,13 +4849,13 @@ if test "${with_ticlib+set}" = set; then else with_ticlib=no fi; -echo "$as_me:4769: result: $with_ticlib" >&5 +echo "$as_me:4852: result: $with_ticlib" >&5 echo "${ECHO_T}$with_ticlib" >&6 ### Checks for special libraries, must be done up-front. SHLIB_LIST="" -echo "$as_me:4775: checking if you want to link with the GPM mouse library" >&5 +echo "$as_me:4858: checking if you want to link with the GPM mouse library" >&5 echo $ECHO_N "checking if you want to link with the GPM mouse library... $ECHO_C" >&6 # Check whether --with-gpm or --without-gpm was given. @@ -4782,27 +4865,27 @@ if test "${with_gpm+set}" = set; then else with_gpm=maybe fi; -echo "$as_me:4785: result: $with_gpm" >&5 +echo "$as_me:4868: result: $with_gpm" >&5 echo "${ECHO_T}$with_gpm" >&6 if test "$with_gpm" != no ; then - echo "$as_me:4789: checking for gpm.h" >&5 + echo "$as_me:4872: checking for gpm.h" >&5 echo $ECHO_N "checking for gpm.h... $ECHO_C" >&6 if test "${ac_cv_header_gpm_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 4795 "configure" +#line 4878 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:4799: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:4882: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:4805: \$? = $ac_status" >&5 + echo "$as_me:4888: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -4821,25 +4904,25 @@ else fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:4824: result: $ac_cv_header_gpm_h" >&5 +echo "$as_me:4907: result: $ac_cv_header_gpm_h" >&5 echo "${ECHO_T}$ac_cv_header_gpm_h" >&6 if test $ac_cv_header_gpm_h = yes; then - cat >>confdefs.h <<\EOF +cat >>confdefs.h <<\EOF #define HAVE_GPM_H 1 EOF if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then test -n "$verbose" && echo " assuming we really have GPM library" 1>&6 -echo "${as_me:-configure}:4835: testing assuming we really have GPM library ..." 1>&5 +echo "${as_me:-configure}:4918: testing assuming we really have GPM library ..." 1>&5 - cat >>confdefs.h <<\EOF +cat >>confdefs.h <<\EOF #define HAVE_LIBGPM 1 EOF else - echo "$as_me:4842: checking for Gpm_Open in -lgpm" >&5 + echo "$as_me:4925: checking for Gpm_Open in -lgpm" >&5 echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6 if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -4847,7 +4930,7 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lgpm $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 4850 "configure" +#line 4933 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -4866,16 +4949,16 @@ Gpm_Open (); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:4869: \"$ac_link\"") >&5 +if { (eval echo "$as_me:4952: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:4872: \$? = $ac_status" >&5 + echo "$as_me:4955: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:4875: \"$ac_try\"") >&5 + { (eval echo "$as_me:4958: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:4878: \$? = $ac_status" >&5 + echo "$as_me:4961: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_gpm_Gpm_Open=yes else @@ -4886,13 +4969,13 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:4889: result: $ac_cv_lib_gpm_Gpm_Open" >&5 +echo "$as_me:4972: result: $ac_cv_lib_gpm_Gpm_Open" >&5 echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6 if test $ac_cv_lib_gpm_Gpm_Open = yes; then : else - { { echo "$as_me:4895: error: Cannot link with GPM library" >&5 + { { echo "$as_me:4978: error: Cannot link with GPM library" >&5 echo "$as_me: error: Cannot link with GPM library" >&2;} { (exit 1); exit 1; }; } fi @@ -4902,7 +4985,7 @@ fi else - test "$with_gpm" != maybe && { echo "$as_me:4905: WARNING: Cannot find GPM header" >&5 + test "$with_gpm" != maybe && { echo "$as_me:4988: WARNING: Cannot find GPM header" >&5 echo "$as_me: WARNING: Cannot find GPM header" >&2;} with_gpm=no @@ -4911,7 +4994,7 @@ fi fi if test "$with_gpm" != no ; then - echo "$as_me:4914: checking if you want to load GPM dynamically" >&5 + echo "$as_me:4997: checking if you want to load GPM dynamically" >&5 echo $ECHO_N "checking if you want to load GPM dynamically... $ECHO_C" >&6 # Check whether --with-dlsym or --without-dlsym was given. @@ -4921,18 +5004,18 @@ if test "${with_dlsym+set}" = set; then else with_dlsym=yes fi; - echo "$as_me:4924: result: $with_dlsym" >&5 + echo "$as_me:5007: result: $with_dlsym" >&5 echo "${ECHO_T}$with_dlsym" >&6 - if test "$with_dlsym" = yes ; then + if test "x$with_dlsym" = xyes ; then cf_have_dlsym=no -echo "$as_me:4929: checking for dlsym" >&5 +echo "$as_me:5012: checking for dlsym" >&5 echo $ECHO_N "checking for dlsym... $ECHO_C" >&6 if test "${ac_cv_func_dlsym+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 4935 "configure" +#line 5018 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlsym (); below. */ @@ -4955,7 +5038,7 @@ main () #if defined (__stub_dlsym) || defined (__stub___dlsym) choke me #else -f = dlsym; +f = dlsym; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; #endif ; @@ -4963,16 +5046,16 @@ f = dlsym; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:4966: \"$ac_link\"") >&5 +if { (eval echo "$as_me:5049: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:4969: \$? = $ac_status" >&5 + echo "$as_me:5052: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:4972: \"$ac_try\"") >&5 + { (eval echo "$as_me:5055: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:4975: \$? = $ac_status" >&5 + echo "$as_me:5058: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlsym=yes else @@ -4982,14 +5065,14 @@ ac_cv_func_dlsym=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:4985: result: $ac_cv_func_dlsym" >&5 +echo "$as_me:5068: result: $ac_cv_func_dlsym" >&5 echo "${ECHO_T}$ac_cv_func_dlsym" >&6 if test $ac_cv_func_dlsym = yes; then cf_have_dlsym=yes else cf_have_libdl=no -echo "$as_me:4992: checking for dlsym in -ldl" >&5 +echo "$as_me:5075: checking for dlsym in -ldl" >&5 echo $ECHO_N "checking for dlsym in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlsym+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -4997,7 +5080,7 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 5000 "configure" +#line 5083 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -5016,16 +5099,16 @@ dlsym (); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:5019: \"$ac_link\"") >&5 +if { (eval echo "$as_me:5102: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:5022: \$? = $ac_status" >&5 + echo "$as_me:5105: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:5025: \"$ac_try\"") >&5 + { (eval echo "$as_me:5108: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:5028: \$? = $ac_status" >&5 + echo "$as_me:5111: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlsym=yes else @@ -5036,7 +5119,7 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:5039: result: $ac_cv_lib_dl_dlsym" >&5 +echo "$as_me:5122: result: $ac_cv_lib_dl_dlsym" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlsym" >&6 if test $ac_cv_lib_dl_dlsym = yes; then @@ -5049,10 +5132,10 @@ fi if test "$cf_have_dlsym" = yes ; then test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS" - echo "$as_me:5052: checking whether able to link to dl*() functions" >&5 + echo "$as_me:5135: checking whether able to link to dl*() functions" >&5 echo $ECHO_N "checking whether able to link to dl*() functions... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line 5055 "configure" +#line 5138 "configure" #include "confdefs.h" #include int @@ -5070,19 +5153,19 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:5073: \"$ac_link\"") >&5 +if { (eval echo "$as_me:5156: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:5076: \$? = $ac_status" >&5 + echo "$as_me:5159: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:5079: \"$ac_try\"") >&5 + { (eval echo "$as_me:5162: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:5082: \$? = $ac_status" >&5 + echo "$as_me:5165: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - cat >>confdefs.h <<\EOF +cat >>confdefs.h <<\EOF #define HAVE_LIBDL 1 EOF @@ -5090,28 +5173,28 @@ else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 - { { echo "$as_me:5093: error: Cannot link test program for libdl" >&5 + { { echo "$as_me:5176: error: Cannot link test program for libdl" >&5 echo "$as_me: error: Cannot link test program for libdl" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - echo "$as_me:5098: result: ok" >&5 + echo "$as_me:5181: result: ok" >&5 echo "${ECHO_T}ok" >&6 else - { { echo "$as_me:5101: error: Cannot find dlsym function" >&5 + { { echo "$as_me:5184: error: Cannot find dlsym function" >&5 echo "$as_me: error: Cannot find dlsym function" >&2;} { (exit 1); exit 1; }; } fi - if test "$with_gpm" != yes ; then + if test "x$with_gpm" != xyes ; then test -n "$verbose" && echo " assuming soname for gpm is $with_gpm" 1>&6 -echo "${as_me:-configure}:5109: testing assuming soname for gpm is $with_gpm ..." 1>&5 +echo "${as_me:-configure}:5192: testing assuming soname for gpm is $with_gpm ..." 1>&5 cf_cv_gpm_soname="$with_gpm" else -echo "$as_me:5114: checking for soname of gpm library" >&5 +echo "$as_me:5197: checking for soname of gpm library" >&5 echo $ECHO_N "checking for soname of gpm library... $ECHO_C" >&6 if test "${cf_cv_gpm_soname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -5129,15 +5212,15 @@ if (Gpm_Open(0,0)) Gpm_Close(); CF_EOF cf_save_LIBS="$LIBS" LIBS="-lgpm $LIBS" - if { (eval echo "$as_me:5132: \"$ac_compile\"") >&5 + if { (eval echo "$as_me:5215: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:5135: \$? = $ac_status" >&5 + echo "$as_me:5218: \$? = $ac_status" >&5 (exit $ac_status); } ; then - if { (eval echo "$as_me:5137: \"$ac_link\"") >&5 + if { (eval echo "$as_me:5220: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:5140: \$? = $ac_status" >&5 + echo "$as_me:5223: \$? = $ac_status" >&5 (exit $ac_status); } ; then cf_cv_gpm_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep libgpm.` test -z "$cf_cv_gpm_soname" && cf_cv_gpm_soname=unknown @@ -5148,11 +5231,12 @@ LIBS="$cf_save_LIBS" fi fi -echo "$as_me:5151: result: $cf_cv_gpm_soname" >&5 +echo "$as_me:5234: result: $cf_cv_gpm_soname" >&5 echo "${ECHO_T}$cf_cv_gpm_soname" >&6 fi - test "$cf_cv_gpm_soname" != "unknown" && cat >>confdefs.h <>confdefs.h <>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define HAVE_LIBGPM 1 EOF -echo "$as_me:5168: checking for Gpm_Wgetch in -lgpm" >&5 +echo "$as_me:5253: checking for Gpm_Wgetch in -lgpm" >&5 echo $ECHO_N "checking for Gpm_Wgetch in -lgpm... $ECHO_C" >&6 if test "${ac_cv_lib_gpm_Gpm_Wgetch+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -5173,7 +5258,7 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lgpm $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 5176 "configure" +#line 5261 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -5192,16 +5277,16 @@ Gpm_Wgetch (); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:5195: \"$ac_link\"") >&5 +if { (eval echo "$as_me:5280: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:5198: \$? = $ac_status" >&5 + echo "$as_me:5283: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:5201: \"$ac_try\"") >&5 + { (eval echo "$as_me:5286: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:5204: \$? = $ac_status" >&5 + echo "$as_me:5289: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_gpm_Gpm_Wgetch=yes else @@ -5212,11 +5297,11 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:5215: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5 +echo "$as_me:5300: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5 echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Wgetch" >&6 if test $ac_cv_lib_gpm_Gpm_Wgetch = yes; then -echo "$as_me:5219: checking if GPM is weakly bound to curses library" >&5 +echo "$as_me:5304: checking if GPM is weakly bound to curses library" >&5 echo $ECHO_N "checking if GPM is weakly bound to curses library... $ECHO_C" >&6 if test "${cf_cv_check_gpm_wgetch+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -5240,15 +5325,15 @@ CF_EOF # to rely on the static library, noting that some packagers may not # include it. LIBS="-static -lgpm -dynamic $LIBS" - if { (eval echo "$as_me:5243: \"$ac_compile\"") >&5 + if { (eval echo "$as_me:5328: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:5246: \$? = $ac_status" >&5 + echo "$as_me:5331: \$? = $ac_status" >&5 (exit $ac_status); } ; then - if { (eval echo "$as_me:5248: \"$ac_link\"") >&5 + if { (eval echo "$as_me:5333: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:5251: \$? = $ac_status" >&5 + echo "$as_me:5336: \$? = $ac_status" >&5 (exit $ac_status); } ; then cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\' | egrep '\<[vVwW]\>'` test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes @@ -5260,11 +5345,11 @@ CF_EOF fi fi -echo "$as_me:5263: result: $cf_cv_check_gpm_wgetch" >&5 +echo "$as_me:5348: result: $cf_cv_check_gpm_wgetch" >&5 echo "${ECHO_T}$cf_cv_check_gpm_wgetch" >&6 if test "$cf_cv_check_gpm_wgetch" != yes ; then - { echo "$as_me:5267: WARNING: GPM library is already linked with curses - read the FAQ" >&5 + { echo "$as_me:5352: WARNING: GPM library is already linked with curses - read the FAQ" >&5 echo "$as_me: WARNING: GPM library is already linked with curses - read the FAQ" >&2;} fi @@ -5274,7 +5359,7 @@ fi # not everyone has "test -c" if test -c /dev/sysmouse 2>/dev/null ; then -echo "$as_me:5277: checking if you want to use sysmouse" >&5 +echo "$as_me:5362: checking if you want to use sysmouse" >&5 echo $ECHO_N "checking if you want to use sysmouse... $ECHO_C" >&6 # Check whether --with-sysmouse or --without-sysmouse was given. @@ -5286,7 +5371,7 @@ else fi; if test "$cf_with_sysmouse" != no ; then cat >conftest.$ac_ext <<_ACEOF -#line 5289 "configure" +#line 5374 "configure" #include "confdefs.h" #include @@ -5309,16 +5394,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:5312: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:5397: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:5315: \$? = $ac_status" >&5 + echo "$as_me:5400: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:5318: \"$ac_try\"") >&5 + { (eval echo "$as_me:5403: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:5321: \$? = $ac_status" >&5 + echo "$as_me:5406: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_with_sysmouse=yes else @@ -5328,9 +5413,10 @@ cf_with_sysmouse=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:5331: result: $cf_with_sysmouse" >&5 +echo "$as_me:5416: result: $cf_with_sysmouse" >&5 echo "${ECHO_T}$cf_with_sysmouse" >&6 -test "$cf_with_sysmouse" = yes && cat >>confdefs.h <<\EOF +test "$cf_with_sysmouse" = yes && +cat >>confdefs.h <<\EOF #define USE_SYSMOUSE 1 EOF @@ -5338,15 +5424,15 @@ fi if test X"$CC_G_OPT" = X"" ; then CC_G_OPT='-g' - test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT='' + test -n "$GCC" && test "x${ac_cv_prog_cc_g}" != xyes && CC_G_OPT='' fi if test X"$CXX_G_OPT" = X"" ; then CXX_G_OPT='-g' - test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT='' + test -n "$GXX" && test "x${ac_cv_prog_cxx_g}" != xyes && CXX_G_OPT='' fi -echo "$as_me:5349: checking for default loader flags" >&5 +echo "$as_me:5435: checking for default loader flags" >&5 echo $ECHO_N "checking for default loader flags... $ECHO_C" >&6 case $DFT_LWR_MODEL in libtool) LD_MODEL='' ;; @@ -5355,13 +5441,13 @@ debug) LD_MODEL=$CC_G_OPT ;; profile) LD_MODEL='-pg';; shared) LD_MODEL='' ;; esac -echo "$as_me:5358: result: $LD_MODEL" >&5 +echo "$as_me:5444: result: $LD_MODEL" >&5 echo "${ECHO_T}$LD_MODEL" >&6 case $DFT_LWR_MODEL in shared) -echo "$as_me:5364: checking if rpath option should be used" >&5 +echo "$as_me:5450: checking if rpath option should be used" >&5 echo $ECHO_N "checking if rpath option should be used... $ECHO_C" >&6 # Check whether --enable-rpath or --disable-rpath was given. @@ -5371,10 +5457,10 @@ if test "${enable_rpath+set}" = set; then else cf_cv_enable_rpath=no fi; -echo "$as_me:5374: result: $cf_cv_enable_rpath" >&5 +echo "$as_me:5460: result: $cf_cv_enable_rpath" >&5 echo "${ECHO_T}$cf_cv_enable_rpath" >&6 -echo "$as_me:5377: checking if shared libraries should be relinked during install" >&5 +echo "$as_me:5463: checking if shared libraries should be relinked during install" >&5 echo $ECHO_N "checking if shared libraries should be relinked during install... $ECHO_C" >&6 # Check whether --enable-relink or --disable-relink was given. @@ -5384,13 +5470,16 @@ if test "${enable_relink+set}" = set; then else cf_cv_do_relink=yes fi; -echo "$as_me:5387: result: $cf_cv_do_relink" >&5 +echo "$as_me:5473: result: $cf_cv_do_relink" >&5 echo "${ECHO_T}$cf_cv_do_relink" >&6 ;; esac +# we will build libraries one-level down. +rel_builddir=.. + LD_RPATH_OPT= -echo "$as_me:5393: checking for an rpath option" >&5 +echo "$as_me:5482: checking for an rpath option" >&5 echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6 case $cf_cv_system_name in #(vi irix*) #(vi @@ -5403,10 +5492,10 @@ irix*) #(vi linux*|gnu*|k*bsd*-gnu) #(vi LD_RPATH_OPT="-Wl,-rpath," ;; -openbsd[2-9].*) #(vi +openbsd[2-9].*|mirbsd*) #(vi LD_RPATH_OPT="-Wl,-rpath," ;; -freebsd*) #(vi +dragonfly*|freebsd*) #(vi LD_RPATH_OPT="-rpath " ;; netbsd*) #(vi @@ -5421,17 +5510,17 @@ solaris2*) #(vi *) ;; esac -echo "$as_me:5424: result: $LD_RPATH_OPT" >&5 +echo "$as_me:5513: result: $LD_RPATH_OPT" >&5 echo "${ECHO_T}$LD_RPATH_OPT" >&6 case "x$LD_RPATH_OPT" in #(vi x-R*) - echo "$as_me:5429: checking if we need a space after rpath option" >&5 + echo "$as_me:5518: checking if we need a space after rpath option" >&5 echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6 cf_save_LIBS="$LIBS" LIBS="${LD_RPATH_OPT}$libdir $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 5434 "configure" +#line 5523 "configure" #include "confdefs.h" int @@ -5443,16 +5532,16 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:5446: \"$ac_link\"") >&5 +if { (eval echo "$as_me:5535: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:5449: \$? = $ac_status" >&5 + echo "$as_me:5538: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:5452: \"$ac_try\"") >&5 + { (eval echo "$as_me:5541: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:5455: \$? = $ac_status" >&5 + echo "$as_me:5544: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_rpath_space=no else @@ -5462,22 +5551,28 @@ cf_rpath_space=yes fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS="$cf_save_LIBS" - echo "$as_me:5465: result: $cf_rpath_space" >&5 + echo "$as_me:5554: result: $cf_rpath_space" >&5 echo "${ECHO_T}$cf_rpath_space" >&6 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT " ;; esac + RM_SHARED_OPTS= LOCAL_LDFLAGS= LOCAL_LDFLAGS2= LD_SHARED_OPTS= INSTALL_LIB="-m 644" + : ${rel_builddir:=.} + + shlibdir=$libdir + + MAKE_DLLS="#" cf_cv_do_symlinks=no cf_ld_rpath_opt= test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT" - echo "$as_me:5480: checking if release/abi version should be used for shared libs" >&5 + echo "$as_me:5575: checking if release/abi version should be used for shared libs" >&5 echo $ECHO_N "checking if release/abi version should be used for shared libs... $ECHO_C" >&6 # Check whether --with-shlib-version or --without-shlib-version was given. @@ -5492,7 +5587,7 @@ if test "${with_shlib_version+set}" = set; then cf_cv_shlib_version=$withval ;; *) - { { echo "$as_me:5495: error: option value must be one of: rel, abi, auto or no" >&5 + { { echo "$as_me:5590: error: option value must be one of: rel, abi, auto or no" >&5 echo "$as_me: error: option value must be one of: rel, abi, auto or no" >&2;} { (exit 1); exit 1; }; } ;; @@ -5501,23 +5596,24 @@ echo "$as_me: error: option value must be one of: rel, abi, auto or no" >&2;} else cf_cv_shlib_version=auto fi; - echo "$as_me:5504: result: $cf_cv_shlib_version" >&5 + echo "$as_me:5599: result: $cf_cv_shlib_version" >&5 echo "${ECHO_T}$cf_cv_shlib_version" >&6 cf_cv_rm_so_locs=no + cf_try_cflags= # Some less-capable ports of gcc support only -fpic CC_SHARED_OPTS= if test "$GCC" = yes then - echo "$as_me:5513: checking which $CC option to use" >&5 + echo "$as_me:5609: checking which $CC option to use" >&5 echo $ECHO_N "checking which $CC option to use... $ECHO_C" >&6 cf_save_CFLAGS="$CFLAGS" for CC_SHARED_OPTS in -fPIC -fpic '' do CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS" cat >conftest.$ac_ext <<_ACEOF -#line 5520 "configure" +#line 5616 "configure" #include "confdefs.h" #include int @@ -5529,16 +5625,16 @@ int x = 1 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:5532: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:5628: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:5535: \$? = $ac_status" >&5 + echo "$as_me:5631: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:5538: \"$ac_try\"") >&5 + { (eval echo "$as_me:5634: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:5541: \$? = $ac_status" >&5 + echo "$as_me:5637: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -5547,7 +5643,7 @@ cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext done - echo "$as_me:5550: result: $CC_SHARED_OPTS" >&5 + echo "$as_me:5646: result: $CC_SHARED_OPTS" >&5 echo "${ECHO_T}$CC_SHARED_OPTS" >&6 CFLAGS="$cf_save_CFLAGS" fi @@ -5555,10 +5651,14 @@ echo "${ECHO_T}$CC_SHARED_OPTS" >&6 cf_cv_shlib_version_infix=no case $cf_cv_system_name in #(vi - aix[56]*) #(vi + aix4.3-9*|aix[5-7]*) #(vi if test "$GCC" = yes; then CC_SHARED_OPTS= - MK_SHARED_LIB='$(CC) -shared' + MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o $@' + else + # CC_SHARED_OPTS='-qpic=large -G' + # perhaps "-bM:SRE -bnoentry -bexpall" + MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o $@' fi ;; beos*) #(vi @@ -5566,9 +5666,12 @@ echo "${ECHO_T}$CC_SHARED_OPTS" >&6 ;; cygwin*) #(vi CC_SHARED_OPTS= - MK_SHARED_LIB='sh ../mk_shared_lib.sh $@ ${CC} ${CFLAGS}' + MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}' + RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" cf_cv_shlib_version=cygdll cf_cv_shlib_version_infix=cygdll + shlibdir=$bindir + MAKE_DLLS= cat >mk_shared_lib.sh <<-CF_EOF #!/bin/sh SHARED_LIB=\$1 @@ -5579,17 +5682,39 @@ echo "${ECHO_T}$CC_SHARED_OPTS" >&6 ** SHARED_LIB \$SHARED_LIB ** IMPORT_LIB \$IMPORT_LIB EOF - exec \$* -shared -Wl,--out-implib=../lib/\${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\${SHARED_LIB} + exec \$* -shared -Wl,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB} +CF_EOF + chmod +x mk_shared_lib.sh + ;; + msys*) #(vi + CC_SHARED_OPTS= + MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}' + RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" + cf_cv_shlib_version=msysdll + cf_cv_shlib_version_infix=msysdll + shlibdir=$bindir + MAKE_DLLS= + cat >mk_shared_lib.sh <<-CF_EOF + #!/bin/sh + SHARED_LIB=\$1 + IMPORT_LIB=\`echo "\$1" | sed -e 's/msys-/lib/' -e 's/[0-9]*\.dll$/.dll.a/'\` + shift + cat <<-EOF + Linking shared library + ** SHARED_LIB \$SHARED_LIB + ** IMPORT_LIB \$IMPORT_LIB +EOF + exec \$* -shared -Wl,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB} CF_EOF chmod +x mk_shared_lib.sh ;; darwin*) #(vi - EXTRA_CFLAGS="-no-cpp-precomp" + cf_try_cflags="no-cpp-precomp" CC_SHARED_OPTS="-dynamic" MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${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 - echo "$as_me:5592: checking if ld -search_paths_first works" >&5 + echo "$as_me:5717: checking if ld -search_paths_first works" >&5 echo $ECHO_N "checking if ld -search_paths_first works... $ECHO_C" >&6 if test "${cf_cv_ldflags_search_paths_first+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -5598,7 +5723,7 @@ else cf_save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-search_paths_first" cat >conftest.$ac_ext <<_ACEOF -#line 5601 "configure" +#line 5726 "configure" #include "confdefs.h" int @@ -5610,16 +5735,16 @@ int i; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:5613: \"$ac_link\"") >&5 +if { (eval echo "$as_me:5738: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:5616: \$? = $ac_status" >&5 + echo "$as_me:5741: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:5619: \"$ac_try\"") >&5 + { (eval echo "$as_me:5744: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:5622: \$? = $ac_status" >&5 + echo "$as_me:5747: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_ldflags_search_paths_first=yes else @@ -5630,12 +5755,20 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LDFLAGS=$cf_save_LDFLAGS fi -echo "$as_me:5633: result: $cf_cv_ldflags_search_paths_first" >&5 +echo "$as_me:5758: result: $cf_cv_ldflags_search_paths_first" >&5 echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6 if test $cf_cv_ldflags_search_paths_first = yes; then LDFLAGS="$LDFLAGS -Wl,-search_paths_first" fi ;; + hpux[7-8]*) #(vi + # HP-UX 8.07 ld lacks "+b" option used for libdir search-list + if test "$GCC" != yes; then + CC_SHARED_OPTS='+Z' + fi + MK_SHARED_LIB='${LD} -b -o $@' + INSTALL_LIB="-m 555" + ;; hpux*) #(vi # (tested with gcc 2.7.2 -- I don't have c89) if test "$GCC" = yes; then @@ -5649,9 +5782,19 @@ echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6 # readonly to exploit a quirk in the memory manager. INSTALL_LIB="-m 555" ;; + interix*) + test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel + if test "$cf_cv_shlib_version" = rel; then + cf_shared_soname='`basename .${REL_VERSION}`.${ABI_VERSION}' + else + cf_shared_soname='`basename `' + fi + CC_SHARED_OPTS= + MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o ' + ;; irix*) #(vi if test "$cf_cv_enable_rpath" = yes ; then - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" + EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" fi # tested with IRIX 5.2 and 'cc'. if test "$GCC" != yes; then @@ -5668,7 +5811,7 @@ echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" fi if test "$cf_cv_enable_rpath" = yes ; then - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" + EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" fi test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel @@ -5680,13 +5823,40 @@ echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@' ;; - openbsd[2-9].*) #(vi + mingw*) #(vi + cf_cv_shlib_version=mingw + cf_cv_shlib_version_infix=mingw + shlibdir=$bindir + MAKE_DLLS= + if test "$DFT_LWR_MODEL" = "shared" ; then + LOCAL_LDFLAGS="-Wl,--enable-auto-import" + LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" + EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS" + fi + CC_SHARED_OPTS= + MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}' + RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" + cat >mk_shared_lib.sh <<-CF_EOF + #!/bin/sh + SHARED_LIB=\$1 + IMPORT_LIB=\`echo "\$1" | sed -e 's/[0-9]*\.dll$/.dll.a/'\` + shift + cat <<-EOF + Linking shared library + ** SHARED_LIB \$SHARED_LIB + ** IMPORT_LIB \$IMPORT_LIB +EOF + exec \$* -shared -Wl,--enable-auto-import,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB} +CF_EOF + chmod +x mk_shared_lib.sh + ;; + openbsd[2-9].*|mirbsd*) #(vi if test "$DFT_LWR_MODEL" = "shared" ; then LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" fi if test "$cf_cv_enable_rpath" = yes ; then - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" + EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" fi CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" @@ -5704,12 +5874,12 @@ echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6 MK_SHARED_LIB='${LD} -Bshareable -o $@' test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel ;; - freebsd*) #(vi + dragonfly*|freebsd*) #(vi CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)" - LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS" - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" + LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS" + EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" fi test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel @@ -5726,7 +5896,7 @@ echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)" LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" + EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" if test "$cf_cv_shlib_version" = auto; then if test -f /usr/libexec/ld.elf_so; then cf_cv_shlib_version=abi @@ -5744,7 +5914,7 @@ echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $@' else - MK_SHARED_LIB='${LD} -shared -Bshareable -o $@' + MK_SHARED_LIB='${CC} -Wl,-shared -Wl,-Bshareable -o $@' fi ;; osf*|mls+*) #(vi @@ -5810,7 +5980,7 @@ echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6 do CFLAGS="$cf_shared_opts $cf_save_CFLAGS" cat >conftest.$ac_ext <<_ACEOF -#line 5813 "configure" +#line 5983 "configure" #include "confdefs.h" #include int @@ -5822,16 +5992,16 @@ printf("Hello\n"); } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:5825: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:5995: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:5828: \$? = $ac_status" >&5 + echo "$as_me:5998: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:5831: \"$ac_try\"") >&5 + { (eval echo "$as_me:6001: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:5834: \$? = $ac_status" >&5 + echo "$as_me:6004: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -5868,21 +6038,64 @@ rm -f conftest.$ac_objext conftest.$ac_ext test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes ;; *) - { echo "$as_me:5871: WARNING: ignored --with-shlib-version" >&5 + { echo "$as_me:6041: WARNING: ignored --with-shlib-version" >&5 echo "$as_me: WARNING: ignored --with-shlib-version" >&2;} ;; esac ;; esac - if test -n "$cf_ld_rpath_opt" ; then - MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}" + if test -n "$cf_try_cflags" + then +cat > conftest.$ac_ext < +int main(int argc, char *argv[]) +{ + printf("hello\n"); + return (argv[argc-1] == 0) ; +} +EOF + cf_save_CFLAGS="$CFLAGS" + for cf_opt in $cf_try_cflags + do + CFLAGS="$cf_save_CFLAGS -$cf_opt" + echo "$as_me:6063: checking if CFLAGS option -$cf_opt works" >&5 +echo $ECHO_N "checking if CFLAGS option -$cf_opt works... $ECHO_C" >&6 + if { (eval echo "$as_me:6065: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:6068: \$? = $ac_status" >&5 + (exit $ac_status); }; then + echo "$as_me:6070: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + cf_save_CFLAGS="$CFLAGS" + else + echo "$as_me:6074: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + done + CFLAGS="$cf_save_CFLAGS" fi + # RPATH_LIST is a colon-separated list of directories + test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}" + test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}" + + test $cf_cv_rm_so_locs = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations" + + test -n "$verbose" && echo " CC_SHARED_OPTS: $CC_SHARED_OPTS" 1>&6 + +echo "${as_me:-configure}:6089: testing CC_SHARED_OPTS: $CC_SHARED_OPTS ..." 1>&5 + + test -n "$verbose" && echo " MK_SHARED_LIB: $MK_SHARED_LIB" 1>&6 + +echo "${as_me:-configure}:6093: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5 + if test "$CC_SHARED_OPTS" = "unknown"; then for model in $cf_list_models; do if test "$model" = "shared"; then - { { echo "$as_me:5885: error: Shared libraries are not supported in this version" >&5 + { { echo "$as_me:6098: error: Shared libraries are not supported in this version" >&5 echo "$as_me: error: Shared libraries are not supported in this version" >&2;} { (exit 1); exit 1; }; } fi @@ -5892,7 +6105,7 @@ fi ### If we're building with rpath, try to link non-standard libs that way too. if test "$DFT_LWR_MODEL" = "shared"; then -echo "$as_me:5895: checking if rpath-hack should be disabled" >&5 +echo "$as_me:6108: checking if rpath-hack should be disabled" >&5 echo $ECHO_N "checking if rpath-hack should be disabled... $ECHO_C" >&6 # Check whether --enable-rpath-hack or --disable-rpath-hack was given. @@ -5909,21 +6122,21 @@ else cf_disable_rpath_hack=no fi; -echo "$as_me:5912: result: $cf_disable_rpath_hack" >&5 +echo "$as_me:6125: result: $cf_disable_rpath_hack" >&5 echo "${ECHO_T}$cf_disable_rpath_hack" >&6 if test "$cf_disable_rpath_hack" = no ; then -echo "$as_me:5916: checking for updated LDFLAGS" >&5 +echo "$as_me:6129: checking for updated LDFLAGS" >&5 echo $ECHO_N "checking for updated LDFLAGS... $ECHO_C" >&6 if test -n "$LD_RPATH_OPT" ; then - echo "$as_me:5919: result: maybe" >&5 + echo "$as_me:6132: result: maybe" >&5 echo "${ECHO_T}maybe" >&6 for ac_prog in ldd do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:5926: checking for $ac_word" >&5 +echo "$as_me:6139: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_cf_ldd_prog+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -5938,7 +6151,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_cf_ldd_prog="$ac_prog" -echo "$as_me:5941: found $ac_dir/$ac_word" >&5 +echo "$as_me:6154: found $ac_dir/$ac_word" >&5 break done @@ -5946,10 +6159,10 @@ fi fi cf_ldd_prog=$ac_cv_prog_cf_ldd_prog if test -n "$cf_ldd_prog"; then - echo "$as_me:5949: result: $cf_ldd_prog" >&5 + echo "$as_me:6162: result: $cf_ldd_prog" >&5 echo "${ECHO_T}$cf_ldd_prog" >&6 else - echo "$as_me:5952: result: no" >&5 + echo "$as_me:6165: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -5963,7 +6176,7 @@ test -n "$cf_ldd_prog" || cf_ldd_prog="no" cf_rpath_oops= cat >conftest.$ac_ext <<_ACEOF -#line 5966 "configure" +#line 6179 "configure" #include "confdefs.h" #include int @@ -5975,19 +6188,19 @@ printf("Hello"); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:5978: \"$ac_link\"") >&5 +if { (eval echo "$as_me:6191: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:5981: \$? = $ac_status" >&5 + echo "$as_me:6194: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:5984: \"$ac_try\"") >&5 + { (eval echo "$as_me:6197: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:5987: \$? = $ac_status" >&5 + echo "$as_me:6200: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort -u` - cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[ ]/%/%' -e 's%/[^/][^/]*$%%' |sort -u` + cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq` + cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[ ]/%/%' -e 's%/[^/][^/]*$%%' |sort | uniq` else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 @@ -6012,7 +6225,7 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext then test -n "$verbose" && echo " ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src" 1>&6 -echo "${as_me:-configure}:6015: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src ..." 1>&5 +echo "${as_me:-configure}:6228: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src ..." 1>&5 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib" break @@ -6024,11 +6237,11 @@ echo "${as_me:-configure}:6015: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS test -n "$verbose" && echo " ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6 -echo "${as_me:-configure}:6027: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5 +echo "${as_me:-configure}:6240: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5 test -n "$verbose" && echo " ...checking LDFLAGS $LDFLAGS" 1>&6 -echo "${as_me:-configure}:6031: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5 +echo "${as_me:-configure}:6244: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5 cf_rpath_dst= for cf_rpath_src in $LDFLAGS @@ -6065,7 +6278,7 @@ do then test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6 -echo "${as_me:-configure}:6068: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5 +echo "${as_me:-configure}:6281: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS" fi @@ -6078,11 +6291,11 @@ LDFLAGS=$cf_rpath_dst test -n "$verbose" && echo " ...checked LDFLAGS $LDFLAGS" 1>&6 -echo "${as_me:-configure}:6081: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5 +echo "${as_me:-configure}:6294: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5 test -n "$verbose" && echo " ...checking LIBS $LIBS" 1>&6 -echo "${as_me:-configure}:6085: testing ...checking LIBS $LIBS ..." 1>&5 +echo "${as_me:-configure}:6298: testing ...checking LIBS $LIBS ..." 1>&5 cf_rpath_dst= for cf_rpath_src in $LIBS @@ -6119,7 +6332,7 @@ do then test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6 -echo "${as_me:-configure}:6122: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5 +echo "${as_me:-configure}:6335: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS" fi @@ -6132,12 +6345,15 @@ LIBS=$cf_rpath_dst test -n "$verbose" && echo " ...checked LIBS $LIBS" 1>&6 -echo "${as_me:-configure}:6135: testing ...checked LIBS $LIBS ..." 1>&5 +echo "${as_me:-configure}:6348: testing ...checked LIBS $LIBS ..." 1>&5 test -n "$verbose" && echo " ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6 -echo "${as_me:-configure}:6139: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5 +echo "${as_me:-configure}:6352: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5 +else + echo "$as_me:6355: result: no" >&5 +echo "${ECHO_T}no" >&6 fi fi @@ -6147,7 +6363,7 @@ fi ############################################################################### ### use option --disable-overwrite to leave out the link to -lcurses -echo "$as_me:6150: checking if you wish to install ncurses overwriting curses" >&5 +echo "$as_me:6366: checking if you wish to install ncurses overwriting curses" >&5 echo $ECHO_N "checking if you wish to install ncurses overwriting curses... $ECHO_C" >&6 # Check whether --enable-overwrite or --disable-overwrite was given. @@ -6157,10 +6373,10 @@ if test "${enable_overwrite+set}" = set; then else if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi fi; -echo "$as_me:6160: result: $with_overwrite" >&5 +echo "$as_me:6376: result: $with_overwrite" >&5 echo "${ECHO_T}$with_overwrite" >&6 -echo "$as_me:6163: checking if external terminfo-database is used" >&5 +echo "$as_me:6379: checking if external terminfo-database is used" >&5 echo $ECHO_N "checking if external terminfo-database is used... $ECHO_C" >&6 # Check whether --enable-database or --disable-database was given. @@ -6170,7 +6386,7 @@ if test "${enable_database+set}" = set; then else use_database=yes fi; -echo "$as_me:6173: result: $use_database" >&5 +echo "$as_me:6389: result: $use_database" >&5 echo "${ECHO_T}$use_database" >&6 case $host_os in #(vi @@ -6182,17 +6398,11 @@ os2*) #(vi ;; esac - case $cf_cv_system_name in - os2*) PATH_SEPARATOR=';' ;; - *) PATH_SEPARATOR=':' ;; - esac - +NCURSES_USE_DATABASE=0 if test "$use_database" != no ; then - cat >>confdefs.h <<\EOF -#define USE_DATABASE 1 -EOF + NCURSES_USE_DATABASE=1 - echo "$as_me:6195: checking which terminfo source-file will be installed" >&5 + echo "$as_me:6405: checking which terminfo source-file will be installed" >&5 echo $ECHO_N "checking which terminfo source-file will be installed... $ECHO_C" >&6 # Check whether --with-database or --without-database was given. @@ -6200,10 +6410,10 @@ if test "${with_database+set}" = set; then withval="$with_database" TERMINFO_SRC=$withval fi; - echo "$as_me:6203: result: $TERMINFO_SRC" >&5 + echo "$as_me:6413: result: $TERMINFO_SRC" >&5 echo "${ECHO_T}$TERMINFO_SRC" >&6 - echo "$as_me:6206: checking whether to use hashed database instead of directory/tree" >&5 + echo "$as_me:6416: checking whether to use hashed database instead of directory/tree" >&5 echo $ECHO_N "checking whether to use hashed database instead of directory/tree... $ECHO_C" >&6 # Check whether --with-hashed-db or --without-hashed-db was given. @@ -6213,13 +6423,13 @@ if test "${with_hashed_db+set}" = set; then else with_hashed_db=no fi; - echo "$as_me:6216: result: $with_hashed_db" >&5 + echo "$as_me:6426: result: $with_hashed_db" >&5 echo "${ECHO_T}$with_hashed_db" >&6 else with_hashed_db=no fi -echo "$as_me:6222: checking for list of fallback descriptions" >&5 +echo "$as_me:6432: checking for list of fallback descriptions" >&5 echo $ECHO_N "checking for list of fallback descriptions... $ECHO_C" >&6 # Check whether --with-fallbacks or --without-fallbacks was given. @@ -6229,11 +6439,11 @@ if test "${with_fallbacks+set}" = set; then else with_fallback= fi; -echo "$as_me:6232: result: $with_fallback" >&5 +echo "$as_me:6442: result: $with_fallback" >&5 echo "${ECHO_T}$with_fallback" >&6 FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'` -echo "$as_me:6236: checking if you want modern xterm or antique" >&5 +echo "$as_me:6446: checking if you want modern xterm or antique" >&5 echo $ECHO_N "checking if you want modern xterm or antique... $ECHO_C" >&6 # Check whether --with-xterm-new or --without-xterm-new was given. @@ -6247,17 +6457,42 @@ case $with_xterm_new in no) with_xterm_new=xterm-old;; *) with_xterm_new=xterm-new;; esac -echo "$as_me:6250: result: $with_xterm_new" >&5 +echo "$as_me:6460: result: $with_xterm_new" >&5 echo "${ECHO_T}$with_xterm_new" >&6 WHICH_XTERM=$with_xterm_new +echo "$as_me:6464: checking if xterm backspace sends BS or DEL" >&5 +echo $ECHO_N "checking if xterm backspace sends BS or DEL... $ECHO_C" >&6 + +# Check whether --with-xterm-kbs or --without-xterm-kbs was given. +if test "${with_xterm_kbs+set}" = set; then + withval="$with_xterm_kbs" + with_xterm_kbs=$withval +else + with_xterm_kbs=BS +fi; +case x$with_xterm_kbs in +xyes|xno|xBS|xbs|x8) + with_xterm_kbs=BS + ;; +xDEL|xdel|x127) + with_xterm_kbs=DEL + ;; +*) + with_xterm_kbs=$withval + ;; +esac +echo "$as_me:6485: result: $with_xterm_kbs" >&5 +echo "${ECHO_T}$with_xterm_kbs" >&6 +XTERM_KBS=$with_xterm_kbs + MAKE_TERMINFO= if test "$use_database" = no ; then TERMINFO="${datadir}/terminfo" MAKE_TERMINFO="#" else -echo "$as_me:6260: checking for list of terminfo directories" >&5 +echo "$as_me:6495: checking for list of terminfo directories" >&5 echo $ECHO_N "checking for list of terminfo directories... $ECHO_C" >&6 # Check whether --with-terminfo-dirs or --without-terminfo-dirs was given. @@ -6285,7 +6520,7 @@ case ".$cf_src_path" in #(vi ;; .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX ;; -.\${*prefix}*) #(vi +.\${*prefix}*|.\${*dir}*) #(vi eval cf_src_path="$cf_src_path" case ".$cf_src_path" in #(vi .NONE/*) @@ -6297,26 +6532,37 @@ case ".$cf_src_path" in #(vi cf_src_path=`echo $cf_src_path | sed -e s%NONE%$cf_path_syntax%` ;; *) - { { echo "$as_me:6300: error: expected a pathname, not \"$cf_src_path\"" >&5 + { { echo "$as_me:6535: error: expected a pathname, not \"$cf_src_path\"" >&5 echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;} { (exit 1); exit 1; }; } ;; esac - test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:" + test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR" cf_dst_path="${cf_dst_path}${cf_src_path}" done IFS="$ac_save_ifs" -eval 'TERMINFO_DIRS="$cf_dst_path"' +# This may use the prefix/exec_prefix symbols which will only yield "NONE" +# so we have to check/work around. We do prefer the result of "eval"... +eval cf_dst_eval="$cf_dst_path" +case "x$cf_dst_eval" in #(vi +xNONE*) #(vi + TERMINFO_DIRS=$cf_dst_path + ;; +*) + TERMINFO_DIRS="$cf_dst_eval" + ;; +esac -echo "$as_me:6313: result: $TERMINFO_DIRS" >&5 +echo "$as_me:6558: result: $TERMINFO_DIRS" >&5 echo "${ECHO_T}$TERMINFO_DIRS" >&6 -test -n "$TERMINFO_DIRS" && cat >>confdefs.h <>confdefs.h <&5 +echo "$as_me:6565: checking for default terminfo directory" >&5 echo $ECHO_N "checking for default terminfo directory... $ECHO_C" >&6 # Check whether --with-default-terminfo-dir or --without-default-terminfo-dir was given. @@ -6340,7 +6586,7 @@ case ".$withval" in #(vi ;; .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX ;; -.\${*prefix}*) #(vi +.\${*prefix}*|.\${*dir}*) #(vi eval withval="$withval" case ".$withval" in #(vi .NONE/*) @@ -6352,17 +6598,18 @@ case ".$withval" in #(vi withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ;; *) - { { echo "$as_me:6355: error: expected a pathname, not \"$withval\"" >&5 + { { echo "$as_me:6601: error: expected a pathname, not \"$withval\"" >&5 echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} { (exit 1); exit 1; }; } ;; esac fi -TERMINFO="$withval" +eval TERMINFO="$withval" -echo "$as_me:6364: result: $TERMINFO" >&5 +echo "$as_me:6610: result: $TERMINFO" >&5 echo "${ECHO_T}$TERMINFO" >&6 + cat >>confdefs.h <&5 +echo "$as_me:6621: checking if big-core option selected" >&5 echo $ECHO_N "checking if big-core option selected... $ECHO_C" >&6 # Check whether --enable-big-core or --disable-big-core was given. @@ -6383,7 +6630,7 @@ else with_big_core=no else cat >conftest.$ac_ext <<_ACEOF -#line 6386 "configure" +#line 6633 "configure" #include "confdefs.h" #include @@ -6397,15 +6644,15 @@ int main() { } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:6400: \"$ac_link\"") >&5 +if { (eval echo "$as_me:6647: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:6403: \$? = $ac_status" >&5 + echo "$as_me:6650: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:6405: \"$ac_try\"") >&5 + { (eval echo "$as_me:6652: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6408: \$? = $ac_status" >&5 + echo "$as_me:6655: \$? = $ac_status" >&5 (exit $ac_status); }; }; then with_big_core=yes else @@ -6417,16 +6664,17 @@ fi rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi; -echo "$as_me:6420: result: $with_big_core" >&5 +echo "$as_me:6667: result: $with_big_core" >&5 echo "${ECHO_T}$with_big_core" >&6 -test "$with_big_core" = "yes" && cat >>confdefs.h <<\EOF +test "x$with_big_core" = "xyes" && +cat >>confdefs.h <<\EOF #define HAVE_BIG_CORE 1 EOF ### ISO C only guarantees 512-char strings, we have tables which load faster ### when constructed using "big" strings. More than the C compiler, the awk ### program is a limit on most vendor UNIX systems. Check that we can build. -echo "$as_me:6429: checking if big-strings option selected" >&5 +echo "$as_me:6677: checking if big-strings option selected" >&5 echo $ECHO_N "checking if big-strings option selected... $ECHO_C" >&6 # Check whether --enable-big-strings or --disable-big-strings was given. @@ -6440,8 +6688,8 @@ else eval with_big_strings=no ;; *) #(vi - if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < 12000) { xx = xx "x"; }; printf("%s\n", xx); }' \ - | $AWK '{ printf "%d\n", length($0); }' | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ($0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then + if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < 12000) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \ + | $AWK '{ printf "%d\n", length($0); }' 2>/dev/null | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ($0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then eval with_big_strings=yes else eval with_big_strings=no @@ -6450,14 +6698,14 @@ else esac fi; -echo "$as_me:6453: result: $with_big_strings" >&5 +echo "$as_me:6701: result: $with_big_strings" >&5 echo "${ECHO_T}$with_big_strings" >&6 USE_BIG_STRINGS=0 -test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1 +test "x$with_big_strings" = "xyes" && USE_BIG_STRINGS=1 ### use option --enable-termcap to compile in the termcap fallback support -echo "$as_me:6460: checking if you want termcap-fallback support" >&5 +echo "$as_me:6708: checking if you want termcap-fallback support" >&5 echo $ECHO_N "checking if you want termcap-fallback support... $ECHO_C" >&6 # Check whether --enable-termcap or --disable-termcap was given. @@ -6467,34 +6715,33 @@ if test "${enable_termcap+set}" = set; then else with_termcap=no fi; -echo "$as_me:6470: result: $with_termcap" >&5 +echo "$as_me:6718: result: $with_termcap" >&5 echo "${ECHO_T}$with_termcap" >&6 -if test "$with_termcap" != "yes" ; then +NCURSES_USE_TERMCAP=0 +if test "x$with_termcap" != "xyes" ; then if test "$use_database" = no ; then if test -z "$with_fallback" ; then - { { echo "$as_me:6476: error: You have disabled the database w/o specifying fallbacks" >&5 + { { echo "$as_me:6725: error: You have disabled the database w/o specifying fallbacks" >&5 echo "$as_me: error: You have disabled the database w/o specifying fallbacks" >&2;} { (exit 1); exit 1; }; } fi fi - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define PURE_TERMINFO 1 EOF else -if test "$with_ticlib" != no ; then - { { echo "$as_me:6488: error: Options --with-ticlib and --enable-termcap cannot be combined" >&5 + if test "$with_ticlib" != no ; then + { { echo "$as_me:6738: error: Options --with-ticlib and --enable-termcap cannot be combined" >&5 echo "$as_me: error: Options --with-ticlib and --enable-termcap cannot be combined" >&2;} { (exit 1); exit 1; }; } -fi + fi -cat >>confdefs.h <<\EOF -#define USE_TERMCAP 1 -EOF - -echo "$as_me:6497: checking for list of termcap files" >&5 + NCURSES_USE_TERMCAP=1 + echo "$as_me:6744: checking for list of termcap files" >&5 echo $ECHO_N "checking for list of termcap files... $ECHO_C" >&6 # Check whether --with-termpath or --without-termpath was given. @@ -6522,7 +6769,7 @@ case ".$cf_src_path" in #(vi ;; .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX ;; -.\${*prefix}*) #(vi +.\${*prefix}*|.\${*dir}*) #(vi eval cf_src_path="$cf_src_path" case ".$cf_src_path" in #(vi .NONE/*) @@ -6534,27 +6781,38 @@ case ".$cf_src_path" in #(vi cf_src_path=`echo $cf_src_path | sed -e s%NONE%$cf_path_syntax%` ;; *) - { { echo "$as_me:6537: error: expected a pathname, not \"$cf_src_path\"" >&5 + { { echo "$as_me:6784: error: expected a pathname, not \"$cf_src_path\"" >&5 echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;} { (exit 1); exit 1; }; } ;; esac - test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:" + test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR" cf_dst_path="${cf_dst_path}${cf_src_path}" done IFS="$ac_save_ifs" -eval 'TERMPATH="$cf_dst_path"' +# This may use the prefix/exec_prefix symbols which will only yield "NONE" +# so we have to check/work around. We do prefer the result of "eval"... +eval cf_dst_eval="$cf_dst_path" +case "x$cf_dst_eval" in #(vi +xNONE*) #(vi + TERMPATH=$cf_dst_path + ;; +*) + TERMPATH="$cf_dst_eval" + ;; +esac -echo "$as_me:6550: result: $TERMPATH" >&5 + echo "$as_me:6807: result: $TERMPATH" >&5 echo "${ECHO_T}$TERMPATH" >&6 -test -n "$TERMPATH" && cat >>confdefs.h <>confdefs.h <&5 + ### use option --enable-getcap to use a hacked getcap for reading termcaps + echo "$as_me:6815: checking if fast termcap-loader is needed" >&5 echo $ECHO_N "checking if fast termcap-loader is needed... $ECHO_C" >&6 # Check whether --enable-getcap or --disable-getcap was given. @@ -6564,13 +6822,14 @@ if test "${enable_getcap+set}" = set; then else with_getcap=no fi; -echo "$as_me:6567: result: $with_getcap" >&5 + echo "$as_me:6825: result: $with_getcap" >&5 echo "${ECHO_T}$with_getcap" >&6 -test "$with_getcap" = "yes" && cat >>confdefs.h <<\EOF + test "x$with_getcap" = "xyes" && +cat >>confdefs.h <<\EOF #define USE_GETCAP 1 EOF -echo "$as_me:6573: checking if translated termcaps will be cached in ~/.terminfo" >&5 + echo "$as_me:6832: checking if translated termcaps will be cached in ~/.terminfo" >&5 echo $ECHO_N "checking if translated termcaps will be cached in ~/.terminfo... $ECHO_C" >&6 # Check whether --enable-getcap-cache or --disable-getcap-cache was given. @@ -6580,16 +6839,17 @@ if test "${enable_getcap_cache+set}" = set; then else with_getcap_cache=no fi; -echo "$as_me:6583: result: $with_getcap_cache" >&5 + echo "$as_me:6842: result: $with_getcap_cache" >&5 echo "${ECHO_T}$with_getcap_cache" >&6 -test "$with_getcap_cache" = "yes" && cat >>confdefs.h <<\EOF + test "x$with_getcap_cache" = "xyes" && +cat >>confdefs.h <<\EOF #define USE_GETCAP_CACHE 1 EOF fi ### Use option --disable-home-terminfo to completely remove ~/.terminfo -echo "$as_me:6592: checking if ~/.terminfo is wanted" >&5 +echo "$as_me:6852: checking if ~/.terminfo is wanted" >&5 echo $ECHO_N "checking if ~/.terminfo is wanted... $ECHO_C" >&6 # Check whether --enable-home-terminfo or --disable-home-terminfo was given. @@ -6599,13 +6859,14 @@ if test "${enable_home_terminfo+set}" = set; then else with_home_terminfo=yes fi; -echo "$as_me:6602: result: $with_home_terminfo" >&5 +echo "$as_me:6862: result: $with_home_terminfo" >&5 echo "${ECHO_T}$with_home_terminfo" >&6 -test "$with_home_terminfo" = "yes" && cat >>confdefs.h <<\EOF +test "x$with_home_terminfo" = "xyes" && +cat >>confdefs.h <<\EOF #define USE_HOME_TERMINFO 1 EOF -echo "$as_me:6608: checking if you want to use restricted environment when running as root" >&5 +echo "$as_me:6869: checking if you want to use restricted environment when running as root" >&5 echo $ECHO_N "checking if you want to use restricted environment when running as root... $ECHO_C" >&6 # Check whether --enable-root-environ or --disable-root-environ was given. @@ -6615,9 +6876,10 @@ if test "${enable_root_environ+set}" = set; then else with_root_environ=yes fi; -echo "$as_me:6618: result: $with_root_environ" >&5 +echo "$as_me:6879: result: $with_root_environ" >&5 echo "${ECHO_T}$with_root_environ" >&6 -test "$with_root_environ" = yes && cat >>confdefs.h <<\EOF +test "x$with_root_environ" = xyes && +cat >>confdefs.h <<\EOF #define USE_ROOT_ENVIRON 1 EOF @@ -6629,13 +6891,13 @@ for ac_func in \ unlink do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:6632: checking for $ac_func" >&5 +echo "$as_me:6894: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 6638 "configure" +#line 6900 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. */ @@ -6658,7 +6920,7 @@ main () #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else -f = $ac_func; +f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; #endif ; @@ -6666,16 +6928,16 @@ f = $ac_func; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:6669: \"$ac_link\"") >&5 +if { (eval echo "$as_me:6931: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:6672: \$? = $ac_status" >&5 + echo "$as_me:6934: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:6675: \"$ac_try\"") >&5 + { (eval echo "$as_me:6937: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6678: \$? = $ac_status" >&5 + echo "$as_me:6940: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else @@ -6685,7 +6947,7 @@ eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:6688: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "$as_me:6950: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <&5 +echo "$as_me:6967: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 6711 "configure" +#line 6973 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. */ @@ -6731,7 +6993,7 @@ main () #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else -f = $ac_func; +f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; #endif ; @@ -6739,16 +7001,16 @@ f = $ac_func; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:6742: \"$ac_link\"") >&5 +if { (eval echo "$as_me:7004: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:6745: \$? = $ac_status" >&5 + echo "$as_me:7007: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:6748: \"$ac_try\"") >&5 + { (eval echo "$as_me:7010: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6751: \$? = $ac_status" >&5 + echo "$as_me:7013: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else @@ -6758,7 +7020,7 @@ eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:6761: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "$as_me:7023: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <&5 + echo "$as_me:7034: checking if link/symlink functions work" >&5 echo $ECHO_N "checking if link/symlink functions work... $ECHO_C" >&6 if test "${cf_cv_link_funcs+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -6782,7 +7044,7 @@ else eval 'ac_cv_func_'$cf_func'=error' else cat >conftest.$ac_ext <<_ACEOF -#line 6785 "configure" +#line 7047 "configure" #include "confdefs.h" #include @@ -6812,15 +7074,15 @@ int main() _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:6815: \"$ac_link\"") >&5 +if { (eval echo "$as_me:7077: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:6818: \$? = $ac_status" >&5 + echo "$as_me:7080: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:6820: \"$ac_try\"") >&5 + { (eval echo "$as_me:7082: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6823: \$? = $ac_status" >&5 + echo "$as_me:7085: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_link_funcs="$cf_cv_link_funcs $cf_func" @@ -6838,13 +7100,15 @@ fi test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no fi -echo "$as_me:6841: result: $cf_cv_link_funcs" >&5 +echo "$as_me:7103: result: $cf_cv_link_funcs" >&5 echo "${ECHO_T}$cf_cv_link_funcs" >&6 - test "$ac_cv_func_link" = yes && cat >>confdefs.h <<\EOF + test "$ac_cv_func_link" = yes && +cat >>confdefs.h <<\EOF #define HAVE_LINK 1 EOF - test "$ac_cv_func_symlink" = yes && cat >>confdefs.h <<\EOF + test "$ac_cv_func_symlink" = yes && +cat >>confdefs.h <<\EOF #define HAVE_SYMLINK 1 EOF @@ -6855,8 +7119,8 @@ with_symlinks=no # soft links (symbolic links) are useful for some systems where hard links do # not work, or to make it simpler to copy terminfo trees around. -if test "$ac_cv_func_symlink" = yes ; then - echo "$as_me:6859: checking if tic should use symbolic links" >&5 +if test "x$ac_cv_func_symlink" = xyes ; then + echo "$as_me:7123: checking if tic should use symbolic links" >&5 echo $ECHO_N "checking if tic should use symbolic links... $ECHO_C" >&6 # Check whether --enable-symlinks or --disable-symlinks was given. @@ -6866,34 +7130,36 @@ if test "${enable_symlinks+set}" = set; then else with_symlinks=no fi; - echo "$as_me:6869: result: $with_symlinks" >&5 + echo "$as_me:7133: result: $with_symlinks" >&5 echo "${ECHO_T}$with_symlinks" >&6 fi # If we have hard links and did not choose to use soft links instead, there is # no reason to make this choice optional - use the hard links. if test "$with_symlinks" = no ; then - echo "$as_me:6876: checking if tic should use hard links" >&5 + echo "$as_me:7140: checking if tic should use hard links" >&5 echo $ECHO_N "checking if tic should use hard links... $ECHO_C" >&6 - if test "$ac_cv_func_link" = yes ; then + if test "x$ac_cv_func_link" = xyes ; then with_links=yes else with_links=no fi - echo "$as_me:6883: result: $with_links" >&5 + echo "$as_me:7147: result: $with_links" >&5 echo "${ECHO_T}$with_links" >&6 fi -test "$with_links" = yes && cat >>confdefs.h <<\EOF +test "x$with_links" = xyes && +cat >>confdefs.h <<\EOF #define USE_LINKS 1 EOF -test "$with_symlinks" = yes && cat >>confdefs.h <<\EOF +test "x$with_symlinks" = xyes && +cat >>confdefs.h <<\EOF #define USE_SYMLINKS 1 EOF ### use option --enable-broken-linker to force on use of broken-linker support -echo "$as_me:6896: checking if you want broken-linker support code" >&5 +echo "$as_me:7162: checking if you want broken-linker support code" >&5 echo $ECHO_N "checking if you want broken-linker support code... $ECHO_C" >&6 # Check whether --enable-broken_linker or --disable-broken_linker was given. @@ -6903,12 +7169,13 @@ if test "${enable_broken_linker+set}" = set; then else with_broken_linker=${BROKEN_LINKER:-no} fi; -echo "$as_me:6906: result: $with_broken_linker" >&5 +echo "$as_me:7172: result: $with_broken_linker" >&5 echo "${ECHO_T}$with_broken_linker" >&6 BROKEN_LINKER=0 -if test "$with_broken_linker" = yes ; then - cat >>confdefs.h <<\EOF +if test "x$with_broken_linker" = xyes ; then + +cat >>confdefs.h <<\EOF #define BROKEN_LINKER 1 EOF @@ -6916,21 +7183,22 @@ EOF elif test "$DFT_LWR_MODEL" = shared ; then case $cf_cv_system_name in #(vi cygwin*) - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define BROKEN_LINKER 1 EOF BROKEN_LINKER=1 test -n "$verbose" && echo " cygwin linker is broken anyway" 1>&6 -echo "${as_me:-configure}:6926: testing cygwin linker is broken anyway ..." 1>&5 +echo "${as_me:-configure}:7194: testing cygwin linker is broken anyway ..." 1>&5 ;; esac fi ### use option --enable-bsdpad to have tputs process BSD-style prefix padding -echo "$as_me:6933: checking if tputs should process BSD-style prefix padding" >&5 +echo "$as_me:7201: checking if tputs should process BSD-style prefix padding" >&5 echo $ECHO_N "checking if tputs should process BSD-style prefix padding... $ECHO_C" >&6 # Check whether --enable-bsdpad or --disable-bsdpad was given. @@ -6940,9 +7208,10 @@ if test "${enable_bsdpad+set}" = set; then else with_bsdpad=no fi; -echo "$as_me:6943: result: $with_bsdpad" >&5 +echo "$as_me:7211: result: $with_bsdpad" >&5 echo "${ECHO_T}$with_bsdpad" >&6 -test "$with_bsdpad" = yes && cat >>confdefs.h <<\EOF +test "x$with_bsdpad" = xyes && +cat >>confdefs.h <<\EOF #define BSD_TPUTS 1 EOF @@ -6962,10 +7231,10 @@ cf_POSIX_C_SOURCE=199506L cf_xopen_source= case $host_os in #(vi -aix[456]*) #(vi +aix[4-7]*) #(vi cf_xopen_source="-D_ALL_SOURCE" ;; -cygwin) #(vi +cygwin|msys) #(vi cf_XOPEN_SOURCE=600 ;; darwin[0-8].*) #(vi @@ -6973,6 +7242,7 @@ darwin[0-8].*) #(vi ;; darwin*) #(vi cf_xopen_source="-D_DARWIN_C_SOURCE" + cf_XOPEN_SOURCE= ;; freebsd*|dragonfly*) #(vi # 5.x headers associate @@ -6990,17 +7260,18 @@ hpux*) #(vi ;; irix[56].*) #(vi cf_xopen_source="-D_SGI_SOURCE" + cf_XOPEN_SOURCE= ;; linux*|gnu*|mint*|k*bsd*-gnu) #(vi -echo "$as_me:6996: checking if we must define _GNU_SOURCE" >&5 +echo "$as_me:7267: checking if we must define _GNU_SOURCE" >&5 echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6 if test "${cf_cv_gnu_source+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 7003 "configure" +#line 7274 "configure" #include "confdefs.h" #include int @@ -7015,16 +7286,16 @@ make an error } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7018: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:7289: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7021: \$? = $ac_status" >&5 + echo "$as_me:7292: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:7024: \"$ac_try\"") >&5 + { (eval echo "$as_me:7295: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7027: \$? = $ac_status" >&5 + echo "$as_me:7298: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_gnu_source=no else @@ -7033,7 +7304,7 @@ cat conftest.$ac_ext >&5 cf_save="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" cat >conftest.$ac_ext <<_ACEOF -#line 7036 "configure" +#line 7307 "configure" #include "confdefs.h" #include int @@ -7048,16 +7319,16 @@ make an error } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7051: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:7322: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7054: \$? = $ac_status" >&5 + echo "$as_me:7325: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:7057: \"$ac_try\"") >&5 + { (eval echo "$as_me:7328: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7060: \$? = $ac_status" >&5 + echo "$as_me:7331: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_gnu_source=no else @@ -7072,16 +7343,260 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:7075: result: $cf_cv_gnu_source" >&5 +echo "$as_me:7346: result: $cf_cv_gnu_source" >&5 echo "${ECHO_T}$cf_cv_gnu_source" >&6 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" ;; mirbsd*) #(vi - # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks + # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks and other headers which use u_int / u_short types + cf_XOPEN_SOURCE= + +cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE + +cf_save_CFLAGS="$CFLAGS" +cf_save_CPPFLAGS="$CPPFLAGS" + +cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \ + sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ + -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` + +cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \ + sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ + -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` + +echo "$as_me:7368: checking if we should define _POSIX_C_SOURCE" >&5 +echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6 +if test "${cf_cv_posix_c_source+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +echo "${as_me:-configure}:7374: testing if the symbol is already defined go no further ..." 1>&5 + + cat >conftest.$ac_ext <<_ACEOF +#line 7377 "configure" +#include "confdefs.h" +#include +int +main () +{ + +#ifndef _POSIX_C_SOURCE +make an error +#endif + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:7392: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:7395: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:7398: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:7401: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_posix_c_source=no +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +cf_want_posix_source=no + case .$cf_POSIX_C_SOURCE in #(vi + .[12]??*) #(vi + cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" + ;; + .2) #(vi + cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" + cf_want_posix_source=yes + ;; + .*) + cf_want_posix_source=yes + ;; + esac + if test "$cf_want_posix_source" = yes ; then + cat >conftest.$ac_ext <<_ACEOF +#line 7422 "configure" +#include "confdefs.h" +#include +int +main () +{ + +#ifdef _POSIX_SOURCE +make an error +#endif + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:7437: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:7440: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:7443: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:7446: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE" +fi +rm -f conftest.$ac_objext conftest.$ac_ext + fi + +echo "${as_me:-configure}:7457: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5 + + CFLAGS="$cf_trim_CFLAGS" + CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source" + +echo "${as_me:-configure}:7462: testing if the second compile does not leave our definition intact error ..." 1>&5 + + cat >conftest.$ac_ext <<_ACEOF +#line 7465 "configure" +#include "confdefs.h" +#include +int +main () +{ + +#ifndef _POSIX_C_SOURCE +make an error +#endif + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:7480: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:7483: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:7486: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:7489: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +cf_cv_posix_c_source=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext + CFLAGS="$cf_save_CFLAGS" + CPPFLAGS="$cf_save_CPPFLAGS" + +fi +rm -f conftest.$ac_objext conftest.$ac_ext + +fi +echo "$as_me:7505: result: $cf_cv_posix_c_source" >&5 +echo "${ECHO_T}$cf_cv_posix_c_source" >&6 + +if test "$cf_cv_posix_c_source" != no ; then + CFLAGS="$cf_trim_CFLAGS" + CPPFLAGS="$cf_trim_CPPFLAGS" + +cf_fix_cppflags=no +cf_new_cflags= +cf_new_cppflags= +cf_new_extra_cppflags= + +for cf_add_cflags in $cf_cv_posix_c_source +do +case $cf_fix_cppflags in +no) + case $cf_add_cflags in #(vi + -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi + case $cf_add_cflags in + -D*) + cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'` + + test "${cf_add_cflags}" != "${cf_tst_cflags}" \ + && test -z "${cf_tst_cflags}" \ + && cf_fix_cppflags=yes + + if test $cf_fix_cppflags = yes ; then + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + continue + elif test "${cf_tst_cflags}" = "\"'" ; then + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + continue + fi + ;; + esac + case "$CPPFLAGS" in + *$cf_add_cflags) #(vi + ;; + *) #(vi + case $cf_add_cflags in #(vi + -D*) + cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` + +CPPFLAGS=`echo "$CPPFLAGS" | \ + sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ + -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` + + ;; + esac + cf_new_cppflags="$cf_new_cppflags $cf_add_cflags" + ;; + esac + ;; + *) + cf_new_cflags="$cf_new_cflags $cf_add_cflags" + ;; + esac + ;; +yes) + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + + cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` + + test "${cf_add_cflags}" != "${cf_tst_cflags}" \ + && test -z "${cf_tst_cflags}" \ + && cf_fix_cppflags=no + ;; +esac +done + +if test -n "$cf_new_cflags" ; then + + CFLAGS="$CFLAGS $cf_new_cflags" +fi + +if test -n "$cf_new_cppflags" ; then + + CPPFLAGS="$CPPFLAGS $cf_new_cppflags" +fi + +if test -n "$cf_new_extra_cppflags" ; then + + EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +fi + +fi + ;; netbsd*) #(vi - # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw + cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw + ;; +openbsd[4-9]*) #(vi + # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw + cf_xopen_source="-D_BSD_SOURCE" + cf_XOPEN_SOURCE=600 ;; openbsd*) #(vi # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw @@ -7095,23 +7610,26 @@ nto-qnx*) #(vi sco*) #(vi # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer ;; -solaris2.1[0-9]) #(vi - cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" - ;; -solaris2.[1-9]) #(vi +solaris2.*) #(vi cf_xopen_source="-D__EXTENSIONS__" + cf_cv_xopen_source=broken ;; *) - echo "$as_me:7105: checking if we should define _XOPEN_SOURCE" >&5 + +echo "$as_me:7619: checking if we should define _XOPEN_SOURCE" >&5 echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6 if test "${cf_cv_xopen_source+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 7112 "configure" +#line 7626 "configure" #include "confdefs.h" + +#include +#include #include + int main () { @@ -7124,16 +7642,16 @@ make an error } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7127: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:7645: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7130: \$? = $ac_status" >&5 + echo "$as_me:7648: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:7133: \"$ac_try\"") >&5 + { (eval echo "$as_me:7651: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7136: \$? = $ac_status" >&5 + echo "$as_me:7654: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_xopen_source=no else @@ -7142,9 +7660,13 @@ cat conftest.$ac_ext >&5 cf_save="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" cat >conftest.$ac_ext <<_ACEOF -#line 7145 "configure" +#line 7663 "configure" #include "confdefs.h" + +#include +#include #include + int main () { @@ -7157,16 +7679,16 @@ make an error } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7160: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:7682: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7163: \$? = $ac_status" >&5 + echo "$as_me:7685: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:7166: \"$ac_try\"") >&5 + { (eval echo "$as_me:7688: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7169: \$? = $ac_status" >&5 + echo "$as_me:7691: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_xopen_source=no else @@ -7181,9 +7703,10 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:7184: result: $cf_cv_xopen_source" >&5 +echo "$as_me:7706: result: $cf_cv_xopen_source" >&5 echo "${ECHO_T}$cf_cv_xopen_source" >&6 - if test "$cf_cv_xopen_source" != no ; then + +if test "$cf_cv_xopen_source" != no ; then CFLAGS=`echo "$CFLAGS" | \ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ @@ -7193,7 +7716,7 @@ CPPFLAGS=`echo "$CPPFLAGS" | \ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` - cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" + cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" cf_fix_cppflags=no cf_new_cflags= @@ -7273,7 +7796,7 @@ if test -n "$cf_new_extra_cppflags" ; then EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" fi - fi +fi cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE @@ -7288,16 +7811,16 @@ cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` -echo "$as_me:7291: checking if we should define _POSIX_C_SOURCE" >&5 +echo "$as_me:7814: checking if we should define _POSIX_C_SOURCE" >&5 echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6 if test "${cf_cv_posix_c_source+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else -echo "${as_me:-configure}:7297: testing if the symbol is already defined go no further ..." 1>&5 +echo "${as_me:-configure}:7820: testing if the symbol is already defined go no further ..." 1>&5 cat >conftest.$ac_ext <<_ACEOF -#line 7300 "configure" +#line 7823 "configure" #include "confdefs.h" #include int @@ -7312,16 +7835,16 @@ make an error } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7315: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:7838: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7318: \$? = $ac_status" >&5 + echo "$as_me:7841: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:7321: \"$ac_try\"") >&5 + { (eval echo "$as_me:7844: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7324: \$? = $ac_status" >&5 + echo "$as_me:7847: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_posix_c_source=no else @@ -7342,7 +7865,7 @@ cf_want_posix_source=no esac if test "$cf_want_posix_source" = yes ; then cat >conftest.$ac_ext <<_ACEOF -#line 7345 "configure" +#line 7868 "configure" #include "confdefs.h" #include int @@ -7357,16 +7880,16 @@ make an error } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7360: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:7883: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7363: \$? = $ac_status" >&5 + echo "$as_me:7886: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:7366: \"$ac_try\"") >&5 + { (eval echo "$as_me:7889: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7369: \$? = $ac_status" >&5 + echo "$as_me:7892: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -7377,15 +7900,15 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "${as_me:-configure}:7380: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5 +echo "${as_me:-configure}:7903: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5 CFLAGS="$cf_trim_CFLAGS" CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source" -echo "${as_me:-configure}:7385: testing if the second compile does not leave our definition intact error ..." 1>&5 +echo "${as_me:-configure}:7908: testing if the second compile does not leave our definition intact error ..." 1>&5 cat >conftest.$ac_ext <<_ACEOF -#line 7388 "configure" +#line 7911 "configure" #include "confdefs.h" #include int @@ -7400,16 +7923,16 @@ make an error } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7403: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:7926: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7406: \$? = $ac_status" >&5 + echo "$as_me:7929: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:7409: \"$ac_try\"") >&5 + { (eval echo "$as_me:7932: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7412: \$? = $ac_status" >&5 + echo "$as_me:7935: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -7425,7 +7948,7 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:7428: result: $cf_cv_posix_c_source" >&5 +echo "$as_me:7951: result: $cf_cv_posix_c_source" >&5 echo "${ECHO_T}$cf_cv_posix_c_source" >&6 if test "$cf_cv_posix_c_source" != no ; then @@ -7597,16 +8120,283 @@ fi fi +if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then + echo "$as_me:8124: checking if _XOPEN_SOURCE really is set" >&5 +echo $ECHO_N "checking if _XOPEN_SOURCE really is set... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +#line 8127 "configure" +#include "confdefs.h" +#include +int +main () +{ + +#ifndef _XOPEN_SOURCE +make an error +#endif + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:8142: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:8145: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:8148: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:8151: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_XOPEN_SOURCE_set=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +cf_XOPEN_SOURCE_set=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext + echo "$as_me:8160: result: $cf_XOPEN_SOURCE_set" >&5 +echo "${ECHO_T}$cf_XOPEN_SOURCE_set" >&6 + if test $cf_XOPEN_SOURCE_set = yes + then + cat >conftest.$ac_ext <<_ACEOF +#line 8165 "configure" +#include "confdefs.h" +#include +int +main () +{ + +#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE +make an error +#endif + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:8180: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:8183: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:8186: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:8189: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_XOPEN_SOURCE_set_ok=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +cf_XOPEN_SOURCE_set_ok=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext + if test $cf_XOPEN_SOURCE_set_ok = no + then + { echo "$as_me:8200: WARNING: _XOPEN_SOURCE is lower than requested" >&5 +echo "$as_me: WARNING: _XOPEN_SOURCE is lower than requested" >&2;} + fi + else + +echo "$as_me:8205: checking if we should define _XOPEN_SOURCE" >&5 +echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6 +if test "${cf_cv_xopen_source+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +#line 8212 "configure" +#include "confdefs.h" + +#include +#include +#include + +int +main () +{ + +#ifndef _XOPEN_SOURCE +make an error +#endif + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:8231: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:8234: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:8237: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:8240: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_xopen_source=no +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +cf_save="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" + cat >conftest.$ac_ext <<_ACEOF +#line 8249 "configure" +#include "confdefs.h" + +#include +#include +#include + +int +main () +{ + +#ifdef _XOPEN_SOURCE +make an error +#endif + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:8268: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:8271: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:8274: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:8277: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_xopen_source=no +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +cf_cv_xopen_source=$cf_XOPEN_SOURCE +fi +rm -f conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="$cf_save" + +fi +rm -f conftest.$ac_objext conftest.$ac_ext + +fi +echo "$as_me:8292: result: $cf_cv_xopen_source" >&5 +echo "${ECHO_T}$cf_cv_xopen_source" >&6 + +if test "$cf_cv_xopen_source" != no ; then + +CFLAGS=`echo "$CFLAGS" | \ + sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ + -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` + +CPPFLAGS=`echo "$CPPFLAGS" | \ + sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ + -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` + + cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" + +cf_fix_cppflags=no +cf_new_cflags= +cf_new_cppflags= +cf_new_extra_cppflags= + +for cf_add_cflags in $cf_temp_xopen_source +do +case $cf_fix_cppflags in +no) + case $cf_add_cflags in #(vi + -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi + case $cf_add_cflags in + -D*) + cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'` + + test "${cf_add_cflags}" != "${cf_tst_cflags}" \ + && test -z "${cf_tst_cflags}" \ + && cf_fix_cppflags=yes + + if test $cf_fix_cppflags = yes ; then + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + continue + elif test "${cf_tst_cflags}" = "\"'" ; then + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + continue + fi + ;; + esac + case "$CPPFLAGS" in + *$cf_add_cflags) #(vi + ;; + *) #(vi + case $cf_add_cflags in #(vi + -D*) + cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` + +CPPFLAGS=`echo "$CPPFLAGS" | \ + sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ + -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` + + ;; + esac + cf_new_cppflags="$cf_new_cppflags $cf_add_cflags" + ;; + esac + ;; + *) + cf_new_cflags="$cf_new_cflags $cf_add_cflags" + ;; + esac + ;; +yes) + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + + cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` + + test "${cf_add_cflags}" != "${cf_tst_cflags}" \ + && test -z "${cf_tst_cflags}" \ + && cf_fix_cppflags=no + ;; +esac +done + +if test -n "$cf_new_cflags" ; then + + CFLAGS="$CFLAGS $cf_new_cflags" +fi + +if test -n "$cf_new_cppflags" ; then + + CPPFLAGS="$CPPFLAGS $cf_new_cppflags" +fi + +if test -n "$cf_new_extra_cppflags" ; then + + EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +fi + +fi + + fi +fi + # Work around breakage on OS X -echo "$as_me:7602: checking if SIGWINCH is defined" >&5 +echo "$as_me:8392: checking if SIGWINCH is defined" >&5 echo $ECHO_N "checking if SIGWINCH is defined... $ECHO_C" >&6 if test "${cf_cv_define_sigwinch+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 7609 "configure" +#line 8399 "configure" #include "confdefs.h" #include @@ -7621,23 +8411,23 @@ int x = SIGWINCH } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7624: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:8414: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7627: \$? = $ac_status" >&5 + echo "$as_me:8417: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:7630: \"$ac_try\"") >&5 + { (eval echo "$as_me:8420: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7633: \$? = $ac_status" >&5 + echo "$as_me:8423: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_define_sigwinch=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 7640 "configure" +#line 8430 "configure" #include "confdefs.h" #undef _XOPEN_SOURCE @@ -7655,16 +8445,16 @@ int x = SIGWINCH } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7658: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:8448: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7661: \$? = $ac_status" >&5 + echo "$as_me:8451: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:7664: \"$ac_try\"") >&5 + { (eval echo "$as_me:8454: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7667: \$? = $ac_status" >&5 + echo "$as_me:8457: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_define_sigwinch=maybe else @@ -7678,11 +8468,11 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:7681: result: $cf_cv_define_sigwinch" >&5 +echo "$as_me:8471: result: $cf_cv_define_sigwinch" >&5 echo "${ECHO_T}$cf_cv_define_sigwinch" >&6 if test "$cf_cv_define_sigwinch" = maybe ; then -echo "$as_me:7685: checking for actual SIGWINCH definition" >&5 +echo "$as_me:8475: checking for actual SIGWINCH definition" >&5 echo $ECHO_N "checking for actual SIGWINCH definition... $ECHO_C" >&6 if test "${cf_cv_fixup_sigwinch+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -7693,7 +8483,7 @@ cf_sigwinch=32 while test $cf_sigwinch != 1 do cat >conftest.$ac_ext <<_ACEOF -#line 7696 "configure" +#line 8486 "configure" #include "confdefs.h" #undef _XOPEN_SOURCE @@ -7715,16 +8505,16 @@ int x = SIGWINCH } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7718: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:8508: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7721: \$? = $ac_status" >&5 + echo "$as_me:8511: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:7724: \"$ac_try\"") >&5 + { (eval echo "$as_me:8514: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7727: \$? = $ac_status" >&5 + echo "$as_me:8517: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_fixup_sigwinch=$cf_sigwinch break @@ -7738,7 +8528,7 @@ cf_sigwinch=`expr $cf_sigwinch - 1` done fi -echo "$as_me:7741: result: $cf_cv_fixup_sigwinch" >&5 +echo "$as_me:8531: result: $cf_cv_fixup_sigwinch" >&5 echo "${ECHO_T}$cf_cv_fixup_sigwinch" >&6 if test "$cf_cv_fixup_sigwinch" != unknown ; then @@ -7748,13 +8538,13 @@ fi # Checks for CODESET support. - echo "$as_me:7751: checking for nl_langinfo and CODESET" >&5 + echo "$as_me:8541: checking for nl_langinfo and CODESET" >&5 echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6 if test "${am_cv_langinfo_codeset+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 7757 "configure" +#line 8547 "configure" #include "confdefs.h" #include int @@ -7766,16 +8556,16 @@ char* cs = nl_langinfo(CODESET); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:7769: \"$ac_link\"") >&5 +if { (eval echo "$as_me:8559: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:7772: \$? = $ac_status" >&5 + echo "$as_me:8562: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:7775: \"$ac_try\"") >&5 + { (eval echo "$as_me:8565: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7778: \$? = $ac_status" >&5 + echo "$as_me:8568: \$? = $ac_status" >&5 (exit $ac_status); }; }; then am_cv_langinfo_codeset=yes else @@ -7786,7 +8576,7 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:7789: result: $am_cv_langinfo_codeset" >&5 +echo "$as_me:8579: result: $am_cv_langinfo_codeset" >&5 echo "${ECHO_T}$am_cv_langinfo_codeset" >&6 if test $am_cv_langinfo_codeset = yes; then @@ -7800,7 +8590,7 @@ EOF NCURSES_OK_WCHAR_T= NCURSES_OK_WINT_T= -echo "$as_me:7803: checking if you want wide-character code" >&5 +echo "$as_me:8593: checking if you want wide-character code" >&5 echo $ECHO_N "checking if you want wide-character code... $ECHO_C" >&6 # Check whether --enable-widec or --disable-widec was given. @@ -7810,23 +8600,72 @@ if test "${enable_widec+set}" = set; then else with_widec=no fi; -echo "$as_me:7813: result: $with_widec" >&5 +echo "$as_me:8603: result: $with_widec" >&5 echo "${ECHO_T}$with_widec" >&6 -if test "$with_widec" = yes ; then +if test "x$with_widec" = xyes ; then LIB_SUFFIX="w${LIB_SUFFIX}" - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define USE_WIDEC_SUPPORT 1 EOF - case "$CFLAGS $CPPFLAGS" in #(vi - *-D_XOPEN_SOURCE=500) #(vi - ;; - *) +cat >>confdefs.h <<\EOF +#define NCURSES_WIDECHAR 1 +EOF -echo "$as_me:7826: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5 +echo "$as_me:8616: checking if wchar.h can be used as is" >&5 +echo $ECHO_N "checking if wchar.h can be used as is... $ECHO_C" >&6 +if test "${cf_cv_wchar_h_okay+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +cat >conftest.$ac_ext <<_ACEOF +#line 8623 "configure" +#include "confdefs.h" + +#include +#include + +int +main () +{ + + wint_t foo = 0; + int bar = iswpunct(foo) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:8640: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:8643: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:8646: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:8649: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_wchar_h_okay=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +cf_cv_wchar_h_okay=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:8659: result: $cf_cv_wchar_h_okay" >&5 +echo "${ECHO_T}$cf_cv_wchar_h_okay" >&6 + +if test $cf_cv_wchar_h_okay = no +then + +echo "$as_me:8665: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5 echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line 7829 "configure" +#line 8668 "configure" #include "confdefs.h" #include @@ -7842,16 +8681,16 @@ make an error } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7845: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:8684: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7848: \$? = $ac_status" >&5 + echo "$as_me:8687: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:7851: \"$ac_try\"") >&5 + { (eval echo "$as_me:8690: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7854: \$? = $ac_status" >&5 + echo "$as_me:8693: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_result=no else @@ -7860,16 +8699,16 @@ cat conftest.$ac_ext >&5 cf_result=yes fi rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:7863: result: $cf_result" >&5 +echo "$as_me:8702: result: $cf_result" >&5 echo "${ECHO_T}$cf_result" >&6 if test "$cf_result" = yes ; then CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED" elif test "x" != "x" ; then - echo "$as_me:7869: checking checking for compatible value versus " >&5 + echo "$as_me:8708: checking checking for compatible value versus " >&5 echo $ECHO_N "checking checking for compatible value versus ... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line 7872 "configure" +#line 8711 "configure" #include "confdefs.h" #include @@ -7885,16 +8724,16 @@ make an error } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7888: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:8727: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7891: \$? = $ac_status" >&5 + echo "$as_me:8730: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:7894: \"$ac_try\"") >&5 + { (eval echo "$as_me:8733: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7897: \$? = $ac_status" >&5 + echo "$as_me:8736: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_result=yes else @@ -7903,7 +8742,7 @@ cat conftest.$ac_ext >&5 cf_result=no fi rm -f conftest.$ac_objext conftest.$ac_ext - echo "$as_me:7906: result: $cf_result" >&5 + echo "$as_me:8745: result: $cf_result" >&5 echo "${ECHO_T}$cf_result" >&6 if test "$cf_result" = no ; then # perhaps we can override it - try... @@ -7911,8 +8750,7 @@ echo "${ECHO_T}$cf_result" >&6 fi fi - ;; - esac +fi # with_overwrite=no NCURSES_CH_T=cchar_t @@ -7920,13 +8758,13 @@ fi for ac_func in putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:7923: checking for $ac_func" >&5 +echo "$as_me:8761: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 7929 "configure" +#line 8767 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. */ @@ -7949,7 +8787,7 @@ main () #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else -f = $ac_func; +f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; #endif ; @@ -7957,16 +8795,16 @@ f = $ac_func; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:7960: \"$ac_link\"") >&5 +if { (eval echo "$as_me:8798: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:7963: \$? = $ac_status" >&5 + echo "$as_me:8801: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:7966: \"$ac_try\"") >&5 + { (eval echo "$as_me:8804: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7969: \$? = $ac_status" >&5 + echo "$as_me:8807: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else @@ -7976,7 +8814,7 @@ eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:7979: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "$as_me:8817: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <&5 +echo "$as_me:8829: checking for multibyte character support" >&5 echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6 if test "${cf_cv_utf8_lib+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -7996,7 +8834,7 @@ else cf_save_LIBS="$LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 7999 "configure" +#line 8837 "configure" #include "confdefs.h" #include @@ -8009,16 +8847,16 @@ putwc(0,0); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:8012: \"$ac_link\"") >&5 +if { (eval echo "$as_me:8850: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:8015: \$? = $ac_status" >&5 + echo "$as_me:8853: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:8018: \"$ac_try\"") >&5 + { (eval echo "$as_me:8856: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8021: \$? = $ac_status" >&5 + echo "$as_me:8859: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_utf8_lib=yes else @@ -8030,12 +8868,12 @@ cat conftest.$ac_ext >&5 cf_cv_header_path_utf8= cf_cv_library_path_utf8= -echo "${as_me:-configure}:8033: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5 +echo "${as_me:-configure}:8871: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5 cf_save_LIBS="$LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 8038 "configure" +#line 8876 "configure" #include "confdefs.h" #include @@ -8048,16 +8886,16 @@ putwc(0,0); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:8051: \"$ac_link\"") >&5 +if { (eval echo "$as_me:8889: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:8054: \$? = $ac_status" >&5 + echo "$as_me:8892: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:8057: \"$ac_try\"") >&5 + { (eval echo "$as_me:8895: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8060: \$? = $ac_status" >&5 + echo "$as_me:8898: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_find_linkage_utf8=yes @@ -8071,7 +8909,7 @@ cat conftest.$ac_ext >&5 LIBS="-lutf8 $cf_save_LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 8074 "configure" +#line 8912 "configure" #include "confdefs.h" #include @@ -8084,16 +8922,16 @@ putwc(0,0); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:8087: \"$ac_link\"") >&5 +if { (eval echo "$as_me:8925: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:8090: \$? = $ac_status" >&5 + echo "$as_me:8928: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:8093: \"$ac_try\"") >&5 + { (eval echo "$as_me:8931: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8096: \$? = $ac_status" >&5 + echo "$as_me:8934: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_find_linkage_utf8=yes @@ -8110,9 +8948,9 @@ cat conftest.$ac_ext >&5 test -n "$verbose" && echo " find linkage for utf8 library" 1>&6 -echo "${as_me:-configure}:8113: testing find linkage for utf8 library ..." 1>&5 +echo "${as_me:-configure}:8951: testing find linkage for utf8 library ..." 1>&5 -echo "${as_me:-configure}:8115: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5 +echo "${as_me:-configure}:8953: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5 cf_save_CPPFLAGS="$CPPFLAGS" cf_test_CPPFLAGS="$CPPFLAGS" @@ -8128,7 +8966,7 @@ if test -n "${CFLAGS}${CPPFLAGS}" ; then -I*) cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'` -test "$cf_header_path" != "NONE" && \ +test "x$cf_header_path" != "xNONE" && \ test -d "$cf_header_path" && \ { test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path" @@ -8149,9 +8987,9 @@ fi cf_search= -test "/usr" != "$prefix" && \ +test "x/usr" != "x$prefix" && \ test -d "/usr" && \ -(test $prefix = NONE || test "/usr" != "$prefix") && { +(test -z "$prefix" || test x$prefix = xNONE || test "x/usr" != "x$prefix") && { test -n "$verbose" && echo " ... testing for include-directories under /usr" test -d /usr/include && cf_search="$cf_search /usr/include" test -d /usr/include/utf8 && cf_search="$cf_search /usr/include/utf8" @@ -8160,7 +8998,7 @@ test -d "/usr" && \ test -d /usr/utf8/include/utf8 && cf_search="$cf_search /usr/utf8/include/utf8" } -test "$prefix" != "NONE" && \ +test "x$prefix" != "xNONE" && \ test -d "$prefix" && \ { test -n "$verbose" && echo " ... testing for include-directories under $prefix" @@ -8171,9 +9009,9 @@ test -d "$prefix" && \ test -d $prefix/utf8/include/utf8 && cf_search="$cf_search $prefix/utf8/include/utf8" } -test "/usr/local" != "$prefix" && \ +test "x/usr/local" != "x$prefix" && \ test -d "/usr/local" && \ -(test $prefix = NONE || test "/usr/local" != "$prefix") && { +(test -z "$prefix" || test x$prefix = xNONE || test "x/usr/local" != "x$prefix") && { test -n "$verbose" && echo " ... testing for include-directories under /usr/local" test -d /usr/local/include && cf_search="$cf_search /usr/local/include" test -d /usr/local/include/utf8 && cf_search="$cf_search /usr/local/include/utf8" @@ -8182,9 +9020,9 @@ test -d "/usr/local" && \ test -d /usr/local/utf8/include/utf8 && cf_search="$cf_search /usr/local/utf8/include/utf8" } -test "/opt" != "$prefix" && \ +test "x/opt" != "x$prefix" && \ test -d "/opt" && \ -(test $prefix = NONE || test "/opt" != "$prefix") && { +(test -z "$prefix" || test x$prefix = xNONE || test "x/opt" != "x$prefix") && { test -n "$verbose" && echo " ... testing for include-directories under /opt" test -d /opt/include && cf_search="$cf_search /opt/include" test -d /opt/include/utf8 && cf_search="$cf_search /opt/include/utf8" @@ -8193,9 +9031,9 @@ test -d "/opt" && \ test -d /opt/utf8/include/utf8 && cf_search="$cf_search /opt/utf8/include/utf8" } -test "$HOME" != "$prefix" && \ +test "x$HOME" != "x$prefix" && \ test -d "$HOME" && \ -(test $prefix = NONE || test "$HOME" != "$prefix") && { +(test -z "$prefix" || test x$prefix = xNONE || test "x$HOME" != "x$prefix") && { test -n "$verbose" && echo " ... testing for include-directories under $HOME" test -d $HOME/include && cf_search="$cf_search $HOME/include" test -d $HOME/include/utf8 && cf_search="$cf_search $HOME/include/utf8" @@ -8225,11 +9063,11 @@ cf_search="$cf_search $cf_header_path_list" if test -d $cf_cv_header_path_utf8 ; then test -n "$verbose" && echo " ... testing $cf_cv_header_path_utf8" 1>&6 -echo "${as_me:-configure}:8228: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5 +echo "${as_me:-configure}:9066: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5 CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_utf8" cat >conftest.$ac_ext <<_ACEOF -#line 8232 "configure" +#line 9070 "configure" #include "confdefs.h" #include @@ -8242,21 +9080,21 @@ putwc(0,0); } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:8245: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9083: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:8248: \$? = $ac_status" >&5 + echo "$as_me:9086: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8251: \"$ac_try\"") >&5 + { (eval echo "$as_me:9089: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8254: \$? = $ac_status" >&5 + echo "$as_me:9092: \$? = $ac_status" >&5 (exit $ac_status); }; }; then test -n "$verbose" && echo " ... found utf8 headers in $cf_cv_header_path_utf8" 1>&6 -echo "${as_me:-configure}:8259: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5 +echo "${as_me:-configure}:9097: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5 cf_cv_find_linkage_utf8=maybe cf_test_CPPFLAGS="$CPPFLAGS" @@ -8274,7 +9112,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext if test "$cf_cv_find_linkage_utf8" = maybe ; then -echo "${as_me:-configure}:8277: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5 +echo "${as_me:-configure}:9115: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5 cf_save_LIBS="$LIBS" cf_save_LDFLAGS="$LDFLAGS" @@ -8290,7 +9128,7 @@ if test -n "${LDFLAGS}${LIBS}" ; then -L*) cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'` -test "$cf_library_path" != "NONE" && \ +test "x$cf_library_path" != "xNONE" && \ test -d "$cf_library_path" && \ { test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path" @@ -8309,9 +9147,9 @@ fi cf_search= -test "/usr" != "$prefix" && \ +test "x/usr" != "x$prefix" && \ test -d "/usr" && \ -(test $prefix = NONE || test "/usr" != "$prefix") && { +(test -z "$prefix" || test x$prefix = xNONE || test "x/usr" != "x$prefix") && { test -n "$verbose" && echo " ... testing for lib-directories under /usr" test -d /usr/lib && cf_search="$cf_search /usr/lib" test -d /usr/lib/utf8 && cf_search="$cf_search /usr/lib/utf8" @@ -8320,7 +9158,7 @@ test -d "/usr" && \ test -d /usr/utf8/lib/utf8 && cf_search="$cf_search /usr/utf8/lib/utf8" } -test "$prefix" != "NONE" && \ +test "x$prefix" != "xNONE" && \ test -d "$prefix" && \ { test -n "$verbose" && echo " ... testing for lib-directories under $prefix" @@ -8331,9 +9169,9 @@ test -d "$prefix" && \ test -d $prefix/utf8/lib/utf8 && cf_search="$cf_search $prefix/utf8/lib/utf8" } -test "/usr/local" != "$prefix" && \ +test "x/usr/local" != "x$prefix" && \ test -d "/usr/local" && \ -(test $prefix = NONE || test "/usr/local" != "$prefix") && { +(test -z "$prefix" || test x$prefix = xNONE || test "x/usr/local" != "x$prefix") && { test -n "$verbose" && echo " ... testing for lib-directories under /usr/local" test -d /usr/local/lib && cf_search="$cf_search /usr/local/lib" test -d /usr/local/lib/utf8 && cf_search="$cf_search /usr/local/lib/utf8" @@ -8342,9 +9180,9 @@ test -d "/usr/local" && \ test -d /usr/local/utf8/lib/utf8 && cf_search="$cf_search /usr/local/utf8/lib/utf8" } -test "/opt" != "$prefix" && \ +test "x/opt" != "x$prefix" && \ test -d "/opt" && \ -(test $prefix = NONE || test "/opt" != "$prefix") && { +(test -z "$prefix" || test x$prefix = xNONE || test "x/opt" != "x$prefix") && { test -n "$verbose" && echo " ... testing for lib-directories under /opt" test -d /opt/lib && cf_search="$cf_search /opt/lib" test -d /opt/lib/utf8 && cf_search="$cf_search /opt/lib/utf8" @@ -8353,9 +9191,9 @@ test -d "/opt" && \ test -d /opt/utf8/lib/utf8 && cf_search="$cf_search /opt/utf8/lib/utf8" } -test "$HOME" != "$prefix" && \ +test "x$HOME" != "x$prefix" && \ test -d "$HOME" && \ -(test $prefix = NONE || test "$HOME" != "$prefix") && { +(test -z "$prefix" || test x$prefix = xNONE || test "x$HOME" != "x$prefix") && { test -n "$verbose" && echo " ... testing for lib-directories under $HOME" test -d $HOME/lib && cf_search="$cf_search $HOME/lib" test -d $HOME/lib/utf8 && cf_search="$cf_search $HOME/lib/utf8" @@ -8371,13 +9209,13 @@ cf_search="$cf_library_path_list $cf_search" if test -d $cf_cv_library_path_utf8 ; then test -n "$verbose" && echo " ... testing $cf_cv_library_path_utf8" 1>&6 -echo "${as_me:-configure}:8374: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5 +echo "${as_me:-configure}:9212: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5 CPPFLAGS="$cf_test_CPPFLAGS" LIBS="-lutf8 $cf_save_LIBS" LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8" cat >conftest.$ac_ext <<_ACEOF -#line 8380 "configure" +#line 9218 "configure" #include "confdefs.h" #include @@ -8390,21 +9228,21 @@ putwc(0,0); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:8393: \"$ac_link\"") >&5 +if { (eval echo "$as_me:9231: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:8396: \$? = $ac_status" >&5 + echo "$as_me:9234: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:8399: \"$ac_try\"") >&5 + { (eval echo "$as_me:9237: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8402: \$? = $ac_status" >&5 + echo "$as_me:9240: \$? = $ac_status" >&5 (exit $ac_status); }; }; then test -n "$verbose" && echo " ... found utf8 library in $cf_cv_library_path_utf8" 1>&6 -echo "${as_me:-configure}:8407: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5 +echo "${as_me:-configure}:9245: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5 cf_cv_find_linkage_utf8=yes cf_cv_library_file_utf8="-lutf8" @@ -8446,13 +9284,14 @@ fi fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:8449: result: $cf_cv_utf8_lib" >&5 +echo "$as_me:9287: result: $cf_cv_utf8_lib" >&5 echo "${ECHO_T}$cf_cv_utf8_lib" >&6 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between # ncurses/ncursesw: if test "$cf_cv_utf8_lib" = "add-on" ; then - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define HAVE_LIBUTF8_H 1 EOF @@ -8480,7 +9319,7 @@ if test -n "$cf_cv_header_path_utf8" ; then cf_save_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" cat >conftest.$ac_ext <<_ACEOF -#line 8483 "configure" +#line 9322 "configure" #include "confdefs.h" #include int @@ -8492,16 +9331,16 @@ printf("Hello") } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:8495: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9334: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:8498: \$? = $ac_status" >&5 + echo "$as_me:9337: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8501: \"$ac_try\"") >&5 + { (eval echo "$as_me:9340: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8504: \$? = $ac_status" >&5 + echo "$as_me:9343: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -8518,7 +9357,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext if test "$cf_have_incdir" = no ; then test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 -echo "${as_me:-configure}:8521: testing adding $cf_add_incdir to include-path ..." 1>&5 +echo "${as_me:-configure}:9360: testing adding $cf_add_incdir to include-path ..." 1>&5 CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" @@ -8552,7 +9391,7 @@ if test -n "$cf_cv_library_path_utf8" ; then if test "$cf_have_libdir" = no ; then test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6 -echo "${as_me:-configure}:8555: testing adding $cf_add_libdir to library-path ..." 1>&5 +echo "${as_me:-configure}:9394: testing adding $cf_add_libdir to library-path ..." 1>&5 LDFLAGS="-L$cf_add_libdir $LDFLAGS" fi @@ -8569,14 +9408,14 @@ fi fi # This is needed on Tru64 5.0 to declare mbstate_t -echo "$as_me:8572: checking if we must include wchar.h to declare mbstate_t" >&5 +echo "$as_me:9411: checking if we must include wchar.h to declare mbstate_t" >&5 echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6 if test "${cf_cv_mbstate_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 8579 "configure" +#line 9418 "configure" #include "confdefs.h" #include @@ -8594,23 +9433,23 @@ mbstate_t state } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:8597: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9436: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:8600: \$? = $ac_status" >&5 + echo "$as_me:9439: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8603: \"$ac_try\"") >&5 + { (eval echo "$as_me:9442: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8606: \$? = $ac_status" >&5 + echo "$as_me:9445: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_mbstate_t=no else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 8613 "configure" +#line 9452 "configure" #include "confdefs.h" #include @@ -8629,16 +9468,16 @@ mbstate_t value } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:8632: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9471: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:8635: \$? = $ac_status" >&5 + echo "$as_me:9474: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8638: \"$ac_try\"") >&5 + { (eval echo "$as_me:9477: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8641: \$? = $ac_status" >&5 + echo "$as_me:9480: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_mbstate_t=yes else @@ -8650,11 +9489,12 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:8653: result: $cf_cv_mbstate_t" >&5 +echo "$as_me:9492: result: $cf_cv_mbstate_t" >&5 echo "${ECHO_T}$cf_cv_mbstate_t" >&6 if test "$cf_cv_mbstate_t" = yes ; then - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define NEED_WCHAR_H 1 EOF @@ -8667,14 +9507,14 @@ if test "$cf_cv_mbstate_t" = unknown ; then fi # This is needed on Tru64 5.0 to declare wchar_t -echo "$as_me:8670: checking if we must include wchar.h to declare wchar_t" >&5 +echo "$as_me:9510: checking if we must include wchar.h to declare wchar_t" >&5 echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6 if test "${cf_cv_wchar_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 8677 "configure" +#line 9517 "configure" #include "confdefs.h" #include @@ -8692,23 +9532,23 @@ wchar_t state } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:8695: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9535: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:8698: \$? = $ac_status" >&5 + echo "$as_me:9538: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8701: \"$ac_try\"") >&5 + { (eval echo "$as_me:9541: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8704: \$? = $ac_status" >&5 + echo "$as_me:9544: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_wchar_t=no else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 8711 "configure" +#line 9551 "configure" #include "confdefs.h" #include @@ -8727,16 +9567,16 @@ wchar_t value } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:8730: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9570: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:8733: \$? = $ac_status" >&5 + echo "$as_me:9573: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8736: \"$ac_try\"") >&5 + { (eval echo "$as_me:9576: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8739: \$? = $ac_status" >&5 + echo "$as_me:9579: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_wchar_t=yes else @@ -8748,11 +9588,12 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:8751: result: $cf_cv_wchar_t" >&5 +echo "$as_me:9591: result: $cf_cv_wchar_t" >&5 echo "${ECHO_T}$cf_cv_wchar_t" >&6 if test "$cf_cv_wchar_t" = yes ; then - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define NEED_WCHAR_H 1 EOF @@ -8770,14 +9611,14 @@ if test "$cf_cv_wchar_t" != unknown ; then fi # This is needed on Tru64 5.0 to declare wint_t -echo "$as_me:8773: checking if we must include wchar.h to declare wint_t" >&5 +echo "$as_me:9614: checking if we must include wchar.h to declare wint_t" >&5 echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6 if test "${cf_cv_wint_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 8780 "configure" +#line 9621 "configure" #include "confdefs.h" #include @@ -8795,23 +9636,23 @@ wint_t state } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:8798: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9639: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:8801: \$? = $ac_status" >&5 + echo "$as_me:9642: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8804: \"$ac_try\"") >&5 + { (eval echo "$as_me:9645: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8807: \$? = $ac_status" >&5 + echo "$as_me:9648: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_wint_t=no else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 8814 "configure" +#line 9655 "configure" #include "confdefs.h" #include @@ -8830,16 +9671,16 @@ wint_t value } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:8833: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9674: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:8836: \$? = $ac_status" >&5 + echo "$as_me:9677: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8839: \"$ac_try\"") >&5 + { (eval echo "$as_me:9680: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8842: \$? = $ac_status" >&5 + echo "$as_me:9683: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_wint_t=yes else @@ -8851,11 +9692,12 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:8854: result: $cf_cv_wint_t" >&5 +echo "$as_me:9695: result: $cf_cv_wint_t" >&5 echo "${ECHO_T}$cf_cv_wint_t" >&6 if test "$cf_cv_wint_t" = yes ; then - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define NEED_WCHAR_H 1 EOF @@ -8873,7 +9715,8 @@ if test "$cf_cv_wint_t" != unknown ; then fi if test "$NCURSES_MBSTATE_T" != 0; then - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define NEED_MBSTATE_T_DEF 1 EOF @@ -8890,7 +9733,7 @@ case $cf_cv_abi_version in ;; esac -echo "$as_me:8893: checking whether to enable _LP64 definition in curses.h" >&5 +echo "$as_me:9736: checking whether to enable _LP64 definition in curses.h" >&5 echo $ECHO_N "checking whether to enable _LP64 definition in curses.h... $ECHO_C" >&6 # Check whether --enable-lp64 or --disable-lp64 was given. @@ -8900,10 +9743,10 @@ if test "${enable_lp64+set}" = set; then else with_lp64=$default_with_lp64 fi; -echo "$as_me:8903: result: $with_lp64" >&5 +echo "$as_me:9746: result: $with_lp64" >&5 echo "${ECHO_T}$with_lp64" >&6 -if test "$with_lp64" = yes ; then +if test "x$with_lp64" = xyes ; then cf_cv_enable_lp64=1 else cf_cv_enable_lp64=0 @@ -8916,7 +9759,7 @@ if test "${enable_largefile+set}" = set; then fi; if test "$enable_largefile" != no; then - echo "$as_me:8919: checking for special C compiler options needed for large files" >&5 + echo "$as_me:9762: checking for special C compiler options needed for large files" >&5 echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6 if test "${ac_cv_sys_largefile_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -8928,7 +9771,7 @@ else # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. cat >conftest.$ac_ext <<_ACEOF -#line 8931 "configure" +#line 9774 "configure" #include "confdefs.h" #include /* Check that off_t can represent 2**63 - 1 correctly. @@ -8948,16 +9791,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:8951: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9794: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:8954: \$? = $ac_status" >&5 + echo "$as_me:9797: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8957: \"$ac_try\"") >&5 + { (eval echo "$as_me:9800: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8960: \$? = $ac_status" >&5 + echo "$as_me:9803: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -8967,16 +9810,16 @@ fi rm -f conftest.$ac_objext CC="$CC -n32" rm -f conftest.$ac_objext -if { (eval echo "$as_me:8970: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9813: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:8973: \$? = $ac_status" >&5 + echo "$as_me:9816: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8976: \"$ac_try\"") >&5 + { (eval echo "$as_me:9819: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8979: \$? = $ac_status" >&5 + echo "$as_me:9822: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sys_largefile_CC=' -n32'; break else @@ -8990,13 +9833,13 @@ rm -f conftest.$ac_objext rm -f conftest.$ac_ext fi fi -echo "$as_me:8993: result: $ac_cv_sys_largefile_CC" >&5 +echo "$as_me:9836: result: $ac_cv_sys_largefile_CC" >&5 echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6 if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi - echo "$as_me:8999: checking for _FILE_OFFSET_BITS value needed for large files" >&5 + echo "$as_me:9842: checking for _FILE_OFFSET_BITS value needed for large files" >&5 echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6 if test "${ac_cv_sys_file_offset_bits+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -9004,7 +9847,7 @@ else while :; do ac_cv_sys_file_offset_bits=no cat >conftest.$ac_ext <<_ACEOF -#line 9007 "configure" +#line 9850 "configure" #include "confdefs.h" #include /* Check that off_t can represent 2**63 - 1 correctly. @@ -9024,16 +9867,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:9027: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9870: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:9030: \$? = $ac_status" >&5 + echo "$as_me:9873: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:9033: \"$ac_try\"") >&5 + { (eval echo "$as_me:9876: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9036: \$? = $ac_status" >&5 + echo "$as_me:9879: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -9042,7 +9885,7 @@ cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF -#line 9045 "configure" +#line 9888 "configure" #include "confdefs.h" #define _FILE_OFFSET_BITS 64 #include @@ -9063,16 +9906,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:9066: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9909: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:9069: \$? = $ac_status" >&5 + echo "$as_me:9912: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:9072: \"$ac_try\"") >&5 + { (eval echo "$as_me:9915: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9075: \$? = $ac_status" >&5 + echo "$as_me:9918: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sys_file_offset_bits=64; break else @@ -9083,7 +9926,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext break done fi -echo "$as_me:9086: result: $ac_cv_sys_file_offset_bits" >&5 +echo "$as_me:9929: result: $ac_cv_sys_file_offset_bits" >&5 echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6 if test "$ac_cv_sys_file_offset_bits" != no; then @@ -9093,7 +9936,7 @@ EOF fi rm -rf conftest* - echo "$as_me:9096: checking for _LARGE_FILES value needed for large files" >&5 + echo "$as_me:9939: checking for _LARGE_FILES value needed for large files" >&5 echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6 if test "${ac_cv_sys_large_files+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -9101,7 +9944,7 @@ else while :; do ac_cv_sys_large_files=no cat >conftest.$ac_ext <<_ACEOF -#line 9104 "configure" +#line 9947 "configure" #include "confdefs.h" #include /* Check that off_t can represent 2**63 - 1 correctly. @@ -9121,16 +9964,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:9124: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9967: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:9127: \$? = $ac_status" >&5 + echo "$as_me:9970: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:9130: \"$ac_try\"") >&5 + { (eval echo "$as_me:9973: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9133: \$? = $ac_status" >&5 + echo "$as_me:9976: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -9139,7 +9982,7 @@ cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF -#line 9142 "configure" +#line 9985 "configure" #include "confdefs.h" #define _LARGE_FILES 1 #include @@ -9160,16 +10003,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:9163: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:10006: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:9166: \$? = $ac_status" >&5 + echo "$as_me:10009: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:9169: \"$ac_try\"") >&5 + { (eval echo "$as_me:10012: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9172: \$? = $ac_status" >&5 + echo "$as_me:10015: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sys_large_files=1; break else @@ -9180,7 +10023,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext break done fi -echo "$as_me:9183: result: $ac_cv_sys_large_files" >&5 +echo "$as_me:10026: result: $ac_cv_sys_large_files" >&5 echo "${ECHO_T}$ac_cv_sys_large_files" >&6 if test "$ac_cv_sys_large_files" != no; then @@ -9193,7 +10036,7 @@ rm -rf conftest* fi if test "$enable_largefile" != no ; then - echo "$as_me:9196: checking for _LARGEFILE_SOURCE value needed for large files" >&5 + echo "$as_me:10039: checking for _LARGEFILE_SOURCE value needed for large files" >&5 echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6 if test "${ac_cv_sys_largefile_source+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -9201,7 +10044,7 @@ else while :; do ac_cv_sys_largefile_source=no cat >conftest.$ac_ext <<_ACEOF -#line 9204 "configure" +#line 10047 "configure" #include "confdefs.h" #include int @@ -9213,16 +10056,16 @@ return !fseeko; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:9216: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:10059: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:9219: \$? = $ac_status" >&5 + echo "$as_me:10062: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:9222: \"$ac_try\"") >&5 + { (eval echo "$as_me:10065: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9225: \$? = $ac_status" >&5 + echo "$as_me:10068: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -9231,7 +10074,7 @@ cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF -#line 9234 "configure" +#line 10077 "configure" #include "confdefs.h" #define _LARGEFILE_SOURCE 1 #include @@ -9244,16 +10087,16 @@ return !fseeko; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:9247: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:10090: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:9250: \$? = $ac_status" >&5 + echo "$as_me:10093: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:9253: \"$ac_try\"") >&5 + { (eval echo "$as_me:10096: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9256: \$? = $ac_status" >&5 + echo "$as_me:10099: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sys_largefile_source=1; break else @@ -9264,7 +10107,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext break done fi -echo "$as_me:9267: result: $ac_cv_sys_largefile_source" >&5 +echo "$as_me:10110: result: $ac_cv_sys_largefile_source" >&5 echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6 if test "$ac_cv_sys_largefile_source" != no; then @@ -9278,13 +10121,13 @@ rm -rf conftest* # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug # in glibc 2.1.3, but that breaks too many other things. # If you want fseeko and ftello with glibc, upgrade to a fixed glibc. -echo "$as_me:9281: checking for fseeko" >&5 +echo "$as_me:10124: checking for fseeko" >&5 echo $ECHO_N "checking for fseeko... $ECHO_C" >&6 if test "${ac_cv_func_fseeko+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 9287 "configure" +#line 10130 "configure" #include "confdefs.h" #include int @@ -9296,16 +10139,16 @@ return fseeko && fseeko (stdin, 0, 0); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:9299: \"$ac_link\"") >&5 +if { (eval echo "$as_me:10142: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:9302: \$? = $ac_status" >&5 + echo "$as_me:10145: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:9305: \"$ac_try\"") >&5 + { (eval echo "$as_me:10148: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9308: \$? = $ac_status" >&5 + echo "$as_me:10151: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_fseeko=yes else @@ -9315,7 +10158,7 @@ ac_cv_func_fseeko=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:9318: result: $ac_cv_func_fseeko" >&5 +echo "$as_me:10161: result: $ac_cv_func_fseeko" >&5 echo "${ECHO_T}$ac_cv_func_fseeko" >&6 if test $ac_cv_func_fseeko = yes; then @@ -9336,14 +10179,14 @@ fi test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE " test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits " - echo "$as_me:9339: checking whether to use struct dirent64" >&5 + echo "$as_me:10182: checking whether to use struct dirent64" >&5 echo $ECHO_N "checking whether to use struct dirent64... $ECHO_C" >&6 if test "${cf_cv_struct_dirent64+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 9346 "configure" +#line 10189 "configure" #include "confdefs.h" #include @@ -9364,16 +10207,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:9367: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:10210: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:9370: \$? = $ac_status" >&5 + echo "$as_me:10213: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:9373: \"$ac_try\"") >&5 + { (eval echo "$as_me:10216: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9376: \$? = $ac_status" >&5 + echo "$as_me:10219: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_struct_dirent64=yes else @@ -9384,16 +10227,17 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:9387: result: $cf_cv_struct_dirent64" >&5 +echo "$as_me:10230: result: $cf_cv_struct_dirent64" >&5 echo "${ECHO_T}$cf_cv_struct_dirent64" >&6 - test "$cf_cv_struct_dirent64" = yes && cat >>confdefs.h <<\EOF + test "$cf_cv_struct_dirent64" = yes && +cat >>confdefs.h <<\EOF #define HAVE_STRUCT_DIRENT64 1 EOF fi ### use option --disable-tparm-varargs to make tparm() conform to X/Open -echo "$as_me:9396: checking if you want tparm not to use X/Open fixed-parameter list" >&5 +echo "$as_me:10240: checking if you want tparm not to use X/Open fixed-parameter list" >&5 echo $ECHO_N "checking if you want tparm not to use X/Open fixed-parameter list... $ECHO_C" >&6 # Check whether --enable-tparm-varargs or --disable-tparm-varargs was given. @@ -9403,14 +10247,14 @@ if test "${enable_tparm_varargs+set}" = set; then else with_tparm_varargs=yes fi; -echo "$as_me:9406: result: $with_tparm_varargs" >&5 +echo "$as_me:10250: result: $with_tparm_varargs" >&5 echo "${ECHO_T}$with_tparm_varargs" >&6 NCURSES_TPARM_VARARGS=0 -test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1 +test "x$with_tparm_varargs" = xyes && NCURSES_TPARM_VARARGS=1 ### use option --disable-tic-depends to make libtic not explicitly depend on ncurses/ncursesw if test "$with_ticlib" != no ; then -echo "$as_me:9413: checking if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library" >&5 +echo "$as_me:10257: checking if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library" >&5 echo $ECHO_N "checking if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library... $ECHO_C" >&6 # Check whether --enable-tic-depends or --disable-tic-depends was given. @@ -9420,14 +10264,14 @@ if test "${enable_tic_depends+set}" = set; then else with_tic_depends=yes fi; -echo "$as_me:9423: result: $with_tic_depends" >&5 +echo "$as_me:10267: result: $with_tic_depends" >&5 echo "${ECHO_T}$with_tic_depends" >&6 else with_tic_depends=no fi ### use option --with-bool to override bool's type -echo "$as_me:9430: checking for type of bool" >&5 +echo "$as_me:10274: checking for type of bool" >&5 echo $ECHO_N "checking for type of bool... $ECHO_C" >&6 # Check whether --with-bool or --without-bool was given. @@ -9437,10 +10281,10 @@ if test "${with_bool+set}" = set; then else NCURSES_BOOL=auto fi; -echo "$as_me:9440: result: $NCURSES_BOOL" >&5 +echo "$as_me:10284: result: $NCURSES_BOOL" >&5 echo "${ECHO_T}$NCURSES_BOOL" >&6 -echo "$as_me:9443: checking for alternate terminal capabilities file" >&5 +echo "$as_me:10287: checking for alternate terminal capabilities file" >&5 echo $ECHO_N "checking for alternate terminal capabilities file... $ECHO_C" >&6 # Check whether --with-caps or --without-caps was given. @@ -9451,11 +10295,11 @@ else TERMINFO_CAPS=Caps fi; test -f "${srcdir}/include/${TERMINFO_CAPS}" || TERMINFO_CAPS=Caps -echo "$as_me:9454: result: $TERMINFO_CAPS" >&5 +echo "$as_me:10298: result: $TERMINFO_CAPS" >&5 echo "${ECHO_T}$TERMINFO_CAPS" >&6 ### use option --with-chtype to override chtype's type -echo "$as_me:9458: checking for type of chtype" >&5 +echo "$as_me:10302: checking for type of chtype" >&5 echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6 # Check whether --with-chtype or --without-chtype was given. @@ -9465,11 +10309,11 @@ if test "${with_chtype+set}" = set; then else NCURSES_CHTYPE=auto fi; -echo "$as_me:9468: result: $NCURSES_CHTYPE" >&5 +echo "$as_me:10312: result: $NCURSES_CHTYPE" >&5 echo "${ECHO_T}$NCURSES_CHTYPE" >&6 ### use option --with-ospeed to override ospeed's type -echo "$as_me:9472: checking for type of ospeed" >&5 +echo "$as_me:10316: checking for type of ospeed" >&5 echo $ECHO_N "checking for type of ospeed... $ECHO_C" >&6 # Check whether --with-ospeed or --without-ospeed was given. @@ -9479,11 +10323,11 @@ if test "${with_ospeed+set}" = set; then else NCURSES_OSPEED=short fi; -echo "$as_me:9482: result: $NCURSES_OSPEED" >&5 +echo "$as_me:10326: result: $NCURSES_OSPEED" >&5 echo "${ECHO_T}$NCURSES_OSPEED" >&6 ### use option --with-mmask-t to override mmask_t's type -echo "$as_me:9486: checking for type of mmask_t" >&5 +echo "$as_me:10330: checking for type of mmask_t" >&5 echo $ECHO_N "checking for type of mmask_t... $ECHO_C" >&6 # Check whether --with-mmask-t or --without-mmask-t was given. @@ -9493,11 +10337,11 @@ if test "${with_mmask_t+set}" = set; then else NCURSES_MMASK_T=auto fi; -echo "$as_me:9496: result: $NCURSES_MMASK_T" >&5 +echo "$as_me:10340: result: $NCURSES_MMASK_T" >&5 echo "${ECHO_T}$NCURSES_MMASK_T" >&6 ### use option --with-ccharw-max to override CCHARW_MAX size -echo "$as_me:9500: checking for size CCHARW_MAX" >&5 +echo "$as_me:10344: checking for size CCHARW_MAX" >&5 echo $ECHO_N "checking for size CCHARW_MAX... $ECHO_C" >&6 # Check whether --with-ccharw-max or --without-ccharw-max was given. @@ -9507,11 +10351,25 @@ if test "${with_ccharw_max+set}" = set; then else NCURSES_CCHARW_MAX=5 fi; -echo "$as_me:9510: result: $NCURSES_CCHARW_MAX" >&5 +echo "$as_me:10354: result: $NCURSES_CCHARW_MAX" >&5 echo "${ECHO_T}$NCURSES_CCHARW_MAX" >&6 +### use option --with-tparm-arg to override tparm's argument type +echo "$as_me:10358: checking for type of tparm args" >&5 +echo $ECHO_N "checking for type of tparm args... $ECHO_C" >&6 + +# Check whether --with-tparm-arg or --without-tparm-arg was given. +if test "${with_tparm_arg+set}" = set; then + withval="$with_tparm_arg" + NCURSES_TPARM_ARG="$withval" +else + NCURSES_TPARM_ARG=long +fi; +echo "$as_me:10368: result: $NCURSES_TPARM_ARG" >&5 +echo "${ECHO_T}$NCURSES_TPARM_ARG" >&6 + ### Enable compiling-in rcs id's -echo "$as_me:9514: checking if RCS identifiers should be compiled-in" >&5 +echo "$as_me:10372: checking if RCS identifiers should be compiled-in" >&5 echo $ECHO_N "checking if RCS identifiers should be compiled-in... $ECHO_C" >&6 # Check whether --with-rcs-ids or --without-rcs-ids was given. @@ -9521,15 +10379,16 @@ if test "${with_rcs_ids+set}" = set; then else with_rcs_ids=no fi; -echo "$as_me:9524: result: $with_rcs_ids" >&5 +echo "$as_me:10382: result: $with_rcs_ids" >&5 echo "${ECHO_T}$with_rcs_ids" >&6 -test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF +test "x$with_rcs_ids" = xyes && +cat >>confdefs.h <<\EOF #define USE_RCS_IDS 1 EOF ############################################################################### -echo "$as_me:9532: checking format of man-pages" >&5 +echo "$as_me:10391: checking format of man-pages" >&5 echo $ECHO_N "checking format of man-pages... $ECHO_C" >&6 # Check whether --with-manpage-format or --without-manpage-format was given. @@ -9618,14 +10477,14 @@ unknown) ;; esac -echo "$as_me:9621: result: $MANPAGE_FORMAT" >&5 +echo "$as_me:10480: result: $MANPAGE_FORMAT" >&5 echo "${ECHO_T}$MANPAGE_FORMAT" >&6 if test -n "$cf_unknown" ; then - { echo "$as_me:9624: WARNING: Unexpected manpage-format $cf_unknown" >&5 + { echo "$as_me:10483: WARNING: Unexpected manpage-format $cf_unknown" >&5 echo "$as_me: WARNING: Unexpected manpage-format $cf_unknown" >&2;} fi -echo "$as_me:9628: checking for manpage renaming" >&5 +echo "$as_me:10487: checking for manpage renaming" >&5 echo $ECHO_N "checking for manpage renaming... $ECHO_C" >&6 # Check whether --with-manpage-renames or --without-manpage-renames was given. @@ -9653,7 +10512,7 @@ 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 - { { echo "$as_me:9656: error: not a filename: $MANPAGE_RENAMES" >&5 + { { echo "$as_me:10515: error: not a filename: $MANPAGE_RENAMES" >&5 echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;} { (exit 1); exit 1; }; } fi @@ -9667,10 +10526,10 @@ echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;} fi fi -echo "$as_me:9670: result: $MANPAGE_RENAMES" >&5 +echo "$as_me:10529: result: $MANPAGE_RENAMES" >&5 echo "${ECHO_T}$MANPAGE_RENAMES" >&6 -echo "$as_me:9673: checking if manpage aliases will be installed" >&5 +echo "$as_me:10532: checking if manpage aliases will be installed" >&5 echo $ECHO_N "checking if manpage aliases will be installed... $ECHO_C" >&6 # Check whether --with-manpage-aliases or --without-manpage-aliases was given. @@ -9681,7 +10540,7 @@ else MANPAGE_ALIASES=yes fi; -echo "$as_me:9684: result: $MANPAGE_ALIASES" >&5 +echo "$as_me:10543: result: $MANPAGE_ALIASES" >&5 echo "${ECHO_T}$MANPAGE_ALIASES" >&6 case "x$LN_S" in #(vi @@ -9695,7 +10554,7 @@ esac MANPAGE_SYMLINKS=no if test "$MANPAGE_ALIASES" = yes ; then -echo "$as_me:9698: checking if manpage symlinks should be used" >&5 +echo "$as_me:10557: checking if manpage symlinks should be used" >&5 echo $ECHO_N "checking if manpage symlinks should be used... $ECHO_C" >&6 # Check whether --with-manpage-symlinks or --without-manpage-symlinks was given. @@ -9708,17 +10567,17 @@ fi; if test "$$cf_use_symlinks" = no; then if test "$MANPAGE_SYMLINKS" = yes ; then - { echo "$as_me:9711: WARNING: cannot make symlinks" >&5 + { echo "$as_me:10570: WARNING: cannot make symlinks" >&5 echo "$as_me: WARNING: cannot make symlinks" >&2;} MANPAGE_SYMLINKS=no fi fi -echo "$as_me:9717: result: $MANPAGE_SYMLINKS" >&5 +echo "$as_me:10576: result: $MANPAGE_SYMLINKS" >&5 echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6 fi -echo "$as_me:9721: checking for manpage tbl" >&5 +echo "$as_me:10580: checking for manpage tbl" >&5 echo $ECHO_N "checking for manpage tbl... $ECHO_C" >&6 # Check whether --with-manpage-tbl or --without-manpage-tbl was given. @@ -9729,7 +10588,7 @@ else MANPAGE_TBL=no fi; -echo "$as_me:9732: result: $MANPAGE_TBL" >&5 +echo "$as_me:10591: result: $MANPAGE_TBL" >&5 echo "${ECHO_T}$MANPAGE_TBL" >&6 if test "$prefix" = "NONE" ; then @@ -9776,6 +10635,7 @@ cat >$cf_edit_man <>$cf_man_alias <<-CF_EOF2 s,@DATADIR@,\$datadir,g - s,@TERMINFO@,\$TERMINFO,g - s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g - s,@NCURSES_MINOR@,\$NCURSES_MINOR,g - s,@NCURSES_PATCH@,\$NCURSES_PATCH,g - s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g + s,@TERMINFO@,\${TERMINFO:="no default value"},g + s,@TERMINFO_DIRS@,\${TERMINFO_DIRS:="no default value"},g + s,@NCURSES_MAJOR@,\${NCURSES_MAJOR:="no default value"},g + s,@NCURSES_MINOR@,\${NCURSES_MINOR:="no default value"},g + s,@NCURSES_PATCH@,\${NCURSES_PATCH:="no default value"},g + s,@NCURSES_OSPEED@,\${NCURSES_OSPEED:="no default value"},g CF_EOF for cf_name in captoinfo clear infocmp infotocap tabs tic toe tput tset @@ -9869,7 +10730,9 @@ CF_EOF if test "$MANPAGE_ALIASES" != no ; then cat >>$cf_edit_man <>$cf_edit_man <\$TMP.out + mv \$TMP.out \$TMP +CF_EOF +fi + if test $with_curses_h != yes ; then cat >>$cf_edit_man <\$TMP.out @@ -10051,7 +10921,7 @@ chmod 755 $cf_edit_man ############################################################################### ### Note that some functions (such as const) are normally disabled anyway. -echo "$as_me:10054: checking if you want to build with function extensions" >&5 +echo "$as_me:10924: checking if you want to build with function extensions" >&5 echo $ECHO_N "checking if you want to build with function extensions... $ECHO_C" >&6 # Check whether --enable-ext-funcs or --disable-ext-funcs was given. @@ -10061,39 +10931,52 @@ if test "${enable_ext_funcs+set}" = set; then else with_ext_funcs=yes fi; -echo "$as_me:10064: result: $with_ext_funcs" >&5 +echo "$as_me:10934: result: $with_ext_funcs" >&5 echo "${ECHO_T}$with_ext_funcs" >&6 -if test "$with_ext_funcs" = yes ; then +if test "x$with_ext_funcs" = xyes ; then NCURSES_EXT_FUNCS=1 - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF +#define HAVE_ASSUME_DEFAULT_COLORS 1 +EOF + +cat >>confdefs.h <<\EOF #define HAVE_CURSES_VERSION 1 EOF - cat >>confdefs.h <<\EOF +cat >>confdefs.h <<\EOF #define HAVE_HAS_KEY 1 EOF - cat >>confdefs.h <<\EOF +cat >>confdefs.h <<\EOF #define HAVE_RESIZETERM 1 EOF - cat >>confdefs.h <<\EOF +cat >>confdefs.h <<\EOF #define HAVE_RESIZE_TERM 1 EOF - cat >>confdefs.h <<\EOF +cat >>confdefs.h <<\EOF #define HAVE_TERM_ENTRY_H 1 EOF - cat >>confdefs.h <<\EOF +cat >>confdefs.h <<\EOF #define HAVE_USE_DEFAULT_COLORS 1 EOF - cat >>confdefs.h <<\EOF +cat >>confdefs.h <<\EOF +#define HAVE_USE_SCREEN 1 +EOF + +cat >>confdefs.h <<\EOF +#define HAVE_USE_WINDOW 1 +EOF + +cat >>confdefs.h <<\EOF #define HAVE_WRESIZE 1 EOF - cat >>confdefs.h <<\EOF +cat >>confdefs.h <<\EOF #define NCURSES_EXT_FUNCS 1 EOF @@ -10103,7 +10986,7 @@ else GENERATED_EXT_FUNCS= fi -echo "$as_me:10106: checking if you want to build with experimental SCREEN extensions" >&5 +echo "$as_me:10989: checking if you want to build with experimental SCREEN extensions" >&5 echo $ECHO_N "checking if you want to build with experimental SCREEN extensions... $ECHO_C" >&6 # Check whether --enable-sp-funcs or --disable-sp-funcs was given. @@ -10113,11 +10996,12 @@ if test "${enable_sp_funcs+set}" = set; then else with_sp_funcs=no fi; -echo "$as_me:10116: result: $with_sp_funcs" >&5 +echo "$as_me:10999: result: $with_sp_funcs" >&5 echo "${ECHO_T}$with_sp_funcs" >&6 -if test "$with_sp_funcs" = yes ; then +if test "x$with_sp_funcs" = xyes ; then NCURSES_SP_FUNCS=1 - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define NCURSES_SP_FUNCS 1 EOF @@ -10127,7 +11011,7 @@ else GENERATED_SP_FUNCS= fi -echo "$as_me:10130: checking if you want to build with experimental terminal-driver" >&5 +echo "$as_me:11014: checking if you want to build with experimental terminal-driver" >&5 echo $ECHO_N "checking if you want to build with experimental terminal-driver... $ECHO_C" >&6 # Check whether --enable-term-driver or --disable-term-driver was given. @@ -10137,22 +11021,23 @@ if test "${enable_term_driver+set}" = set; then else with_term_driver=no fi; -echo "$as_me:10140: result: $with_term_driver" >&5 +echo "$as_me:11024: result: $with_term_driver" >&5 echo "${ECHO_T}$with_term_driver" >&6 -if test "$with_term_driver" = yes ; then - cat >>confdefs.h <<\EOF +if test "x$with_term_driver" = xyes ; then + +cat >>confdefs.h <<\EOF #define USE_TERM_DRIVER 1 EOF - if test "$with_sp_funcs" != yes ; then - { { echo "$as_me:10148: error: The term-driver option relies upon sp-funcs" >&5 + if test "x$with_sp_funcs" != xyes ; then + { { echo "$as_me:11033: error: The term-driver option relies upon sp-funcs" >&5 echo "$as_me: error: The term-driver option relies upon sp-funcs" >&2;} { (exit 1); exit 1; }; } fi fi ### use option --enable-const to turn on use of const beyond that in XSI. -echo "$as_me:10155: checking for extended use of const keyword" >&5 +echo "$as_me:11040: checking for extended use of const keyword" >&5 echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6 # Check whether --enable-const or --disable-const was given. @@ -10162,15 +11047,15 @@ if test "${enable_const+set}" = set; then else with_ext_const=no fi; -echo "$as_me:10165: result: $with_ext_const" >&5 +echo "$as_me:11050: result: $with_ext_const" >&5 echo "${ECHO_T}$with_ext_const" >&6 NCURSES_CONST='/*nothing*/' -if test "$with_ext_const" = yes ; then +if test "x$with_ext_const" = xyes ; then NCURSES_CONST=const fi ### use option --enable-ext-colors to turn on use of colors beyond 16. -echo "$as_me:10173: checking if you want to use extended colors" >&5 +echo "$as_me:11058: checking if you want to use extended colors" >&5 echo $ECHO_N "checking if you want to use extended colors... $ECHO_C" >&6 # Check whether --enable-ext-colors or --disable-ext-colors was given. @@ -10180,12 +11065,12 @@ if test "${enable_ext_colors+set}" = set; then else with_ext_colors=no fi; -echo "$as_me:10183: result: $with_ext_colors" >&5 +echo "$as_me:11068: result: $with_ext_colors" >&5 echo "${ECHO_T}$with_ext_colors" >&6 NCURSES_EXT_COLORS=0 -if test "$with_ext_colors" = yes ; then - if test "$with_widec" != yes ; then - { { echo "$as_me:10188: error: This option applies only to wide-character library" >&5 +if test "x$with_ext_colors" = xyes ; then + if test "x$with_widec" != xyes ; then + { { echo "$as_me:11073: error: This option applies only to wide-character library" >&5 echo "$as_me: error: This option applies only to wide-character library" >&2;} { (exit 1); exit 1; }; } else @@ -10196,7 +11081,7 @@ if test "${with_abi_version+set}" != set; then 5.*) cf_cv_rel_version=6.0 cf_cv_abi_version=6 - { echo "$as_me:10199: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5 + { echo "$as_me:11084: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5 echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;} ;; esac @@ -10204,14 +11089,15 @@ fi fi NCURSES_EXT_COLORS=1 - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define NCURSES_EXT_COLORS 1 EOF fi ### use option --enable-ext-mouse to modify coding to support 5-button mice -echo "$as_me:10214: checking if you want to use extended mouse encoding" >&5 +echo "$as_me:11100: checking if you want to use extended mouse encoding" >&5 echo $ECHO_N "checking if you want to use extended mouse encoding... $ECHO_C" >&6 # Check whether --enable-ext-mouse or --disable-ext-mouse was given. @@ -10221,10 +11107,10 @@ if test "${enable_ext_mouse+set}" = set; then else with_ext_mouse=no fi; -echo "$as_me:10224: result: $with_ext_mouse" >&5 +echo "$as_me:11110: result: $with_ext_mouse" >&5 echo "${ECHO_T}$with_ext_mouse" >&6 NCURSES_MOUSE_VERSION=1 -if test "$with_ext_mouse" = yes ; then +if test "x$with_ext_mouse" = xyes ; then NCURSES_MOUSE_VERSION=2 if test "${with_abi_version+set}" != set; then @@ -10232,7 +11118,7 @@ if test "${with_abi_version+set}" != set; then 5.*) cf_cv_rel_version=6.0 cf_cv_abi_version=6 - { echo "$as_me:10235: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5 + { echo "$as_me:11121: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5 echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;} ;; esac @@ -10240,7 +11126,7 @@ fi fi -echo "$as_me:10243: checking if you want \$NCURSES_NO_PADDING code" >&5 +echo "$as_me:11129: checking if you want \$NCURSES_NO_PADDING code" >&5 echo $ECHO_N "checking if you want \$NCURSES_NO_PADDING code... $ECHO_C" >&6 # Check whether --enable-no-padding or --disable-no-padding was given. @@ -10250,19 +11136,20 @@ if test "${enable_no_padding+set}" = set; then else with_no_padding=$with_ext_funcs fi; -echo "$as_me:10253: result: $with_no_padding" >&5 +echo "$as_me:11139: result: $with_no_padding" >&5 echo "${ECHO_T}$with_no_padding" >&6 -test "$with_no_padding" = yes && cat >>confdefs.h <<\EOF +test "x$with_no_padding" = xyes && +cat >>confdefs.h <<\EOF #define NCURSES_NO_PADDING 1 EOF -echo "$as_me:10259: checking for ANSI C header files" >&5 +echo "$as_me:11146: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 10265 "configure" +#line 11152 "configure" #include "confdefs.h" #include #include @@ -10270,13 +11157,13 @@ else #include _ACEOF -if { (eval echo "$as_me:10273: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:11160: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:10279: \$? = $ac_status" >&5 + echo "$as_me:11166: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -10298,7 +11185,7 @@ rm -f conftest.err conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF -#line 10301 "configure" +#line 11188 "configure" #include "confdefs.h" #include @@ -10316,7 +11203,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF -#line 10319 "configure" +#line 11206 "configure" #include "confdefs.h" #include @@ -10337,7 +11224,7 @@ if test $ac_cv_header_stdc = yes; then : else cat >conftest.$ac_ext <<_ACEOF -#line 10340 "configure" +#line 11227 "configure" #include "confdefs.h" #include #if ((' ' & 0x0FF) == 0x020) @@ -10363,15 +11250,15 @@ main () } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:10366: \"$ac_link\"") >&5 +if { (eval echo "$as_me:11253: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:10369: \$? = $ac_status" >&5 + echo "$as_me:11256: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:10371: \"$ac_try\"") >&5 + { (eval echo "$as_me:11258: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:10374: \$? = $ac_status" >&5 + echo "$as_me:11261: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -10384,7 +11271,7 @@ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi -echo "$as_me:10387: result: $ac_cv_header_stdc" >&5 +echo "$as_me:11274: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then @@ -10400,28 +11287,28 @@ for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:10403: checking for $ac_header" >&5 +echo "$as_me:11290: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 10409 "configure" +#line 11296 "configure" #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:10415: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:11302: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:10418: \$? = $ac_status" >&5 + echo "$as_me:11305: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:10421: \"$ac_try\"") >&5 + { (eval echo "$as_me:11308: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:10424: \$? = $ac_status" >&5 + echo "$as_me:11311: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else @@ -10431,7 +11318,7 @@ eval "$as_ac_Header=no" fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:10434: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "$as_me:11321: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <&5 +echo "$as_me:11331: checking for signed char" >&5 echo $ECHO_N "checking for signed char... $ECHO_C" >&6 if test "${ac_cv_type_signed_char+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 10450 "configure" +#line 11337 "configure" #include "confdefs.h" $ac_includes_default int @@ -10462,16 +11349,16 @@ if (sizeof (signed char)) } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:10465: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:11352: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:10468: \$? = $ac_status" >&5 + echo "$as_me:11355: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:10471: \"$ac_try\"") >&5 + { (eval echo "$as_me:11358: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:10474: \$? = $ac_status" >&5 + echo "$as_me:11361: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_signed_char=yes else @@ -10481,10 +11368,10 @@ ac_cv_type_signed_char=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:10484: result: $ac_cv_type_signed_char" >&5 +echo "$as_me:11371: result: $ac_cv_type_signed_char" >&5 echo "${ECHO_T}$ac_cv_type_signed_char" >&6 -echo "$as_me:10487: checking size of signed char" >&5 +echo "$as_me:11374: checking size of signed char" >&5 echo $ECHO_N "checking size of signed char... $ECHO_C" >&6 if test "${ac_cv_sizeof_signed_char+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -10493,7 +11380,7 @@ else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF -#line 10496 "configure" +#line 11383 "configure" #include "confdefs.h" $ac_includes_default int @@ -10505,21 +11392,21 @@ int _array_ [1 - 2 * !((sizeof (signed char)) >= 0)] } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:10508: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:11395: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:10511: \$? = $ac_status" >&5 + echo "$as_me:11398: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:10514: \"$ac_try\"") >&5 + { (eval echo "$as_me:11401: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:10517: \$? = $ac_status" >&5 + echo "$as_me:11404: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF -#line 10522 "configure" +#line 11409 "configure" #include "confdefs.h" $ac_includes_default int @@ -10531,16 +11418,16 @@ int _array_ [1 - 2 * !((sizeof (signed char)) <= $ac_mid)] } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:10534: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:11421: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:10537: \$? = $ac_status" >&5 + echo "$as_me:11424: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:10540: \"$ac_try\"") >&5 + { (eval echo "$as_me:11427: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:10543: \$? = $ac_status" >&5 + echo "$as_me:11430: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_hi=$ac_mid; break else @@ -10556,7 +11443,7 @@ cat conftest.$ac_ext >&5 ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF -#line 10559 "configure" +#line 11446 "configure" #include "confdefs.h" $ac_includes_default int @@ -10568,16 +11455,16 @@ int _array_ [1 - 2 * !((sizeof (signed char)) >= $ac_mid)] } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:10571: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:11458: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:10574: \$? = $ac_status" >&5 + echo "$as_me:11461: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:10577: \"$ac_try\"") >&5 + { (eval echo "$as_me:11464: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:10580: \$? = $ac_status" >&5 + echo "$as_me:11467: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_lo=$ac_mid; break else @@ -10593,7 +11480,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF -#line 10596 "configure" +#line 11483 "configure" #include "confdefs.h" $ac_includes_default int @@ -10605,16 +11492,16 @@ int _array_ [1 - 2 * !((sizeof (signed char)) <= $ac_mid)] } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:10608: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:11495: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:10611: \$? = $ac_status" >&5 + echo "$as_me:11498: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:10614: \"$ac_try\"") >&5 + { (eval echo "$as_me:11501: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:10617: \$? = $ac_status" >&5 + echo "$as_me:11504: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_hi=$ac_mid else @@ -10627,12 +11514,12 @@ done ac_cv_sizeof_signed_char=$ac_lo else if test "$cross_compiling" = yes; then - { { echo "$as_me:10630: error: cannot run test program while cross compiling" >&5 + { { echo "$as_me:11517: error: cannot run test program while cross compiling" >&5 echo "$as_me: error: cannot run test program while cross compiling" >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF -#line 10635 "configure" +#line 11522 "configure" #include "confdefs.h" $ac_includes_default int @@ -10648,15 +11535,15 @@ fclose (f); } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:10651: \"$ac_link\"") >&5 +if { (eval echo "$as_me:11538: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:10654: \$? = $ac_status" >&5 + echo "$as_me:11541: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:10656: \"$ac_try\"") >&5 + { (eval echo "$as_me:11543: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:10659: \$? = $ac_status" >&5 + echo "$as_me:11546: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_signed_char=`cat conftest.val` else @@ -10672,7 +11559,7 @@ else ac_cv_sizeof_signed_char=0 fi fi -echo "$as_me:10675: result: $ac_cv_sizeof_signed_char" >&5 +echo "$as_me:11562: result: $ac_cv_sizeof_signed_char" >&5 echo "${ECHO_T}$ac_cv_sizeof_signed_char" >&6 cat >>confdefs.h <&5 +echo "$as_me:11573: checking if you want to use signed Boolean array in term.h" >&5 echo $ECHO_N "checking if you want to use signed Boolean array in term.h... $ECHO_C" >&6 # Check whether --enable-signed-char or --disable-signed-char was given. @@ -10693,12 +11580,12 @@ if test "${enable_signed_char+set}" = set; then else with_signed_char=no fi; -echo "$as_me:10696: result: $with_signed_char" >&5 +echo "$as_me:11583: result: $with_signed_char" >&5 echo "${ECHO_T}$with_signed_char" >&6 -test "$with_signed_char" != yes && NCURSES_SBOOL="char" +test "x$with_signed_char" != xyes && NCURSES_SBOOL="char" ### use option --enable-sigwinch to turn on use of SIGWINCH logic -echo "$as_me:10701: checking if you want SIGWINCH handler" >&5 +echo "$as_me:11588: checking if you want SIGWINCH handler" >&5 echo $ECHO_N "checking if you want SIGWINCH handler... $ECHO_C" >&6 # Check whether --enable-sigwinch or --disable-sigwinch was given. @@ -10708,14 +11595,15 @@ if test "${enable_sigwinch+set}" = set; then else with_sigwinch=$with_ext_funcs fi; -echo "$as_me:10711: result: $with_sigwinch" >&5 +echo "$as_me:11598: result: $with_sigwinch" >&5 echo "${ECHO_T}$with_sigwinch" >&6 -test "$with_sigwinch" = yes && cat >>confdefs.h <<\EOF +test "x$with_sigwinch" = xyes && +cat >>confdefs.h <<\EOF #define USE_SIGWINCH 1 EOF ### use option --enable-tcap-names to allow user to define new capabilities -echo "$as_me:10718: checking if you want user-definable terminal capabilities like termcap" >&5 +echo "$as_me:11606: checking if you want user-definable terminal capabilities like termcap" >&5 echo $ECHO_N "checking if you want user-definable terminal capabilities like termcap... $ECHO_C" >&6 # Check whether --enable-tcap-names or --disable-tcap-names was given. @@ -10725,15 +11613,15 @@ if test "${enable_tcap_names+set}" = set; then else with_tcap_names=$with_ext_funcs fi; -echo "$as_me:10728: result: $with_tcap_names" >&5 +echo "$as_me:11616: result: $with_tcap_names" >&5 echo "${ECHO_T}$with_tcap_names" >&6 NCURSES_XNAMES=0 -test "$with_tcap_names" = yes && NCURSES_XNAMES=1 +test "x$with_tcap_names" = xyes && NCURSES_XNAMES=1 ############################################################################### # These options are relatively safe to experiment with. -echo "$as_me:10736: checking if you want all development code" >&5 +echo "$as_me:11624: checking if you want all development code" >&5 echo $ECHO_N "checking if you want all development code... $ECHO_C" >&6 # Check whether --with-develop or --without-develop was given. @@ -10743,11 +11631,11 @@ if test "${with_develop+set}" = set; then else with_develop=no fi; -echo "$as_me:10746: result: $with_develop" >&5 +echo "$as_me:11634: result: $with_develop" >&5 echo "${ECHO_T}$with_develop" >&6 ### use option --enable-hard-tabs to turn on use of hard-tabs optimize -echo "$as_me:10750: checking if you want hard-tabs code" >&5 +echo "$as_me:11638: checking if you want hard-tabs code" >&5 echo $ECHO_N "checking if you want hard-tabs code... $ECHO_C" >&6 # Check whether --enable-hard-tabs or --disable-hard-tabs was given. @@ -10757,14 +11645,15 @@ if test "${enable_hard_tabs+set}" = set; then else enable_hard_tabs=$with_develop fi; -echo "$as_me:10760: result: $enable_hard_tabs" >&5 +echo "$as_me:11648: result: $enable_hard_tabs" >&5 echo "${ECHO_T}$enable_hard_tabs" >&6 -test "$enable_hard_tabs" = yes && cat >>confdefs.h <<\EOF +test "x$enable_hard_tabs" = xyes && +cat >>confdefs.h <<\EOF #define USE_HARD_TABS 1 EOF ### use option --enable-xmc-glitch to turn on use of magic-cookie optimize -echo "$as_me:10767: checking if you want limited support for xmc" >&5 +echo "$as_me:11656: checking if you want limited support for xmc" >&5 echo $ECHO_N "checking if you want limited support for xmc... $ECHO_C" >&6 # Check whether --enable-xmc-glitch or --disable-xmc-glitch was given. @@ -10774,16 +11663,17 @@ if test "${enable_xmc_glitch+set}" = set; then else enable_xmc_glitch=$with_develop fi; -echo "$as_me:10777: result: $enable_xmc_glitch" >&5 +echo "$as_me:11666: result: $enable_xmc_glitch" >&5 echo "${ECHO_T}$enable_xmc_glitch" >&6 -test "$enable_xmc_glitch" = yes && cat >>confdefs.h <<\EOF +test "x$enable_xmc_glitch" = xyes && +cat >>confdefs.h <<\EOF #define USE_XMC_SUPPORT 1 EOF ############################################################################### # These are just experimental, probably should not be in a package: -echo "$as_me:10786: checking if you do not want to assume colors are white-on-black" >&5 +echo "$as_me:11676: checking if you do not want to assume colors are white-on-black" >&5 echo $ECHO_N "checking if you do not want to assume colors are white-on-black... $ECHO_C" >&6 # Check whether --enable-assumed-color or --disable-assumed-color was given. @@ -10793,14 +11683,15 @@ if test "${enable_assumed_color+set}" = set; then else with_assumed_color=yes fi; -echo "$as_me:10796: result: $with_assumed_color" >&5 +echo "$as_me:11686: result: $with_assumed_color" >&5 echo "${ECHO_T}$with_assumed_color" >&6 -test "$with_assumed_color" = yes && cat >>confdefs.h <<\EOF +test "x$with_assumed_color" = xyes && +cat >>confdefs.h <<\EOF #define USE_ASSUMED_COLOR 1 EOF ### use option --enable-hashmap to turn on use of hashmap scrolling logic -echo "$as_me:10803: checking if you want hashmap scrolling-optimization code" >&5 +echo "$as_me:11694: checking if you want hashmap scrolling-optimization code" >&5 echo $ECHO_N "checking if you want hashmap scrolling-optimization code... $ECHO_C" >&6 # Check whether --enable-hashmap or --disable-hashmap was given. @@ -10810,14 +11701,15 @@ if test "${enable_hashmap+set}" = set; then else with_hashmap=yes fi; -echo "$as_me:10813: result: $with_hashmap" >&5 +echo "$as_me:11704: result: $with_hashmap" >&5 echo "${ECHO_T}$with_hashmap" >&6 -test "$with_hashmap" = yes && cat >>confdefs.h <<\EOF +test "x$with_hashmap" = xyes && +cat >>confdefs.h <<\EOF #define USE_HASHMAP 1 EOF ### use option --enable-colorfgbg to turn on use of $COLORFGBG environment -echo "$as_me:10820: checking if you want colorfgbg code" >&5 +echo "$as_me:11712: checking if you want colorfgbg code" >&5 echo $ECHO_N "checking if you want colorfgbg code... $ECHO_C" >&6 # Check whether --enable-colorfgbg or --disable-colorfgbg was given. @@ -10827,14 +11719,15 @@ if test "${enable_colorfgbg+set}" = set; then else with_colorfgbg=no fi; -echo "$as_me:10830: result: $with_colorfgbg" >&5 +echo "$as_me:11722: result: $with_colorfgbg" >&5 echo "${ECHO_T}$with_colorfgbg" >&6 -test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF +test "x$with_colorfgbg" = xyes && +cat >>confdefs.h <<\EOF #define USE_COLORFGBG 1 EOF ### use option --enable-interop to turn on use of bindings used for interop -echo "$as_me:10837: checking if you want interop bindings" >&5 +echo "$as_me:11730: checking if you want interop bindings" >&5 echo $ECHO_N "checking if you want interop bindings... $ECHO_C" >&6 # Check whether --enable-interop or --disable-interop was given. @@ -10844,16 +11737,16 @@ if test "${enable_interop+set}" = set; then else with_exp_interop=no fi; -echo "$as_me:10847: result: $with_exp_interop" >&5 +echo "$as_me:11740: result: $with_exp_interop" >&5 echo "${ECHO_T}$with_exp_interop" >&6 NCURSES_INTEROP_FUNCS=0 -test "$with_exp_interop" = yes && NCURSES_INTEROP_FUNCS=1 +test "x$with_exp_interop" = xyes && NCURSES_INTEROP_FUNCS=1 # This is still experimental (20080329), but should ultimately be moved to # the script-block --with-normal, etc. -echo "$as_me:10856: checking if you want to link with the pthread library" >&5 +echo "$as_me:11749: checking if you want to link with the pthread library" >&5 echo $ECHO_N "checking if you want to link with the pthread library... $ECHO_C" >&6 # Check whether --with-pthread or --without-pthread was given. @@ -10863,27 +11756,27 @@ if test "${with_pthread+set}" = set; then else with_pthread=no fi; -echo "$as_me:10866: result: $with_pthread" >&5 +echo "$as_me:11759: result: $with_pthread" >&5 echo "${ECHO_T}$with_pthread" >&6 if test "$with_pthread" != no ; then - echo "$as_me:10870: checking for pthread.h" >&5 + echo "$as_me:11763: checking for pthread.h" >&5 echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6 if test "${ac_cv_header_pthread_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 10876 "configure" +#line 11769 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:10880: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:11773: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:10886: \$? = $ac_status" >&5 + echo "$as_me:11779: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -10902,20 +11795,22 @@ else fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:10905: result: $ac_cv_header_pthread_h" >&5 +echo "$as_me:11798: result: $ac_cv_header_pthread_h" >&5 echo "${ECHO_T}$ac_cv_header_pthread_h" >&6 if test $ac_cv_header_pthread_h = yes; then - cat >>confdefs.h <<\EOF +cat >>confdefs.h <<\EOF #define HAVE_PTHREADS_H 1 EOF - echo "$as_me:10913: checking if we can link with the pthread library" >&5 -echo $ECHO_N "checking if we can link with the pthread library... $ECHO_C" >&6 - cf_save_LIBS="$LIBS" - LIBS="-lpthread $LIBS" - cat >conftest.$ac_ext <<_ACEOF -#line 10918 "configure" + for cf_lib_pthread in pthread c_r + do + echo "$as_me:11808: checking if we can link with the $cf_lib_pthread library" >&5 +echo $ECHO_N "checking if we can link with the $cf_lib_pthread library... $ECHO_C" >&6 + cf_save_LIBS="$LIBS" + LIBS="-l$cf_lib_pthread $LIBS" + cat >conftest.$ac_ext <<_ACEOF +#line 11813 "configure" #include "confdefs.h" #include @@ -10924,23 +11819,24 @@ int main () { - int rc = pthread_create(0,0,0,0); + int rc = pthread_create(0,0,0,0); + int r2 = pthread_mutexattr_settype(0, 0); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:10934: \"$ac_link\"") >&5 +if { (eval echo "$as_me:11830: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:10937: \$? = $ac_status" >&5 + echo "$as_me:11833: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:10940: \"$ac_try\"") >&5 + { (eval echo "$as_me:11836: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:10943: \$? = $ac_status" >&5 + echo "$as_me:11839: \$? = $ac_status" >&5 (exit $ac_status); }; }; then with_pthread=yes else @@ -10949,34 +11845,37 @@ cat conftest.$ac_ext >&5 with_pthread=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - LIBS="$cf_save_LIBS" - echo "$as_me:10953: result: $with_pthread" >&5 + LIBS="$cf_save_LIBS" + echo "$as_me:11849: result: $with_pthread" >&5 echo "${ECHO_T}$with_pthread" >&6 + test "$with_pthread" = yes && break + done - if test "$with_pthread" = yes ; then - LIBS="-lpthread $LIBS" - cat >>confdefs.h <<\EOF + if test "$with_pthread" = yes ; then + LIBS="-l$cf_lib_pthread $LIBS" + +cat >>confdefs.h <<\EOF #define HAVE_LIBPTHREADS 1 EOF - else - { { echo "$as_me:10963: error: Cannot link with pthread library" >&5 + else + { { echo "$as_me:11862: error: Cannot link with pthread library" >&5 echo "$as_me: error: Cannot link with pthread library" >&2;} { (exit 1); exit 1; }; } - fi + fi fi fi if test "x$with_pthread" != xno; then - echo "$as_me:10973: checking for pthread_kill" >&5 + echo "$as_me:11872: checking for pthread_kill" >&5 echo $ECHO_N "checking for pthread_kill... $ECHO_C" >&6 if test "${ac_cv_func_pthread_kill+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 10979 "configure" +#line 11878 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char pthread_kill (); below. */ @@ -10999,7 +11898,7 @@ main () #if defined (__stub_pthread_kill) || defined (__stub___pthread_kill) choke me #else -f = pthread_kill; +f = pthread_kill; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; #endif ; @@ -11007,16 +11906,16 @@ f = pthread_kill; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:11010: \"$ac_link\"") >&5 +if { (eval echo "$as_me:11909: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:11013: \$? = $ac_status" >&5 + echo "$as_me:11912: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:11016: \"$ac_try\"") >&5 + { (eval echo "$as_me:11915: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11019: \$? = $ac_status" >&5 + echo "$as_me:11918: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_pthread_kill=yes else @@ -11026,11 +11925,11 @@ ac_cv_func_pthread_kill=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:11029: result: $ac_cv_func_pthread_kill" >&5 +echo "$as_me:11928: result: $ac_cv_func_pthread_kill" >&5 echo "${ECHO_T}$ac_cv_func_pthread_kill" >&6 if test $ac_cv_func_pthread_kill = yes; then - echo "$as_me:11033: checking if you want to allow EINTR in wgetch with pthreads" >&5 + echo "$as_me:11932: checking if you want to allow EINTR in wgetch with pthreads" >&5 echo $ECHO_N "checking if you want to allow EINTR in wgetch with pthreads... $ECHO_C" >&6 # Check whether --enable-pthreads-eintr or --disable-pthreads-eintr was given. @@ -11040,17 +11939,18 @@ if test "${enable_pthreads_eintr+set}" = set; then else use_pthreads_eintr=no fi; - echo "$as_me:11043: result: $use_pthreads_eintr" >&5 + echo "$as_me:11942: result: $use_pthreads_eintr" >&5 echo "${ECHO_T}$use_pthreads_eintr" >&6 - if test $use_pthreads_eintr = yes ; then - cat >>confdefs.h <<\EOF + if test "x$use_pthreads_eintr" = xyes ; then + +cat >>confdefs.h <<\EOF #define USE_PTHREADS_EINTR 1 EOF fi fi - echo "$as_me:11053: checking if you want to use weak-symbols for pthreads" >&5 + echo "$as_me:11953: checking if you want to use weak-symbols for pthreads" >&5 echo $ECHO_N "checking if you want to use weak-symbols for pthreads... $ECHO_C" >&6 # Check whether --enable-weak-symbols or --disable-weak-symbols was given. @@ -11060,18 +11960,18 @@ if test "${enable_weak_symbols+set}" = set; then else use_weak_symbols=no fi; - echo "$as_me:11063: result: $use_weak_symbols" >&5 + echo "$as_me:11963: result: $use_weak_symbols" >&5 echo "${ECHO_T}$use_weak_symbols" >&6 - if test "$use_weak_symbols" = yes ; then + if test "x$use_weak_symbols" = xyes ; then -echo "$as_me:11067: checking if $CC supports weak symbols" >&5 +echo "$as_me:11967: checking if $CC supports weak symbols" >&5 echo $ECHO_N "checking if $CC supports weak symbols... $ECHO_C" >&6 if test "${cf_cv_weak_symbols+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 11074 "configure" +#line 11974 "configure" #include "confdefs.h" #include @@ -11097,16 +11997,16 @@ weak_symbol(fopen); } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:11100: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:12000: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:11103: \$? = $ac_status" >&5 + echo "$as_me:12003: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:11106: \"$ac_try\"") >&5 + { (eval echo "$as_me:12006: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11109: \$? = $ac_status" >&5 + echo "$as_me:12009: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_weak_symbols=yes else @@ -11117,15 +12017,16 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:11120: result: $cf_cv_weak_symbols" >&5 +echo "$as_me:12020: result: $cf_cv_weak_symbols" >&5 echo "${ECHO_T}$cf_cv_weak_symbols" >&6 else cf_cv_weak_symbols=no fi - if test $cf_cv_weak_symbols = yes ; then - cat >>confdefs.h <<\EOF + if test "x$cf_cv_weak_symbols" = xyes ; then + +cat >>confdefs.h <<\EOF #define USE_WEAK_SYMBOLS 1 EOF @@ -11133,13 +12034,14 @@ EOF fi PTHREAD= -if test "$with_pthread" = "yes" ; then - cat >>confdefs.h <<\EOF +if test "x$with_pthread" = "xyes" ; then + +cat >>confdefs.h <<\EOF #define USE_PTHREADS 1 EOF enable_reentrant=yes - if test $cf_cv_weak_symbols = yes ; then + if test "x$cf_cv_weak_symbols" = xyes ; then PTHREAD=-lpthread fi fi @@ -11148,7 +12050,7 @@ fi # opaque outside of that, so there is no --enable-opaque option. We can use # this option without --with-pthreads, but this will be always set for # pthreads. -echo "$as_me:11151: checking if you want experimental reentrant code" >&5 +echo "$as_me:12053: checking if you want experimental reentrant code" >&5 echo $ECHO_N "checking if you want experimental reentrant code... $ECHO_C" >&6 # Check whether --enable-reentrant or --disable-reentrant was given. @@ -11158,14 +12060,14 @@ if test "${enable_reentrant+set}" = set; then else with_reentrant=no fi; -echo "$as_me:11161: result: $with_reentrant" >&5 +echo "$as_me:12063: result: $with_reentrant" >&5 echo "${ECHO_T}$with_reentrant" >&6 -if test "$with_reentrant" = yes ; then +if test "x$with_reentrant" = xyes ; then cf_cv_enable_reentrant=1 cf_cv_enable_opaque="NCURSES_INTERNALS" NCURSES_OPAQUE=1 NCURSES_SIZE_T=int - if test $cf_cv_weak_symbols = yes ; then + if test "x$cf_cv_weak_symbols" = xyes ; then # remove pthread library from $LIBS LIBS=`echo "$LIBS" | sed -e 's/-lpthread[ ]//g' -e 's/-lpthread$//'` @@ -11173,9 +12075,20 @@ LIBS=`echo "$LIBS" | sed -e 's/-lpthread[ ]//g' -e 's/-lpthread$//'` TEST_LIBS="-lpthread $TEST_LIBS" TEST_LIBS2="-lpthread $TEST_LIBS2" else - LIB_SUFFIX="t${LIB_SUFFIX}" + # when not using weak symbols but with_reentrant, + # add 't' to the library suffix on all platforms + # except cygwin, where we only do that if ALSO + # compiling with full thread support. + case "$host" in + *cygwin* | *msys*) + if test "$with_pthread" = "yes" ; then + LIB_SUFFIX="t${LIB_SUFFIX}" + fi ;; + * ) LIB_SUFFIX="t${LIB_SUFFIX}" ;; + esac fi - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define USE_REENTRANT 1 EOF @@ -11184,7 +12097,7 @@ if test "${with_abi_version+set}" != set; then 5.*) cf_cv_rel_version=6.0 cf_cv_abi_version=6 - { echo "$as_me:11187: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5 + { echo "$as_me:12100: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5 echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;} ;; esac @@ -11199,7 +12112,7 @@ fi ### Allow using a different wrap-prefix if test "$cf_cv_enable_reentrant" != 0 || test "$BROKEN_LINKER" = 1 ; then - echo "$as_me:11202: checking for prefix used to wrap public variables" >&5 + echo "$as_me:12115: checking for prefix used to wrap public variables" >&5 echo $ECHO_N "checking for prefix used to wrap public variables... $ECHO_C" >&6 # Check whether --with-wrap-prefix or --without-wrap-prefix was given. @@ -11209,7 +12122,7 @@ if test "${with_wrap_prefix+set}" = set; then else NCURSES_WRAP_PREFIX=_nc_ fi; - echo "$as_me:11212: result: $NCURSES_WRAP_PREFIX" >&5 + echo "$as_me:12125: result: $NCURSES_WRAP_PREFIX" >&5 echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6 else NCURSES_WRAP_PREFIX=_nc_ @@ -11219,7 +12132,7 @@ cat >>confdefs.h <&5 +echo "$as_me:12135: checking if you want experimental safe-sprintf code" >&5 echo $ECHO_N "checking if you want experimental safe-sprintf code... $ECHO_C" >&6 # Check whether --enable-safe-sprintf or --disable-safe-sprintf was given. @@ -11229,16 +12142,17 @@ if test "${enable_safe_sprintf+set}" = set; then else with_safe_sprintf=no fi; -echo "$as_me:11232: result: $with_safe_sprintf" >&5 +echo "$as_me:12145: result: $with_safe_sprintf" >&5 echo "${ECHO_T}$with_safe_sprintf" >&6 -test "$with_safe_sprintf" = yes && cat >>confdefs.h <<\EOF +test "x$with_safe_sprintf" = xyes && +cat >>confdefs.h <<\EOF #define USE_SAFE_SPRINTF 1 EOF ### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic # when hashmap is used scroll hints are useless if test "$with_hashmap" = no ; then -echo "$as_me:11241: checking if you want to experiment without scrolling-hints code" >&5 +echo "$as_me:12155: checking if you want to experiment without scrolling-hints code" >&5 echo $ECHO_N "checking if you want to experiment without scrolling-hints code... $ECHO_C" >&6 # Check whether --enable-scroll-hints or --disable-scroll-hints was given. @@ -11248,15 +12162,16 @@ if test "${enable_scroll_hints+set}" = set; then else with_scroll_hints=yes fi; -echo "$as_me:11251: result: $with_scroll_hints" >&5 +echo "$as_me:12165: result: $with_scroll_hints" >&5 echo "${ECHO_T}$with_scroll_hints" >&6 -test "$with_scroll_hints" = yes && cat >>confdefs.h <<\EOF +test "x$with_scroll_hints" = xyes && +cat >>confdefs.h <<\EOF #define USE_SCROLL_HINTS 1 EOF fi -echo "$as_me:11259: checking if you want experimental wgetch-events code" >&5 +echo "$as_me:12174: checking if you want experimental wgetch-events code" >&5 echo $ECHO_N "checking if you want experimental wgetch-events code... $ECHO_C" >&6 # Check whether --enable-wgetch-events or --disable-wgetch-events was given. @@ -11266,37 +12181,64 @@ if test "${enable_wgetch_events+set}" = set; then else with_wgetch_events=no fi; -echo "$as_me:11269: result: $with_wgetch_events" >&5 +echo "$as_me:12184: result: $with_wgetch_events" >&5 echo "${ECHO_T}$with_wgetch_events" >&6 -test "$with_wgetch_events" = yes && cat >>confdefs.h <<\EOF +test "x$with_wgetch_events" = xyes && +cat >>confdefs.h <<\EOF #define NCURSES_WGETCH_EVENTS 1 EOF ############################################################################### ### use option --disable-echo to suppress full display compiling commands -echo "$as_me:11278: checking if you want to display full commands during build" >&5 -echo $ECHO_N "checking if you want to display full commands during build... $ECHO_C" >&6 + +echo "$as_me:12195: checking if you want to see long compiling messages" >&5 +echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6 # Check whether --enable-echo or --disable-echo was given. if test "${enable_echo+set}" = set; then enableval="$enable_echo" - with_echo=$enableval + test "$enableval" != no && enableval=yes + if test "$enableval" != "yes" ; then + + ECHO_LT='--silent' + ECHO_LD='@echo linking $@;' + RULE_CC='@echo compiling $<' + SHOW_CC='@echo compiling $@' + ECHO_CC='@' + + else + + ECHO_LT='' + ECHO_LD='' + RULE_CC='' + SHOW_CC='' + ECHO_CC='' + + fi else - with_echo=yes + enableval=yes + + ECHO_LT='' + ECHO_LD='' + RULE_CC='' + SHOW_CC='' + ECHO_CC='' + fi; -if test "$with_echo" = yes; then +echo "$as_me:12229: result: $enableval" >&5 +echo "${ECHO_T}$enableval" >&6 + +if test "x$enable_echo" = xyes; then ECHO_LINK= else ECHO_LINK='@ echo linking $@ ... ;' test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent" test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent" fi -echo "$as_me:11295: result: $with_echo" >&5 -echo "${ECHO_T}$with_echo" >&6 ### use option --enable-warnings to turn on all gcc warnings -echo "$as_me:11299: checking if you want to see compiler warnings" >&5 +echo "$as_me:12241: checking if you want to see compiler warnings" >&5 echo $ECHO_N "checking if you want to see compiler warnings... $ECHO_C" >&6 # Check whether --enable-warnings or --disable-warnings was given. @@ -11304,7 +12246,7 @@ if test "${enable_warnings+set}" = set; then enableval="$enable_warnings" with_warnings=$enableval fi; -echo "$as_me:11307: result: $with_warnings" >&5 +echo "$as_me:12249: result: $with_warnings" >&5 echo "${ECHO_T}$with_warnings" >&6 if test "x$with_warnings" = "xyes"; then @@ -11316,12 +12258,12 @@ INTEL_COMPILER=no if test "$GCC" = yes ; then case $host_os in linux*|gnu*) - echo "$as_me:11319: checking if this is really Intel C compiler" >&5 + echo "$as_me:12261: checking if this is really Intel C compiler" >&5 echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6 cf_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -no-gcc" cat >conftest.$ac_ext <<_ACEOF -#line 11324 "configure" +#line 12266 "configure" #include "confdefs.h" int @@ -11338,16 +12280,16 @@ make an error } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:11341: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:12283: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:11344: \$? = $ac_status" >&5 + echo "$as_me:12286: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:11347: \"$ac_try\"") >&5 + { (eval echo "$as_me:12289: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11350: \$? = $ac_status" >&5 + echo "$as_me:12292: \$? = $ac_status" >&5 (exit $ac_status); }; }; then INTEL_COMPILER=yes cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc" @@ -11358,14 +12300,63 @@ cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext CFLAGS="$cf_save_CFLAGS" - echo "$as_me:11361: result: $INTEL_COMPILER" >&5 + echo "$as_me:12303: result: $INTEL_COMPILER" >&5 echo "${ECHO_T}$INTEL_COMPILER" >&6 ;; esac fi +CLANG_COMPILER=no + +if test "$GCC" = yes ; then + echo "$as_me:12312: checking if this is really Clang C compiler" >&5 +echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6 + cf_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Qunused-arguments" + cat >conftest.$ac_ext <<_ACEOF +#line 12317 "configure" +#include "confdefs.h" + +int +main () +{ + +#ifdef __clang__ +#else +make an error +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:12334: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:12337: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:12340: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:12343: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + CLANG_COMPILER=yes +cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments" + +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest.$ac_ext + CFLAGS="$cf_save_CFLAGS" + echo "$as_me:12354: result: $CLANG_COMPILER" >&5 +echo "${ECHO_T}$CLANG_COMPILER" >&6 +fi + cat > conftest.$ac_ext <&5 + { echo "$as_me:12376: checking for $CC warning options..." >&5 echo "$as_me: checking for $CC warning options..." >&6;} cf_save_CFLAGS="$CFLAGS" EXTRA_CFLAGS="-Wall" @@ -11398,12 +12389,12 @@ echo "$as_me: checking for $CC warning options..." >&6;} wd981 do CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" - if { (eval echo "$as_me:11401: \"$ac_compile\"") >&5 + if { (eval echo "$as_me:12392: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:11404: \$? = $ac_status" >&5 + echo "$as_me:12395: \$? = $ac_status" >&5 (exit $ac_status); }; then - test -n "$verbose" && echo "$as_me:11406: result: ... -$cf_opt" >&5 + test -n "$verbose" && echo "$as_me:12397: result: ... -$cf_opt" >&5 echo "${ECHO_T}... -$cf_opt" >&6 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" fi @@ -11412,16 +12403,20 @@ echo "${ECHO_T}... -$cf_opt" >&6 elif test "$GCC" = yes then - { echo "$as_me:11415: checking for $CC warning options..." >&5 + { echo "$as_me:12406: checking for $CC warning options..." >&5 echo "$as_me: checking for $CC warning options..." >&6;} cf_save_CFLAGS="$CFLAGS" EXTRA_CFLAGS= cf_warn_CONST="" test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings" + cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs" + test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings= for cf_opt in W Wall \ Wbad-function-cast \ Wcast-align \ Wcast-qual \ + Wdeclaration-after-statement \ + Wextra \ Winline \ Wmissing-declarations \ Wmissing-prototypes \ @@ -11429,15 +12424,15 @@ echo "$as_me: checking for $CC warning options..." >&6;} Wpointer-arith \ Wshadow \ Wstrict-prototypes \ - Wundef $cf_warn_CONST Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum + Wundef $cf_gcc_warnings $cf_warn_CONST Wno-unknown-pragmas Wswitch-enum do CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" - if { (eval echo "$as_me:11435: \"$ac_compile\"") >&5 + if { (eval echo "$as_me:12430: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:11438: \$? = $ac_status" >&5 + echo "$as_me:12433: \$? = $ac_status" >&5 (exit $ac_status); }; then - test -n "$verbose" && echo "$as_me:11440: result: ... -$cf_opt" >&5 + test -n "$verbose" && echo "$as_me:12435: result: ... -$cf_opt" >&5 echo "${ECHO_T}... -$cf_opt" >&6 case $cf_opt in #(vi Wcast-qual) #(vi @@ -11448,7 +12443,17 @@ echo "${ECHO_T}... -$cf_opt" >&6 [34].*) test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6 -echo "${as_me:-configure}:11451: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 +echo "${as_me:-configure}:12446: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 + + continue;; + esac + ;; + Wpointer-arith) #(vi + case $GCC_VERSION in + [12].*) + test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6 + +echo "${as_me:-configure}:12456: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 continue;; esac @@ -11461,19 +12466,19 @@ echo "${as_me:-configure}:11451: testing feature is broken in gcc $GCC_VERSION . fi rm -rf conftest* - if test "$cf_with_cxx" = yes ; then + if test "x$cf_with_cxx" = xyes ; then INTEL_CPLUSPLUS=no if test "$GCC" = yes ; then case $host_os in linux*|gnu*) - echo "$as_me:11471: checking if this is really Intel C++ compiler" >&5 + echo "$as_me:12476: checking if this is really Intel C++ compiler" >&5 echo $ECHO_N "checking if this is really Intel C++ compiler... $ECHO_C" >&6 cf_save_CFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -no-gcc" cat >conftest.$ac_ext <<_ACEOF -#line 11476 "configure" +#line 12481 "configure" #include "confdefs.h" int @@ -11490,16 +12495,16 @@ make an error } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:11493: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:12498: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:11496: \$? = $ac_status" >&5 + echo "$as_me:12501: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:11499: \"$ac_try\"") >&5 + { (eval echo "$as_me:12504: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11502: \$? = $ac_status" >&5 + echo "$as_me:12507: \$? = $ac_status" >&5 (exit $ac_status); }; }; then INTEL_CPLUSPLUS=yes cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc" @@ -11510,12 +12515,61 @@ cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext CXXFLAGS="$cf_save_CFLAGS" - echo "$as_me:11513: result: $INTEL_CPLUSPLUS" >&5 + echo "$as_me:12518: result: $INTEL_CPLUSPLUS" >&5 echo "${ECHO_T}$INTEL_CPLUSPLUS" >&6 ;; esac fi +CLANG_CPLUSPLUS=no + +if test "$GCC" = yes ; then + echo "$as_me:12527: checking if this is really Clang C++ compiler" >&5 +echo $ECHO_N "checking if this is really Clang C++ compiler... $ECHO_C" >&6 + cf_save_CFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -Qunused-arguments" + cat >conftest.$ac_ext <<_ACEOF +#line 12532 "configure" +#include "confdefs.h" + +int +main () +{ + +#ifdef __clang__ +#else +make an error +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:12549: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:12552: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:12555: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:12558: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + CLANG_CPLUSPLUS=yes +cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments" + +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest.$ac_ext + CXXFLAGS="$cf_save_CFLAGS" + echo "$as_me:12569: result: $CLANG_CPLUSPLUS" >&5 +echo "${ECHO_T}$CLANG_CPLUSPLUS" >&6 +fi + ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -11524,7 +12578,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_main_return=return cat > conftest.$ac_ext <&5 + { echo "$as_me:12599: checking for $CC warning options..." >&5 echo "$as_me: checking for $CC warning options..." >&6;} cf_save_CXXFLAGS="$CXXFLAGS" EXTRA_CXXFLAGS="-Wall" @@ -11559,12 +12613,12 @@ echo "$as_me: checking for $CC warning options..." >&6;} wd981 do CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt" - if { (eval echo "$as_me:11562: \"$ac_compile\"") >&5 + if { (eval echo "$as_me:12616: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:11565: \$? = $ac_status" >&5 + echo "$as_me:12619: \$? = $ac_status" >&5 (exit $ac_status); }; then - test -n "$verbose" && echo "$as_me:11567: result: ... -$cf_opt" >&5 + test -n "$verbose" && echo "$as_me:12621: result: ... -$cf_opt" >&5 echo "${ECHO_T}... -$cf_opt" >&6 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt" fi @@ -11573,7 +12627,7 @@ echo "${ECHO_T}... -$cf_opt" >&6 elif test "$GXX" = yes then - { echo "$as_me:11576: checking for $CXX warning options..." >&5 + { echo "$as_me:12630: checking for $CXX warning options..." >&5 echo "$as_me: checking for $CXX warning options..." >&6;} cf_save_CXXFLAGS="$CXXFLAGS" EXTRA_CXXFLAGS="-W -Wall" @@ -11589,29 +12643,30 @@ echo "$as_me: checking for $CXX warning options..." >&6;} for cf_opt in \ Wabi \ fabi-version=0 \ + Wextra \ + Wignored-qualifiers \ + Wlogical-op \ Woverloaded-virtual \ Wsign-promo \ Wsynth \ Wold-style-cast \ Wcast-align \ Wcast-qual \ - Wmissing-prototypes \ Wpointer-arith \ Wshadow \ - Wstrict-prototypes \ Wundef $cf_gxx_extra_warnings Wno-unused do CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt" - if { (eval echo "$as_me:11605: \"$ac_compile\"") >&5 + if { (eval echo "$as_me:12660: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:11608: \$? = $ac_status" >&5 + echo "$as_me:12663: \$? = $ac_status" >&5 (exit $ac_status); }; then - test -n "$verbose" && echo "$as_me:11610: result: ... -$cf_opt" >&5 + test -n "$verbose" && echo "$as_me:12665: result: ... -$cf_opt" >&5 echo "${ECHO_T}... -$cf_opt" >&6 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt" else - test -n "$verbose" && echo "$as_me:11614: result: ... no -$cf_opt" >&5 + test -n "$verbose" && echo "$as_me:12669: result: ... no -$cf_opt" >&5 echo "${ECHO_T}... no -$cf_opt" >&6 fi done @@ -11647,10 +12702,10 @@ cat > conftest.i <&5 + { echo "$as_me:12705: checking for $CC __attribute__ directives..." >&5 echo "$as_me: checking for $CC __attribute__ directives..." >&6;} cat > conftest.$ac_ext <&5 + if { (eval echo "$as_me:12757: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:11705: \$? = $ac_status" >&5 + echo "$as_me:12760: \$? = $ac_status" >&5 (exit $ac_status); }; then - test -n "$verbose" && echo "$as_me:11707: result: ... $cf_attribute" >&5 + test -n "$verbose" && echo "$as_me:12762: result: ... $cf_attribute" >&5 echo "${ECHO_T}... $cf_attribute" >&6 cat conftest.h >>confdefs.h case $cf_attribute in #(vi + noreturn) #(vi + +cat >>confdefs.h <>confdefs.h <>confdefs.h <>confdefs.h <<\EOF +#define GCC_PRINTF 1 EOF + fi + +cat >>confdefs.h <>confdefs.h <>confdefs.h <>confdefs.h <<\EOF +#define GCC_SCANF 1 EOF + fi + +cat >>confdefs.h <>confdefs.h <&5 +echo $ECHO_N "checking if you want to work around bogus compiler/loader warnings... $ECHO_C" >&6 + +# Check whether --enable-string-hacks or --disable-string-hacks was given. +if test "${enable_string_hacks+set}" = set; then + enableval="$enable_string_hacks" + with_string_hacks=$enableval +else + with_string_hacks=no +fi; +echo "$as_me:12831: result: $with_string_hacks" >&5 +echo "${ECHO_T}$with_string_hacks" >&6 + +if test "x$with_string_hacks" = "xyes"; then + +cat >>confdefs.h <<\EOF +#define USE_STRING_HACKS 1 +EOF + + { echo "$as_me:12840: WARNING: enabling string-hacks to work around bogus compiler/loader warnings" >&5 +echo "$as_me: WARNING: enabling string-hacks to work around bogus compiler/loader warnings" >&2;} + +for ac_func in strlcat strlcpy snprintf +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:12846: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 12852 "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:12883: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:12886: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:12889: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:12892: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:12902: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <&5 +echo "$as_me:12915: checking if you want to enable runtime assertions" >&5 echo $ECHO_N "checking if you want to enable runtime assertions... $ECHO_C" >&6 # Check whether --enable-assertions or --disable-assertions was given. @@ -11750,16 +12922,12 @@ if test "${enable_assertions+set}" = set; then else with_assertions=no fi; -echo "$as_me:11753: result: $with_assertions" >&5 +echo "$as_me:12925: result: $with_assertions" >&5 echo "${ECHO_T}$with_assertions" >&6 if test -n "$GCC" then if test "$with_assertions" = no then - cat >>confdefs.h <<\EOF -#define NDEBUG 1 -EOF - CPPFLAGS="$CPPFLAGS -DNDEBUG" else @@ -11770,13 +12938,14 @@ fi ### use option --disable-leaks to suppress "permanent" leaks, for testing -echo "$as_me:11773: checking if you want to use dmalloc for testing" >&5 +echo "$as_me:12941: checking if you want to use dmalloc for testing" >&5 echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6 # Check whether --with-dmalloc or --without-dmalloc was given. if test "${with_dmalloc+set}" = set; then withval="$with_dmalloc" - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <&5 +echo "$as_me:12958: result: ${with_dmalloc:-no}" >&5 echo "${ECHO_T}${with_dmalloc:-no}" >&6 case .$with_cflags in #(vi @@ -11880,23 +13049,23 @@ fi esac if test "$with_dmalloc" = yes ; then - echo "$as_me:11883: checking for dmalloc.h" >&5 + echo "$as_me:13052: checking for dmalloc.h" >&5 echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6 if test "${ac_cv_header_dmalloc_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 11889 "configure" +#line 13058 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:11893: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:13062: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:11899: \$? = $ac_status" >&5 + echo "$as_me:13068: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -11915,11 +13084,11 @@ else fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:11918: result: $ac_cv_header_dmalloc_h" >&5 +echo "$as_me:13087: result: $ac_cv_header_dmalloc_h" >&5 echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6 if test $ac_cv_header_dmalloc_h = yes; then -echo "$as_me:11922: checking for dmalloc_debug in -ldmalloc" >&5 +echo "$as_me:13091: checking for dmalloc_debug in -ldmalloc" >&5 echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6 if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -11927,7 +13096,7 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-ldmalloc $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 11930 "configure" +#line 13099 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -11946,16 +13115,16 @@ dmalloc_debug (); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:11949: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13118: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:11952: \$? = $ac_status" >&5 + echo "$as_me:13121: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:11955: \"$ac_try\"") >&5 + { (eval echo "$as_me:13124: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11958: \$? = $ac_status" >&5 + echo "$as_me:13127: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dmalloc_dmalloc_debug=yes else @@ -11966,7 +13135,7 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:11969: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5 +echo "$as_me:13138: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5 echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6 if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then cat >>confdefs.h <&5 +echo "$as_me:13153: checking if you want to use dbmalloc for testing" >&5 echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6 # Check whether --with-dbmalloc or --without-dbmalloc was given. if test "${with_dbmalloc+set}" = set; then withval="$with_dbmalloc" - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <&5 +echo "$as_me:13170: result: ${with_dbmalloc:-no}" >&5 echo "${ECHO_T}${with_dbmalloc:-no}" >&6 case .$with_cflags in #(vi @@ -12091,23 +13261,23 @@ fi esac if test "$with_dbmalloc" = yes ; then - echo "$as_me:12094: checking for dbmalloc.h" >&5 + echo "$as_me:13264: checking for dbmalloc.h" >&5 echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6 if test "${ac_cv_header_dbmalloc_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 12100 "configure" +#line 13270 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:12104: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:13274: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:12110: \$? = $ac_status" >&5 + echo "$as_me:13280: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -12126,11 +13296,11 @@ else fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:12129: result: $ac_cv_header_dbmalloc_h" >&5 +echo "$as_me:13299: result: $ac_cv_header_dbmalloc_h" >&5 echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6 if test $ac_cv_header_dbmalloc_h = yes; then -echo "$as_me:12133: checking for debug_malloc in -ldbmalloc" >&5 +echo "$as_me:13303: checking for debug_malloc in -ldbmalloc" >&5 echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6 if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -12138,7 +13308,7 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-ldbmalloc $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 12141 "configure" +#line 13311 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -12157,16 +13327,16 @@ debug_malloc (); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:12160: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13330: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:12163: \$? = $ac_status" >&5 + echo "$as_me:13333: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:12166: \"$ac_try\"") >&5 + { (eval echo "$as_me:13336: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12169: \$? = $ac_status" >&5 + echo "$as_me:13339: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dbmalloc_debug_malloc=yes else @@ -12177,7 +13347,7 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:12180: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5 +echo "$as_me:13350: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5 echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6 if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then cat >>confdefs.h <&5 +echo "$as_me:13365: checking if you want to use valgrind for testing" >&5 echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6 # Check whether --with-valgrind or --without-valgrind was given. if test "${with_valgrind+set}" = set; then withval="$with_valgrind" - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <&5 +echo "$as_me:13382: result: ${with_valgrind:-no}" >&5 echo "${ECHO_T}${with_valgrind:-no}" >&6 case .$with_cflags in #(vi @@ -12301,7 +13472,7 @@ fi ;; esac -echo "$as_me:12304: checking if you want to perform memory-leak testing" >&5 +echo "$as_me:13475: checking if you want to perform memory-leak testing" >&5 echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6 # Check whether --enable-leaks or --disable-leaks was given. @@ -12311,15 +13482,16 @@ if test "${enable_leaks+set}" = set; then else : ${with_no_leaks:=no} fi; -echo "$as_me:12314: result: $with_no_leaks" >&5 +echo "$as_me:13485: result: $with_no_leaks" >&5 echo "${ECHO_T}$with_no_leaks" >&6 if test "$with_no_leaks" = yes ; then - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define NO_LEAKS 1 EOF - cat >>confdefs.h <<\EOF +cat >>confdefs.h <<\EOF #define YY_NO_LEAKS 1 EOF @@ -12334,7 +13506,8 @@ EOF # Check whether --enable-expanded or --disable-expanded was given. if test "${enable_expanded+set}" = set; then enableval="$enable_expanded" - test "$enableval" = yes && cat >>confdefs.h <<\EOF + test "x$enableval" = xyes && +cat >>confdefs.h <<\EOF #define NCURSES_EXPANDED 1 EOF @@ -12345,7 +13518,8 @@ fi; # Check whether --enable-macros or --disable-macros was given. if test "${enable_macros+set}" = set; then enableval="$enable_macros" - test "$enableval" = no && cat >>confdefs.h <<\EOF + test "$enableval" = no && +cat >>confdefs.h <<\EOF #define NCURSES_NOMACROS 1 EOF @@ -12360,7 +13534,7 @@ case "$CFLAGS $CPPFLAGS" in ;; esac -echo "$as_me:12363: checking whether to add trace feature to all models" >&5 +echo "$as_me:13537: checking whether to add trace feature to all models" >&5 echo $ECHO_N "checking whether to add trace feature to all models... $ECHO_C" >&6 # Check whether --with-trace or --without-trace was given. @@ -12370,10 +13544,10 @@ if test "${with_trace+set}" = set; then else cf_with_trace=$cf_all_traces fi; -echo "$as_me:12373: result: $cf_with_trace" >&5 +echo "$as_me:13547: result: $cf_with_trace" >&5 echo "${ECHO_T}$cf_with_trace" >&6 -if test "$cf_with_trace" = yes ; then +if test "x$cf_with_trace" = xyes ; then LIB_TRACING=all ADA_TRACE=TRUE @@ -12465,13 +13639,13 @@ case $cf_cv_system_name in #(vi *mingw32*) #(vi ;; *) -echo "$as_me:12468: checking for gettimeofday" >&5 +echo "$as_me:13642: checking for gettimeofday" >&5 echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6 if test "${ac_cv_func_gettimeofday+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 12474 "configure" +#line 13648 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gettimeofday (); below. */ @@ -12494,7 +13668,7 @@ main () #if defined (__stub_gettimeofday) || defined (__stub___gettimeofday) choke me #else -f = gettimeofday; +f = gettimeofday; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; #endif ; @@ -12502,16 +13676,16 @@ f = gettimeofday; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:12505: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13679: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:12508: \$? = $ac_status" >&5 + echo "$as_me:13682: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:12511: \"$ac_try\"") >&5 + { (eval echo "$as_me:13685: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12514: \$? = $ac_status" >&5 + echo "$as_me:13688: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_gettimeofday=yes else @@ -12521,16 +13695,17 @@ ac_cv_func_gettimeofday=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:12524: result: $ac_cv_func_gettimeofday" >&5 +echo "$as_me:13698: result: $ac_cv_func_gettimeofday" >&5 echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6 if test $ac_cv_func_gettimeofday = yes; then - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define HAVE_GETTIMEOFDAY 1 EOF else -echo "$as_me:12533: checking for gettimeofday in -lbsd" >&5 +echo "$as_me:13708: checking for gettimeofday in -lbsd" >&5 echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6 if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -12538,7 +13713,7 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 12541 "configure" +#line 13716 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -12557,16 +13732,16 @@ gettimeofday (); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:12560: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13735: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:12563: \$? = $ac_status" >&5 + echo "$as_me:13738: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:12566: \"$ac_try\"") >&5 + { (eval echo "$as_me:13741: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12569: \$? = $ac_status" >&5 + echo "$as_me:13744: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_bsd_gettimeofday=yes else @@ -12577,10 +13752,11 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:12580: result: $ac_cv_lib_bsd_gettimeofday" >&5 +echo "$as_me:13755: result: $ac_cv_lib_bsd_gettimeofday" >&5 echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6 if test $ac_cv_lib_bsd_gettimeofday = yes; then - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define HAVE_GETTIMEOFDAY 1 EOF @@ -12591,14 +13767,14 @@ fi ;; esac -echo "$as_me:12594: checking if -lm needed for math functions" >&5 +echo "$as_me:13770: checking if -lm needed for math functions" >&5 echo $ECHO_N "checking if -lm needed for math functions... $ECHO_C" >&6 if test "${cf_cv_need_libm+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 12601 "configure" +#line 13777 "configure" #include "confdefs.h" #include @@ -12607,22 +13783,22 @@ else int main () { -double x = rand(); printf("result = %g\n", sin(x)) +double x = rand(); printf("result = %g\n", pow(sin(x),x)) ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:12616: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13792: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:12619: \$? = $ac_status" >&5 + echo "$as_me:13795: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:12622: \"$ac_try\"") >&5 + { (eval echo "$as_me:13798: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12625: \$? = $ac_status" >&5 + echo "$as_me:13801: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_need_libm=no else @@ -12632,7 +13808,7 @@ cf_cv_need_libm=yes fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:12635: result: $cf_cv_need_libm" >&5 +echo "$as_me:13811: result: $cf_cv_need_libm" >&5 echo "${ECHO_T}$cf_cv_need_libm" >&6 if test "$cf_cv_need_libm" = yes then @@ -12640,13 +13816,13 @@ MATH_LIB=-lm fi ### Checks for header files. -echo "$as_me:12643: checking for ANSI C header files" >&5 +echo "$as_me:13819: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 12649 "configure" +#line 13825 "configure" #include "confdefs.h" #include #include @@ -12654,13 +13830,13 @@ else #include _ACEOF -if { (eval echo "$as_me:12657: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:13833: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:12663: \$? = $ac_status" >&5 + echo "$as_me:13839: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -12682,7 +13858,7 @@ rm -f conftest.err conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF -#line 12685 "configure" +#line 13861 "configure" #include "confdefs.h" #include @@ -12700,7 +13876,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF -#line 12703 "configure" +#line 13879 "configure" #include "confdefs.h" #include @@ -12721,7 +13897,7 @@ if test $ac_cv_header_stdc = yes; then : else cat >conftest.$ac_ext <<_ACEOF -#line 12724 "configure" +#line 13900 "configure" #include "confdefs.h" #include #if ((' ' & 0x0FF) == 0x020) @@ -12747,15 +13923,15 @@ main () } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:12750: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13926: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:12753: \$? = $ac_status" >&5 + echo "$as_me:13929: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:12755: \"$ac_try\"") >&5 + { (eval echo "$as_me:13931: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12758: \$? = $ac_status" >&5 + echo "$as_me:13934: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -12768,7 +13944,7 @@ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi -echo "$as_me:12771: result: $ac_cv_header_stdc" >&5 +echo "$as_me:13947: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then @@ -12781,13 +13957,13 @@ fi ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -echo "$as_me:12784: checking for $ac_hdr that defines DIR" >&5 +echo "$as_me:13960: checking for $ac_hdr that defines DIR" >&5 echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 12790 "configure" +#line 13966 "configure" #include "confdefs.h" #include #include <$ac_hdr> @@ -12802,16 +13978,16 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:12805: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:13981: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:12808: \$? = $ac_status" >&5 + echo "$as_me:13984: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:12811: \"$ac_try\"") >&5 + { (eval echo "$as_me:13987: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12814: \$? = $ac_status" >&5 + echo "$as_me:13990: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else @@ -12821,7 +13997,7 @@ eval "$as_ac_Header=no" fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:12824: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "$as_me:14000: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <&5 + echo "$as_me:14013: checking for opendir in -ldir" >&5 echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6 if test "${ac_cv_lib_dir_opendir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -12842,7 +14018,7 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-ldir $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 12845 "configure" +#line 14021 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -12861,16 +14037,16 @@ opendir (); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:12864: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14040: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:12867: \$? = $ac_status" >&5 + echo "$as_me:14043: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:12870: \"$ac_try\"") >&5 + { (eval echo "$as_me:14046: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12873: \$? = $ac_status" >&5 + echo "$as_me:14049: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dir_opendir=yes else @@ -12881,14 +14057,14 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:12884: result: $ac_cv_lib_dir_opendir" >&5 +echo "$as_me:14060: result: $ac_cv_lib_dir_opendir" >&5 echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6 if test $ac_cv_lib_dir_opendir = yes; then LIBS="$LIBS -ldir" fi else - echo "$as_me:12891: checking for opendir in -lx" >&5 + echo "$as_me:14067: checking for opendir in -lx" >&5 echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6 if test "${ac_cv_lib_x_opendir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -12896,7 +14072,7 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lx $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 12899 "configure" +#line 14075 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -12915,16 +14091,16 @@ opendir (); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:12918: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14094: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:12921: \$? = $ac_status" >&5 + echo "$as_me:14097: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:12924: \"$ac_try\"") >&5 + { (eval echo "$as_me:14100: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12927: \$? = $ac_status" >&5 + echo "$as_me:14103: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_x_opendir=yes else @@ -12935,7 +14111,7 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:12938: result: $ac_cv_lib_x_opendir" >&5 +echo "$as_me:14114: result: $ac_cv_lib_x_opendir" >&5 echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6 if test $ac_cv_lib_x_opendir = yes; then LIBS="$LIBS -lx" @@ -12943,13 +14119,13 @@ fi fi -echo "$as_me:12946: checking whether time.h and sys/time.h may both be included" >&5 +echo "$as_me:14122: checking whether time.h and sys/time.h may both be included" >&5 echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 if test "${ac_cv_header_time+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 12952 "configure" +#line 14128 "configure" #include "confdefs.h" #include #include @@ -12965,16 +14141,16 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:12968: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:14144: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:12971: \$? = $ac_status" >&5 + echo "$as_me:14147: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:12974: \"$ac_try\"") >&5 + { (eval echo "$as_me:14150: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12977: \$? = $ac_status" >&5 + echo "$as_me:14153: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_time=yes else @@ -12984,7 +14160,7 @@ ac_cv_header_time=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:12987: result: $ac_cv_header_time" >&5 +echo "$as_me:14163: result: $ac_cv_header_time" >&5 echo "${ECHO_T}$ac_cv_header_time" >&6 if test $ac_cv_header_time = yes; then @@ -12999,17 +14175,17 @@ cf_regex_func=no cf_regex_libs="regex re" case $host_os in #(vi mingw*) - cf_regex_libs="regex.dll $cf_regex_libs" + cf_regex_libs="gnurx $cf_regex_libs" ;; esac -echo "$as_me:13006: checking for regcomp" >&5 +echo "$as_me:14182: checking for regcomp" >&5 echo $ECHO_N "checking for regcomp... $ECHO_C" >&6 if test "${ac_cv_func_regcomp+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 13012 "configure" +#line 14188 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char regcomp (); below. */ @@ -13032,7 +14208,7 @@ main () #if defined (__stub_regcomp) || defined (__stub___regcomp) choke me #else -f = regcomp; +f = regcomp; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; #endif ; @@ -13040,16 +14216,16 @@ f = regcomp; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:13043: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14219: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13046: \$? = $ac_status" >&5 + echo "$as_me:14222: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:13049: \"$ac_try\"") >&5 + { (eval echo "$as_me:14225: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13052: \$? = $ac_status" >&5 + echo "$as_me:14228: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_regcomp=yes else @@ -13059,7 +14235,7 @@ ac_cv_func_regcomp=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:13062: result: $ac_cv_func_regcomp" >&5 +echo "$as_me:14238: result: $ac_cv_func_regcomp" >&5 echo "${ECHO_T}$ac_cv_func_regcomp" >&6 if test $ac_cv_func_regcomp = yes; then cf_regex_func=regcomp @@ -13068,7 +14244,7 @@ else for cf_regex_lib in $cf_regex_libs do as_ac_Lib=`echo "ac_cv_lib_$cf_regex_lib''_regcomp" | $as_tr_sh` -echo "$as_me:13071: checking for regcomp in -l$cf_regex_lib" >&5 +echo "$as_me:14247: checking for regcomp in -l$cf_regex_lib" >&5 echo $ECHO_N "checking for regcomp in -l$cf_regex_lib... $ECHO_C" >&6 if eval "test \"\${$as_ac_Lib+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -13076,7 +14252,7 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-l$cf_regex_lib $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 13079 "configure" +#line 14255 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -13095,16 +14271,16 @@ regcomp (); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:13098: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14274: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13101: \$? = $ac_status" >&5 + echo "$as_me:14277: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:13104: \"$ac_try\"") >&5 + { (eval echo "$as_me:14280: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13107: \$? = $ac_status" >&5 + echo "$as_me:14283: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Lib=yes" else @@ -13115,7 +14291,7 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:13118: result: `eval echo '${'$as_ac_Lib'}'`" >&5 +echo "$as_me:14294: result: `eval echo '${'$as_ac_Lib'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6 if test `eval echo '${'$as_ac_Lib'}'` = yes; then @@ -13129,13 +14305,13 @@ fi fi if test "$cf_regex_func" = no ; then - echo "$as_me:13132: checking for compile" >&5 + echo "$as_me:14308: checking for compile" >&5 echo $ECHO_N "checking for compile... $ECHO_C" >&6 if test "${ac_cv_func_compile+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 13138 "configure" +#line 14314 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char compile (); below. */ @@ -13158,7 +14334,7 @@ main () #if defined (__stub_compile) || defined (__stub___compile) choke me #else -f = compile; +f = compile; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; #endif ; @@ -13166,16 +14342,16 @@ f = compile; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:13169: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14345: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13172: \$? = $ac_status" >&5 + echo "$as_me:14348: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:13175: \"$ac_try\"") >&5 + { (eval echo "$as_me:14351: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13178: \$? = $ac_status" >&5 + echo "$as_me:14354: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_compile=yes else @@ -13185,13 +14361,13 @@ ac_cv_func_compile=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:13188: result: $ac_cv_func_compile" >&5 +echo "$as_me:14364: result: $ac_cv_func_compile" >&5 echo "${ECHO_T}$ac_cv_func_compile" >&6 if test $ac_cv_func_compile = yes; then cf_regex_func=compile else - echo "$as_me:13194: checking for compile in -lgen" >&5 + echo "$as_me:14370: checking for compile in -lgen" >&5 echo $ECHO_N "checking for compile in -lgen... $ECHO_C" >&6 if test "${ac_cv_lib_gen_compile+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -13199,7 +14375,7 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lgen $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 13202 "configure" +#line 14378 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -13218,16 +14394,16 @@ compile (); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:13221: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14397: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13224: \$? = $ac_status" >&5 + echo "$as_me:14400: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:13227: \"$ac_try\"") >&5 + { (eval echo "$as_me:14403: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13230: \$? = $ac_status" >&5 + echo "$as_me:14406: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_gen_compile=yes else @@ -13238,7 +14414,7 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:13241: result: $ac_cv_lib_gen_compile" >&5 +echo "$as_me:14417: result: $ac_cv_lib_gen_compile" >&5 echo "${ECHO_T}$ac_cv_lib_gen_compile" >&6 if test $ac_cv_lib_gen_compile = yes; then @@ -13251,11 +14427,11 @@ fi fi if test "$cf_regex_func" = no ; then - { echo "$as_me:13254: WARNING: cannot find regular expression library" >&5 + { echo "$as_me:14430: WARNING: cannot find regular expression library" >&5 echo "$as_me: WARNING: cannot find regular expression library" >&2;} fi -echo "$as_me:13258: checking for regular-expression headers" >&5 +echo "$as_me:14434: checking for regular-expression headers" >&5 echo $ECHO_N "checking for regular-expression headers... $ECHO_C" >&6 if test "${cf_cv_regex_hdrs+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -13267,7 +14443,7 @@ compile) #(vi for cf_regex_hdr in regexp.h regexpr.h do cat >conftest.$ac_ext <<_ACEOF -#line 13270 "configure" +#line 14446 "configure" #include "confdefs.h" #include <$cf_regex_hdr> int @@ -13282,16 +14458,16 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:13285: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14461: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13288: \$? = $ac_status" >&5 + echo "$as_me:14464: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:13291: \"$ac_try\"") >&5 + { (eval echo "$as_me:14467: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13294: \$? = $ac_status" >&5 + echo "$as_me:14470: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_regex_hdrs=$cf_regex_hdr @@ -13308,7 +14484,7 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext for cf_regex_hdr in regex.h do cat >conftest.$ac_ext <<_ACEOF -#line 13311 "configure" +#line 14487 "configure" #include "confdefs.h" #include #include <$cf_regex_hdr> @@ -13326,16 +14502,16 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:13329: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14505: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13332: \$? = $ac_status" >&5 + echo "$as_me:14508: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:13335: \"$ac_try\"") >&5 + { (eval echo "$as_me:14511: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13338: \$? = $ac_status" >&5 + echo "$as_me:14514: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_regex_hdrs=$cf_regex_hdr @@ -13351,21 +14527,24 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext esac fi -echo "$as_me:13354: result: $cf_cv_regex_hdrs" >&5 +echo "$as_me:14530: result: $cf_cv_regex_hdrs" >&5 echo "${ECHO_T}$cf_cv_regex_hdrs" >&6 case $cf_cv_regex_hdrs in #(vi - no) { echo "$as_me:13358: WARNING: no regular expression header found" >&5 + no) { echo "$as_me:14534: WARNING: no regular expression header found" >&5 echo "$as_me: WARNING: no regular expression header found" >&2;} ;; #(vi - regex.h) cat >>confdefs.h <<\EOF + regex.h) +cat >>confdefs.h <<\EOF #define HAVE_REGEX_H_FUNCS 1 EOF ;; #(vi - regexp.h) cat >>confdefs.h <<\EOF + regexp.h) +cat >>confdefs.h <<\EOF #define HAVE_REGEXP_H_FUNCS 1 EOF ;; #(vi - regexpr.h) cat >>confdefs.h <<\EOF + regexpr.h) +cat >>confdefs.h <<\EOF #define HAVE_REGEXPR_H_FUNCS 1 EOF ;; @@ -13391,23 +14570,23 @@ wctype.h \ do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:13394: checking for $ac_header" >&5 +echo "$as_me:14573: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 13400 "configure" +#line 14579 "configure" #include "confdefs.h" #include <$ac_header> _ACEOF -if { (eval echo "$as_me:13404: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:14583: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:13410: \$? = $ac_status" >&5 + echo "$as_me:14589: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -13426,7 +14605,7 @@ else fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:13429: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "$as_me:14608: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 14627 "configure" +#include "confdefs.h" +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:14631: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + egrep -v '^ *\+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:14637: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + eval "$as_ac_Header=no" +fi +rm -f conftest.err conftest.$ac_ext +fi +echo "$as_me:14656: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <&5 +echo $ECHO_N "checking for header declaring getopt variables... $ECHO_C" >&6 +if test "${cf_cv_getopt_header+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +cf_cv_getopt_header=none +for cf_header in stdio.h stdlib.h unistd.h getopt.h +do +cat >conftest.$ac_ext <<_ACEOF +#line 14676 "configure" +#include "confdefs.h" + +#include <$cf_header> +int +main () +{ +int x = optind; char *y = optarg + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:14689: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:14692: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:14695: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:14698: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_getopt_header=$cf_header + break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest.$ac_ext +done + +fi +echo "$as_me:14710: result: $cf_cv_getopt_header" >&5 +echo "${ECHO_T}$cf_cv_getopt_header" >&6 +if test $cf_cv_getopt_header != none ; then + +cat >>confdefs.h <<\EOF +#define HAVE_GETOPT_HEADER 1 +EOF + +fi + # check for ISC (this may also define _POSIX_SOURCE) # Note: even non-Posix ISC needs to declare fd_set -if test "$ISC" = yes ; then +if test "x$ISC" = xyes ; then -echo "$as_me:13443: checking for main in -lcposix" >&5 +echo "$as_me:14724: checking for main in -lcposix" >&5 echo $ECHO_N "checking for main in -lcposix... $ECHO_C" >&6 if test "${ac_cv_lib_cposix_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -13448,7 +14729,7 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lcposix $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 13451 "configure" +#line 14732 "configure" #include "confdefs.h" int @@ -13460,16 +14741,16 @@ main (); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:13463: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14744: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13466: \$? = $ac_status" >&5 + echo "$as_me:14747: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:13469: \"$ac_try\"") >&5 + { (eval echo "$as_me:14750: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13472: \$? = $ac_status" >&5 + echo "$as_me:14753: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_cposix_main=yes else @@ -13480,7 +14761,7 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:13483: result: $ac_cv_lib_cposix_main" >&5 +echo "$as_me:14764: result: $ac_cv_lib_cposix_main" >&5 echo "${ECHO_T}$ac_cv_lib_cposix_main" >&6 if test $ac_cv_lib_cposix_main = yes; then cat >>confdefs.h <&5 + echo "$as_me:14775: checking for bzero in -linet" >&5 echo $ECHO_N "checking for bzero in -linet... $ECHO_C" >&6 if test "${ac_cv_lib_inet_bzero+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -13499,7 +14780,7 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-linet $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 13502 "configure" +#line 14783 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -13518,16 +14799,16 @@ bzero (); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:13521: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14802: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13524: \$? = $ac_status" >&5 + echo "$as_me:14805: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:13527: \"$ac_try\"") >&5 + { (eval echo "$as_me:14808: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13530: \$? = $ac_status" >&5 + echo "$as_me:14811: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_inet_bzero=yes else @@ -13538,21 +14819,21 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:13541: result: $ac_cv_lib_inet_bzero" >&5 +echo "$as_me:14822: result: $ac_cv_lib_inet_bzero" >&5 echo "${ECHO_T}$ac_cv_lib_inet_bzero" >&6 if test $ac_cv_lib_inet_bzero = yes; then LIBS="-linet $LIBS" fi fi -echo "$as_me:13548: checking if sys/time.h works with sys/select.h" >&5 +echo "$as_me:14829: checking if sys/time.h works with sys/select.h" >&5 echo $ECHO_N "checking if sys/time.h works with sys/select.h... $ECHO_C" >&6 if test "${cf_cv_sys_time_select+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 13555 "configure" +#line 14836 "configure" #include "confdefs.h" #include @@ -13572,16 +14853,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:13575: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:14856: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:13578: \$? = $ac_status" >&5 + echo "$as_me:14859: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:13581: \"$ac_try\"") >&5 + { (eval echo "$as_me:14862: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13584: \$? = $ac_status" >&5 + echo "$as_me:14865: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_sys_time_select=yes else @@ -13593,9 +14874,10 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:13596: result: $cf_cv_sys_time_select" >&5 +echo "$as_me:14877: result: $cf_cv_sys_time_select" >&5 echo "${ECHO_T}$cf_cv_sys_time_select" >&6 -test "$cf_cv_sys_time_select" = yes && cat >>confdefs.h <<\EOF +test "$cf_cv_sys_time_select" = yes && +cat >>confdefs.h <<\EOF #define HAVE_SYS_TIME_SELECT 1 EOF @@ -13607,104 +14889,13 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_main_return=return -echo "$as_me:13610: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_stdc=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -#line 13618 "configure" -#include "confdefs.h" -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -# 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 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:13667: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:13670: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:13673: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:13676: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext -done -rm -f conftest.$ac_ext conftest.$ac_objext -CC=$ac_save_CC - -fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:13693: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; - *) - echo "$as_me:13696: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; -esac - -echo "$as_me:13701: checking for an ANSI C-conforming const" >&5 +echo "$as_me:14892: checking for an ANSI C-conforming const" >&5 echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 if test "${ac_cv_c_const+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 13707 "configure" +#line 14898 "configure" #include "confdefs.h" int @@ -13762,16 +14953,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:13765: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:14956: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:13768: \$? = $ac_status" >&5 + echo "$as_me:14959: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:13771: \"$ac_try\"") >&5 + { (eval echo "$as_me:14962: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13774: \$? = $ac_status" >&5 + echo "$as_me:14965: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_const=yes else @@ -13781,7 +14972,7 @@ ac_cv_c_const=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:13784: result: $ac_cv_c_const" >&5 +echo "$as_me:14975: result: $ac_cv_c_const" >&5 echo "${ECHO_T}$ac_cv_c_const" >&6 if test $ac_cv_c_const = no; then @@ -13791,7 +14982,7 @@ EOF fi -echo "$as_me:13794: checking for inline" >&5 +echo "$as_me:14985: checking for inline" >&5 echo $ECHO_N "checking for inline... $ECHO_C" >&6 if test "${ac_cv_c_inline+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -13799,7 +14990,7 @@ else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat >conftest.$ac_ext <<_ACEOF -#line 13802 "configure" +#line 14993 "configure" #include "confdefs.h" #ifndef __cplusplus static $ac_kw int static_foo () {return 0; } @@ -13808,16 +14999,16 @@ $ac_kw int foo () {return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:13811: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:15002: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:13814: \$? = $ac_status" >&5 + echo "$as_me:15005: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:13817: \"$ac_try\"") >&5 + { (eval echo "$as_me:15008: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13820: \$? = $ac_status" >&5 + echo "$as_me:15011: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_inline=$ac_kw; break else @@ -13828,7 +15019,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext done fi -echo "$as_me:13831: result: $ac_cv_c_inline" >&5 +echo "$as_me:15022: result: $ac_cv_c_inline" >&5 echo "${ECHO_T}$ac_cv_c_inline" >&6 case $ac_cv_c_inline in inline | yes) ;; @@ -13847,11 +15038,14 @@ NCURSES_INLINE= if test "$ac_cv_c_inline" != no ; then NCURSES_INLINE=inline if test "$INTEL_COMPILER" = yes + then + : + elif test "$CLANG_COMPILER" = yes then : elif test "$GCC" = yes then - echo "$as_me:13854: checking if $CC supports options to tune inlining" >&5 + echo "$as_me:15048: checking if $CC supports options to tune inlining" >&5 echo $ECHO_N "checking if $CC supports options to tune inlining... $ECHO_C" >&6 if test "${cf_cv_gcc_inline+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -13860,7 +15054,7 @@ else cf_save_CFLAGS=$CFLAGS CFLAGS="$CFLAGS --param max-inline-insns-single=1200" cat >conftest.$ac_ext <<_ACEOF -#line 13863 "configure" +#line 15057 "configure" #include "confdefs.h" inline int foo(void) { return 1; } int @@ -13872,16 +15066,16 @@ ${cf_cv_main_return:-return} foo() } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:13875: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:15069: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:13878: \$? = $ac_status" >&5 + echo "$as_me:15072: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:13881: \"$ac_try\"") >&5 + { (eval echo "$as_me:15075: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13884: \$? = $ac_status" >&5 + echo "$as_me:15078: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_gcc_inline=yes else @@ -13893,7 +15087,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext CFLAGS=$cf_save_CFLAGS fi -echo "$as_me:13896: result: $cf_cv_gcc_inline" >&5 +echo "$as_me:15090: result: $cf_cv_gcc_inline" >&5 echo "${ECHO_T}$cf_cv_gcc_inline" >&6 if test "$cf_cv_gcc_inline" = yes ; then @@ -13979,7 +15173,7 @@ fi fi fi -echo "$as_me:13982: checking for signal global datatype" >&5 +echo "$as_me:15176: checking for signal global datatype" >&5 echo $ECHO_N "checking for signal global datatype... $ECHO_C" >&6 if test "${cf_cv_sig_atomic_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -13991,7 +15185,7 @@ else "int" do cat >conftest.$ac_ext <<_ACEOF -#line 13994 "configure" +#line 15188 "configure" #include "confdefs.h" #include @@ -14014,16 +15208,16 @@ signal(SIGINT, handler); } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:14017: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:15211: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:14020: \$? = $ac_status" >&5 + echo "$as_me:15214: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:14023: \"$ac_try\"") >&5 + { (eval echo "$as_me:15217: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14026: \$? = $ac_status" >&5 + echo "$as_me:15220: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_sig_atomic_t=$cf_type else @@ -14037,15 +15231,16 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:14040: result: $cf_cv_sig_atomic_t" >&5 +echo "$as_me:15234: result: $cf_cv_sig_atomic_t" >&5 echo "${ECHO_T}$cf_cv_sig_atomic_t" >&6 -test "$cf_cv_sig_atomic_t" != no && cat >>confdefs.h <>confdefs.h <&5 +echo "$as_me:15243: checking for type of chtype" >&5 echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6 if test "${cf_cv_typeof_chtype+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -14055,7 +15250,7 @@ else cf_cv_typeof_chtype=long else cat >conftest.$ac_ext <<_ACEOF -#line 14058 "configure" +#line 15253 "configure" #include "confdefs.h" #define WANT_BITS 31 @@ -14090,15 +15285,15 @@ int main() _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:14093: \"$ac_link\"") >&5 +if { (eval echo "$as_me:15288: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14096: \$? = $ac_status" >&5 + echo "$as_me:15291: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:14098: \"$ac_try\"") >&5 + { (eval echo "$as_me:15293: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14101: \$? = $ac_status" >&5 + echo "$as_me:15296: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_typeof_chtype=`cat cf_test.out` else @@ -14113,7 +15308,7 @@ fi fi -echo "$as_me:14116: result: $cf_cv_typeof_chtype" >&5 +echo "$as_me:15311: result: $cf_cv_typeof_chtype" >&5 echo "${ECHO_T}$cf_cv_typeof_chtype" >&6 cat >>confdefs.h <&5 +echo "$as_me:15323: checking if unsigned literals are legal" >&5 echo $ECHO_N "checking if unsigned literals are legal... $ECHO_C" >&6 if test "${cf_cv_unsigned_literals+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 14135 "configure" +#line 15330 "configure" #include "confdefs.h" int @@ -14144,16 +15339,16 @@ long x = 1L + 1UL + 1U + 1 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:14147: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:15342: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:14150: \$? = $ac_status" >&5 + echo "$as_me:15345: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:14153: \"$ac_try\"") >&5 + { (eval echo "$as_me:15348: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14156: \$? = $ac_status" >&5 + echo "$as_me:15351: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_unsigned_literals=yes else @@ -14165,7 +15360,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:14168: result: $cf_cv_unsigned_literals" >&5 +echo "$as_me:15363: result: $cf_cv_unsigned_literals" >&5 echo "${ECHO_T}$cf_cv_unsigned_literals" >&6 cf_cv_1UL="1" @@ -14181,14 +15376,14 @@ test "$cf_cv_typeof_mmask_t" = unsigned && cf_cv_typeof_mmask_t="" ### Checks for external-data -echo "$as_me:14184: checking if external errno is declared" >&5 +echo "$as_me:15379: checking if external errno is declared" >&5 echo $ECHO_N "checking if external errno is declared... $ECHO_C" >&6 if test "${cf_cv_dcl_errno+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 14191 "configure" +#line 15386 "configure" #include "confdefs.h" #ifdef HAVE_STDLIB_H @@ -14206,16 +15401,16 @@ int x = (int) errno } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:14209: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:15404: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:14212: \$? = $ac_status" >&5 + echo "$as_me:15407: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:14215: \"$ac_try\"") >&5 + { (eval echo "$as_me:15410: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14218: \$? = $ac_status" >&5 + echo "$as_me:15413: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_dcl_errno=yes else @@ -14226,7 +15421,7 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:14229: result: $cf_cv_dcl_errno" >&5 +echo "$as_me:15424: result: $cf_cv_dcl_errno" >&5 echo "${ECHO_T}$cf_cv_dcl_errno" >&6 if test "$cf_cv_dcl_errno" = no ; then @@ -14241,14 +15436,14 @@ fi # It's possible (for near-UNIX clones) that the data doesn't exist -echo "$as_me:14244: checking if external errno exists" >&5 +echo "$as_me:15439: checking if external errno exists" >&5 echo $ECHO_N "checking if external errno exists... $ECHO_C" >&6 if test "${cf_cv_have_errno+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 14251 "configure" +#line 15446 "configure" #include "confdefs.h" #undef errno @@ -14263,16 +15458,16 @@ errno = 2 } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:14266: \"$ac_link\"") >&5 +if { (eval echo "$as_me:15461: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14269: \$? = $ac_status" >&5 + echo "$as_me:15464: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:14272: \"$ac_try\"") >&5 + { (eval echo "$as_me:15467: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14275: \$? = $ac_status" >&5 + echo "$as_me:15470: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_have_errno=yes else @@ -14283,7 +15478,7 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:14286: result: $cf_cv_have_errno" >&5 +echo "$as_me:15481: result: $cf_cv_have_errno" >&5 echo "${ECHO_T}$cf_cv_have_errno" >&6 if test "$cf_cv_have_errno" = yes ; then @@ -14296,7 +15491,7 @@ EOF fi -echo "$as_me:14299: checking if data-only library module links" >&5 +echo "$as_me:15494: checking if data-only library module links" >&5 echo $ECHO_N "checking if data-only library module links... $ECHO_C" >&6 if test "${cf_cv_link_dataonly+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -14304,20 +15499,20 @@ else rm -f conftest.a cat >conftest.$ac_ext <&5 + if { (eval echo "$as_me:15505: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:14313: \$? = $ac_status" >&5 + echo "$as_me:15508: \$? = $ac_status" >&5 (exit $ac_status); } ; then mv conftest.o data.o && \ ( $AR $ARFLAGS conftest.a data.o ) 2>&5 1>/dev/null fi rm -f conftest.$ac_ext data.o cat >conftest.$ac_ext <&5 + if { (eval echo "$as_me:15528: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:14336: \$? = $ac_status" >&5 + echo "$as_me:15531: \$? = $ac_status" >&5 (exit $ac_status); }; then mv conftest.o func.o && \ ( $AR $ARFLAGS conftest.a func.o ) 2>&5 1>/dev/null @@ -14346,7 +15541,7 @@ EOF cf_cv_link_dataonly=unknown else cat >conftest.$ac_ext <<_ACEOF -#line 14349 "configure" +#line 15544 "configure" #include "confdefs.h" int main() @@ -14357,15 +15552,15 @@ else _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:14360: \"$ac_link\"") >&5 +if { (eval echo "$as_me:15555: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14363: \$? = $ac_status" >&5 + echo "$as_me:15558: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:14365: \"$ac_try\"") >&5 + { (eval echo "$as_me:15560: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14368: \$? = $ac_status" >&5 + echo "$as_me:15563: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_link_dataonly=yes else @@ -14380,11 +15575,12 @@ fi fi -echo "$as_me:14383: result: $cf_cv_link_dataonly" >&5 +echo "$as_me:15578: result: $cf_cv_link_dataonly" >&5 echo "${ECHO_T}$cf_cv_link_dataonly" >&6 if test "$cf_cv_link_dataonly" = no ; then - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define BROKEN_LINKER 1 EOF @@ -14400,10 +15596,12 @@ geteuid \ getttynam \ issetugid \ poll \ +putenv \ remove \ select \ setbuf \ setbuffer \ +setenv \ setvbuf \ sigaction \ sigvec \ @@ -14415,13 +15613,13 @@ vsnprintf \ do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:14418: checking for $ac_func" >&5 +echo "$as_me:15616: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 14424 "configure" +#line 15622 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. */ @@ -14444,7 +15642,7 @@ main () #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else -f = $ac_func; +f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; #endif ; @@ -14452,16 +15650,16 @@ f = $ac_func; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:14455: \"$ac_link\"") >&5 +if { (eval echo "$as_me:15653: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14458: \$? = $ac_status" >&5 + echo "$as_me:15656: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:14461: \"$ac_try\"") >&5 + { (eval echo "$as_me:15659: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14464: \$? = $ac_status" >&5 + echo "$as_me:15662: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else @@ -14471,7 +15669,7 @@ eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:14474: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "$as_me:15672: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <&5 +echo "$as_me:15684: checking for terminal-capability database functions" >&5 echo $ECHO_N "checking for terminal-capability database functions... $ECHO_C" >&6 if test "${cf_cv_cgetent+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 14493 "configure" +#line 15691 "configure" #include "confdefs.h" #include @@ -14501,7 +15699,7 @@ main () char temp[128]; char *buf = temp; char *db_array = temp; - cgetent(&buf, /* int *, */ &db_array, "vt100"); + cgetent(&buf, &db_array, "vt100"); cgetcap(buf, "tc", '='); cgetmatch(buf, "tc"); @@ -14510,16 +15708,16 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:14513: \"$ac_link\"") >&5 +if { (eval echo "$as_me:15711: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14516: \$? = $ac_status" >&5 + echo "$as_me:15714: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:14519: \"$ac_try\"") >&5 + { (eval echo "$as_me:15717: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14522: \$? = $ac_status" >&5 + echo "$as_me:15720: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_cgetent=yes else @@ -14530,23 +15728,87 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi - -echo "$as_me:14534: result: $cf_cv_cgetent" >&5 +echo "$as_me:15731: result: $cf_cv_cgetent" >&5 echo "${ECHO_T}$cf_cv_cgetent" >&6 -test "$cf_cv_cgetent" = yes && cat >>confdefs.h <<\EOF + +if test "$cf_cv_cgetent" = yes +then + +cat >>confdefs.h <<\EOF #define HAVE_BSD_CGETENT 1 EOF +echo "$as_me:15741: checking if cgetent uses const parameter" >&5 +echo $ECHO_N "checking if cgetent uses const parameter... $ECHO_C" >&6 +if test "${cf_cv_cgetent_const+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +cat >conftest.$ac_ext <<_ACEOF +#line 15748 "configure" +#include "confdefs.h" + +#include +int +main () +{ + + char temp[128]; + char *buf = temp; +#ifndef _NETBSD_SOURCE /* given, since April 2004 in stdlib.h */ + const char *db_array = temp; + cgetent(&buf, &db_array, "vt100"); +#endif + cgetcap(buf, "tc", '='); + cgetmatch(buf, "tc"); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:15770: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:15773: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:15776: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:15779: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_cgetent_const=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +cf_cv_cgetent_const=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + +fi +echo "$as_me:15790: result: $cf_cv_cgetent_const" >&5 +echo "${ECHO_T}$cf_cv_cgetent_const" >&6 + if test "$cf_cv_cgetent_const" = yes + then + +cat >>confdefs.h <&5 +fi + +echo "$as_me:15804: checking for isascii" >&5 echo $ECHO_N "checking for isascii... $ECHO_C" >&6 if test "${cf_cv_have_isascii+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 14549 "configure" +#line 15811 "configure" #include "confdefs.h" #include int @@ -14558,16 +15820,16 @@ int x = isascii(' ') } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:14561: \"$ac_link\"") >&5 +if { (eval echo "$as_me:15823: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14564: \$? = $ac_status" >&5 + echo "$as_me:15826: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:14567: \"$ac_try\"") >&5 + { (eval echo "$as_me:15829: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14570: \$? = $ac_status" >&5 + echo "$as_me:15832: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_have_isascii=yes else @@ -14578,17 +15840,18 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:14581: result: $cf_cv_have_isascii" >&5 +echo "$as_me:15843: result: $cf_cv_have_isascii" >&5 echo "${ECHO_T}$cf_cv_have_isascii" >&6 -test "$cf_cv_have_isascii" = yes && cat >>confdefs.h <<\EOF +test "$cf_cv_have_isascii" = yes && +cat >>confdefs.h <<\EOF #define HAVE_ISASCII 1 EOF if test "$ac_cv_func_sigaction" = yes; then -echo "$as_me:14588: checking whether sigaction needs _POSIX_SOURCE" >&5 +echo "$as_me:15851: checking whether sigaction needs _POSIX_SOURCE" >&5 echo $ECHO_N "checking whether sigaction needs _POSIX_SOURCE... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line 14591 "configure" +#line 15854 "configure" #include "confdefs.h" #include @@ -14602,16 +15865,16 @@ struct sigaction act } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:14605: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:15868: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:14608: \$? = $ac_status" >&5 + echo "$as_me:15871: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:14611: \"$ac_try\"") >&5 + { (eval echo "$as_me:15874: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14614: \$? = $ac_status" >&5 + echo "$as_me:15877: \$? = $ac_status" >&5 (exit $ac_status); }; }; then sigact_bad=no else @@ -14619,7 +15882,7 @@ else cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 14622 "configure" +#line 15885 "configure" #include "confdefs.h" #define _POSIX_SOURCE @@ -14634,20 +15897,21 @@ struct sigaction act } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:14637: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:15900: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:14640: \$? = $ac_status" >&5 + echo "$as_me:15903: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:14643: \"$ac_try\"") >&5 + { (eval echo "$as_me:15906: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14646: \$? = $ac_status" >&5 + echo "$as_me:15909: \$? = $ac_status" >&5 (exit $ac_status); }; }; then sigact_bad=yes - cat >>confdefs.h <<\EOF -#define SVR4_ACTION 1 + +cat >>confdefs.h <<\EOF +#define _POSIX_SOURCE 1 EOF else @@ -14658,11 +15922,11 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:14661: result: $sigact_bad" >&5 +echo "$as_me:15925: result: $sigact_bad" >&5 echo "${ECHO_T}$sigact_bad" >&6 fi -echo "$as_me:14665: checking if nanosleep really works" >&5 +echo "$as_me:15929: checking if nanosleep really works" >&5 echo $ECHO_N "checking if nanosleep really works... $ECHO_C" >&6 if test "${cf_cv_func_nanosleep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -14672,7 +15936,7 @@ if test "$cross_compiling" = yes; then cf_cv_func_nanosleep=unknown else cat >conftest.$ac_ext <<_ACEOF -#line 14675 "configure" +#line 15939 "configure" #include "confdefs.h" #include @@ -14697,15 +15961,15 @@ int main() { _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:14700: \"$ac_link\"") >&5 +if { (eval echo "$as_me:15964: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14703: \$? = $ac_status" >&5 + echo "$as_me:15967: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:14705: \"$ac_try\"") >&5 + { (eval echo "$as_me:15969: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14708: \$? = $ac_status" >&5 + echo "$as_me:15972: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_func_nanosleep=yes else @@ -14717,10 +15981,11 @@ fi rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -echo "$as_me:14720: result: $cf_cv_func_nanosleep" >&5 +echo "$as_me:15984: result: $cf_cv_func_nanosleep" >&5 echo "${ECHO_T}$cf_cv_func_nanosleep" >&6 -test "$cf_cv_func_nanosleep" = "yes" && cat >>confdefs.h <<\EOF +test "$cf_cv_func_nanosleep" = "yes" && +cat >>confdefs.h <<\EOF #define HAVE_NANOSLEEP 1 EOF @@ -14731,23 +15996,23 @@ unistd.h \ do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:14734: checking for $ac_header" >&5 +echo "$as_me:15999: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 14740 "configure" +#line 16005 "configure" #include "confdefs.h" #include <$ac_header> _ACEOF -if { (eval echo "$as_me:14744: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:16009: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:14750: \$? = $ac_status" >&5 + echo "$as_me:16015: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -14766,7 +16031,7 @@ else fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:14769: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "$as_me:16034: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <&5 +echo "$as_me:16049: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 14790 "configure" +#line 16055 "configure" #include "confdefs.h" #include <$ac_header> _ACEOF -if { (eval echo "$as_me:14794: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:16059: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:14800: \$? = $ac_status" >&5 + echo "$as_me:16065: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -14816,7 +16081,7 @@ else fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:14819: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "$as_me:16084: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <&5 + echo "$as_me:16102: checking whether termios.h needs _POSIX_SOURCE" >&5 echo $ECHO_N "checking whether termios.h needs _POSIX_SOURCE... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line 14840 "configure" +#line 16105 "configure" #include "confdefs.h" #include int @@ -14849,16 +16114,16 @@ struct termios foo; int x = foo.c_iflag } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:14852: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:16117: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:14855: \$? = $ac_status" >&5 + echo "$as_me:16120: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:14858: \"$ac_try\"") >&5 + { (eval echo "$as_me:16123: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14861: \$? = $ac_status" >&5 + echo "$as_me:16126: \$? = $ac_status" >&5 (exit $ac_status); }; }; then termios_bad=no else @@ -14866,7 +16131,7 @@ else cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 14869 "configure" +#line 16134 "configure" #include "confdefs.h" #define _POSIX_SOURCE @@ -14880,23 +16145,24 @@ struct termios foo; int x = foo.c_iflag } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:14883: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:16148: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:14886: \$? = $ac_status" >&5 + echo "$as_me:16151: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:14889: \"$ac_try\"") >&5 + { (eval echo "$as_me:16154: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14892: \$? = $ac_status" >&5 + echo "$as_me:16157: \$? = $ac_status" >&5 (exit $ac_status); }; }; then termios_bad=unknown else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 -termios_bad=yes cat >>confdefs.h <<\EOF -#define SVR4_TERMIO 1 +termios_bad=yes +cat >>confdefs.h <<\EOF +#define _POSIX_SOURCE 1 EOF fi @@ -14904,19 +16170,19 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.$ac_objext conftest.$ac_ext - echo "$as_me:14907: result: $termios_bad" >&5 + echo "$as_me:16173: result: $termios_bad" >&5 echo "${ECHO_T}$termios_bad" >&6 fi fi -echo "$as_me:14912: checking for tcgetattr" >&5 +echo "$as_me:16178: checking for tcgetattr" >&5 echo $ECHO_N "checking for tcgetattr... $ECHO_C" >&6 if test "${cf_cv_have_tcgetattr+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 14919 "configure" +#line 16185 "configure" #include "confdefs.h" #include @@ -14944,16 +16210,16 @@ tcgetattr(1, &foo); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:14947: \"$ac_link\"") >&5 +if { (eval echo "$as_me:16213: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14950: \$? = $ac_status" >&5 + echo "$as_me:16216: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:14953: \"$ac_try\"") >&5 + { (eval echo "$as_me:16219: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14956: \$? = $ac_status" >&5 + echo "$as_me:16222: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_have_tcgetattr=yes else @@ -14963,20 +16229,21 @@ cf_cv_have_tcgetattr=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:14966: result: $cf_cv_have_tcgetattr" >&5 +echo "$as_me:16232: result: $cf_cv_have_tcgetattr" >&5 echo "${ECHO_T}$cf_cv_have_tcgetattr" >&6 -test "$cf_cv_have_tcgetattr" = yes && cat >>confdefs.h <<\EOF +test "$cf_cv_have_tcgetattr" = yes && +cat >>confdefs.h <<\EOF #define HAVE_TCGETATTR 1 EOF -echo "$as_me:14972: checking for vsscanf function or workaround" >&5 +echo "$as_me:16239: checking for vsscanf function or workaround" >&5 echo $ECHO_N "checking for vsscanf function or workaround... $ECHO_C" >&6 if test "${cf_cv_func_vsscanf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 14979 "configure" +#line 16246 "configure" #include "confdefs.h" #include @@ -14992,16 +16259,16 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:14995: \"$ac_link\"") >&5 +if { (eval echo "$as_me:16262: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14998: \$? = $ac_status" >&5 + echo "$as_me:16265: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:15001: \"$ac_try\"") >&5 + { (eval echo "$as_me:16268: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15004: \$? = $ac_status" >&5 + echo "$as_me:16271: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_func_vsscanf=vsscanf else @@ -15009,7 +16276,7 @@ else cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 15012 "configure" +#line 16279 "configure" #include "confdefs.h" #include @@ -15031,16 +16298,16 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:15034: \"$ac_link\"") >&5 +if { (eval echo "$as_me:16301: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:15037: \$? = $ac_status" >&5 + echo "$as_me:16304: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:15040: \"$ac_try\"") >&5 + { (eval echo "$as_me:16307: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15043: \$? = $ac_status" >&5 + echo "$as_me:16310: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_func_vsscanf=vfscanf else @@ -15048,7 +16315,7 @@ else cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 15051 "configure" +#line 16318 "configure" #include "confdefs.h" #include @@ -15070,16 +16337,16 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:15073: \"$ac_link\"") >&5 +if { (eval echo "$as_me:16340: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:15076: \$? = $ac_status" >&5 + echo "$as_me:16343: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:15079: \"$ac_try\"") >&5 + { (eval echo "$as_me:16346: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15082: \$? = $ac_status" >&5 + echo "$as_me:16349: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_func_vsscanf=_doscan else @@ -15094,25 +16361,28 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:15097: result: $cf_cv_func_vsscanf" >&5 +echo "$as_me:16364: result: $cf_cv_func_vsscanf" >&5 echo "${ECHO_T}$cf_cv_func_vsscanf" >&6 case $cf_cv_func_vsscanf in #(vi -vsscanf) cat >>confdefs.h <<\EOF +vsscanf) +cat >>confdefs.h <<\EOF #define HAVE_VSSCANF 1 EOF ;; #(vi -vfscanf) cat >>confdefs.h <<\EOF +vfscanf) +cat >>confdefs.h <<\EOF #define HAVE_VFSCANF 1 EOF ;; #(vi -_doscan) cat >>confdefs.h <<\EOF +_doscan) +cat >>confdefs.h <<\EOF #define HAVE__DOSCAN 1 EOF ;; esac -echo "$as_me:15115: checking for working mkstemp" >&5 +echo "$as_me:16385: checking for working mkstemp" >&5 echo $ECHO_N "checking for working mkstemp... $ECHO_C" >&6 if test "${cf_cv_func_mkstemp+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -15120,68 +16390,10 @@ else rm -rf conftest* if test "$cross_compiling" = yes; then - echo "$as_me:15123: checking for mkstemp" >&5 -echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6 -if test "${ac_cv_func_mkstemp+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + cf_cv_func_mkstemp=maybe else cat >conftest.$ac_ext <<_ACEOF -#line 15129 "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char mkstemp (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char mkstemp (); -char (*f) (); - -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_mkstemp) || defined (__stub___mkstemp) -choke me -#else -f = mkstemp; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:15160: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:15163: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:15166: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:15169: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_mkstemp=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_func_mkstemp=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:15179: result: $ac_cv_func_mkstemp" >&5 -echo "${ECHO_T}$ac_cv_func_mkstemp" >&6 - -else - cat >conftest.$ac_ext <<_ACEOF -#line 15184 "configure" +#line 16396 "configure" #include "confdefs.h" #include @@ -15219,15 +16431,15 @@ int main() _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:15222: \"$ac_link\"") >&5 +if { (eval echo "$as_me:16434: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:15225: \$? = $ac_status" >&5 + echo "$as_me:16437: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:15227: \"$ac_try\"") >&5 + { (eval echo "$as_me:16439: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15230: \$? = $ac_status" >&5 + echo "$as_me:16442: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_func_mkstemp=yes @@ -15242,10 +16454,72 @@ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -echo "$as_me:15245: result: $cf_cv_func_mkstemp" >&5 +echo "$as_me:16457: result: $cf_cv_func_mkstemp" >&5 echo "${ECHO_T}$cf_cv_func_mkstemp" >&6 +if test "x$cf_cv_func_mkstemp" = xmaybe ; then + echo "$as_me:16460: checking for mkstemp" >&5 +echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6 +if test "${ac_cv_func_mkstemp+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 16466 "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char mkstemp (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char mkstemp (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_mkstemp) || defined (__stub___mkstemp) +choke me +#else +f = mkstemp; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:16497: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:16500: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:16503: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:16506: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_mkstemp=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_func_mkstemp=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:16516: result: $ac_cv_func_mkstemp" >&5 +echo "${ECHO_T}$ac_cv_func_mkstemp" >&6 + +fi if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define HAVE_MKSTEMP 1 EOF @@ -15259,22 +16533,22 @@ else HAVE_VSSCANF=0 fi -if test "$cross_compiling" = yes ; then - { echo "$as_me:15263: WARNING: cross compiling: assume setvbuf params not reversed" >&5 +if test "x$cross_compiling" = xyes ; then + { echo "$as_me:16537: WARNING: cross compiling: assume setvbuf params not reversed" >&5 echo "$as_me: WARNING: cross compiling: assume setvbuf params not reversed" >&2;} else - echo "$as_me:15266: checking whether setvbuf arguments are reversed" >&5 + echo "$as_me:16540: checking whether setvbuf arguments are reversed" >&5 echo $ECHO_N "checking whether setvbuf arguments are reversed... $ECHO_C" >&6 if test "${ac_cv_func_setvbuf_reversed+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then - { { echo "$as_me:15272: error: cannot run test program while cross compiling" >&5 + { { echo "$as_me:16546: error: cannot run test program while cross compiling" >&5 echo "$as_me: error: cannot run test program while cross compiling" >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF -#line 15277 "configure" +#line 16551 "configure" #include "confdefs.h" #include /* If setvbuf has the reversed format, exit 0. */ @@ -15291,15 +16565,15 @@ main () } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:15294: \"$ac_link\"") >&5 +if { (eval echo "$as_me:16568: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:15297: \$? = $ac_status" >&5 + echo "$as_me:16571: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:15299: \"$ac_try\"") >&5 + { (eval echo "$as_me:16573: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15302: \$? = $ac_status" >&5 + echo "$as_me:16576: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_setvbuf_reversed=yes else @@ -15312,7 +16586,7 @@ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f core core.* *.core fi -echo "$as_me:15315: result: $ac_cv_func_setvbuf_reversed" >&5 +echo "$as_me:16589: result: $ac_cv_func_setvbuf_reversed" >&5 echo "${ECHO_T}$ac_cv_func_setvbuf_reversed" >&6 if test $ac_cv_func_setvbuf_reversed = yes; then @@ -15323,68 +16597,66 @@ EOF fi fi -echo "$as_me:15326: checking return type of signal handlers" >&5 -echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 -if test "${ac_cv_type_signal+set}" = set; then +echo "$as_me:16600: checking for intptr_t" >&5 +echo $ECHO_N "checking for intptr_t... $ECHO_C" >&6 +if test "${ac_cv_type_intptr_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 15332 "configure" +#line 16606 "configure" #include "confdefs.h" -#include -#include -#ifdef signal -# undef signal -#endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); -#endif - +$ac_includes_default int main () { -int i; +if ((intptr_t *) 0) + return 0; +if (sizeof (intptr_t)) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:15354: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:16621: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:15357: \$? = $ac_status" >&5 + echo "$as_me:16624: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:15360: \"$ac_try\"") >&5 + { (eval echo "$as_me:16627: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15363: \$? = $ac_status" >&5 + echo "$as_me:16630: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_type_signal=void + ac_cv_type_intptr_t=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 -ac_cv_type_signal=int +ac_cv_type_intptr_t=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:15373: result: $ac_cv_type_signal" >&5 -echo "${ECHO_T}$ac_cv_type_signal" >&6 +echo "$as_me:16640: result: $ac_cv_type_intptr_t" >&5 +echo "${ECHO_T}$ac_cv_type_intptr_t" >&6 +if test $ac_cv_type_intptr_t = yes; then + : +else cat >>confdefs.h <&5 +fi + +echo "$as_me:16652: checking for type sigaction_t" >&5 echo $ECHO_N "checking for type sigaction_t... $ECHO_C" >&6 if test "${cf_cv_type_sigaction+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 15387 "configure" +#line 16659 "configure" #include "confdefs.h" #include @@ -15397,16 +16669,16 @@ sigaction_t x } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:15400: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:16672: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:15403: \$? = $ac_status" >&5 + echo "$as_me:16675: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:15406: \"$ac_try\"") >&5 + { (eval echo "$as_me:16678: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15409: \$? = $ac_status" >&5 + echo "$as_me:16681: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_type_sigaction=yes else @@ -15417,13 +16689,14 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:15420: result: $cf_cv_type_sigaction" >&5 +echo "$as_me:16692: result: $cf_cv_type_sigaction" >&5 echo "${ECHO_T}$cf_cv_type_sigaction" >&6 -test "$cf_cv_type_sigaction" = yes && cat >>confdefs.h <<\EOF +test "$cf_cv_type_sigaction" = yes && +cat >>confdefs.h <<\EOF #define HAVE_TYPE_SIGACTION 1 EOF -echo "$as_me:15426: checking declaration of size-change" >&5 +echo "$as_me:16699: checking declaration of size-change" >&5 echo $ECHO_N "checking declaration of size-change... $ECHO_C" >&6 if test "${cf_cv_sizechange+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -15438,7 +16711,7 @@ do CPPFLAGS="$cf_save_CPPFLAGS" test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts" cat >conftest.$ac_ext <<_ACEOF -#line 15441 "configure" +#line 16714 "configure" #include "confdefs.h" #include #ifdef HAVE_TERMIOS_H @@ -15482,16 +16755,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:15485: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:16758: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:15488: \$? = $ac_status" >&5 + echo "$as_me:16761: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:15491: \"$ac_try\"") >&5 + { (eval echo "$as_me:16764: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15494: \$? = $ac_status" >&5 + echo "$as_me:16767: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_sizechange=yes else @@ -15510,10 +16783,11 @@ rm -f conftest.$ac_objext conftest.$ac_ext done fi -echo "$as_me:15513: result: $cf_cv_sizechange" >&5 +echo "$as_me:16786: result: $cf_cv_sizechange" >&5 echo "${ECHO_T}$cf_cv_sizechange" >&6 if test "$cf_cv_sizechange" != no ; then - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define HAVE_SIZECHANGE 1 EOF @@ -15527,13 +16801,13 @@ EOF esac fi -echo "$as_me:15530: checking for memmove" >&5 +echo "$as_me:16804: checking for memmove" >&5 echo $ECHO_N "checking for memmove... $ECHO_C" >&6 if test "${ac_cv_func_memmove+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 15536 "configure" +#line 16810 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char memmove (); below. */ @@ -15556,7 +16830,7 @@ main () #if defined (__stub_memmove) || defined (__stub___memmove) choke me #else -f = memmove; +f = memmove; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; #endif ; @@ -15564,16 +16838,16 @@ f = memmove; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:15567: \"$ac_link\"") >&5 +if { (eval echo "$as_me:16841: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:15570: \$? = $ac_status" >&5 + echo "$as_me:16844: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:15573: \"$ac_try\"") >&5 + { (eval echo "$as_me:16847: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15576: \$? = $ac_status" >&5 + echo "$as_me:16850: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_memmove=yes else @@ -15583,19 +16857,19 @@ ac_cv_func_memmove=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:15586: result: $ac_cv_func_memmove" >&5 +echo "$as_me:16860: result: $ac_cv_func_memmove" >&5 echo "${ECHO_T}$ac_cv_func_memmove" >&6 if test $ac_cv_func_memmove = yes; then : else -echo "$as_me:15592: checking for bcopy" >&5 +echo "$as_me:16866: checking for bcopy" >&5 echo $ECHO_N "checking for bcopy... $ECHO_C" >&6 if test "${ac_cv_func_bcopy+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 15598 "configure" +#line 16872 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char bcopy (); below. */ @@ -15618,7 +16892,7 @@ main () #if defined (__stub_bcopy) || defined (__stub___bcopy) choke me #else -f = bcopy; +f = bcopy; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; #endif ; @@ -15626,16 +16900,16 @@ f = bcopy; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:15629: \"$ac_link\"") >&5 +if { (eval echo "$as_me:16903: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:15632: \$? = $ac_status" >&5 + echo "$as_me:16906: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:15635: \"$ac_try\"") >&5 + { (eval echo "$as_me:16909: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15638: \$? = $ac_status" >&5 + echo "$as_me:16912: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_bcopy=yes else @@ -15645,11 +16919,11 @@ ac_cv_func_bcopy=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:15648: result: $ac_cv_func_bcopy" >&5 +echo "$as_me:16922: result: $ac_cv_func_bcopy" >&5 echo "${ECHO_T}$ac_cv_func_bcopy" >&6 if test $ac_cv_func_bcopy = yes; then - echo "$as_me:15652: checking if bcopy does overlapping moves" >&5 + echo "$as_me:16926: checking if bcopy does overlapping moves" >&5 echo $ECHO_N "checking if bcopy does overlapping moves... $ECHO_C" >&6 if test "${cf_cv_good_bcopy+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -15659,7 +16933,7 @@ else cf_cv_good_bcopy=unknown else cat >conftest.$ac_ext <<_ACEOF -#line 15662 "configure" +#line 16936 "configure" #include "confdefs.h" int main() { @@ -15673,15 +16947,15 @@ int main() { _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:15676: \"$ac_link\"") >&5 +if { (eval echo "$as_me:16950: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:15679: \$? = $ac_status" >&5 + echo "$as_me:16953: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:15681: \"$ac_try\"") >&5 + { (eval echo "$as_me:16955: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15684: \$? = $ac_status" >&5 + echo "$as_me:16958: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_good_bcopy=yes else @@ -15694,7 +16968,7 @@ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -echo "$as_me:15697: result: $cf_cv_good_bcopy" >&5 +echo "$as_me:16971: result: $cf_cv_good_bcopy" >&5 echo "${ECHO_T}$cf_cv_good_bcopy" >&6 else @@ -15702,12 +16976,14 @@ else fi if test "$cf_cv_good_bcopy" = yes ; then - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define USE_OK_BCOPY 1 EOF else - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define USE_MY_MEMMOVE 1 EOF @@ -15715,7 +16991,7 @@ EOF fi -echo "$as_me:15718: checking if poll really works" >&5 +echo "$as_me:16994: checking if poll really works" >&5 echo $ECHO_N "checking if poll really works... $ECHO_C" >&6 if test "${cf_cv_working_poll+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -15725,10 +17001,13 @@ if test "$cross_compiling" = yes; then cf_cv_working_poll=unknown else cat >conftest.$ac_ext <<_ACEOF -#line 15728 "configure" +#line 17004 "configure" #include "confdefs.h" +#include #include +#include +#include #ifdef HAVE_POLL_H #include #else @@ -15738,23 +17017,46 @@ int main() { struct pollfd myfds; int ret; - myfds.fd = 0; + /* check for Darwin bug with respect to "devices" */ + myfds.fd = open("/dev/null", 1); /* O_WRONLY */ + if (myfds.fd < 0) + myfds.fd = 0; myfds.events = POLLIN; + myfds.revents = 0; ret = poll(&myfds, 1, 100); - ${cf_cv_main_return:-return}(ret != 0); + + if (ret < 0 || (myfds.revents & POLLNVAL)) { + ret = -1; + } else { + int fd = 0; + if (!isatty(fd)) { + fd = open("/dev/tty", 2); /* O_RDWR */ + } + + if (fd >= 0) { + /* also check with standard input */ + myfds.fd = fd; + myfds.events = POLLIN; + myfds.revents = 0; + ret = poll(&myfds, 1, 100); + } else { + ret = -1; + } + } + ${cf_cv_main_return:-return}(ret < 0); } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:15749: \"$ac_link\"") >&5 +if { (eval echo "$as_me:17051: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:15752: \$? = $ac_status" >&5 + echo "$as_me:17054: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:15754: \"$ac_try\"") >&5 + { (eval echo "$as_me:17056: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15757: \$? = $ac_status" >&5 + echo "$as_me:17059: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_working_poll=yes else @@ -15766,20 +17068,21 @@ fi rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -echo "$as_me:15769: result: $cf_cv_working_poll" >&5 +echo "$as_me:17071: result: $cf_cv_working_poll" >&5 echo "${ECHO_T}$cf_cv_working_poll" >&6 -test "$cf_cv_working_poll" = "yes" && cat >>confdefs.h <<\EOF +test "$cf_cv_working_poll" = "yes" && +cat >>confdefs.h <<\EOF #define HAVE_WORKING_POLL 1 EOF -echo "$as_me:15775: checking for va_copy" >&5 +echo "$as_me:17078: checking for va_copy" >&5 echo $ECHO_N "checking for va_copy... $ECHO_C" >&6 if test "${cf_cv_have_va_copy+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 15782 "configure" +#line 17085 "configure" #include "confdefs.h" #include @@ -15796,16 +17099,16 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:15799: \"$ac_link\"") >&5 +if { (eval echo "$as_me:17102: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:15802: \$? = $ac_status" >&5 + echo "$as_me:17105: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:15805: \"$ac_try\"") >&5 + { (eval echo "$as_me:17108: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15808: \$? = $ac_status" >&5 + echo "$as_me:17111: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_have_va_copy=yes else @@ -15815,21 +17118,22 @@ cf_cv_have_va_copy=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:15818: result: $cf_cv_have_va_copy" >&5 +echo "$as_me:17121: result: $cf_cv_have_va_copy" >&5 echo "${ECHO_T}$cf_cv_have_va_copy" >&6 -test "$cf_cv_have_va_copy" = yes && cat >>confdefs.h <<\EOF +test "$cf_cv_have_va_copy" = yes && +cat >>confdefs.h <<\EOF #define HAVE_VA_COPY 1 EOF -echo "$as_me:15825: checking for __va_copy" >&5 +echo "$as_me:17129: checking for __va_copy" >&5 echo $ECHO_N "checking for __va_copy... $ECHO_C" >&6 if test "${cf_cv_have___va_copy+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 15832 "configure" +#line 17136 "configure" #include "confdefs.h" #include @@ -15846,16 +17150,16 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:15849: \"$ac_link\"") >&5 +if { (eval echo "$as_me:17153: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:15852: \$? = $ac_status" >&5 + echo "$as_me:17156: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:15855: \"$ac_try\"") >&5 + { (eval echo "$as_me:17159: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15858: \$? = $ac_status" >&5 + echo "$as_me:17162: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_have___va_copy=yes else @@ -15865,20 +17169,21 @@ cf_cv_have___va_copy=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:15868: result: $cf_cv_have___va_copy" >&5 +echo "$as_me:17172: result: $cf_cv_have___va_copy" >&5 echo "${ECHO_T}$cf_cv_have___va_copy" >&6 -test "$cf_cv_have___va_copy" = yes && cat >>confdefs.h <<\EOF +test "$cf_cv_have___va_copy" = yes && +cat >>confdefs.h <<\EOF #define HAVE___VA_COPY 1 EOF -echo "$as_me:15875: checking for pid_t" >&5 +echo "$as_me:17180: checking for pid_t" >&5 echo $ECHO_N "checking for pid_t... $ECHO_C" >&6 if test "${ac_cv_type_pid_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 15881 "configure" +#line 17186 "configure" #include "confdefs.h" $ac_includes_default int @@ -15893,16 +17198,16 @@ if (sizeof (pid_t)) } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:15896: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:17201: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:15899: \$? = $ac_status" >&5 + echo "$as_me:17204: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:15902: \"$ac_try\"") >&5 + { (eval echo "$as_me:17207: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15905: \$? = $ac_status" >&5 + echo "$as_me:17210: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_pid_t=yes else @@ -15912,7 +17217,7 @@ ac_cv_type_pid_t=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:15915: result: $ac_cv_type_pid_t" >&5 +echo "$as_me:17220: result: $ac_cv_type_pid_t" >&5 echo "${ECHO_T}$ac_cv_type_pid_t" >&6 if test $ac_cv_type_pid_t = yes; then : @@ -15927,23 +17232,23 @@ fi for ac_header in unistd.h vfork.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:15930: checking for $ac_header" >&5 +echo "$as_me:17235: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 15936 "configure" +#line 17241 "configure" #include "confdefs.h" #include <$ac_header> _ACEOF -if { (eval echo "$as_me:15940: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:17245: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:15946: \$? = $ac_status" >&5 + echo "$as_me:17251: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -15962,7 +17267,7 @@ else fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:15965: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "$as_me:17270: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <&5 +echo "$as_me:17283: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 15984 "configure" +#line 17289 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. */ @@ -16004,7 +17309,7 @@ main () #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else -f = $ac_func; +f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; #endif ; @@ -16012,16 +17317,16 @@ f = $ac_func; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:16015: \"$ac_link\"") >&5 +if { (eval echo "$as_me:17320: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:16018: \$? = $ac_status" >&5 + echo "$as_me:17323: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:16021: \"$ac_try\"") >&5 + { (eval echo "$as_me:17326: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:16024: \$? = $ac_status" >&5 + echo "$as_me:17329: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else @@ -16031,7 +17336,7 @@ eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:16034: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "$as_me:17339: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <&5 + echo "$as_me:17351: checking for working fork" >&5 echo $ECHO_N "checking for working fork... $ECHO_C" >&6 if test "${ac_cv_func_fork_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -16066,15 +17371,15 @@ else } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:16069: \"$ac_link\"") >&5 +if { (eval echo "$as_me:17374: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:16072: \$? = $ac_status" >&5 + echo "$as_me:17377: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:16074: \"$ac_try\"") >&5 + { (eval echo "$as_me:17379: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:16077: \$? = $ac_status" >&5 + echo "$as_me:17382: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_fork_works=yes else @@ -16086,7 +17391,7 @@ fi rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -echo "$as_me:16089: result: $ac_cv_func_fork_works" >&5 +echo "$as_me:17394: result: $ac_cv_func_fork_works" >&5 echo "${ECHO_T}$ac_cv_func_fork_works" >&6 fi @@ -16100,12 +17405,12 @@ if test "x$ac_cv_func_fork_works" = xcross; then ac_cv_func_fork_works=yes ;; esac - { echo "$as_me:16103: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5 + { echo "$as_me:17408: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5 echo "$as_me: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&2;} fi ac_cv_func_vfork_works=$ac_cv_func_vfork if test "x$ac_cv_func_vfork" = xyes; then - echo "$as_me:16108: checking for working vfork" >&5 + echo "$as_me:17413: checking for working vfork" >&5 echo $ECHO_N "checking for working vfork... $ECHO_C" >&6 if test "${ac_cv_func_vfork_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -16114,7 +17419,7 @@ else ac_cv_func_vfork_works=cross else cat >conftest.$ac_ext <<_ACEOF -#line 16117 "configure" +#line 17422 "configure" #include "confdefs.h" /* Thanks to Paul Eggert for this test. */ #include @@ -16211,15 +17516,15 @@ main () } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:16214: \"$ac_link\"") >&5 +if { (eval echo "$as_me:17519: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:16217: \$? = $ac_status" >&5 + echo "$as_me:17522: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:16219: \"$ac_try\"") >&5 + { (eval echo "$as_me:17524: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:16222: \$? = $ac_status" >&5 + echo "$as_me:17527: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_vfork_works=yes else @@ -16231,13 +17536,13 @@ fi rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -echo "$as_me:16234: result: $ac_cv_func_vfork_works" >&5 +echo "$as_me:17539: result: $ac_cv_func_vfork_works" >&5 echo "${ECHO_T}$ac_cv_func_vfork_works" >&6 fi; if test "x$ac_cv_func_fork_works" = xcross; then ac_cv_func_vfork_works=ac_cv_func_vfork - { echo "$as_me:16240: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5 + { echo "$as_me:17545: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5 echo "$as_me: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&2;} fi @@ -16264,7 +17569,7 @@ fi # special check for test/ditto.c -echo "$as_me:16267: checking for openpty in -lutil" >&5 +echo "$as_me:17572: checking for openpty in -lutil" >&5 echo $ECHO_N "checking for openpty in -lutil... $ECHO_C" >&6 if test "${ac_cv_lib_util_openpty+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -16272,7 +17577,7 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lutil $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 16275 "configure" +#line 17580 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -16291,16 +17596,16 @@ openpty (); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:16294: \"$ac_link\"") >&5 +if { (eval echo "$as_me:17599: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:16297: \$? = $ac_status" >&5 + echo "$as_me:17602: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:16300: \"$ac_try\"") >&5 + { (eval echo "$as_me:17605: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:16303: \$? = $ac_status" >&5 + echo "$as_me:17608: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_util_openpty=yes else @@ -16311,7 +17616,7 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:16314: result: $ac_cv_lib_util_openpty" >&5 +echo "$as_me:17619: result: $ac_cv_lib_util_openpty" >&5 echo "${ECHO_T}$ac_cv_lib_util_openpty" >&6 if test $ac_cv_lib_util_openpty = yes; then cf_cv_lib_util=yes @@ -16319,7 +17624,7 @@ else cf_cv_lib_util=no fi -echo "$as_me:16322: checking for openpty header" >&5 +echo "$as_me:17627: checking for openpty header" >&5 echo $ECHO_N "checking for openpty header... $ECHO_C" >&6 if test "${cf_cv_func_openpty+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -16330,7 +17635,7 @@ else for cf_header in pty.h libutil.h util.h do cat >conftest.$ac_ext <<_ACEOF -#line 16333 "configure" +#line 17638 "configure" #include "confdefs.h" #include <$cf_header> @@ -16347,16 +17652,16 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:16350: \"$ac_link\"") >&5 +if { (eval echo "$as_me:17655: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:16353: \$? = $ac_status" >&5 + echo "$as_me:17658: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:16356: \"$ac_try\"") >&5 + { (eval echo "$as_me:17661: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:16359: \$? = $ac_status" >&5 + echo "$as_me:17664: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_func_openpty=$cf_header @@ -16374,25 +17679,27 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS="$cf_save_LIBS" fi -echo "$as_me:16377: result: $cf_cv_func_openpty" >&5 +echo "$as_me:17682: result: $cf_cv_func_openpty" >&5 echo "${ECHO_T}$cf_cv_func_openpty" >&6 if test "$cf_cv_func_openpty" != no ; then - cat >>confdefs.h <>confdefs.h < EOF - cat >>confdefs.h <<\EOF +cat >>confdefs.h <<\EOF #define USE_XTERM_PTY 1 EOF - if test "$cf_cv_lib_util" = yes ; then + if test "x$cf_cv_lib_util" = xyes ; then TEST_LIBS="-lutil $TEST_LIBS" fi fi if test "$with_hashed_db" != no ; then - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define USE_HASHED_DB 1 EOF @@ -16426,7 +17733,7 @@ if test -n "$with_hashed_db/include" ; then cf_save_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" cat >conftest.$ac_ext <<_ACEOF -#line 16429 "configure" +#line 17736 "configure" #include "confdefs.h" #include int @@ -16438,16 +17745,16 @@ printf("Hello") } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:16441: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:17748: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:16444: \$? = $ac_status" >&5 + echo "$as_me:17751: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:16447: \"$ac_try\"") >&5 + { (eval echo "$as_me:17754: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:16450: \$? = $ac_status" >&5 + echo "$as_me:17757: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -16464,7 +17771,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext if test "$cf_have_incdir" = no ; then test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 -echo "${as_me:-configure}:16467: testing adding $cf_add_incdir to include-path ..." 1>&5 +echo "${as_me:-configure}:17774: testing adding $cf_add_incdir to include-path ..." 1>&5 CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" @@ -16498,7 +17805,7 @@ if test -n "$with_hashed_db/lib" ; then if test "$cf_have_libdir" = no ; then test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6 -echo "${as_me:-configure}:16501: testing adding $cf_add_libdir to library-path ..." 1>&5 +echo "${as_me:-configure}:17808: testing adding $cf_add_libdir to library-path ..." 1>&5 LDFLAGS="-L$cf_add_libdir $LDFLAGS" fi @@ -16509,23 +17816,23 @@ fi fi esac -echo "$as_me:16512: checking for db.h" >&5 +echo "$as_me:17819: checking for db.h" >&5 echo $ECHO_N "checking for db.h... $ECHO_C" >&6 if test "${ac_cv_header_db_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 16518 "configure" +#line 17825 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:16522: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:17829: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:16528: \$? = $ac_status" >&5 + echo "$as_me:17835: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -16544,11 +17851,11 @@ else fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:16547: result: $ac_cv_header_db_h" >&5 +echo "$as_me:17854: result: $ac_cv_header_db_h" >&5 echo "${ECHO_T}$ac_cv_header_db_h" >&6 if test $ac_cv_header_db_h = yes; then -echo "$as_me:16551: checking for version of db" >&5 +echo "$as_me:17858: checking for version of db" >&5 echo $ECHO_N "checking for version of db... $ECHO_C" >&6 if test "${cf_cv_hashed_db_version+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -16559,10 +17866,10 @@ cf_cv_hashed_db_version=unknown for cf_db_version in 1 2 3 4 5 do -echo "${as_me:-configure}:16562: testing checking for db version $cf_db_version ..." 1>&5 +echo "${as_me:-configure}:17869: testing checking for db version $cf_db_version ..." 1>&5 cat >conftest.$ac_ext <<_ACEOF -#line 16565 "configure" +#line 17872 "configure" #include "confdefs.h" $ac_includes_default @@ -16592,16 +17899,16 @@ DBT *foo = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:16595: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:17902: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:16598: \$? = $ac_status" >&5 + echo "$as_me:17905: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:16601: \"$ac_try\"") >&5 + { (eval echo "$as_me:17908: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:16604: \$? = $ac_status" >&5 + echo "$as_me:17911: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_hashed_db_version=$cf_db_version @@ -16615,16 +17922,16 @@ rm -f conftest.$ac_objext conftest.$ac_ext done fi -echo "$as_me:16618: result: $cf_cv_hashed_db_version" >&5 +echo "$as_me:17925: result: $cf_cv_hashed_db_version" >&5 echo "${ECHO_T}$cf_cv_hashed_db_version" >&6 if test "$cf_cv_hashed_db_version" = unknown ; then - { { echo "$as_me:16622: error: Cannot determine version of db" >&5 + { { echo "$as_me:17929: error: Cannot determine version of db" >&5 echo "$as_me: error: Cannot determine version of db" >&2;} { (exit 1); exit 1; }; } else -echo "$as_me:16627: checking for db libraries" >&5 +echo "$as_me:17934: checking for db libraries" >&5 echo $ECHO_N "checking for db libraries... $ECHO_C" >&6 if test "${cf_cv_hashed_db_libs+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -16638,10 +17945,10 @@ do LIBS="-l$cf_db_libs $LIBS" fi -echo "${as_me:-configure}:16641: testing checking for library "$cf_db_libs" ..." 1>&5 +echo "${as_me:-configure}:17948: testing checking for library "$cf_db_libs" ..." 1>&5 cat >conftest.$ac_ext <<_ACEOF -#line 16644 "configure" +#line 17951 "configure" #include "confdefs.h" $ac_includes_default @@ -16696,16 +18003,16 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:16699: \"$ac_link\"") >&5 +if { (eval echo "$as_me:18006: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:16702: \$? = $ac_status" >&5 + echo "$as_me:18009: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:16705: \"$ac_try\"") >&5 + { (eval echo "$as_me:18012: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:16708: \$? = $ac_status" >&5 + echo "$as_me:18015: \$? = $ac_status" >&5 (exit $ac_status); }; }; then if test -n "$cf_db_libs" ; then @@ -16725,11 +18032,11 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext done fi -echo "$as_me:16728: result: $cf_cv_hashed_db_libs" >&5 +echo "$as_me:18035: result: $cf_cv_hashed_db_libs" >&5 echo "${ECHO_T}$cf_cv_hashed_db_libs" >&6 if test "$cf_cv_hashed_db_libs" = unknown ; then - { { echo "$as_me:16732: error: Cannot determine library for db" >&5 + { { echo "$as_me:18039: error: Cannot determine library for db" >&5 echo "$as_me: error: Cannot determine library for db" >&2;} { (exit 1); exit 1; }; } elif test "$cf_cv_hashed_db_libs" != default ; then @@ -16739,7 +18046,7 @@ fi else - { { echo "$as_me:16742: error: Cannot find db.h" >&5 + { { echo "$as_me:18049: error: Cannot find db.h" >&5 echo "$as_me: error: Cannot find db.h" >&2;} { (exit 1); exit 1; }; } @@ -16754,7 +18061,7 @@ fi # Just in case, check if the C compiler has a bool type. -echo "$as_me:16757: checking if we should include stdbool.h" >&5 +echo "$as_me:18064: checking if we should include stdbool.h" >&5 echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6 if test "${cf_cv_header_stdbool_h+set}" = set; then @@ -16762,7 +18069,7 @@ if test "${cf_cv_header_stdbool_h+set}" = set; then else cat >conftest.$ac_ext <<_ACEOF -#line 16765 "configure" +#line 18072 "configure" #include "confdefs.h" int @@ -16774,23 +18081,23 @@ bool foo = false } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:16777: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:18084: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:16780: \$? = $ac_status" >&5 + echo "$as_me:18087: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:16783: \"$ac_try\"") >&5 + { (eval echo "$as_me:18090: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:16786: \$? = $ac_status" >&5 + echo "$as_me:18093: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_header_stdbool_h=0 else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 16793 "configure" +#line 18100 "configure" #include "confdefs.h" #ifndef __BEOS__ @@ -16806,16 +18113,16 @@ bool foo = false } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:16809: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:18116: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:16812: \$? = $ac_status" >&5 + echo "$as_me:18119: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:16815: \"$ac_try\"") >&5 + { (eval echo "$as_me:18122: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:16818: \$? = $ac_status" >&5 + echo "$as_me:18125: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_header_stdbool_h=1 else @@ -16829,13 +18136,13 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi if test "$cf_cv_header_stdbool_h" = 1 -then echo "$as_me:16832: result: yes" >&5 +then echo "$as_me:18139: result: yes" >&5 echo "${ECHO_T}yes" >&6 -else echo "$as_me:16834: result: no" >&5 +else echo "$as_me:18141: result: no" >&5 echo "${ECHO_T}no" >&6 fi -echo "$as_me:16838: checking for builtin bool type" >&5 +echo "$as_me:18145: checking for builtin bool type" >&5 echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6 if test "${cf_cv_cc_bool_type+set}" = set; then @@ -16843,7 +18150,7 @@ if test "${cf_cv_cc_bool_type+set}" = set; then else cat >conftest.$ac_ext <<_ACEOF -#line 16846 "configure" +#line 18153 "configure" #include "confdefs.h" #include @@ -16858,16 +18165,16 @@ bool x = false } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:16861: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:18168: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:16864: \$? = $ac_status" >&5 + echo "$as_me:18171: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:16867: \"$ac_try\"") >&5 + { (eval echo "$as_me:18174: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:16870: \$? = $ac_status" >&5 + echo "$as_me:18177: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_cc_bool_type=1 else @@ -16880,9 +18187,9 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi if test "$cf_cv_cc_bool_type" = 1 -then echo "$as_me:16883: result: yes" >&5 +then echo "$as_me:18190: result: yes" >&5 echo "${ECHO_T}yes" >&6 -else echo "$as_me:16885: result: no" >&5 +else echo "$as_me:18192: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -16904,7 +18211,7 @@ os2*) #(vi cf_stdcpp_libname=stdc++ ;; esac -echo "$as_me:16907: checking for library $cf_stdcpp_libname" >&5 +echo "$as_me:18214: checking for library $cf_stdcpp_libname" >&5 echo $ECHO_N "checking for library $cf_stdcpp_libname... $ECHO_C" >&6 if test "${cf_cv_libstdcpp+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -16913,7 +18220,7 @@ else cf_save="$LIBS" LIBS="-l$cf_stdcpp_libname $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 16916 "configure" +#line 18223 "configure" #include "confdefs.h" #include @@ -16929,16 +18236,16 @@ strstreambuf foo(buf, sizeof(buf)) } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:16932: \"$ac_link\"") >&5 +if { (eval echo "$as_me:18239: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:16935: \$? = $ac_status" >&5 + echo "$as_me:18242: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:16938: \"$ac_try\"") >&5 + { (eval echo "$as_me:18245: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:16941: \$? = $ac_status" >&5 + echo "$as_me:18248: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_libstdcpp=yes else @@ -16950,12 +18257,12 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS="$cf_save" fi -echo "$as_me:16953: result: $cf_cv_libstdcpp" >&5 +echo "$as_me:18260: result: $cf_cv_libstdcpp" >&5 echo "${ECHO_T}$cf_cv_libstdcpp" >&6 test "$cf_cv_libstdcpp" = yes && CXXLIBS="-l$cf_stdcpp_libname $CXXLIBS" fi - echo "$as_me:16958: checking whether $CXX understands -c and -o together" >&5 + echo "$as_me:18265: checking whether $CXX understands -c and -o together" >&5 echo $ECHO_N "checking whether $CXX understands -c and -o together... $ECHO_C" >&6 if test "${cf_cv_prog_CXX_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -16971,15 +18278,15 @@ CF_EOF # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='$CXX -c conftest.$ac_ext -o conftest2.$ac_objext >&5' -if { (eval echo "$as_me:16974: \"$ac_try\"") >&5 +if { (eval echo "$as_me:18281: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:16977: \$? = $ac_status" >&5 + echo "$as_me:18284: \$? = $ac_status" >&5 (exit $ac_status); } && - test -f conftest2.$ac_objext && { (eval echo "$as_me:16979: \"$ac_try\"") >&5 + test -f conftest2.$ac_objext && { (eval echo "$as_me:18286: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:16982: \$? = $ac_status" >&5 + echo "$as_me:18289: \$? = $ac_status" >&5 (exit $ac_status); }; then eval cf_cv_prog_CXX_c_o=yes @@ -16990,10 +18297,10 @@ rm -rf conftest* fi if test $cf_cv_prog_CXX_c_o = yes; then - echo "$as_me:16993: result: yes" >&5 + echo "$as_me:18300: result: yes" >&5 echo "${ECHO_T}yes" >&6 else - echo "$as_me:16996: result: no" >&5 + echo "$as_me:18303: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -17013,12 +18320,12 @@ os2*) #(vi ;; esac if test "$GXX" = yes; then - echo "$as_me:17016: checking for lib$cf_gpp_libname" >&5 + echo "$as_me:18323: checking for lib$cf_gpp_libname" >&5 echo $ECHO_N "checking for lib$cf_gpp_libname... $ECHO_C" >&6 cf_save="$LIBS" LIBS="-l$cf_gpp_libname $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 17021 "configure" +#line 18328 "configure" #include "confdefs.h" #include <$cf_gpp_libname/builtin.h> @@ -17032,26 +18339,28 @@ two_arg_error_handler_t foo2 = lib_error_handler } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:17035: \"$ac_link\"") >&5 +if { (eval echo "$as_me:18342: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:17038: \$? = $ac_status" >&5 + echo "$as_me:18345: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:17041: \"$ac_try\"") >&5 + { (eval echo "$as_me:18348: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:17044: \$? = $ac_status" >&5 + echo "$as_me:18351: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cxx_library=yes CXXLIBS="-l$cf_gpp_libname $CXXLIBS" if test "$cf_gpp_libname" = cpp ; then - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define HAVE_GPP_BUILTIN_H 1 EOF else - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define HAVE_GXX_BUILTIN_H 1 EOF @@ -17060,7 +18369,7 @@ else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 17063 "configure" +#line 18372 "configure" #include "confdefs.h" #include @@ -17074,20 +18383,21 @@ two_arg_error_handler_t foo2 = lib_error_handler } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:17077: \"$ac_link\"") >&5 +if { (eval echo "$as_me:18386: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:17080: \$? = $ac_status" >&5 + echo "$as_me:18389: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:17083: \"$ac_try\"") >&5 + { (eval echo "$as_me:18392: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:17086: \$? = $ac_status" >&5 + echo "$as_me:18395: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cxx_library=yes CXXLIBS="-l$cf_gpp_libname $CXXLIBS" - cat >>confdefs.h <<\EOF + +cat >>confdefs.h <<\EOF #define HAVE_BUILTIN_H 1 EOF @@ -17100,7 +18410,7 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS="$cf_save" - echo "$as_me:17103: result: $cf_cxx_library" >&5 + echo "$as_me:18413: result: $cf_cxx_library" >&5 echo "${ECHO_T}$cf_cxx_library" >&6 fi @@ -17116,7 +18426,7 @@ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_main_return=return -echo "$as_me:17119: checking how to run the C++ preprocessor" >&5 +echo "$as_me:18429: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then @@ -17133,18 +18443,18 @@ do # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF -#line 17136 "configure" +#line 18446 "configure" #include "confdefs.h" #include Syntax error _ACEOF -if { (eval echo "$as_me:17141: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:18451: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:17147: \$? = $ac_status" >&5 + echo "$as_me:18457: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag @@ -17167,17 +18477,17 @@ rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF -#line 17170 "configure" +#line 18480 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:17174: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:18484: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:17180: \$? = $ac_status" >&5 + echo "$as_me:18490: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag @@ -17214,7 +18524,7 @@ fi else ac_cv_prog_CXXCPP=$CXXCPP fi -echo "$as_me:17217: result: $CXXCPP" >&5 +echo "$as_me:18527: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes @@ -17224,18 +18534,18 @@ do # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF -#line 17227 "configure" +#line 18537 "configure" #include "confdefs.h" #include Syntax error _ACEOF -if { (eval echo "$as_me:17232: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:18542: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:17238: \$? = $ac_status" >&5 + echo "$as_me:18548: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag @@ -17258,17 +18568,17 @@ rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF -#line 17261 "configure" +#line 18571 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:17265: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:18575: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:17271: \$? = $ac_status" >&5 + echo "$as_me:18581: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag @@ -17296,7 +18606,7 @@ rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else - { { echo "$as_me:17299: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5 + { { echo "$as_me:18609: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;} { (exit 1); exit 1; }; } fi @@ -17308,26 +18618,26 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_main_return=return -for ac_header in iostream typeinfo +for ac_header in typeinfo do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:17314: checking for $ac_header" >&5 +echo "$as_me:18624: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 17320 "configure" +#line 18630 "configure" #include "confdefs.h" #include <$ac_header> _ACEOF -if { (eval echo "$as_me:17324: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:18634: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:17330: \$? = $ac_status" >&5 + echo "$as_me:18640: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag @@ -17346,7 +18656,7 @@ else fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:17349: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "$as_me:18659: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <&5 +for ac_header in iostream +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +echo "$as_me:18672: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 18678 "configure" +#include "confdefs.h" +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:18682: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + egrep -v '^ *\+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:18688: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + eval "$as_ac_Header=no" +fi +rm -f conftest.err conftest.$ac_ext +fi +echo "$as_me:18707: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <&5 echo $ECHO_N "checking if iostream uses std-namespace... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF -#line 17363 "configure" + cat >conftest.$ac_ext <<_ACEOF +#line 18721 "configure" #include "confdefs.h" #include @@ -17377,16 +18735,16 @@ cerr << "testing" << endl; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:17380: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:18738: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:17383: \$? = $ac_status" >&5 + echo "$as_me:18741: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:17386: \"$ac_try\"") >&5 + { (eval echo "$as_me:18744: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:17389: \$? = $ac_status" >&5 + echo "$as_me:18747: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_iostream_namespace=yes else @@ -17395,17 +18753,18 @@ cat conftest.$ac_ext >&5 cf_iostream_namespace=no fi rm -f conftest.$ac_objext conftest.$ac_ext - echo "$as_me:17398: result: $cf_iostream_namespace" >&5 + echo "$as_me:18756: result: $cf_iostream_namespace" >&5 echo "${ECHO_T}$cf_iostream_namespace" >&6 - if test "$cf_iostream_namespace" = yes ; then - cat >>confdefs.h <<\EOF + if test "$cf_iostream_namespace" = yes ; then + +cat >>confdefs.h <<\EOF #define IOSTREAM_NAMESPACE 1 EOF - fi - fi + fi +fi -echo "$as_me:17408: checking if we should include stdbool.h" >&5 +echo "$as_me:18767: checking if we should include stdbool.h" >&5 echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6 if test "${cf_cv_header_stdbool_h+set}" = set; then @@ -17413,7 +18772,7 @@ if test "${cf_cv_header_stdbool_h+set}" = set; then else cat >conftest.$ac_ext <<_ACEOF -#line 17416 "configure" +#line 18775 "configure" #include "confdefs.h" int @@ -17425,23 +18784,23 @@ bool foo = false } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:17428: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:18787: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:17431: \$? = $ac_status" >&5 + echo "$as_me:18790: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:17434: \"$ac_try\"") >&5 + { (eval echo "$as_me:18793: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:17437: \$? = $ac_status" >&5 + echo "$as_me:18796: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_header_stdbool_h=0 else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 17444 "configure" +#line 18803 "configure" #include "confdefs.h" #ifndef __BEOS__ @@ -17457,16 +18816,16 @@ bool foo = false } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:17460: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:18819: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:17463: \$? = $ac_status" >&5 + echo "$as_me:18822: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:17466: \"$ac_try\"") >&5 + { (eval echo "$as_me:18825: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:17469: \$? = $ac_status" >&5 + echo "$as_me:18828: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_header_stdbool_h=1 else @@ -17480,13 +18839,13 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi if test "$cf_cv_header_stdbool_h" = 1 -then echo "$as_me:17483: result: yes" >&5 +then echo "$as_me:18842: result: yes" >&5 echo "${ECHO_T}yes" >&6 -else echo "$as_me:17485: result: no" >&5 +else echo "$as_me:18844: result: no" >&5 echo "${ECHO_T}no" >&6 fi -echo "$as_me:17489: checking for builtin bool type" >&5 +echo "$as_me:18848: checking for builtin bool type" >&5 echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6 if test "${cf_cv_builtin_bool+set}" = set; then @@ -17494,7 +18853,7 @@ if test "${cf_cv_builtin_bool+set}" = set; then else cat >conftest.$ac_ext <<_ACEOF -#line 17497 "configure" +#line 18856 "configure" #include "confdefs.h" #include @@ -17509,16 +18868,16 @@ bool x = false } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:17512: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:18871: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:17515: \$? = $ac_status" >&5 + echo "$as_me:18874: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:17518: \"$ac_try\"") >&5 + { (eval echo "$as_me:18877: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:17521: \$? = $ac_status" >&5 + echo "$as_me:18880: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_builtin_bool=1 else @@ -17531,13 +18890,13 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi if test "$cf_cv_builtin_bool" = 1 -then echo "$as_me:17534: result: yes" >&5 +then echo "$as_me:18893: result: yes" >&5 echo "${ECHO_T}yes" >&6 -else echo "$as_me:17536: result: no" >&5 +else echo "$as_me:18895: result: no" >&5 echo "${ECHO_T}no" >&6 fi -echo "$as_me:17540: checking for size of bool" >&5 +echo "$as_me:18899: checking for size of bool" >&5 echo $ECHO_N "checking for size of bool... $ECHO_C" >&6 if test "${cf_cv_type_of_bool+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -17548,7 +18907,7 @@ else cf_cv_type_of_bool=unknown else cat >conftest.$ac_ext <<_ACEOF -#line 17551 "configure" +#line 18910 "configure" #include "confdefs.h" #include @@ -17572,7 +18931,7 @@ else #endif -main() +int main() { FILE *fp = fopen("cf_test.out", "w"); if (fp != 0) { @@ -17590,15 +18949,15 @@ main() _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:17593: \"$ac_link\"") >&5 +if { (eval echo "$as_me:18952: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:17596: \$? = $ac_status" >&5 + echo "$as_me:18955: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:17598: \"$ac_try\"") >&5 + { (eval echo "$as_me:18957: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:17601: \$? = $ac_status" >&5 + echo "$as_me:18960: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_type_of_bool=`cat cf_test.out` if test -z "$cf_cv_type_of_bool"; then @@ -17616,30 +18975,36 @@ fi fi rm -f cf_test.out -echo "$as_me:17619: result: $cf_cv_type_of_bool" >&5 +echo "$as_me:18978: result: $cf_cv_type_of_bool" >&5 echo "${ECHO_T}$cf_cv_type_of_bool" >&6 if test "$cf_cv_type_of_bool" = unknown ; then case .$NCURSES_BOOL in #(vi .auto|.) NCURSES_BOOL=unsigned;; esac - { echo "$as_me:17625: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5 + { echo "$as_me:18984: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5 echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;} cf_cv_type_of_bool=$NCURSES_BOOL fi -echo "$as_me:17630: checking for special defines needed for etip.h" >&5 +echo "$as_me:18989: checking for special defines needed for etip.h" >&5 echo $ECHO_N "checking for special defines needed for etip.h... $ECHO_C" >&6 cf_save_CXXFLAGS="$CXXFLAGS" cf_result="none" + +# etip.h includes ncurses.h which includes ncurses_dll.h +# But ncurses_dll.h is generated - fix here. +test -d include || mkdir include +test -f include/ncurses_dll.h || sed -e 's/@NCURSES_WRAP_PREFIX@/'$NCURSES_WRAP_PREFIX'/g' ${srcdir}/include/ncurses_dll.h.in >include/ncurses_dll.h + 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" + CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include" test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}" test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}" cat >conftest.$ac_ext <<_ACEOF -#line 17642 "configure" +#line 19007 "configure" #include "confdefs.h" #include @@ -17653,16 +19018,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:17656: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:19021: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:17659: \$? = $ac_status" >&5 + echo "$as_me:19024: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:17662: \"$ac_try\"") >&5 + { (eval echo "$as_me:19027: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:17665: \$? = $ac_status" >&5 + echo "$as_me:19030: \$? = $ac_status" >&5 (exit $ac_status); }; }; then test -n "$cf_math" && cat >>confdefs.h <&5 @@ -17683,12 +19048,12 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext done done -echo "$as_me:17686: result: $cf_result" >&5 +echo "$as_me:19051: result: $cf_result" >&5 echo "${ECHO_T}$cf_result" >&6 CXXFLAGS="$cf_save_CXXFLAGS" if test -n "$CXX"; then -echo "$as_me:17691: checking if $CXX accepts parameter initialization" >&5 +echo "$as_me:19056: checking if $CXX accepts parameter initialization" >&5 echo $ECHO_N "checking if $CXX accepts parameter initialization... $ECHO_C" >&6 if test "${cf_cv_cpp_param_init+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -17705,7 +19070,7 @@ ac_main_return=return cf_cv_cpp_param_init=unknown else cat >conftest.$ac_ext <<_ACEOF -#line 17708 "configure" +#line 19073 "configure" #include "confdefs.h" class TEST { @@ -17720,19 +19085,19 @@ TEST::TEST(int x = 1) // some compilers do not like second initializer { value = x; } -void main() { } +int main() { } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:17727: \"$ac_link\"") >&5 +if { (eval echo "$as_me:19092: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:17730: \$? = $ac_status" >&5 + echo "$as_me:19095: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:17732: \"$ac_try\"") >&5 + { (eval echo "$as_me:19097: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:17735: \$? = $ac_status" >&5 + echo "$as_me:19100: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_cpp_param_init=yes else @@ -17751,16 +19116,17 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_main_return=return fi -echo "$as_me:17754: result: $cf_cv_cpp_param_init" >&5 +echo "$as_me:19119: result: $cf_cv_cpp_param_init" >&5 echo "${ECHO_T}$cf_cv_cpp_param_init" >&6 fi -test "$cf_cv_cpp_param_init" = yes && cat >>confdefs.h <<\EOF +test "$cf_cv_cpp_param_init" = yes && +cat >>confdefs.h <<\EOF #define CPP_HAS_PARAM_INIT 1 EOF if test -n "$CXX"; then -echo "$as_me:17763: checking if $CXX accepts static_cast" >&5 +echo "$as_me:19129: checking if $CXX accepts static_cast" >&5 echo $ECHO_N "checking if $CXX accepts static_cast... $ECHO_C" >&6 if test "${cf_cv_cpp_static_cast+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -17774,7 +19140,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_main_return=return cat >conftest.$ac_ext <<_ACEOF -#line 17777 "configure" +#line 19143 "configure" #include "confdefs.h" class NCursesPanel @@ -17786,7 +19152,7 @@ public: int begin_x = 0) { } - + NCursesPanel(); ~NCursesPanel(); }; @@ -17818,16 +19184,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:17821: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:19187: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:17824: \$? = $ac_status" >&5 + echo "$as_me:19190: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:17827: \"$ac_try\"") >&5 + { (eval echo "$as_me:19193: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:17830: \$? = $ac_status" >&5 + echo "$as_me:19196: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_cpp_static_cast=yes else @@ -17845,12 +19211,13 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_main_return=return fi -echo "$as_me:17848: result: $cf_cv_cpp_static_cast" >&5 +echo "$as_me:19214: result: $cf_cv_cpp_static_cast" >&5 echo "${ECHO_T}$cf_cv_cpp_static_cast" >&6 fi -test "$cf_cv_cpp_static_cast" = yes && cat >>confdefs.h <<\EOF +test "$cf_cv_cpp_static_cast" = yes && +cat >>confdefs.h <<\EOF #define CPP_HAS_STATIC_CAST 1 EOF @@ -17893,7 +19260,7 @@ else else if test "$cf_cv_header_stdbool_h" = 1 ; then -echo "$as_me:17896: checking for size of bool" >&5 +echo "$as_me:19263: checking for size of bool" >&5 echo $ECHO_N "checking for size of bool... $ECHO_C" >&6 if test "${cf_cv_type_of_bool+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -17904,7 +19271,7 @@ else cf_cv_type_of_bool=unknown else cat >conftest.$ac_ext <<_ACEOF -#line 17907 "configure" +#line 19274 "configure" #include "confdefs.h" #include @@ -17928,7 +19295,7 @@ else #endif -main() +int main() { FILE *fp = fopen("cf_test.out", "w"); if (fp != 0) { @@ -17946,15 +19313,15 @@ main() _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:17949: \"$ac_link\"") >&5 +if { (eval echo "$as_me:19316: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:17952: \$? = $ac_status" >&5 + echo "$as_me:19319: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:17954: \"$ac_try\"") >&5 + { (eval echo "$as_me:19321: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:17957: \$? = $ac_status" >&5 + echo "$as_me:19324: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_type_of_bool=`cat cf_test.out` if test -z "$cf_cv_type_of_bool"; then @@ -17972,25 +19339,25 @@ fi fi rm -f cf_test.out -echo "$as_me:17975: result: $cf_cv_type_of_bool" >&5 +echo "$as_me:19342: result: $cf_cv_type_of_bool" >&5 echo "${ECHO_T}$cf_cv_type_of_bool" >&6 if test "$cf_cv_type_of_bool" = unknown ; then case .$NCURSES_BOOL in #(vi .auto|.) NCURSES_BOOL=unsigned;; esac - { echo "$as_me:17981: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5 + { echo "$as_me:19348: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5 echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;} cf_cv_type_of_bool=$NCURSES_BOOL fi else - echo "$as_me:17987: checking for fallback type of bool" >&5 + echo "$as_me:19354: checking for fallback type of bool" >&5 echo $ECHO_N "checking for fallback type of bool... $ECHO_C" >&6 case "$host_cpu" in #(vi i?86) cf_cv_type_of_bool=char ;; #(vi *) cf_cv_type_of_bool=int ;; esac - echo "$as_me:17993: result: $cf_cv_type_of_bool" >&5 + echo "$as_me:19360: result: $cf_cv_type_of_bool" >&5 echo "${ECHO_T}$cf_cv_type_of_bool" >&6 fi fi @@ -18019,7 +19386,7 @@ if test -f "${srcdir}/Ada95/Makefile.in" ; then if test "$cf_with_ada" != "no" ; then if test "$with_libtool" != "no"; then - { echo "$as_me:18022: WARNING: libtool does not support Ada - disabling feature" >&5 + { echo "$as_me:19389: WARNING: libtool does not support Ada - disabling feature" >&5 echo "$as_me: WARNING: libtool does not support Ada - disabling feature" >&2;} cf_with_ada=no fi @@ -18030,7 +19397,7 @@ echo "$as_me: WARNING: libtool does not support Ada - disabling feature" >&2;} cf_ada_make=gnatmake # Extract the first word of "$cf_ada_make", so it can be a program name with args. set dummy $cf_ada_make; ac_word=$2 -echo "$as_me:18033: checking for $ac_word" >&5 +echo "$as_me:19400: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_gnat_exists+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -18045,7 +19412,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_gnat_exists="yes" -echo "$as_me:18048: found $ac_dir/$ac_word" >&5 +echo "$as_me:19415: found $ac_dir/$ac_word" >&5 break done @@ -18054,31 +19421,32 @@ fi fi gnat_exists=$ac_cv_prog_gnat_exists if test -n "$gnat_exists"; then - echo "$as_me:18057: result: $gnat_exists" >&5 + echo "$as_me:19424: result: $gnat_exists" >&5 echo "${ECHO_T}$gnat_exists" >&6 else - echo "$as_me:18060: result: no" >&5 + echo "$as_me:19427: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "$ac_cv_prog_gnat_exists" = no; then cf_ada_make= + cf_cv_prog_gnat_correct=no else -echo "$as_me:18068: checking for gnat version" >&5 +echo "$as_me:19436: checking for gnat version" >&5 echo $ECHO_N "checking for gnat version... $ECHO_C" >&6 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/ .*//'` -echo "$as_me:18073: result: $cf_gnat_version" >&5 +echo "$as_me:19441: result: $cf_gnat_version" >&5 echo "${ECHO_T}$cf_gnat_version" >&6 case $cf_gnat_version in #(vi -3.1[1-9]*|3.[2-9]*|[4-9].*) #(vi +3.1[1-9]*|3.[2-9]*|[4-9].*|20[0-9][0-9]) #(vi cf_cv_prog_gnat_correct=yes ;; *) - { echo "$as_me:18081: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5 + { echo "$as_me:19449: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5 echo "$as_me: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&2;} cf_cv_prog_gnat_correct=no ;; @@ -18086,7 +19454,7 @@ esac # Extract the first word of "m4", so it can be a program name with args. set dummy m4; ac_word=$2 -echo "$as_me:18089: checking for $ac_word" >&5 +echo "$as_me:19457: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_M4_exists+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -18101,7 +19469,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_M4_exists="yes" -echo "$as_me:18104: found $ac_dir/$ac_word" >&5 +echo "$as_me:19472: found $ac_dir/$ac_word" >&5 break done @@ -18110,10 +19478,10 @@ fi fi M4_exists=$ac_cv_prog_M4_exists if test -n "$M4_exists"; then - echo "$as_me:18113: result: $M4_exists" >&5 + echo "$as_me:19481: result: $M4_exists" >&5 echo "${ECHO_T}$M4_exists" >&6 else - echo "$as_me:18116: result: no" >&5 + echo "$as_me:19484: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -18122,7 +19490,7 @@ fi echo Ada95 binding required program m4 not found. Ada95 binding disabled. fi if test "$cf_cv_prog_gnat_correct" = yes; then - echo "$as_me:18125: checking if GNAT works" >&5 + echo "$as_me:19493: checking if GNAT works" >&5 echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6 rm -rf conftest* *~conftest* @@ -18150,32 +19518,36 @@ else fi rm -rf conftest* *~conftest* - echo "$as_me:18153: result: $cf_cv_prog_gnat_correct" >&5 + echo "$as_me:19521: result: $cf_cv_prog_gnat_correct" >&5 echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6 fi fi - if test "$cf_cv_prog_gnat_correct" = yes; then + if test "x$cf_cv_prog_gnat_correct" = xyes; then ADAFLAGS="$ADAFLAGS -gnatpn" - # make ADAFLAGS consistent with CFLAGS - case "$CFLAGS" in - *-g*) + echo "$as_me:19530: checking optimization options for ADAFLAGS" >&5 +echo $ECHO_N "checking optimization options for ADAFLAGS... $ECHO_C" >&6 + case "$CFLAGS" in + *-g*) ADAFLAGS="$ADAFLAGS -g" - ;; - esac - case "$CFLAGS" in - *-O*) + ;; + esac + case "$CFLAGS" in + *-O*) + cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[ ].*//'` - ADAFLAGS="$ADAFLAGS -O3" + ADAFLAGS="$ADAFLAGS $cf_O_flag" - ;; - esac + ;; + esac + echo "$as_me:19547: result: $ADAFLAGS" >&5 +echo "${ECHO_T}$ADAFLAGS" >&6 -echo "$as_me:18178: checking if GNAT supports generics" >&5 +echo "$as_me:19550: checking if GNAT supports generics" >&5 echo $ECHO_N "checking if GNAT supports generics... $ECHO_C" >&6 case $cf_gnat_version in #(vi 3.[1-9]*|[4-9].*) #(vi @@ -18185,7 +19557,7 @@ case $cf_gnat_version in #(vi cf_gnat_generics=no ;; esac -echo "$as_me:18188: result: $cf_gnat_generics" >&5 +echo "$as_me:19560: result: $cf_gnat_generics" >&5 echo "${ECHO_T}$cf_gnat_generics" >&6 if test "$cf_gnat_generics" = yes @@ -18197,7 +19569,7 @@ else cf_generic_objects= fi -echo "$as_me:18200: checking if GNAT supports SIGINT" >&5 +echo "$as_me:19572: checking if GNAT supports SIGINT" >&5 echo $ECHO_N "checking if GNAT supports SIGINT... $ECHO_C" >&6 if test "${cf_cv_gnat_sigint+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -18245,7 +19617,7 @@ fi rm -rf conftest* *~conftest* fi -echo "$as_me:18248: result: $cf_cv_gnat_sigint" >&5 +echo "$as_me:19620: result: $cf_cv_gnat_sigint" >&5 echo "${ECHO_T}$cf_cv_gnat_sigint" >&6 if test $cf_cv_gnat_sigint = yes ; then @@ -18254,7 +19626,7 @@ else USE_GNAT_SIGINT="#" fi -echo "$as_me:18257: checking if GNAT pragma Unreferenced works" >&5 +echo "$as_me:19629: checking if GNAT pragma Unreferenced works" >&5 echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6 if test "${cf_cv_pragma_unreferenced+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -18285,7 +19657,7 @@ fi rm -rf conftest* *~conftest* fi -echo "$as_me:18288: result: $cf_cv_pragma_unreferenced" >&5 +echo "$as_me:19660: result: $cf_cv_pragma_unreferenced" >&5 echo "${ECHO_T}$cf_cv_pragma_unreferenced" >&6 # if the pragma is supported, use it (needed in the Trace code). @@ -18298,14 +19670,14 @@ fi cf_gnat_libraries=no cf_gnat_projects=no -echo "$as_me:18301: checking if GNAT supports project files" >&5 +echo "$as_me:19673: checking if GNAT supports project files" >&5 echo $ECHO_N "checking if GNAT supports project files... $ECHO_C" >&6 case $cf_gnat_version in #(vi 3.[0-9]*) #(vi ;; *) case $cf_cv_system_name in #(vi - cygwin*) #(vi + cygwin*|msys*) #(vi ;; *) mkdir conftest.src conftest.bin conftest.lib @@ -18366,14 +19738,14 @@ CF_EOF esac ;; esac -echo "$as_me:18369: result: $cf_gnat_projects" >&5 +echo "$as_me:19741: result: $cf_gnat_projects" >&5 echo "${ECHO_T}$cf_gnat_projects" >&6 if test $cf_gnat_projects = yes then - echo "$as_me:18374: checking if GNAT supports libraries" >&5 + echo "$as_me:19746: checking if GNAT supports libraries" >&5 echo $ECHO_N "checking if GNAT supports libraries... $ECHO_C" >&6 - echo "$as_me:18376: result: $cf_gnat_libraries" >&5 + echo "$as_me:19748: result: $cf_gnat_libraries" >&5 echo "${ECHO_T}$cf_gnat_libraries" >&6 fi @@ -18393,7 +19765,7 @@ else USE_GNAT_LIBRARIES="#" fi -echo "$as_me:18396: checking for ada-compiler" >&5 +echo "$as_me:19768: checking for ada-compiler" >&5 echo $ECHO_N "checking for ada-compiler... $ECHO_C" >&6 # Check whether --with-ada-compiler or --without-ada-compiler was given. @@ -18404,12 +19776,12 @@ else cf_ada_compiler=gnatmake fi; -echo "$as_me:18407: result: $cf_ada_compiler" >&5 +echo "$as_me:19779: result: $cf_ada_compiler" >&5 echo "${ECHO_T}$cf_ada_compiler" >&6 cf_ada_package=terminal_interface -echo "$as_me:18412: checking for ada-include" >&5 +echo "$as_me:19784: checking for ada-include" >&5 echo $ECHO_N "checking for ada-include... $ECHO_C" >&6 # Check whether --with-ada-include or --without-ada-include was given. @@ -18433,7 +19805,7 @@ case ".$withval" in #(vi ;; .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX ;; -.\${*prefix}*) #(vi +.\${*prefix}*|.\${*dir}*) #(vi eval withval="$withval" case ".$withval" in #(vi .NONE/*) @@ -18445,19 +19817,19 @@ case ".$withval" in #(vi withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ;; *) - { { echo "$as_me:18448: error: expected a pathname, not \"$withval\"" >&5 + { { echo "$as_me:19820: error: expected a pathname, not \"$withval\"" >&5 echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} { (exit 1); exit 1; }; } ;; esac fi -ADA_INCLUDE="$withval" +eval ADA_INCLUDE="$withval" -echo "$as_me:18457: result: $ADA_INCLUDE" >&5 +echo "$as_me:19829: result: $ADA_INCLUDE" >&5 echo "${ECHO_T}$ADA_INCLUDE" >&6 -echo "$as_me:18460: checking for ada-objects" >&5 +echo "$as_me:19832: checking for ada-objects" >&5 echo $ECHO_N "checking for ada-objects... $ECHO_C" >&6 # Check whether --with-ada-objects or --without-ada-objects was given. @@ -18481,7 +19853,7 @@ case ".$withval" in #(vi ;; .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX ;; -.\${*prefix}*) #(vi +.\${*prefix}*|.\${*dir}*) #(vi eval withval="$withval" case ".$withval" in #(vi .NONE/*) @@ -18493,19 +19865,19 @@ case ".$withval" in #(vi withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ;; *) - { { echo "$as_me:18496: error: expected a pathname, not \"$withval\"" >&5 + { { echo "$as_me:19868: error: expected a pathname, not \"$withval\"" >&5 echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} { (exit 1); exit 1; }; } ;; esac fi -ADA_OBJECTS="$withval" +eval ADA_OBJECTS="$withval" -echo "$as_me:18505: result: $ADA_OBJECTS" >&5 +echo "$as_me:19877: result: $ADA_OBJECTS" >&5 echo "${ECHO_T}$ADA_OBJECTS" >&6 -echo "$as_me:18508: checking if an Ada95 shared-library should be built" >&5 +echo "$as_me:19880: checking if an Ada95 shared-library should be built" >&5 echo $ECHO_N "checking if an Ada95 shared-library should be built... $ECHO_C" >&6 # Check whether --with-ada-sharedlib or --without-ada-sharedlib was given. @@ -18515,7 +19887,7 @@ if test "${with_ada_sharedlib+set}" = set; then else with_ada_sharedlib=no fi; -echo "$as_me:18518: result: $with_ada_sharedlib" >&5 +echo "$as_me:19890: result: $with_ada_sharedlib" >&5 echo "${ECHO_T}$with_ada_sharedlib" >&6 ADA_SHAREDLIB='lib$(LIB_NAME).so.1' @@ -18536,6 +19908,247 @@ else cf_with_ada=no fi +# do this "late" to avoid conflict with header-checks +if test "x$with_widec" = xyes ; then + echo "$as_me:19913: checking for wchar_t" >&5 +echo $ECHO_N "checking for wchar_t... $ECHO_C" >&6 +if test "${ac_cv_type_wchar_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 19919 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +if ((wchar_t *) 0) + return 0; +if (sizeof (wchar_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:19934: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:19937: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:19940: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:19943: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_wchar_t=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_type_wchar_t=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:19953: result: $ac_cv_type_wchar_t" >&5 +echo "${ECHO_T}$ac_cv_type_wchar_t" >&6 + +echo "$as_me:19956: checking size of wchar_t" >&5 +echo $ECHO_N "checking size of wchar_t... $ECHO_C" >&6 +if test "${ac_cv_sizeof_wchar_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$ac_cv_type_wchar_t" = yes; then + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +#line 19965 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (wchar_t)) >= 0)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:19977: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:19980: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:19983: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:19986: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +#line 19991 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (wchar_t)) <= $ac_mid)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:20003: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:20006: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:20009: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:20012: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_lo=`expr $ac_mid + 1`; ac_mid=`expr 2 '*' $ac_mid + 1` +fi +rm -f conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +#line 20028 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (wchar_t)) >= $ac_mid)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:20040: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:20043: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:20046: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:20049: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_hi=`expr $ac_mid - 1`; ac_mid=`expr 2 '*' $ac_mid` +fi +rm -f conftest.$ac_objext conftest.$ac_ext + done +fi +rm -f conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +#line 20065 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +int _array_ [1 - 2 * !((sizeof (wchar_t)) <= $ac_mid)] + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:20077: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:20080: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:20083: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:20086: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_lo=`expr $ac_mid + 1` +fi +rm -f conftest.$ac_objext conftest.$ac_ext +done +ac_cv_sizeof_wchar_t=$ac_lo +else + if test "$cross_compiling" = yes; then + { { echo "$as_me:20099: error: cannot run test program while cross compiling" >&5 +echo "$as_me: error: cannot run test program while cross compiling" >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +#line 20104 "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +FILE *f = fopen ("conftest.val", "w"); +if (!f) + $ac_main_return (1); +fprintf (f, "%d", (sizeof (wchar_t))); +fclose (f); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:20120: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:20123: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:20125: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:20128: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_wchar_t=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.val +else + ac_cv_sizeof_wchar_t=0 +fi +fi +echo "$as_me:20144: result: $ac_cv_sizeof_wchar_t" >&5 +echo "${ECHO_T}$ac_cv_sizeof_wchar_t" >&6 +cat >>confdefs.h <&5 +echo "$as_me:20162: checking for library subsets" >&5 echo $ECHO_N "checking for library subsets... $ECHO_C" >&6 LIB_SUBSETS= -if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then +if test "x$cf_with_progs" = xyes || test "$with_ticlib" != no || test "$with_termcap" != no; then LIB_SUBSETS="${LIB_SUBSETS}ticlib" if test "$with_ticlib" != no ; then LIB_SUBSETS="${LIB_SUBSETS} " @@ -18560,7 +20173,7 @@ if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termc fi LIB_SUBSETS="${LIB_SUBSETS}termlib" -test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo" +test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo" if test "$with_termlib" != no ; then LIB_SUBSETS="${LIB_SUBSETS} " @@ -18584,29 +20197,29 @@ if test "$with_term_driver" != no ; then esac fi -test "$with_widec" = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar" -test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs" +test "x$with_widec" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+widechar" +test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs" -echo "$as_me:18590: result: $LIB_SUBSETS" >&5 +echo "$as_me:20203: result: $LIB_SUBSETS" >&5 echo "${ECHO_T}$LIB_SUBSETS" >&6 ### Construct the list of include-directories to be generated -CPPFLAGS="$CPPFLAGS -I. -I../include" -if test "$srcdir" != "."; then - CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include" -fi if test "$GCC" != yes; then - CPPFLAGS="$CPPFLAGS -I\${includedir}" + CPPFLAGS="-I\${includedir} $CPPFLAGS" elif test "$includedir" != "/usr/include"; then if test "$includedir" = '${prefix}/include' ; then - if test $prefix != /usr ; then - CPPFLAGS="$CPPFLAGS -I\${includedir}" + if test x$prefix != x/usr ; then + CPPFLAGS="-I\${includedir} $CPPFLAGS" fi else - CPPFLAGS="$CPPFLAGS -I\${includedir}" + CPPFLAGS="-I\${includedir} $CPPFLAGS" fi fi +if test "$srcdir" != "."; then + CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS" +fi +CPPFLAGS="-I. -I../include $CPPFLAGS" ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS" if test "$srcdir" != "."; then @@ -18616,7 +20229,7 @@ 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 + if test x$prefix != x/usr ; then ACPPFLAGS="$ACPPFLAGS -I\${includedir}" fi else @@ -18625,7 +20238,7 @@ elif test "$includedir" != "/usr/include"; then fi ### Build up pieces for makefile rules -echo "$as_me:18628: checking default library suffix" >&5 +echo "$as_me:20241: checking default library suffix" >&5 echo $ECHO_N "checking default library suffix... $ECHO_C" >&6 case $DFT_LWR_MODEL in @@ -18636,36 +20249,32 @@ echo $ECHO_N "checking default library suffix... $ECHO_C" >&6 shared) DFT_ARG_SUFFIX='' ;; esac test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}" -echo "$as_me:18639: result: $DFT_ARG_SUFFIX" >&5 +echo "$as_me:20252: result: $DFT_ARG_SUFFIX" >&5 echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6 -echo "$as_me:18642: checking default library-dependency suffix" >&5 +echo "$as_me:20255: checking default library-dependency suffix" >&5 echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6 - case $DFT_LWR_MODEL in #(vi - libtool) #(vi + case X$DFT_LWR_MODEL in #(vi + Xlibtool) #(vi DFT_LIB_SUFFIX='.la' DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX ;; - normal) #(vi - DFT_LIB_SUFFIX='.a' - DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX - ;; - debug) #(vi + Xdebug) #(vi DFT_LIB_SUFFIX='_g.a' DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX ;; - profile) #(vi + Xprofile) #(vi DFT_LIB_SUFFIX='_p.a' DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX ;; - shared) #(vi + Xshared) #(vi case $cf_cv_system_name in - aix[56]*) #(vi + aix[5-7]*) #(vi DFT_LIB_SUFFIX='.a' DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX ;; - cygwin*) #(vi + cygwin*|msys*|mingw*) #(vi DFT_LIB_SUFFIX='.dll' DFT_DEP_SUFFIX='.dll.a' ;; @@ -18685,17 +20294,23 @@ echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6 ;; esac ;; - *) DFT_LIB_SUFFIX='.so' + *) #(vi + DFT_LIB_SUFFIX='.so' DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX ;; esac + ;; + *) + DFT_LIB_SUFFIX='.a' + DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX + ;; esac test -n "$LIB_SUFFIX" && DFT_LIB_SUFFIX="${LIB_SUFFIX}${DFT_LIB_SUFFIX}" test -n "$LIB_SUFFIX" && DFT_DEP_SUFFIX="${LIB_SUFFIX}${DFT_DEP_SUFFIX}" -echo "$as_me:18695: result: $DFT_DEP_SUFFIX" >&5 +echo "$as_me:20310: result: $DFT_DEP_SUFFIX" >&5 echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6 -echo "$as_me:18698: checking default object directory" >&5 +echo "$as_me:20313: checking default object directory" >&5 echo $ECHO_N "checking default object directory... $ECHO_C" >&6 case $DFT_LWR_MODEL in @@ -18705,47 +20320,47 @@ echo $ECHO_N "checking default object directory... $ECHO_C" >&6 profile) DFT_OBJ_SUBDIR='obj_p' ;; shared) case $cf_cv_system_name in #(vi - cygwin) #(vi + cygwin|msys) #(vi DFT_OBJ_SUBDIR='objects' ;; *) DFT_OBJ_SUBDIR='obj_s' ;; esac esac -echo "$as_me:18714: result: $DFT_OBJ_SUBDIR" >&5 +echo "$as_me:20329: result: $DFT_OBJ_SUBDIR" >&5 echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6 -# libtool thinks it can make c++ shared libraries (perhaps only g++) -if test "$cf_with_cxx" = yes ; then -echo "$as_me:18719: checking c++ library-dependency suffix" >&5 +if test "x$cf_with_cxx" = xyes ; then +echo "$as_me:20333: checking c++ library-dependency suffix" >&5 echo $ECHO_N "checking c++ library-dependency suffix... $ECHO_C" >&6 if test "$with_libtool" != "no"; then + # libtool thinks it can make c++ shared libraries (perhaps only g++) + CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX +elif test "$with_shared_cxx" != "no"; then + # also for g++ users... CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX else + # we normally make a static library because C/C++ library rules differ - case normal in #(vi - libtool) #(vi + case Xnormal in #(vi + Xlibtool) #(vi CXX_LIB_SUFFIX='.la' CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX ;; - normal) #(vi - CXX_LIB_SUFFIX='.a' - CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX - ;; - debug) #(vi + Xdebug) #(vi CXX_LIB_SUFFIX='_g.a' CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX ;; - profile) #(vi + Xprofile) #(vi CXX_LIB_SUFFIX='_p.a' CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX ;; - shared) #(vi + Xshared) #(vi case $cf_cv_system_name in - aix[56]*) #(vi + aix[5-7]*) #(vi CXX_LIB_SUFFIX='.a' CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX ;; - cygwin*) #(vi + cygwin*|msys*|mingw*) #(vi CXX_LIB_SUFFIX='.dll' CXX_DEP_SUFFIX='.dll.a' ;; @@ -18765,21 +20380,28 @@ else ;; esac ;; - *) CXX_LIB_SUFFIX='.so' + *) #(vi + CXX_LIB_SUFFIX='.so' CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX ;; esac + ;; + *) + CXX_LIB_SUFFIX='.a' + CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX + ;; esac test -n "$LIB_SUFFIX" && CXX_LIB_SUFFIX="${LIB_SUFFIX}${CXX_LIB_SUFFIX}" test -n "$LIB_SUFFIX" && CXX_DEP_SUFFIX="${LIB_SUFFIX}${CXX_DEP_SUFFIX}" + fi -echo "$as_me:18776: result: $CXX_LIB_SUFFIX" >&5 +echo "$as_me:20398: result: $CXX_LIB_SUFFIX" >&5 echo "${ECHO_T}$CXX_LIB_SUFFIX" >&6 fi # do not want -ldl in build except as needed for -lncurses dependency -if test "$with_dlsym" = yes ; then +if test "x$with_dlsym" = xyes ; then if test $DFT_LWR_MODEL = shared || \ test $DFT_LWR_MODEL = libtool ; then @@ -18793,7 +20415,7 @@ fi # TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but # do not need libdl TICS_LIST= -if test "$with_dlsym" = yes ; then +if test "x$with_dlsym" = xyes ; then # remove dl library from $SHLIB_LIST TINFO_LIST=`echo "$SHLIB_LIST" | sed -e 's/-ldl[ ]//g' -e 's/-ldl$//'` @@ -18802,7 +20424,7 @@ fi if test "$with_ticlib" != no ; then - if test "$with_ticlib" != yes ; then + if test "x$with_ticlib" != xyes ; then TICS_NAME=$with_ticlib TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" @@ -18812,14 +20434,16 @@ if test "$with_ticlib" != no ; then TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}" TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}" fi - TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}" + TICS_LDFLAGS="-L${LIB_DIR}" + TICS_LIBS="-l${TICS_LIB_SUFFIX}" else - TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}" + TICS_LDFLAGS="-L${LIB_DIR}" + TICS_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX}" fi if test "$with_termlib" != no ; then - if test "$with_termlib" != yes ; then + if test "x$with_termlib" != xyes ; then TINFO_NAME=$with_termlib TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" @@ -18837,14 +20461,22 @@ if test "$with_termlib" != no ; then if test "$DFT_LWR_MODEL" = "libtool"; then TEST_ARGS="${TEST_DEPS}" TEST_ARG2="${TEST_DEP2}" - TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS" + TINFO_LDFLAGS="-L${LIB_DIR}" + TINFO_LIBS="$TEST_ARGS" TICS_LIST="$SHLIB_LIST $TEST_ARGS" SHLIB_LIST="${SHLIB_LIST} $TEST_ARGS" else TEST_ARGS="-l${TINFO_ARG_SUFFIX}" TEST_ARG2="-l${TINFO_ARG_SUFFIX}" - TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}" - TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS" + if test "x$with_term_driver" != xno ; then + TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}" + TICS_LIBS="$TICS_LIBS -l${LIB_NAME}${DFT_ARG_SUFFIX}" + TINFO_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS" + else + TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}" + TINFO_LIBS="$TEST_ARGS" + fi + TINFO_LDFLAGS="-L${LIB_DIR}" SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}" fi else @@ -18852,25 +20484,26 @@ else TINFO_NAME=${LIB_NAME} TINFO_SUFFIX=${DFT_LIB_SUFFIX} TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX} - if test "$with_tic_depends" = yes ; then + if test "x$with_tic_depends" = xyes ; then TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}" else TICS_LIST="$SHLIB_LIST" fi - TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}" + TINFO_LDFLAGS="-L${LIB_DIR}" + TINFO_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX}" fi if test "$DFT_LWR_MODEL" = shared ; then case $cf_cv_system_name in #(vi - cygwin*) - # "lib" files have ".dll.a" suffix, "cyg" files have ".dll" + cygwin*|msys*) + # "lib" files have ".dll.a" suffix, "cyg"or "msys-" files have ".dll" TINFO_SUFFIX=.dll ;; esac fi -if test "$with_dlsym" = yes ; then +if test "x$with_dlsym" = xyes ; then # remove dl library from $TICS_LIST TICS_LIST=`echo "$TICS_LIST" | sed -e 's/-ldl[ ]//g' -e 's/-ldl$//'` @@ -18882,7 +20515,7 @@ if test "$DFT_LWR_MODEL" = "libtool"; then fi # needed for Ada95 -TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'` +TINFO_LDFLAGS2=`echo "$TINFO_LDFLAGS" | sed -e 's,-L\.\./,-L../../,'` case $DFT_LWR_MODEL in normal|debug|profile) @@ -18900,7 +20533,7 @@ if test "$GCC" = yes ; then esac else case $cf_cv_system_name in #( - aix[456]*) #( from ld manpage + aix[4-7]*) #( from ld manpage LDFLAGS_STATIC=-bstatic LDFLAGS_SHARED=-bdynamic ;; @@ -18927,19 +20560,19 @@ fi if test -n "$LDFLAGS_STATIC" && test -n "$LDFLAGS_SHARED" then - echo "$as_me:18930: checking if linker supports switching between static/dynamic" >&5 + echo "$as_me:20563: checking if linker supports switching between static/dynamic" >&5 echo $ECHO_N "checking if linker supports switching between static/dynamic... $ECHO_C" >&6 rm -f libconftest.a cat >conftest.$ac_ext < int cf_ldflags_static(FILE *fp) { return fflush(fp); } EOF - if { (eval echo "$as_me:18939: \"$ac_compile\"") >&5 + if { (eval echo "$as_me:20572: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:18942: \$? = $ac_status" >&5 + echo "$as_me:20575: \$? = $ac_status" >&5 (exit $ac_status); } ; then ( $AR $ARFLAGS libconftest.a conftest.o ) 2>&5 1>/dev/null ( eval $RANLIB libconftest.a ) 2>&5 >/dev/null @@ -18950,10 +20583,10 @@ EOF LIBS="$LDFLAGS_STATIC -L`pwd` -lconftest $LDFLAGS_DYNAMIC $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 18953 "configure" +#line 20586 "configure" #include "confdefs.h" -#line 18956 "configure" +#line 20589 "configure" #include int cf_ldflags_static(FILE *fp); @@ -18968,18 +20601,28 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:18971: \"$ac_link\"") >&5 +if { (eval echo "$as_me:20604: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:18974: \$? = $ac_status" >&5 + echo "$as_me:20607: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:18977: \"$ac_try\"") >&5 + { (eval echo "$as_me:20610: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:18980: \$? = $ac_status" >&5 + echo "$as_me:20613: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - cf_ldflags_static=yes + + # some linkers simply ignore the -dynamic + case x`file conftest$ac_exeext 2>/dev/null` in #(vi + *static*) # (vi + cf_ldflags_static=no + ;; + *) + cf_ldflags_static=yes + ;; + esac + else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 @@ -18990,7 +20633,7 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext rm -f libconftest.* LIBS="$cf_save_LIBS" - echo "$as_me:18993: result: $cf_ldflags_static" >&5 + echo "$as_me:20636: result: $cf_ldflags_static" >&5 echo "${ECHO_T}$cf_ldflags_static" >&6 if test $cf_ldflags_static != yes @@ -19006,20 +20649,25 @@ fi ;; esac -echo "$as_me:19009: checking where we will install curses.h" >&5 +echo "$as_me:20652: checking where we will install curses.h" >&5 echo $ECHO_N "checking where we will install curses.h... $ECHO_C" >&6 -test "$with_overwrite" = no && \ -test "x$includedir" = 'x${prefix}/include' && \ - includedir='${prefix}/include/ncurses'${LIB_SUFFIX} -echo "$as_me:19014: result: $includedir" >&5 -echo "${ECHO_T}$includedir" >&6 + +includesubdir= +if test "$with_overwrite" = no && \ + ( test "x$includedir" = 'x${prefix}/include' || \ + test "x$includedir" = "x${prefix}/include" ) +then + includesubdir="/ncurses${LIB_SUFFIX}" +fi +echo "$as_me:20662: result: ${includedir}${includesubdir}" >&5 +echo "${ECHO_T}${includedir}${includesubdir}" >&6 ### Resolve a conflict between normal and wide-curses by forcing applications ### that will need libutf8 to add it to their configure script. if test "$with_overwrite" != no ; then if test "$NCURSES_LIBUTF8" = 1 ; then NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)' - { echo "$as_me:19022: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5 + { echo "$as_me:20670: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5 echo "$as_me: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&2;} fi fi @@ -19029,6 +20677,7 @@ WITH_OVERWRITE=$with_overwrite NCURSES_TREE= ### predefined stuff for the test programs + cat >>confdefs.h <<\EOF #define HAVE_SLK_COLOR 1 EOF @@ -19036,7 +20685,7 @@ EOF ### Construct the list of subdirectories for which we'll customize makefiles ### with the appropriate compile-rules. -echo "$as_me:19039: checking for src modules" >&5 +echo "$as_me:20688: checking for src modules" >&5 echo $ECHO_N "checking for src modules... $ECHO_C" >&6 # dependencies and linker-arguments for test-programs @@ -19050,6 +20699,7 @@ else TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2" fi +PC_MODULES_TO_MAKE="ncurses${DFT_ARG_SUFFIX}" cf_cv_src_modules= for cf_dir in $modules_to_build do @@ -19096,10 +20746,11 @@ EOF TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS" TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2" fi + PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${DFT_ARG_SUFFIX}" fi fi done -echo "$as_me:19102: result: $cf_cv_src_modules" >&5 +echo "$as_me:20753: result: $cf_cv_src_modules" >&5 echo "${ECHO_T}$cf_cv_src_modules" >&6 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS" @@ -19117,11 +20768,19 @@ done if test "x$cf_with_tests" != "xno" ; then SRC_SUBDIRS="$SRC_SUBDIRS test" fi -test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc" -test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++" +if test "x$cf_with_db_install" = xyes; then + test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc" +fi +if test "$cf_with_cxx_binding" != no; then + PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${DFT_ARG_SUFFIX}" + SRC_SUBDIRS="$SRC_SUBDIRS c++" +fi + +test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX" +test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX" ADA_SUBDIRS= -if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then +if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f $srcdir/Ada95/Makefile.in; then SRC_SUBDIRS="$SRC_SUBDIRS Ada95" ADA_SUBDIRS="gen src" if test "x$cf_with_tests" != "xno" ; then @@ -19143,7 +20802,7 @@ if test -n "$ADA_SUBDIRS"; then fi -if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then +if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses${DFT_ARG_SUFFIX}-config:Ada95/gen/adacurses-config.in" SUB_MAKEFILES="$SUB_MAKEFILES man/adacurses${DFT_ARG_SUFFIX}-config.1:man/MKada_config.in" fi @@ -19159,7 +20818,7 @@ do profile) cf_subdir='obj_p' ;; shared) case $cf_cv_system_name in #(vi - cygwin) #(vi + cygwin|msys) #(vi cf_subdir='objects' ;; *) cf_subdir='obj_s' ;; @@ -19181,6 +20840,7 @@ done NCURSES_SHLIB2='sh $(top_srcdir)/misc/shlib' # values to use as strings + cat >>confdefs.h <&5 +echo "$as_me:20968: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_TIC_PATH+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -19322,7 +20982,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_TIC_PATH="$ac_dir/$ac_word" - echo "$as_me:19325: found $ac_dir/$ac_word" >&5 + echo "$as_me:20985: found $ac_dir/$ac_word" >&5 break fi done @@ -19334,10 +20994,10 @@ fi TIC_PATH=$ac_cv_path_TIC_PATH if test -n "$TIC_PATH"; then - echo "$as_me:19337: result: $TIC_PATH" >&5 + echo "$as_me:20997: result: $TIC_PATH" >&5 echo "${ECHO_T}$TIC_PATH" >&6 else - echo "$as_me:19340: result: no" >&5 + echo "$as_me:21000: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -19345,7 +21005,7 @@ if test -n "$FALLBACK_LIST" then if test "$TIC_PATH" = unknown then - { echo "$as_me:19348: WARNING: no tic program found for fallbacks" >&5 + { echo "$as_me:21008: WARNING: no tic program found for fallbacks" >&5 echo "$as_me: WARNING: no tic program found for fallbacks" >&2;} fi fi @@ -19358,13 +21018,44 @@ fi ADAHTML_DIR=../../doc/html/ada -SUB_SCRIPTS= +# these could be configurable, but are not currently +PANEL_NAME=panel +MENU_NAME=menu +FORM_NAME=form +CXX_NAME=ncurses++ + +# workaround for g++ versus Solaris (20131116) case $cf_cv_system_name in #(vi -*mingw32*) #(vi - SUB_SCRIPTS="mk-dlls.sh" +solaris2*) #(vi + case "x$CPPFLAGS" in #(vi + *-D_XOPEN_SOURCE_EXTENDED*) + test -n "$verbose" && echo " moving _XOPEN_SOURCE_EXTENDED to work around g++ problem" 1>&6 + +echo "${as_me:-configure}:21034: testing moving _XOPEN_SOURCE_EXTENDED to work around g++ problem ..." 1>&5 + + CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED" + CPPFLAGS=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/-D_XOPEN_SOURCE_EXTENDED//'` + ;; + esac ;; esac +# AC_CHECK_SIZEOF demands a literal parameter, no variables. So we do this. +case "x$NCURSES_OSPEED" in #(vi +*short*) #(vi + cf_compatible=1 + ;; +*) + cf_compatible=0 + ;; +esac + +cat >>confdefs.h <confcache <<\_ACEOF @@ -19446,7 +21137,7 @@ DEFS=-DHAVE_CONFIG_H : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:19449: creating $CONFIG_STATUS" >&5 +{ echo "$as_me:21140: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL @@ -19578,7 +21269,7 @@ EOF cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header - { { echo "$as_me:19625: error: ambiguous option: $1 + { { echo "$as_me:21316: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} @@ -19641,7 +21332,7 @@ Try \`$0 --help' for more information." >&2;} ac_need_defaults=false;; # This is an error. - -*) { { echo "$as_me:19644: error: unrecognized option: $1 + -*) { { echo "$as_me:21335: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} @@ -19660,7 +21351,7 @@ cat >&5 << _ACEOF ## Running config.status. ## ## ----------------------- ## -This file was extended by $as_me 2.52.20101002, executed with +This file was extended by $as_me 2.52.20121002, executed with CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS @@ -19682,10 +21373,11 @@ cat >>$CONFIG_STATUS <&5 + *) { { echo "$as_me:21446: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac @@ -19806,6 +21502,7 @@ s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t +s,@datarootdir@,$datarootdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t @@ -19858,9 +21555,8 @@ s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t -s,@CPP@,$CPP,;t t s,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t -s,@PROG_EXT@,$PROG_EXT,;t t +s,@CPP@,$CPP,;t t s,@LDCONFIG@,$LDCONFIG,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t @@ -19887,6 +21583,8 @@ s,@LD@,$LD,;t t s,@ac_ct_LD@,$ac_ct_LD,;t t s,@AR@,$AR,;t t s,@ac_ct_AR@,$ac_ct_AR,;t t +s,@NM@,$NM,;t t +s,@ac_ct_NM@,$ac_ct_NM,;t t s,@ARFLAGS@,$ARFLAGS,;t t s,@DESTDIR@,$DESTDIR,;t t s,@BUILD_CC@,$BUILD_CC,;t t @@ -19900,6 +21598,7 @@ s,@BUILD_OBJEXT@,$BUILD_OBJEXT,;t t s,@cf_list_models@,$cf_list_models,;t t s,@LIBTOOL_VERSION@,$LIBTOOL_VERSION,;t t s,@LIBTOOL@,$LIBTOOL,;t t +s,@ac_ct_LIBTOOL@,$ac_ct_LIBTOOL,;t t s,@LT_UNDEF@,$LT_UNDEF,;t t s,@LIBTOOL_CXX@,$LIBTOOL_CXX,;t t s,@LIBTOOL_OPTS@,$LIBTOOL_OPTS,;t t @@ -19921,25 +21620,32 @@ s,@LIB_PREFIX@,$LIB_PREFIX,;t t s,@CC_G_OPT@,$CC_G_OPT,;t t s,@CXX_G_OPT@,$CXX_G_OPT,;t t s,@LD_MODEL@,$LD_MODEL,;t t +s,@shlibdir@,$shlibdir,;t t +s,@MAKE_DLLS@,$MAKE_DLLS,;t t s,@CC_SHARED_OPTS@,$CC_SHARED_OPTS,;t t s,@LD_RPATH_OPT@,$LD_RPATH_OPT,;t t s,@LD_SHARED_OPTS@,$LD_SHARED_OPTS,;t t s,@MK_SHARED_LIB@,$MK_SHARED_LIB,;t t +s,@RM_SHARED_OPTS@,$RM_SHARED_OPTS,;t t s,@LINK_PROGS@,$LINK_PROGS,;t t s,@LINK_TESTS@,$LINK_TESTS,;t t s,@EXTRA_LDFLAGS@,$EXTRA_LDFLAGS,;t t s,@LOCAL_LDFLAGS@,$LOCAL_LDFLAGS,;t t s,@LOCAL_LDFLAGS2@,$LOCAL_LDFLAGS2,;t t s,@INSTALL_LIB@,$INSTALL_LIB,;t t +s,@RPATH_LIST@,$RPATH_LIST,;t t s,@cf_ldd_prog@,$cf_ldd_prog,;t t s,@TERMINFO_SRC@,$TERMINFO_SRC,;t t +s,@NCURSES_USE_DATABASE@,$NCURSES_USE_DATABASE,;t t s,@FALLBACK_LIST@,$FALLBACK_LIST,;t t s,@WHICH_XTERM@,$WHICH_XTERM,;t t +s,@XTERM_KBS@,$XTERM_KBS,;t t s,@TERMINFO_DIRS@,$TERMINFO_DIRS,;t t s,@TERMINFO@,$TERMINFO,;t t s,@MAKE_TERMINFO@,$MAKE_TERMINFO,;t t s,@USE_BIG_STRINGS@,$USE_BIG_STRINGS,;t t s,@TERMPATH@,$TERMPATH,;t t +s,@NCURSES_USE_TERMCAP@,$NCURSES_USE_TERMCAP,;t t s,@BROKEN_LINKER@,$BROKEN_LINKER,;t t s,@NCURSES_CH_T@,$NCURSES_CH_T,;t t s,@NCURSES_LIBUTF8@,$NCURSES_LIBUTF8,;t t @@ -19955,6 +21661,7 @@ s,@NCURSES_BOOL@,$NCURSES_BOOL,;t t s,@TERMINFO_CAPS@,$TERMINFO_CAPS,;t t s,@NCURSES_OSPEED@,$NCURSES_OSPEED,;t t s,@NCURSES_CCHARW_MAX@,$NCURSES_CCHARW_MAX,;t t +s,@NCURSES_TPARM_ARG@,$NCURSES_TPARM_ARG,;t t s,@MANPAGE_RENAMES@,$MANPAGE_RENAMES,;t t s,@NCURSES_EXT_FUNCS@,$NCURSES_EXT_FUNCS,;t t s,@GENERATED_EXT_FUNCS@,$GENERATED_EXT_FUNCS,;t t @@ -19972,6 +21679,11 @@ s,@cf_cv_enable_opaque@,$cf_cv_enable_opaque,;t t s,@NCURSES_OPAQUE@,$NCURSES_OPAQUE,;t t s,@NCURSES_SIZE_T@,$NCURSES_SIZE_T,;t t s,@NCURSES_WRAP_PREFIX@,$NCURSES_WRAP_PREFIX,;t t +s,@ECHO_LT@,$ECHO_LT,;t t +s,@ECHO_LD@,$ECHO_LD,;t t +s,@RULE_CC@,$RULE_CC,;t t +s,@SHOW_CC@,$SHOW_CC,;t t +s,@ECHO_CC@,$ECHO_CC,;t t s,@ECHO_LINK@,$ECHO_LINK,;t t s,@ADAFLAGS@,$ADAFLAGS,;t t s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t @@ -20015,14 +21727,17 @@ s,@CXX_LIB_SUFFIX@,$CXX_LIB_SUFFIX,;t t s,@TICS_ARG_SUFFIX@,$TICS_ARG_SUFFIX,;t t s,@TICS_DEP_SUFFIX@,$TICS_DEP_SUFFIX,;t t s,@TICS_LIB_SUFFIX@,$TICS_LIB_SUFFIX,;t t -s,@TICS_ARGS@,$TICS_ARGS,;t t +s,@TICS_LDFLAGS@,$TICS_LDFLAGS,;t t +s,@TICS_LIBS@,$TICS_LIBS,;t t s,@TINFO_ARG_SUFFIX@,$TINFO_ARG_SUFFIX,;t t s,@TINFO_DEP_SUFFIX@,$TINFO_DEP_SUFFIX,;t t s,@TINFO_LIB_SUFFIX@,$TINFO_LIB_SUFFIX,;t t -s,@TINFO_ARGS@,$TINFO_ARGS,;t t -s,@TINFO_ARGS2@,$TINFO_ARGS2,;t t +s,@TINFO_LDFLAGS@,$TINFO_LDFLAGS,;t t +s,@TINFO_LIBS@,$TINFO_LIBS,;t t +s,@TINFO_LDFLAGS2@,$TINFO_LDFLAGS2,;t t s,@LDFLAGS_STATIC@,$LDFLAGS_STATIC,;t t s,@LDFLAGS_SHARED@,$LDFLAGS_SHARED,;t t +s,@includesubdir@,$includesubdir,;t t s,@WITH_OVERWRITE@,$WITH_OVERWRITE,;t t s,@TICS_LIST@,$TICS_LIST,;t t s,@TINFO_LIST@,$TINFO_LIST,;t t @@ -20032,6 +21747,7 @@ s,@TEST_ARGS@,$TEST_ARGS,;t t s,@TEST_DEPS@,$TEST_DEPS,;t t s,@TEST_ARG2@,$TEST_ARG2,;t t s,@TEST_DEP2@,$TEST_DEP2,;t t +s,@PC_MODULES_TO_MAKE@,$PC_MODULES_TO_MAKE,;t t s,@ADA_SUBDIRS@,$ADA_SUBDIRS,;t t s,@DIRS_TO_MAKE@,$DIRS_TO_MAKE,;t t s,@NCURSES_SHLIB2@,$NCURSES_SHLIB2,;t t @@ -20043,6 +21759,10 @@ s,@cross_compiling@,$cross_compiling,;t t s,@TIC_PATH@,$TIC_PATH,;t t s,@MAKE_TESTS@,$MAKE_TESTS,;t t s,@ADAHTML_DIR@,$ADAHTML_DIR,;t t +s,@PANEL_NAME@,$PANEL_NAME,;t t +s,@MENU_NAME@,$MENU_NAME,;t t +s,@FORM_NAME@,$FORM_NAME,;t t +s,@CXX_NAME@,$CXX_NAME,;t t CEOF EOF @@ -20157,7 +21877,7 @@ done; } esac if test x"$ac_file" != x-; then - { echo "$as_me:20160: creating $ac_file" >&5 + { echo "$as_me:21880: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi @@ -20175,7 +21895,7 @@ echo "$as_me: creating $ac_file" >&6;} -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:20178: error: cannot find input file: $f" >&5 + test -f "$f" || { { echo "$as_me:21898: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo $f;; @@ -20188,12 +21908,44 @@ echo "$as_me: error: cannot find input file: $f" >&2;} echo $srcdir/$f else # /dev/null tree - { { echo "$as_me:20191: error: cannot find input file: $f" >&5 + { { echo "$as_me:21911: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } +EOF +cat >>$CONFIG_STATUS <<\EOF + ac_warn_datarootdir=no + if test x"$ac_file" != x-; then + for ac_item in $ac_file_inputs + do + ac_seen=`grep '@\(datadir\|mandir\|infodir\)@' $ac_item` + if test -n "$ac_seen"; then + ac_used=`grep '@datarootdir@' $ac_item` + if test -z "$ac_used"; then + { echo "$as_me:21927: WARNING: datarootdir was used implicitly but not set: +$ac_seen" >&5 +echo "$as_me: WARNING: datarootdir was used implicitly but not set: +$ac_seen" >&2;} + ac_warn_datarootdir=yes + fi + fi + ac_seen=`grep '${datarootdir}' $ac_item` + if test -n "$ac_seen"; then + { echo "$as_me:21936: WARNING: datarootdir was used explicitly but not set: +$ac_seen" >&5 +echo "$as_me: WARNING: datarootdir was used explicitly but not set: +$ac_seen" >&2;} + ac_warn_datarootdir=yes + fi + done + fi + +if test "x$ac_warn_datarootdir" = xyes; then + ac_sed_cmds="$ac_sed_cmds | sed -e 's,@datarootdir@,\${prefix}/share,g' -e 's,\${datarootdir},\${prefix}/share,g'" +fi + EOF cat >>$CONFIG_STATUS <$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then - mv $tmp/out $ac_file + cp $tmp/out $ac_file + + for ac_name in prefix exec_prefix datarootdir + do + ac_seen=`fgrep -n '${'$ac_name'[:=].*}' $ac_file` + if test -n "$ac_seen"; then + ac_init=`egrep '[ ]*'$ac_name'[ ]*=' $ac_file` + if test -z "$ac_init"; then + ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'` + { echo "$as_me:21973: WARNING: Variable $ac_name is used but was not set: +$ac_seen" >&5 +echo "$as_me: WARNING: Variable $ac_name is used but was not set: +$ac_seen" >&2;} + fi + fi + done + egrep -n '@[a-z_][a-z_0-9]+@' $ac_file >$tmp/out + egrep -n '@[A-Z_][A-Z_0-9]+@' $ac_file >>$tmp/out + if test -s $tmp/out; then + ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out` + { echo "$as_me:21984: WARNING: Some variables may not be substituted: +$ac_seen" >&5 +echo "$as_me: WARNING: Some variables may not be substituted: +$ac_seen" >&2;} + fi else cat $tmp/out - rm -f $tmp/out fi + rm -f $tmp/out done EOF @@ -20254,7 +22030,7 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue * ) ac_file_in=$ac_file.in ;; esac - test x"$ac_file" != x- && { echo "$as_me:20257: creating $ac_file" >&5 + test x"$ac_file" != x- && { echo "$as_me:22033: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} # First look for the input files in the build tree, otherwise in the @@ -20265,7 +22041,7 @@ echo "$as_me: creating $ac_file" >&6;} -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:20268: error: cannot find input file: $f" >&5 + test -f "$f" || { { echo "$as_me:22044: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo $f;; @@ -20278,7 +22054,7 @@ echo "$as_me: error: cannot find input file: $f" >&2;} echo $srcdir/$f else # /dev/null tree - { { echo "$as_me:20281: error: cannot find input file: $f" >&5 + { { echo "$as_me:22057: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; @@ -20336,7 +22112,7 @@ cat >>$CONFIG_STATUS <<\EOF rm -f $tmp/in if test x"$ac_file" != x-; then if cmp -s $ac_file $tmp/config.h 2>/dev/null; then - { echo "$as_me:20339: $ac_file is unchanged" >&5 + { echo "$as_me:22115: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ @@ -20394,25 +22170,20 @@ do if test ! -d $srcdir/$cf_dir; then continue elif test -f $srcdir/$cf_dir/programs; then - $AWK -f $srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LINK" $srcdir/$cf_dir/programs >>$cf_dir/Makefile + $AWK -f $srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LD" $srcdir/$cf_dir/programs >>$cf_dir/Makefile fi done fi - case $cf_cv_system_name in #(vi - OS/2*|os2*) #(vi - LIB_PREFIX='' - ;; - *) LIB_PREFIX='lib' - ;; - esac cf_prefix=$LIB_PREFIX -if test $cf_cv_shlib_version = cygdll ; then +case $cf_cv_shlib_version in #(vi +cygdll|msysdll|mingw) TINFO_NAME=$TINFO_ARG_SUFFIX TINFO_SUFFIX=.dll -fi + ;; +esac if test -n "$TINFO_SUFFIX" ; then case $TINFO_SUFFIX in @@ -20438,34 +22209,30 @@ do elif test -f $srcdir/$cf_dir/modules; then SHARED_LIB= - LIBS_TO_MAKE= + Libs_To_Make= for cf_item in $cf_LIST_MODELS do - case $cf_item in #(vi - libtool) #(vi + case X$cf_item in #(vi + Xlibtool) #(vi cf_suffix='.la' cf_depsuf=$cf_suffix ;; - normal) #(vi - cf_suffix='.a' - cf_depsuf=$cf_suffix - ;; - debug) #(vi + Xdebug) #(vi cf_suffix='_g.a' cf_depsuf=$cf_suffix ;; - profile) #(vi + Xprofile) #(vi cf_suffix='_p.a' cf_depsuf=$cf_suffix ;; - shared) #(vi + Xshared) #(vi case $cf_cv_system_name in - aix[56]*) #(vi + aix[5-7]*) #(vi cf_suffix='.a' cf_depsuf=$cf_suffix ;; - cygwin*) #(vi + cygwin*|msys*|mingw*) #(vi cf_suffix='.dll' cf_depsuf='.dll.a' ;; @@ -20485,83 +22252,88 @@ do ;; esac ;; - *) cf_suffix='.so' + *) #(vi + cf_suffix='.so' cf_depsuf=$cf_suffix ;; esac + ;; + *) + cf_suffix='.a' + cf_depsuf=$cf_suffix + ;; esac test -n "$LIB_SUFFIX" && cf_suffix="${LIB_SUFFIX}${cf_suffix}" test -n "$LIB_SUFFIX" && cf_depsuf="${LIB_SUFFIX}${cf_depsuf}" + cf_libname=$cf_dir + test "$cf_dir" = c++ && cf_libname=ncurses++ 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*) - case .${LIB_SUFFIX} in - .tw*) - cf_suffix=`echo $cf_suffix | sed 's/^tw//'` - cf_suffix=tw'.${REL_VERSION}'"$cf_suffix" + if test -n "${LIB_SUFFIX}" + then + cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'` + else + cf_shared_suffix="$cf_suffix" + fi + if test "$cf_cv_do_symlinks" = yes ; then + cf_version_name= + + case "$cf_cv_shlib_version" in #(vi + rel) #(vi + cf_version_name=REL_VERSION ;; - .t*) - cf_suffix=`echo $cf_suffix | sed 's/^t//'` - cf_suffix=t'.${REL_VERSION}'"$cf_suffix" - ;; - .w*) - cf_suffix=`echo $cf_suffix | sed 's/^w//'` - cf_suffix=w'.${REL_VERSION}'"$cf_suffix" - ;; - *) - cf_suffix='.${REL_VERSION}'"$cf_suffix" + abi) + cf_version_name=ABI_VERSION ;; esac - ;; #(vi - *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;; - esac + + if test -n "$cf_version_name" + then + case "$cf_cv_system_name" in #(vi + darwin*) + # "w", etc? + cf_suffix="${LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix" + ;; #(vi + *) + cf_suffix="$cf_suffix"'.${'$cf_version_name'}' + ;; + esac + fi + if test -n "${LIB_SUFFIX}" + then + cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'` + else + cf_shared_suffix="$cf_suffix" + fi + 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. + case $cf_cv_shlib_version in #(vi + cygdll) #(vi + cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` + Libs_To_Make="$Libs_To_Make ../lib/cyg${cf_libname}${cf_cygsuf}" + continue ;; - abi) - case "$cf_cv_system_name" in #(vi - darwin*) - case .${LIB_SUFFIX} in - .tw*) - cf_suffix=`echo $cf_suffix | sed 's/^tw//'` - cf_suffix=tw'.${ABI_VERSION}'"$cf_suffix" - ;; - .t*) - cf_suffix=`echo $cf_suffix | sed 's/^t//'` - cf_suffix=t'.${ABI_VERSION}'"$cf_suffix" - ;; - .w*) - cf_suffix=`echo $cf_suffix | sed 's/^w//'` - cf_suffix=w'.${ABI_VERSION}'"$cf_suffix" - ;; - *) - cf_suffix='.${ABI_VERSION}'"$cf_suffix" - ;; - esac - ;; #(vi - *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;; - esac + msysdll) #(vi + cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` + Libs_To_Make="$Libs_To_Make ../lib/msys-${cf_libname}${cf_cygsuf}" + continue + ;; + mingw) + cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` + Libs_To_Make="$Libs_To_Make ../lib/lib${cf_libname}${cf_cygsuf}" + continue ;; 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 - cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` - LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}" - continue - fi - fi - LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}" + Libs_To_Make="$Libs_To_Make ../lib/${cf_prefix}${cf_libname}${cf_suffix}" done if test $cf_dir = ncurses ; then cf_subsets="$LIB_SUBSETS" cf_r_parts="$cf_subsets" - cf_liblist="$LIBS_TO_MAKE" + cf_liblist="$Libs_To_Make" while test -n "$cf_r_parts" do @@ -20581,7 +22353,7 @@ do ;; esac if test -n "$cf_item"; then - LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE" + Libs_To_Make="$cf_item $Libs_To_Make" fi else break @@ -20591,13 +22363,40 @@ do cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'` fi - sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \ + if test $cf_dir = c++; then + if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then + cf_list= + for cf_item in $Libs_To_Make + do + case $cf_item in + *.a) + ;; + *) + cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"` + ;; + esac + for cf_test in $cf_list + do + if test "$cf_test" = "$cf_item" + then + cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'` + cf_item= + break + fi + done + test -n "$cf_item" && cf_list="$cf_list $cf_item" + done + Libs_To_Make="$cf_list" + fi + fi + + sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \ -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" \ + libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \ $srcdir/$cf_dir/modules >>$cf_dir/Makefile for cf_subset in $cf_subsets @@ -20605,34 +22404,47 @@ do cf_subdirs= for cf_item in $cf_LIST_MODELS do + echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})" cf_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - case $cf_item in #(vi - libtool) #(vi + CXX_MODEL=$cf_ITEM + if test "$CXX_MODEL" = SHARED; then + case $cf_cv_shlib_version in #(vi + cygdll|msysdll|mingw) #(vi + test "x$with_shared_cxx" = xno && test -n "$verbose" && echo " overriding CXX_MODEL to SHARED" 1>&6 + +echo "${as_me:-configure}:22418: testing overriding CXX_MODEL to SHARED ..." 1>&5 + + with_shared_cxx=yes + ;; + *) + test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL + ;; + esac + fi + + case X$cf_item in #(vi + Xlibtool) #(vi cf_suffix='.la' cf_depsuf=$cf_suffix ;; - normal) #(vi - cf_suffix='.a' - cf_depsuf=$cf_suffix - ;; - debug) #(vi + Xdebug) #(vi cf_suffix='_g.a' cf_depsuf=$cf_suffix ;; - profile) #(vi + Xprofile) #(vi cf_suffix='_p.a' cf_depsuf=$cf_suffix ;; - shared) #(vi + Xshared) #(vi case $cf_cv_system_name in - aix[56]*) #(vi + aix[5-7]*) #(vi cf_suffix='.a' cf_depsuf=$cf_suffix ;; - cygwin*) #(vi + cygwin*|msys*|mingw*) #(vi cf_suffix='.dll' cf_depsuf='.dll.a' ;; @@ -20652,10 +22464,16 @@ cf_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQ ;; esac ;; - *) cf_suffix='.so' + *) #(vi + cf_suffix='.so' cf_depsuf=$cf_suffix ;; esac + ;; + *) + cf_suffix='.a' + cf_depsuf=$cf_suffix + ;; esac test -n "$LIB_SUFFIX" && cf_suffix="${LIB_SUFFIX}${cf_suffix}" test -n "$LIB_SUFFIX" && cf_depsuf="${LIB_SUFFIX}${cf_depsuf}" @@ -20667,7 +22485,7 @@ cf_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQ profile) cf_subdir='obj_p' ;; shared) case $cf_cv_system_name in #(vi - cygwin) #(vi + cygwin|msys) #(vi cf_subdir='objects' ;; *) cf_subdir='obj_s' ;; @@ -20688,6 +22506,8 @@ cf_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQ cf_libname=$TICS_LIB_SUFFIX ;; esac + elif test $cf_dir = c++ ; then + cf_libname=ncurses++$LIB_SUFFIX else cf_libname=${cf_libname}$LIB_SUFFIX fi @@ -20739,10 +22559,12 @@ cf_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQ name=${cf_libname}${cf_dir_suffix} \ traces=$LIB_TRACING \ MODEL=$cf_ITEM \ + CXX_MODEL=$CXX_MODEL \ model=$cf_subdir \ prefix=$cf_prefix \ suffix=$cf_suffix \ subset=$cf_subset \ + driver=$cf_cv_term_driver \ SymLink="$LN_S" \ TermlibRoot=$TINFO_NAME \ TermlibSuffix=$TINFO_SUFFIX \ @@ -20781,7 +22603,7 @@ cf_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQ done fi - echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} $@' >>Makefile + echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} $@' >>Makefile done for cf_dir in $SRC_SUBDIRS @@ -20796,7 +22618,7 @@ do echo 'libs \' >> Makefile echo 'install.libs \' >> Makefile echo 'uninstall.libs ::' >> Makefile - echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} $@' >> Makefile + echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} $@' >> Makefile ;; esac fi @@ -20819,7 +22641,7 @@ install.libs \\ uninstall.libs \\ install.$cf_dir \\ uninstall.$cf_dir :: - cd $cf_dir && \${MAKE} \${CF_MFLAGS} \$@ + cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \$@ CF_EOF elif test -f $srcdir/$cf_dir/headers; then cat >> Makefile <> Makefile <> Makefile <> Makefile <>Ada95/src/Makefile fi diff --git a/contrib/ncurses/configure.in b/contrib/ncurses/configure.in index d5bc841e9b04..c14ebe791441 100644 --- a/contrib/ncurses/configure.in +++ b/contrib/ncurses/configure.in @@ -1,5 +1,5 @@ dnl*************************************************************************** -dnl Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * +dnl Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. * dnl * dnl Permission is hereby granted, free of charge, to any person obtaining a * dnl copy of this software and associated documentation files (the * @@ -28,14 +28,14 @@ dnl*************************************************************************** dnl dnl Author: Thomas E. Dickey 1995-on dnl -dnl $Id: configure.in,v 1.520 2011/03/28 00:22:26 tom Exp $ +dnl $Id: configure.in,v 1.577 2013/12/15 00:03:02 tom Exp $ dnl Process this file with autoconf to produce a configure script. dnl dnl See http://invisible-island.net/autoconf/ for additional information. dnl dnl --------------------------------------------------------------------------- -AC_PREREQ(2.13.20020210) -AC_REVISION($Revision: 1.520 $) +AC_PREREQ(2.52.20030208) +AC_REVISION($Revision: 1.577 $) AC_INIT(ncurses/base/lib_initscr.c) AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin) @@ -45,11 +45,7 @@ CF_SUBST_NCURSES_VERSION CF_WITH_REL_VERSION(NCURSES) CF_WITH_ABI_VERSION -CF_CHECK_CACHE([AC_CANONICAL_SYSTEM]) -AC_ARG_WITH(system-type, -[ --with-system-type=XXX test: override derived host system-type], -[AC_MSG_WARN(overriding system type to $withval) - cf_cv_system_name=$withval]) +CF_WITH_SYSTYPE ### Save the given $CFLAGS to allow user-override. cf_user_CFLAGS="$CFLAGS" @@ -58,15 +54,22 @@ cf_user_CFLAGS="$CFLAGS" CF_CFG_DEFAULTS ### Checks for programs. -AC_PROG_CC -CF_GCC_VERSION +AC_ARG_WITH(ada, + [ --without-ada suppress check for Ada95, don't build demo], + [cf_with_ada=$withval], + [cf_with_ada=yes]) +if test "x$cf_with_ada" = xyes +then + cf_PROG_CC="gnatgcc gcc cc" +else + cf_PROG_CC="gcc cc" +fi + +CF_PROG_CC($cf_PROG_CC) AC_PROG_CPP AC_PROG_GCC_TRADITIONAL CF_PROG_CC_C_O(CC) -AC_ISC_POSIX -CF_ANSI_CC_REQD -CF_PROG_EXT CF_PROG_LDCONFIG dnl DEFECT in autoconf 2.12: an attempt to set policy, this breaks the @@ -89,14 +92,16 @@ else cf_with_cxx=no; CXX=""; GXX="";])dnl AC_PROG_CXX popdef([AC_MSG_ERROR])dnl - # autoconf 2.5x removed the error - by hardcoding it to g++. + # autoconf 2.5x removed the error (hardcoding it to g++, or just blank) if test "$CXX" = "g++" ; then AC_PATH_PROG(CXX,g++) fi - if test "$CXX" = "g++" ; then - AC_MSG_WARN(ignoring hardcoded g++) + case "x$CXX" in #(vi + x|xg++) + AC_MSG_WARN([You don't have any C++ compiler, too bad]) cf_with_cxx=no; CXX=""; GXX=""; - fi + ;; + esac fi CF_GXX_VERSION @@ -116,12 +121,15 @@ AC_ARG_WITH(cxx-binding, AC_MSG_RESULT($cf_with_cxx_binding) AC_MSG_CHECKING(if you want to build with Ada95) -AC_ARG_WITH(ada, - [ --without-ada suppress check for Ada95, don't build demo], - [cf_with_ada=$withval], - [cf_with_ada=yes]) AC_MSG_RESULT($cf_with_ada) +AC_MSG_CHECKING(if you want to install terminal database) +AC_ARG_ENABLE(db-install, + [ --disable-db-install suppress install of terminal database], + [cf_with_db_install=$enableval], + [cf_with_db_install=yes]) +AC_MSG_RESULT($cf_with_db_install) + AC_MSG_CHECKING(if you want to install manpages) AC_ARG_WITH(manpages, [ --without-manpages suppress install of manpages], @@ -131,14 +139,14 @@ AC_MSG_RESULT($cf_with_manpages) AC_MSG_CHECKING(if you want to build programs such as tic) AC_ARG_WITH(progs, - [ --without-progs suppress build with programs (e.g., tic)], + [ --without-progs suppress build/install with programs (e.g., tic)], [cf_with_progs=$withval], [cf_with_progs=yes]) AC_MSG_RESULT($cf_with_progs) AC_MSG_CHECKING(if you want to build test-programs) AC_ARG_WITH(tests, - [ --without-tests suppress build with test-programs], + [ --without-tests suppress build/install with test-programs], [cf_with_tests=$withval], [cf_with_tests=yes]) AC_MSG_RESULT($cf_with_tests) @@ -168,28 +176,8 @@ AC_SYS_LONG_FILE_NAMES # if we find pkg-config, check if we should install the ".pc" files. CF_PKG_CONFIG - -if test "$PKG_CONFIG" != no ; then - AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG) - - # Leave this as something that can be overridden in the environment. - if test -z "$PKG_CONFIG_LIBDIR" ; then - PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`/lib/pkgconfig - fi - PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'` - if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then - AC_ARG_ENABLE(pc-files, - [ --enable-pc-files generate and install .pc files for pkg-config], - [enable_pc_files=$enableval], - [enable_pc_files=no]) - AC_MSG_RESULT($enable_pc_files) - else - AC_MSG_RESULT(no) - AC_MSG_WARN(did not find library $PKG_CONFIG_LIBDIR) - enable_pc_files=no - fi -fi -AC_SUBST(PKG_CONFIG_LIBDIR) +CF_WITH_PKG_CONFIG_LIBDIR +CF_ENABLE_PC_FILES AC_MSG_CHECKING(if we should assume mixed-case filenames) AC_ARG_ENABLE(mixed-case, @@ -201,8 +189,8 @@ if test "$enable_mixedcase" = "auto" ; then CF_MIXEDCASE_FILENAMES else cf_cv_mixedcase=$enable_mixedcase - if test "$enable_mixedcase" = "yes" ; then - AC_DEFINE(MIXEDCASE_FILENAMES) + if test "x$enable_mixedcase" = "xyes" ; then + AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if tic should assume mixed-case filenames]) fi fi @@ -215,6 +203,7 @@ dnl These are standard among *NIX systems, but not when cross-compiling AC_CHECK_TOOL(RANLIB, ranlib, ':') AC_CHECK_TOOL(LD, ld, ld) AC_CHECK_TOOL(AR, ar, ar) +AC_CHECK_TOOL(NM, nm, nm) CF_AR_FLAGS dnl Special option for use by system-builders: the install-prefix is used to @@ -223,8 +212,8 @@ dnl archive can be built without modifying the host system's configuration. AC_MSG_CHECKING(if you have specified an install-prefix) AC_ARG_WITH(install-prefix, [ --with-install-prefix prefixes actual install-location ($DESTDIR)], - [case "$withval" in #(vi - yes|no) #(vi + [case "x$withval" in #(vi + xyes|xno) #(vi ;; *) DESTDIR="$withval" ;; @@ -261,7 +250,7 @@ AC_ARG_WITH(shared, [with_shared=$withval], [with_shared=no]) AC_MSG_RESULT($with_shared) -test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared" +test "x$with_shared" = "xyes" && cf_list_models="$cf_list_models shared" AC_MSG_CHECKING(if you want to build static libraries) AC_ARG_WITH(normal, @@ -269,7 +258,7 @@ AC_ARG_WITH(normal, [with_normal=$withval], [with_normal=yes]) AC_MSG_RESULT($with_normal) -test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal" +test "x$with_normal" = "xyes" && cf_list_models="$cf_list_models normal" AC_MSG_CHECKING(if you want to build debug libraries) AC_ARG_WITH(debug, @@ -277,7 +266,7 @@ AC_ARG_WITH(debug, [with_debug=$withval], [with_debug=yes]) AC_MSG_RESULT($with_debug) -test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug" +test "x$with_debug" = "xyes" && cf_list_models="$cf_list_models debug" AC_MSG_CHECKING(if you want to build profiling libraries) AC_ARG_WITH(profile, @@ -285,10 +274,21 @@ AC_ARG_WITH(profile, [with_profile=$withval], [with_profile=no]) AC_MSG_RESULT($with_profile) -test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile" +test "x$with_profile" = "xyes" && cf_list_models="$cf_list_models profile" fi +if test "X$cf_with_cxx_binding" != Xno; then +if test "x$with_shared" = "xyes"; then +AC_MSG_CHECKING(if you want to build C++ shared libraries) +AC_ARG_WITH(cxx-shared, + [ --with-cxx-shared generate C++ shared-libraries], + [with_shared_cxx=$withval], + [with_shared_cxx=no]) +AC_MSG_RESULT($with_shared_cxx) +fi +fi + ############################################################################### AC_MSG_CHECKING(for specified models) @@ -321,12 +321,11 @@ AC_SUBST(LIB_NAME) LIB_DIR=../lib LIB_2ND=../../lib -CF_LIB_PREFIX(cf_prefix) -LIB_PREFIX=$cf_prefix -AC_SUBST(LIB_PREFIX) +CF_WITH_LIB_PREFIX(cf_prefix) LIB_SUFFIX= AC_SUBST(LIB_SUFFIX) +CF_PATHSEP ############################################################################### @@ -354,21 +353,21 @@ if test "$with_gpm" != no ; then [with_dlsym=$withval], [with_dlsym=yes]) AC_MSG_RESULT($with_dlsym) - if test "$with_dlsym" = yes ; then + if test "x$with_dlsym" = xyes ; then CF_FUNC_DLSYM - if test "$with_gpm" != yes ; then + if test "x$with_gpm" != xyes ; then CF_VERBOSE(assuming soname for gpm is $with_gpm) cf_cv_gpm_soname="$with_gpm" else CF_LIB_SONAME([#include ],[if (Gpm_Open(0,0)) Gpm_Close();],gpm) fi - test "$cf_cv_gpm_soname" != "unknown" && AC_DEFINE_UNQUOTED(LIBGPM_SONAME,"$cf_cv_gpm_soname") + test "$cf_cv_gpm_soname" != "unknown" && AC_DEFINE_UNQUOTED(LIBGPM_SONAME,"$cf_cv_gpm_soname",[Define as needed to set the gpm share library soname]) SHLIB_LIST="-ldl $SHLIB_LIST" else SHLIB_LIST="-lgpm $SHLIB_LIST" CF_ADD_LIB(gpm,TEST_LIBS) fi - AC_DEFINE(HAVE_LIBGPM) + AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library]) CF_CHECK_GPM_WGETCH fi @@ -378,13 +377,13 @@ dnl Not all ports of gcc support the -g option if test X"$CC_G_OPT" = X"" ; then CC_G_OPT='-g' - test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT='' + test -n "$GCC" && test "x${ac_cv_prog_cc_g}" != xyes && CC_G_OPT='' fi AC_SUBST(CC_G_OPT) if test X"$CXX_G_OPT" = X"" ; then CXX_G_OPT='-g' - test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT='' + test -n "$GXX" && test "x${ac_cv_prog_cxx_g}" != xyes && CXX_G_OPT='' fi AC_SUBST(CXX_G_OPT) @@ -411,6 +410,8 @@ AC_MSG_RESULT($cf_cv_do_relink) ;; esac +# we will build libraries one-level down. +rel_builddir=.. CF_SHARED_OPTS if test "$CC_SHARED_OPTS" = "unknown"; then for model in $cf_list_models; do @@ -453,9 +454,9 @@ os2*) #(vi esac AC_SUBST(TERMINFO_SRC) -CF_PATHSEP +NCURSES_USE_DATABASE=0 if test "$use_database" != no ; then - AC_DEFINE(USE_DATABASE) + NCURSES_USE_DATABASE=1 AC_MSG_CHECKING(which terminfo source-file will be installed) AC_ARG_WITH(database, @@ -471,6 +472,7 @@ if test "$use_database" != no ; then else with_hashed_db=no fi +AC_SUBST(NCURSES_USE_DATABASE) AC_MSG_CHECKING(for list of fallback descriptions) AC_ARG_WITH(fallbacks, @@ -494,6 +496,26 @@ AC_MSG_RESULT($with_xterm_new) WHICH_XTERM=$with_xterm_new AC_SUBST(WHICH_XTERM) +AC_MSG_CHECKING(if xterm backspace sends BS or DEL) +AC_ARG_WITH(xterm-kbs, + [ --with-xterm-kbs=XXX specify if xterm backspace sends BS or DEL], + [with_xterm_kbs=$withval], + [with_xterm_kbs=BS]) +case x$with_xterm_kbs in +xyes|xno|xBS|xbs|x8) + with_xterm_kbs=BS + ;; +xDEL|xdel|x127) + with_xterm_kbs=DEL + ;; +*) + with_xterm_kbs=$withval + ;; +esac +AC_MSG_RESULT($with_xterm_kbs) +XTERM_KBS=$with_xterm_kbs +AC_SUBST(XTERM_KBS) + MAKE_TERMINFO= if test "$use_database" = no ; then TERMINFO="${datadir}/terminfo" @@ -507,7 +529,7 @@ CF_WITH_PATHLIST(terminfo-dirs, DATADIR/terminfo, ${datadir}/terminfo) AC_MSG_RESULT($TERMINFO_DIRS) -test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS") +test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS",[Define as needed to predefine the TERMINFO_DIR searchlist]) AC_MSG_CHECKING(for default terminfo directory) CF_WITH_PATH(default-terminfo-dir, @@ -516,7 +538,7 @@ CF_WITH_PATH(default-terminfo-dir, DATADIR/terminfo, ${datadir}/terminfo) AC_MSG_RESULT($TERMINFO) -AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO") +AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO",[Define to set the default terminal database path]) fi @@ -543,7 +565,7 @@ int main() { [with_big_core=no], [with_big_core=no])]) AC_MSG_RESULT($with_big_core) -test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE) +test "x$with_big_core" = "xyes" && AC_DEFINE(HAVE_BIG_CORE,1,[Define to 1 if machine has ample memory for tic]) ### ISO C only guarantees 512-char strings, we have tables which load faster ### when constructed using "big" strings. More than the C compiler, the awk @@ -556,7 +578,7 @@ AC_ARG_ENABLE(big-strings, AC_MSG_RESULT($with_big_strings) USE_BIG_STRINGS=0 -test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1 +test "x$with_big_strings" = "xyes" && USE_BIG_STRINGS=1 AC_SUBST(USE_BIG_STRINGS) ### use option --enable-termcap to compile in the termcap fallback support @@ -567,46 +589,48 @@ AC_ARG_ENABLE(termcap, [with_termcap=no]) AC_MSG_RESULT($with_termcap) -if test "$with_termcap" != "yes" ; then +NCURSES_USE_TERMCAP=0 +if test "x$with_termcap" != "xyes" ; then if test "$use_database" = no ; then if test -z "$with_fallback" ; then AC_ERROR(You have disabled the database w/o specifying fallbacks) fi fi - AC_DEFINE(PURE_TERMINFO) + AC_DEFINE(PURE_TERMINFO,1,[Define to 1 if we should support only terminfo]) else -if test "$with_ticlib" != no ; then - AC_ERROR(Options --with-ticlib and --enable-termcap cannot be combined) -fi + if test "$with_ticlib" != no ; then + AC_ERROR(Options --with-ticlib and --enable-termcap cannot be combined) + fi -AC_DEFINE(USE_TERMCAP) -AC_MSG_CHECKING(for list of termcap files) -CF_WITH_PATHLIST(termpath, - [ --with-termpath=XXX specify list of termcap files], - TERMPATH, - /etc/termcap:/usr/share/misc/termcap) -AC_MSG_RESULT($TERMPATH) -test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH") + NCURSES_USE_TERMCAP=1 + AC_MSG_CHECKING(for list of termcap files) + CF_WITH_PATHLIST(termpath, + [ --with-termpath=XXX specify list of termcap files], + TERMPATH, + /etc/termcap:/usr/share/misc/termcap) + AC_MSG_RESULT($TERMPATH) + test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH",[Define to set the termcap searchlist]) -### use option --enable-getcap to use a hacked getcap for reading termcaps -AC_MSG_CHECKING(if fast termcap-loader is needed) -AC_ARG_ENABLE(getcap, - [ --enable-getcap fast termcap load, no xrefs to terminfo], - [with_getcap=$enableval], - [with_getcap=no]) -AC_MSG_RESULT($with_getcap) -test "$with_getcap" = "yes" && AC_DEFINE(USE_GETCAP) + ### use option --enable-getcap to use a hacked getcap for reading termcaps + AC_MSG_CHECKING(if fast termcap-loader is needed) + AC_ARG_ENABLE(getcap, + [ --enable-getcap fast termcap load, no xrefs to terminfo], + [with_getcap=$enableval], + [with_getcap=no]) + AC_MSG_RESULT($with_getcap) + test "x$with_getcap" = "xyes" && AC_DEFINE(USE_GETCAP,1,[Define to 1 to use fast termcap-loader]) -AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo) -AC_ARG_ENABLE(getcap-cache, - [ --enable-getcap-cache cache translated termcaps in ~/.terminfo], - [with_getcap_cache=$enableval], - [with_getcap_cache=no]) -AC_MSG_RESULT($with_getcap_cache) -test "$with_getcap_cache" = "yes" && AC_DEFINE(USE_GETCAP_CACHE) + AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo) + AC_ARG_ENABLE(getcap-cache, + [ --enable-getcap-cache cache translated termcaps in ~/.terminfo], + [with_getcap_cache=$enableval], + [with_getcap_cache=no]) + AC_MSG_RESULT($with_getcap_cache) + test "x$with_getcap_cache" = "xyes" && AC_DEFINE(USE_GETCAP_CACHE,1,[Define to 1 if translated termcap should be stored in $HOME/.terminfo]) fi +AC_SUBST(NCURSES_USE_TERMCAP) ### Use option --disable-home-terminfo to completely remove ~/.terminfo AC_MSG_CHECKING(if ~/.terminfo is wanted) @@ -615,7 +639,7 @@ AC_ARG_ENABLE(home-terminfo, [with_home_terminfo=$enableval], [with_home_terminfo=yes]) AC_MSG_RESULT($with_home_terminfo) -test "$with_home_terminfo" = "yes" && AC_DEFINE(USE_HOME_TERMINFO) +test "x$with_home_terminfo" = "xyes" && AC_DEFINE(USE_HOME_TERMINFO,1,[Define to 1 if $HOME/.terminfo feature is wanted]) AC_MSG_CHECKING(if you want to use restricted environment when running as root) AC_ARG_ENABLE(root-environ, @@ -623,7 +647,7 @@ AC_ARG_ENABLE(root-environ, [with_root_environ=$enableval], [with_root_environ=yes]) AC_MSG_RESULT($with_root_environ) -test "$with_root_environ" = yes && AC_DEFINE(USE_ROOT_ENVIRON) +test "x$with_root_environ" = xyes && AC_DEFINE(USE_ROOT_ENVIRON,1,[Define to 1 if environment should be restricted for root user]) ### Use option --enable-symlinks to make tic use symlinks, not hard links ### to reduce storage requirements for the terminfo database. @@ -634,7 +658,7 @@ with_symlinks=no # soft links (symbolic links) are useful for some systems where hard links do # not work, or to make it simpler to copy terminfo trees around. -if test "$ac_cv_func_symlink" = yes ; then +if test "x$ac_cv_func_symlink" = xyes ; then AC_MSG_CHECKING(if tic should use symbolic links) AC_ARG_ENABLE(symlinks, [ --enable-symlinks make tic use symbolic links not hard links], @@ -647,7 +671,7 @@ fi # no reason to make this choice optional - use the hard links. if test "$with_symlinks" = no ; then AC_MSG_CHECKING(if tic should use hard links) - if test "$ac_cv_func_link" = yes ; then + if test "x$ac_cv_func_link" = xyes ; then with_links=yes else with_links=no @@ -655,8 +679,8 @@ if test "$with_symlinks" = no ; then AC_MSG_RESULT($with_links) fi -test "$with_links" = yes && AC_DEFINE(USE_LINKS) -test "$with_symlinks" = yes && AC_DEFINE(USE_SYMLINKS) +test "x$with_links" = xyes && AC_DEFINE(USE_LINKS,1,[Define to 1 if hardlinks should be used in terminfo database]) +test "x$with_symlinks" = xyes && AC_DEFINE(USE_SYMLINKS,1,[Define to 1 if symbolic links should be used in terminfo database]) ### use option --enable-broken-linker to force on use of broken-linker support AC_MSG_CHECKING(if you want broken-linker support code) @@ -667,13 +691,13 @@ AC_ARG_ENABLE(broken_linker, AC_MSG_RESULT($with_broken_linker) BROKEN_LINKER=0 -if test "$with_broken_linker" = yes ; then - AC_DEFINE(BROKEN_LINKER) +if test "x$with_broken_linker" = xyes ; then + AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules]) BROKEN_LINKER=1 elif test "$DFT_LWR_MODEL" = shared ; then case $cf_cv_system_name in #(vi cygwin*) - AC_DEFINE(BROKEN_LINKER) + AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules]) BROKEN_LINKER=1 CF_VERBOSE(cygwin linker is broken anyway) ;; @@ -688,7 +712,7 @@ AC_ARG_ENABLE(bsdpad, [with_bsdpad=$enableval], [with_bsdpad=no]) AC_MSG_RESULT($with_bsdpad) -test "$with_bsdpad" = yes && AC_DEFINE(BSD_TPUTS) +test "x$with_bsdpad" = xyes && AC_DEFINE(BSD_TPUTS,1,[Define to 1 to recognize BSD-style prefix padding]) ### use option --enable-widec to turn on use of wide-character support NCURSES_CH_T=chtype @@ -718,22 +742,17 @@ AC_ARG_ENABLE(widec, [with_widec=$enableval], [with_widec=no]) AC_MSG_RESULT($with_widec) -if test "$with_widec" = yes ; then +if test "x$with_widec" = xyes ; then LIB_SUFFIX="w${LIB_SUFFIX}" - AC_DEFINE(USE_WIDEC_SUPPORT) + AC_DEFINE(USE_WIDEC_SUPPORT,1,[Define to 1 to compile with wide-char/UTF-8 code]) + AC_DEFINE(NCURSES_WIDECHAR,1,[Define to 1 to compile with wide-char/UTF-8 code]) - case "$CFLAGS $CPPFLAGS" in #(vi - *-D_XOPEN_SOURCE=500) #(vi - ;; - *) - CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED) - ;; - esac + CF_CHECK_WCHAR_H # with_overwrite=no NCURSES_CH_T=cchar_t AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs) - if test "$ac_cv_func_putwc" != yes ; then + if test "x$ac_cv_func_putwc" != xyes ; then CF_UTF8_LIB if test "$cf_cv_utf8_lib" != no ; then NCURSES_LIBUTF8=1 @@ -744,7 +763,7 @@ if test "$with_widec" = yes ; then CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T) if test "$NCURSES_MBSTATE_T" != 0; then - AC_DEFINE(NEED_MBSTATE_T_DEF) + AC_DEFINE(NEED_MBSTATE_T_DEF,1,[Define to 1 if we must declare mbstate_t]) fi fi AC_SUBST(NCURSES_CH_T) @@ -775,7 +794,7 @@ AC_ARG_ENABLE(lp64, [with_lp64=$default_with_lp64]) AC_MSG_RESULT($with_lp64) -if test "$with_lp64" = yes ; then +if test "x$with_lp64" = xyes ; then cf_cv_enable_lp64=1 else cf_cv_enable_lp64=0 @@ -792,7 +811,7 @@ AC_ARG_ENABLE(tparm-varargs, [with_tparm_varargs=yes]) AC_MSG_RESULT($with_tparm_varargs) NCURSES_TPARM_VARARGS=0 -test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1 +test "x$with_tparm_varargs" = xyes && NCURSES_TPARM_VARARGS=1 AC_SUBST(NCURSES_TPARM_VARARGS) ### use option --disable-tic-depends to make libtic not explicitly depend on ncurses/ncursesw @@ -859,6 +878,15 @@ AC_ARG_WITH(ccharw-max, AC_MSG_RESULT($NCURSES_CCHARW_MAX) AC_SUBST(NCURSES_CCHARW_MAX) +### use option --with-tparm-arg to override tparm's argument type +AC_MSG_CHECKING(for type of tparm args) +AC_ARG_WITH(tparm-arg, + [ --with-tparm-arg=TYPE override parameter type of tparm], + [NCURSES_TPARM_ARG="$withval"], + [NCURSES_TPARM_ARG=long]) +AC_MSG_RESULT($NCURSES_TPARM_ARG) +AC_SUBST(NCURSES_TPARM_ARG) + ### Enable compiling-in rcs id's AC_MSG_CHECKING(if RCS identifiers should be compiled-in) AC_ARG_WITH(rcs-ids, @@ -866,7 +894,7 @@ AC_ARG_WITH(rcs-ids, [with_rcs_ids=$withval], [with_rcs_ids=no]) AC_MSG_RESULT($with_rcs_ids) -test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS) +test "x$with_rcs_ids" = xyes && AC_DEFINE(USE_RCS_IDS,1,[Define to 1 to compile-in RCS identifiers]) ############################################################################### CF_MAN_PAGES([ captoinfo clear infocmp infotocap tabs tic toe tput tset ]) @@ -881,16 +909,19 @@ AC_ARG_ENABLE(ext-funcs, [with_ext_funcs=$enableval], [with_ext_funcs=yes]) AC_MSG_RESULT($with_ext_funcs) -if test "$with_ext_funcs" = yes ; then +if test "x$with_ext_funcs" = xyes ; then NCURSES_EXT_FUNCS=1 - AC_DEFINE(HAVE_CURSES_VERSION) - AC_DEFINE(HAVE_HAS_KEY) - AC_DEFINE(HAVE_RESIZETERM) - AC_DEFINE(HAVE_RESIZE_TERM) - AC_DEFINE(HAVE_TERM_ENTRY_H) - AC_DEFINE(HAVE_USE_DEFAULT_COLORS) - AC_DEFINE(HAVE_WRESIZE) - AC_DEFINE(NCURSES_EXT_FUNCS) + AC_DEFINE(HAVE_ASSUME_DEFAULT_COLORS,1,[Define to 1 to enable assume_default_colors() function]) + AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 to enable curses_version() function]) + AC_DEFINE(HAVE_HAS_KEY,1,[Define to 1 to enable has_key() function]) + AC_DEFINE(HAVE_RESIZETERM,1,[Define to 1 to enable resizeterm() function]) + AC_DEFINE(HAVE_RESIZE_TERM,1,[Define to 1 to enable resize_term() function]) + AC_DEFINE(HAVE_TERM_ENTRY_H,1,[Define to 1 to enable term_entry() function]) + AC_DEFINE(HAVE_USE_DEFAULT_COLORS,1,[Define to 1 to enable use_default_colors() function]) + AC_DEFINE(HAVE_USE_SCREEN,1,[Define to 1 to enable use_screen() function]) + AC_DEFINE(HAVE_USE_WINDOW,1,[Define to 1 to enable use_window() function]) + AC_DEFINE(HAVE_WRESIZE,1,[Define to 1 to enable wresize() function]) + AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 to enable ncurses extended functions]) GENERATED_EXT_FUNCS=generated else NCURSES_EXT_FUNCS=0 @@ -905,9 +936,9 @@ AC_ARG_ENABLE(sp-funcs, [with_sp_funcs=$enableval], [with_sp_funcs=no]) AC_MSG_RESULT($with_sp_funcs) -if test "$with_sp_funcs" = yes ; then +if test "x$with_sp_funcs" = xyes ; then NCURSES_SP_FUNCS=1 - AC_DEFINE(NCURSES_SP_FUNCS) + AC_DEFINE(NCURSES_SP_FUNCS,1,[Define to 1 to enable experimental SCREEN-extensions]) GENERATED_SP_FUNCS=generated else NCURSES_SP_FUNCS=0 @@ -922,9 +953,9 @@ AC_ARG_ENABLE(term-driver, [with_term_driver=$enableval], [with_term_driver=no]) AC_MSG_RESULT($with_term_driver) -if test "$with_term_driver" = yes ; then - AC_DEFINE(USE_TERM_DRIVER) - if test "$with_sp_funcs" != yes ; then +if test "x$with_term_driver" = xyes ; then + AC_DEFINE(USE_TERM_DRIVER,1,[Define to 1 to enable experimental terminal-driver]) + if test "x$with_sp_funcs" != xyes ; then AC_MSG_ERROR(The term-driver option relies upon sp-funcs) fi fi @@ -937,7 +968,7 @@ AC_ARG_ENABLE(const, [with_ext_const=no]) AC_MSG_RESULT($with_ext_const) NCURSES_CONST='/*nothing*/' -if test "$with_ext_const" = yes ; then +if test "x$with_ext_const" = xyes ; then NCURSES_CONST=const fi AC_SUBST(NCURSES_CONST) @@ -950,15 +981,15 @@ AC_ARG_ENABLE(ext-colors, [with_ext_colors=no]) AC_MSG_RESULT($with_ext_colors) NCURSES_EXT_COLORS=0 -if test "$with_ext_colors" = yes ; then - if test "$with_widec" != yes ; then +if test "x$with_ext_colors" = xyes ; then + if test "x$with_widec" != xyes ; then AC_MSG_ERROR(This option applies only to wide-character library) else # cannot be ABI 5 since it changes sizeof(cchar_t) CF_NCURSES_ABI_6 fi NCURSES_EXT_COLORS=1 - AC_DEFINE(NCURSES_EXT_COLORS) + AC_DEFINE(NCURSES_EXT_COLORS,1,[Define to 1 to compile for 256-color support]) fi AC_SUBST(NCURSES_EXT_COLORS) @@ -970,7 +1001,7 @@ AC_ARG_ENABLE(ext-mouse, [with_ext_mouse=no]) AC_MSG_RESULT($with_ext_mouse) NCURSES_MOUSE_VERSION=1 -if test "$with_ext_mouse" = yes ; then +if test "x$with_ext_mouse" = xyes ; then NCURSES_MOUSE_VERSION=2 CF_NCURSES_ABI_6 fi @@ -982,7 +1013,7 @@ AC_ARG_ENABLE(no-padding, [with_no_padding=$enableval], [with_no_padding=$with_ext_funcs]) AC_MSG_RESULT($with_no_padding) -test "$with_no_padding" = yes && AC_DEFINE(NCURSES_NO_PADDING) +test "x$with_no_padding" = xyes && AC_DEFINE(NCURSES_NO_PADDING,1,[Define to 1 to compile with $NCURSES_NO_PADDING code]) AC_CHECK_SIZEOF([signed char], 0) if test "$ac_cv_sizeof_signed_char" = 1 ; then @@ -996,7 +1027,7 @@ AC_ARG_ENABLE(signed-char, [with_signed_char=$enableval], [with_signed_char=no]) AC_MSG_RESULT($with_signed_char) -test "$with_signed_char" != yes && NCURSES_SBOOL="char" +test "x$with_signed_char" != xyes && NCURSES_SBOOL="char" AC_SUBST(NCURSES_SBOOL) ### use option --enable-sigwinch to turn on use of SIGWINCH logic @@ -1006,7 +1037,7 @@ AC_ARG_ENABLE(sigwinch, [with_sigwinch=$enableval], [with_sigwinch=$with_ext_funcs]) AC_MSG_RESULT($with_sigwinch) -test "$with_sigwinch" = yes && AC_DEFINE(USE_SIGWINCH) +test "x$with_sigwinch" = xyes && AC_DEFINE(USE_SIGWINCH,1,[Define to 1 to compile with SIGWINCH handler]) ### use option --enable-tcap-names to allow user to define new capabilities AC_MSG_CHECKING(if you want user-definable terminal capabilities like termcap) @@ -1016,7 +1047,7 @@ AC_ARG_ENABLE(tcap-names, [with_tcap_names=$with_ext_funcs]) AC_MSG_RESULT($with_tcap_names) NCURSES_XNAMES=0 -test "$with_tcap_names" = yes && NCURSES_XNAMES=1 +test "x$with_tcap_names" = xyes && NCURSES_XNAMES=1 AC_SUBST(NCURSES_XNAMES) ############################################################################### @@ -1035,7 +1066,7 @@ AC_ARG_ENABLE(hard-tabs, [ --enable-hard-tabs compile with hard-tabs code],, [enable_hard_tabs=$with_develop]) AC_MSG_RESULT($enable_hard_tabs) -test "$enable_hard_tabs" = yes && AC_DEFINE(USE_HARD_TABS) +test "x$enable_hard_tabs" = xyes && AC_DEFINE(USE_HARD_TABS,1,[Define to 1 to compile with hard-tabs code]) ### use option --enable-xmc-glitch to turn on use of magic-cookie optimize AC_MSG_CHECKING(if you want limited support for xmc) @@ -1043,7 +1074,7 @@ AC_ARG_ENABLE(xmc-glitch, [ --enable-xmc-glitch compile with support for xmc (magic-cookie)],, [enable_xmc_glitch=$with_develop]) AC_MSG_RESULT($enable_xmc_glitch) -test "$enable_xmc_glitch" = yes && AC_DEFINE(USE_XMC_SUPPORT) +test "x$enable_xmc_glitch" = xyes && AC_DEFINE(USE_XMC_SUPPORT,1,[Define to 1 to compile with support for xmc (magic-cookie)]) ############################################################################### # These are just experimental, probably should not be in a package: @@ -1055,7 +1086,7 @@ AC_ARG_ENABLE(assumed-color, [with_assumed_color=$enableval], [with_assumed_color=yes]) AC_MSG_RESULT($with_assumed_color) -test "$with_assumed_color" = yes && AC_DEFINE(USE_ASSUMED_COLOR) +test "x$with_assumed_color" = xyes && AC_DEFINE(USE_ASSUMED_COLOR,1,[Define to 1 to assume things about default-colors]) ### use option --enable-hashmap to turn on use of hashmap scrolling logic AC_MSG_CHECKING(if you want hashmap scrolling-optimization code) @@ -1064,7 +1095,7 @@ AC_ARG_ENABLE(hashmap, [with_hashmap=$enableval], [with_hashmap=yes]) AC_MSG_RESULT($with_hashmap) -test "$with_hashmap" = yes && AC_DEFINE(USE_HASHMAP) +test "x$with_hashmap" = xyes && AC_DEFINE(USE_HASHMAP,1,[Define to 1 to compile with hashmap scrolling-optimization]) ### use option --enable-colorfgbg to turn on use of $COLORFGBG environment AC_MSG_CHECKING(if you want colorfgbg code) @@ -1073,7 +1104,7 @@ AC_ARG_ENABLE(colorfgbg, [with_colorfgbg=$enableval], [with_colorfgbg=no]) AC_MSG_RESULT($with_colorfgbg) -test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG) +test "x$with_colorfgbg" = xyes && AC_DEFINE(USE_COLORFGBG,1,[Define to 1 to compile-in experimental $COLORFGBG code]) ### use option --enable-interop to turn on use of bindings used for interop AC_MSG_CHECKING(if you want interop bindings) @@ -1084,7 +1115,7 @@ AC_ARG_ENABLE(interop, AC_MSG_RESULT($with_exp_interop) NCURSES_INTEROP_FUNCS=0 -test "$with_exp_interop" = yes && NCURSES_INTEROP_FUNCS=1 +test "x$with_exp_interop" = xyes && NCURSES_INTEROP_FUNCS=1 AC_SUBST(NCURSES_INTEROP_FUNCS) # This is still experimental (20080329), but should ultimately be moved to @@ -1099,8 +1130,8 @@ if test "x$with_pthread" != xno; then [use_pthreads_eintr=$enableval], [use_pthreads_eintr=no]) AC_MSG_RESULT($use_pthreads_eintr) - if test $use_pthreads_eintr = yes ; then - AC_DEFINE(USE_PTHREADS_EINTR) + if test "x$use_pthreads_eintr" = xyes ; then + AC_DEFINE(USE_PTHREADS_EINTR,1,[Define to 1 to enable EINTR in wgetch with pthreads]) fi]) AC_MSG_CHECKING(if you want to use weak-symbols for pthreads) @@ -1109,22 +1140,22 @@ if test "x$with_pthread" != xno; then [use_weak_symbols=$enableval], [use_weak_symbols=no]) AC_MSG_RESULT($use_weak_symbols) - if test "$use_weak_symbols" = yes ; then + if test "x$use_weak_symbols" = xyes ; then CF_WEAK_SYMBOLS else cf_cv_weak_symbols=no fi - if test $cf_cv_weak_symbols = yes ; then - AC_DEFINE(USE_WEAK_SYMBOLS) + if test "x$cf_cv_weak_symbols" = xyes ; then + AC_DEFINE(USE_WEAK_SYMBOLS,1,[Define to 1 to enable weak-symbols for pthreads]) fi fi PTHREAD= -if test "$with_pthread" = "yes" ; then - AC_DEFINE(USE_PTHREADS) +if test "x$with_pthread" = "xyes" ; then + AC_DEFINE(USE_PTHREADS,1,[Define to 1 to use pthreads feature]) enable_reentrant=yes - if test $cf_cv_weak_symbols = yes ; then + if test "x$cf_cv_weak_symbols" = xyes ; then PTHREAD=-lpthread fi fi @@ -1140,19 +1171,29 @@ AC_ARG_ENABLE(reentrant, [with_reentrant=$enableval], [with_reentrant=no]) AC_MSG_RESULT($with_reentrant) -if test "$with_reentrant" = yes ; then +if test "x$with_reentrant" = xyes ; then cf_cv_enable_reentrant=1 cf_cv_enable_opaque="NCURSES_INTERNALS" NCURSES_OPAQUE=1 NCURSES_SIZE_T=int - if test $cf_cv_weak_symbols = yes ; then + if test "x$cf_cv_weak_symbols" = xyes ; then CF_REMOVE_LIB(LIBS,$LIBS,pthread) CF_ADD_LIB(pthread,TEST_LIBS) CF_ADD_LIB(pthread,TEST_LIBS2) else - LIB_SUFFIX="t${LIB_SUFFIX}" + # when not using weak symbols but with_reentrant, + # add 't' to the library suffix on all platforms + # except cygwin, where we only do that if ALSO + # compiling with full thread support. + case "$host" in + *cygwin* | *msys*) + if test "$with_pthread" = "yes" ; then + LIB_SUFFIX="t${LIB_SUFFIX}" + fi ;; + * ) LIB_SUFFIX="t${LIB_SUFFIX}" ;; + esac fi - AC_DEFINE(USE_REENTRANT) + AC_DEFINE(USE_REENTRANT,1,[Define to 1 to use experimental reentrant feature]) CF_NCURSES_ABI_6 else cf_cv_enable_reentrant=0 @@ -1177,7 +1218,7 @@ else NCURSES_WRAP_PREFIX=_nc_ fi AC_SUBST(NCURSES_WRAP_PREFIX) -AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX") +AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX",[Define to override _nc_ prefix]) AC_MSG_CHECKING(if you want experimental safe-sprintf code) AC_ARG_ENABLE(safe-sprintf, @@ -1185,7 +1226,7 @@ AC_ARG_ENABLE(safe-sprintf, [with_safe_sprintf=$enableval], [with_safe_sprintf=no]) AC_MSG_RESULT($with_safe_sprintf) -test "$with_safe_sprintf" = yes && AC_DEFINE(USE_SAFE_SPRINTF) +test "x$with_safe_sprintf" = xyes && AC_DEFINE(USE_SAFE_SPRINTF,1,[Define to 1 to compile with experimental safe-sprintf code]) ### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic # when hashmap is used scroll hints are useless @@ -1196,7 +1237,7 @@ AC_ARG_ENABLE(scroll-hints, [with_scroll_hints=$enableval], [with_scroll_hints=yes]) AC_MSG_RESULT($with_scroll_hints) -test "$with_scroll_hints" = yes && AC_DEFINE(USE_SCROLL_HINTS) +test "x$with_scroll_hints" = xyes && AC_DEFINE(USE_SCROLL_HINTS,1,[Define to 1 to compile without scroll-hints code]) fi AC_MSG_CHECKING(if you want experimental wgetch-events code) @@ -1205,25 +1246,20 @@ AC_ARG_ENABLE(wgetch-events, [with_wgetch_events=$enableval], [with_wgetch_events=no]) AC_MSG_RESULT($with_wgetch_events) -test "$with_wgetch_events" = yes && AC_DEFINE(NCURSES_WGETCH_EVENTS) +test "x$with_wgetch_events" = xyes && AC_DEFINE(NCURSES_WGETCH_EVENTS,1,[Define to 1 to compile with experimental wgetch-events code]) ############################################################################### CF_HELP_MESSAGE(Testing/development Options:) ### use option --disable-echo to suppress full display compiling commands -AC_MSG_CHECKING(if you want to display full commands during build) -AC_ARG_ENABLE(echo, - [ --enable-echo build: display "compiling" commands (default)], - [with_echo=$enableval], - [with_echo=yes]) -if test "$with_echo" = yes; then +CF_DISABLE_ECHO +if test "x$enable_echo" = xyes; then ECHO_LINK= else ECHO_LINK='@ echo linking $@ ... ;' test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent" test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent" fi -AC_MSG_RESULT($with_echo) AC_SUBST(ECHO_LINK) ### use option --enable-warnings to turn on all gcc warnings @@ -1235,12 +1271,13 @@ AC_MSG_RESULT($with_warnings) if test "x$with_warnings" = "xyes"; then CF_ADD_ADAFLAGS(-gnatg) - CF_GCC_WARNINGS(Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum) - if test "$cf_with_cxx" = yes ; then + CF_GCC_WARNINGS(Wno-unknown-pragmas Wswitch-enum) + if test "x$cf_with_cxx" = xyes ; then CF_GXX_WARNINGS(Wno-unused) fi fi CF_GCC_ATTRIBUTES +CF_ENABLE_STRING_HACKS ### use option --enable-assertions to turn on generation of assertion code AC_MSG_CHECKING(if you want to enable runtime assertions) @@ -1253,7 +1290,6 @@ if test -n "$GCC" then if test "$with_assertions" = no then - AC_DEFINE(NDEBUG) CPPFLAGS="$CPPFLAGS -DNDEBUG" else CF_ADD_ADAFLAGS(-gnata) @@ -1262,17 +1298,17 @@ fi ### use option --disable-leaks to suppress "permanent" leaks, for testing CF_DISABLE_LEAKS -AC_DEFINE(HAVE_NC_ALLOC_H) +AC_DEFINE(HAVE_NC_ALLOC_H,1,[Define to 1 if we have nc_alloc.h header]) ### use option --enable-expanded to generate certain macros as functions AC_ARG_ENABLE(expanded, [ --enable-expanded test: generate functions for certain macros], - [test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED)]) + [test "x$enableval" = xyes && AC_DEFINE(NCURSES_EXPANDED,1,[Define to 1 to generate functions for certain macros])]) ### use option --disable-macros to suppress macros in favor of functions AC_ARG_ENABLE(macros, [ --disable-macros test: use functions rather than macros], - [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS)]) + [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS,1,[Define to 1 to use functions rather than macros])]) # Normally we only add trace() to the debug-library. Allow this to be # extended to all models of the ncurses library: @@ -1290,7 +1326,7 @@ AC_ARG_WITH(trace, [cf_with_trace=$cf_all_traces]) AC_MSG_RESULT($cf_with_trace) -if test "$cf_with_trace" = yes ; then +if test "x$cf_with_trace" = xyes ; then LIB_TRACING=all ADA_TRACE=TRUE CF_ADD_CFLAGS(-DTRACE) @@ -1307,15 +1343,15 @@ case $cf_cv_system_name in #(vi ;; *) AC_CHECK_FUNC(gettimeofday, - AC_DEFINE(HAVE_GETTIMEOFDAY),[ + AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function]),[ AC_CHECK_LIB(bsd, gettimeofday, - AC_DEFINE(HAVE_GETTIMEOFDAY) + AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function]) CF_ADD_LIB(bsd))])dnl CLIX: bzero, select, gettimeofday ;; esac -CF_MATH_LIB(MATH_LIB,sin(x)) +CF_MATH_LIB(MATH_LIB,pow(sin(x),x)) AC_SUBST(MATH_LIB) ### Checks for header files. @@ -1344,9 +1380,11 @@ unistd.h \ wctype.h \ ) +CF_GETOPT_HEADER + # check for ISC (this may also define _POSIX_SOURCE) # Note: even non-Posix ISC needs to declare fd_set -if test "$ISC" = yes ; then +if test "x$ISC" = xyes ; then AC_CHECK_LIB(cposix,main) AC_CHECK_LIB(inet,bzero,CF_ADD_LIB(inet))dnl also 'select()' fi @@ -1393,10 +1431,12 @@ geteuid \ getttynam \ issetugid \ poll \ +putenv \ remove \ select \ setbuf \ setbuffer \ +setenv \ setvbuf \ sigaction \ sigvec \ @@ -1406,7 +1446,7 @@ tcgetpgrp \ times \ vsnprintf \ ) -if test "$with_getcap" = "yes" ; then +if test "x$with_getcap" = "xyes" ; then CF_CGETENT fi @@ -1421,12 +1461,12 @@ CF_MKSTEMP CF_SUBST_IF(["$cf_cv_func_vsscanf" = vsscanf], HAVE_VSSCANF, 1, 0) dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS -if test "$cross_compiling" = yes ; then +if test "x$cross_compiling" = xyes ; then AC_MSG_WARN(cross compiling: assume setvbuf params not reversed) else AC_FUNC_SETVBUF_REVERSED fi -AC_TYPE_SIGNAL +AC_CHECK_TYPE(intptr_t, long) CF_TYPE_SIGACTION CF_SIZECHANGE CF_FUNC_MEMMOVE @@ -1437,9 +1477,9 @@ AC_FUNC_VFORK # special check for test/ditto.c CF_FUNC_OPENPTY if test "$cf_cv_func_openpty" != no ; then - AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>) - AC_DEFINE(USE_XTERM_PTY) - if test "$cf_cv_lib_util" = yes ; then + AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>,[Define to actual header for openpty function]) + AC_DEFINE(USE_XTERM_PTY,1,[Define to 1 if we should assume xterm pseudoterminal interface]) + if test "x$cf_cv_lib_util" = xyes ; then CF_ADD_LIB(util,TEST_LIBS) fi fi @@ -1447,7 +1487,7 @@ AC_SUBST(TEST_LIBS) AC_SUBST(TEST_LIBS2) if test "$with_hashed_db" != no ; then - AC_DEFINE(USE_HASHED_DB) + AC_DEFINE(USE_HASHED_DB,1,[Define to 1 if we should build terminfo in hashed database]) CF_HASHED_DB($with_hashed_db) fi @@ -1478,50 +1518,14 @@ if test -n "$CXX" ; then ;; esac - AC_CHECK_HEADERS(iostream typeinfo) - - if test x"$ac_cv_header_iostream" = xyes ; then - AC_MSG_CHECKING(if iostream uses std-namespace) - AC_TRY_COMPILE([ -#include -using std::endl; -using std::cerr;],[ -cerr << "testing" << endl; -],[cf_iostream_namespace=yes],[cf_iostream_namespace=no]) - AC_MSG_RESULT($cf_iostream_namespace) - if test "$cf_iostream_namespace" = yes ; then - AC_DEFINE(IOSTREAM_NAMESPACE) - fi - fi - + AC_CHECK_HEADERS(typeinfo) + CF_CXX_IOSTREAM_NAMESPACE CF_BOOL_DECL CF_BOOL_SIZE CF_ETIP_DEFINES CF_CPP_PARAM_INIT CF_CPP_STATIC_CAST - - CXX_AR='$(AR)' - CXX_ARFLAGS='$(ARFLAGS)' - case $cf_cv_system_name in #(vi - irix*) #(vi - if test "$GXX" != yes ; then - CXX_AR='$(CXX)' - CXX_ARFLAGS='-ar -o' - fi - ;; - sco3.2v5*) #(vi - CXXLDFLAGS="-u main" - ;; - solaris2*) - if test "$GXX" != yes ; then - CXX_AR='$(CXX)' - CXX_ARFLAGS='-xar -o' - fi - ;; - esac - AC_SUBST(CXXLDFLAGS) - AC_SUBST(CXX_AR) - AC_SUBST(CXX_ARFLAGS) + CF_CXX_AR_FLAGS else cf_cxx_library=no cf_cv_builtin_bool=1 @@ -1593,20 +1597,9 @@ dnl Check for availability of GNU Ada Translator (GNAT). dnl At the moment we support no other Ada95 compiler. if test "$cf_with_ada" != "no" ; then CF_PROG_GNAT - if test "$cf_cv_prog_gnat_correct" = yes; then + if test "x$cf_cv_prog_gnat_correct" = xyes; then CF_ADD_ADAFLAGS(-gnatpn) - - # make ADAFLAGS consistent with CFLAGS - case "$CFLAGS" in - *-g*) - CF_ADD_ADAFLAGS(-g) - ;; - esac - case "$CFLAGS" in - *-O*) - CF_ADD_ADAFLAGS(-O3) - ;; - esac + CF_FIXUP_ADAFLAGS CF_GNAT_GENERICS CF_GNAT_SIGINT @@ -1627,6 +1620,11 @@ else cf_with_ada=no fi +# do this "late" to avoid conflict with header-checks +if test "x$with_widec" = xyes ; then + AC_CHECK_SIZEOF(wchar_t) +fi + ### Construct the ncurses library-subsets, if any, from this set of keywords: ### none, base, ext_funcs, ext_tinfo, ticlib, termlib, widechar ### @@ -1640,7 +1638,7 @@ fi AC_MSG_CHECKING(for library subsets) LIB_SUBSETS= -if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then +if test "x$cf_with_progs" = xyes || test "$with_ticlib" != no || test "$with_termcap" != no; then LIB_SUBSETS="${LIB_SUBSETS}ticlib" if test "$with_ticlib" != no ; then LIB_SUBSETS="${LIB_SUBSETS} " @@ -1650,7 +1648,7 @@ if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termc fi LIB_SUBSETS="${LIB_SUBSETS}termlib" -test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo" +test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo" if test "$with_termlib" != no ; then LIB_SUBSETS="${LIB_SUBSETS} " @@ -1674,8 +1672,8 @@ if test "$with_term_driver" != no ; then esac fi -test "$with_widec" = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar" -test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs" +test "x$with_widec" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+widechar" +test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs" AC_MSG_RESULT($LIB_SUBSETS) @@ -1699,20 +1697,24 @@ CF_OBJ_SUBDIR($DFT_LWR_MODEL,DFT_OBJ_SUBDIR)dnl AC_SUBST(DFT_OBJ_SUBDIR)dnl the default object-directory ("obj") AC_MSG_RESULT($DFT_OBJ_SUBDIR) -# libtool thinks it can make c++ shared libraries (perhaps only g++) -if test "$cf_with_cxx" = yes ; then +if test "x$cf_with_cxx" = xyes ; then AC_MSG_CHECKING(c++ library-dependency suffix) if test "$with_libtool" != "no"; then + # libtool thinks it can make c++ shared libraries (perhaps only g++) + CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX +elif test "$with_shared_cxx" != "no"; then + # also for g++ users... CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX else - CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX,CXX_DEP_SUFFIX)dnl we normally make a static library + # we normally make a static library because C/C++ library rules differ + CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX,CXX_DEP_SUFFIX) fi AC_MSG_RESULT($CXX_LIB_SUFFIX) AC_SUBST(CXX_LIB_SUFFIX) fi # do not want -ldl in build except as needed for -lncurses dependency -if test "$with_dlsym" = yes ; then +if test "x$with_dlsym" = xyes ; then if test $DFT_LWR_MODEL = shared || \ test $DFT_LWR_MODEL = libtool ; then CF_REMOVE_LIB(LIBS,$LIBS,dl) @@ -1723,13 +1725,13 @@ fi # TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but # do not need libdl TICS_LIST= -if test "$with_dlsym" = yes ; then +if test "x$with_dlsym" = xyes ; then CF_REMOVE_LIB(TINFO_LIST,$SHLIB_LIST,dl) fi if test "$with_ticlib" != no ; then - if test "$with_ticlib" != yes ; then + if test "x$with_ticlib" != xyes ; then TICS_NAME=$with_ticlib TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" @@ -1739,18 +1741,21 @@ if test "$with_ticlib" != no ; then TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}" TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}" fi - TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}" + TICS_LDFLAGS="-L${LIB_DIR}" + TICS_LIBS="-l${TICS_LIB_SUFFIX}" else - TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}" + TICS_LDFLAGS="-L${LIB_DIR}" + TICS_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX}" fi AC_SUBST(TICS_ARG_SUFFIX) AC_SUBST(TICS_DEP_SUFFIX) AC_SUBST(TICS_LIB_SUFFIX) -AC_SUBST(TICS_ARGS) +AC_SUBST(TICS_LDFLAGS) +AC_SUBST(TICS_LIBS) if test "$with_termlib" != no ; then - if test "$with_termlib" != yes ; then + if test "x$with_termlib" != xyes ; then TINFO_NAME=$with_termlib TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" @@ -1768,14 +1773,22 @@ if test "$with_termlib" != no ; then if test "$DFT_LWR_MODEL" = "libtool"; then TEST_ARGS="${TEST_DEPS}" TEST_ARG2="${TEST_DEP2}" - TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS" + TINFO_LDFLAGS="-L${LIB_DIR}" + TINFO_LIBS="$TEST_ARGS" TICS_LIST="$SHLIB_LIST $TEST_ARGS" SHLIB_LIST="${SHLIB_LIST} $TEST_ARGS" else TEST_ARGS="-l${TINFO_ARG_SUFFIX}" TEST_ARG2="-l${TINFO_ARG_SUFFIX}" - TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}" - TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS" + if test "x$with_term_driver" != xno ; then + TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}" + TICS_LIBS="$TICS_LIBS -l${LIB_NAME}${DFT_ARG_SUFFIX}" + TINFO_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS" + else + TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}" + TINFO_LIBS="$TEST_ARGS" + fi + TINFO_LDFLAGS="-L${LIB_DIR}" SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}" fi else @@ -1783,19 +1796,20 @@ else TINFO_NAME=${LIB_NAME} TINFO_SUFFIX=${DFT_LIB_SUFFIX} TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX} - if test "$with_tic_depends" = yes ; then + if test "x$with_tic_depends" = xyes ; then TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}" else TICS_LIST="$SHLIB_LIST" fi - TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}" + TINFO_LDFLAGS="-L${LIB_DIR}" + TINFO_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX}" fi if test "$DFT_LWR_MODEL" = shared ; then case $cf_cv_system_name in #(vi - cygwin*) - # "lib" files have ".dll.a" suffix, "cyg" files have ".dll" + cygwin*|msys*) + # "lib" files have ".dll.a" suffix, "cyg"or "msys-" files have ".dll" TINFO_SUFFIX=.dll ;; esac @@ -1804,9 +1818,10 @@ fi AC_SUBST(TINFO_ARG_SUFFIX) AC_SUBST(TINFO_DEP_SUFFIX) AC_SUBST(TINFO_LIB_SUFFIX) -AC_SUBST(TINFO_ARGS) +AC_SUBST(TINFO_LDFLAGS) +AC_SUBST(TINFO_LIBS) -if test "$with_dlsym" = yes ; then +if test "x$with_dlsym" = xyes ; then CF_REMOVE_LIB(TICS_LIST,$TICS_LIST,dl) fi @@ -1815,8 +1830,8 @@ if test "$DFT_LWR_MODEL" = "libtool"; then fi # needed for Ada95 -TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'` -AC_SUBST(TINFO_ARGS2) +TINFO_LDFLAGS2=`echo "$TINFO_LDFLAGS" | sed -e 's,-L\.\./,-L../../,'` +AC_SUBST(TINFO_LDFLAGS2) case $DFT_LWR_MODEL in normal|debug|profile) @@ -1825,10 +1840,15 @@ normal|debug|profile) esac AC_MSG_CHECKING(where we will install curses.h) -test "$with_overwrite" = no && \ -test "x$includedir" = 'x${prefix}/include' && \ - includedir='${prefix}/include/ncurses'${LIB_SUFFIX} -AC_MSG_RESULT($includedir) +AC_SUBST(includesubdir) +includesubdir= +if test "$with_overwrite" = no && \ + ( test "x$includedir" = 'x${prefix}/include' || \ + test "x$includedir" = "x${prefix}/include" ) +then + includesubdir="/ncurses${LIB_SUFFIX}" +fi +AC_MSG_RESULT(${includedir}${includesubdir}) ### Resolve a conflict between normal and wide-curses by forcing applications ### that will need libutf8 to add it to their configure script. @@ -1850,14 +1870,14 @@ NCURSES_TREE= AC_SUBST(NCURSES_TREE) ### predefined stuff for the test programs -AC_DEFINE(HAVE_SLK_COLOR) +AC_DEFINE(HAVE_SLK_COLOR,1,[Define to 1 if we have slk_color for test-programs]) ### Construct the list of subdirectories for which we'll customize makefiles ### with the appropriate compile-rules. CF_SRC_MODULES($modules_to_build) -if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then +if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses${DFT_ARG_SUFFIX}-config:Ada95/gen/adacurses-config.in" SUB_MAKEFILES="$SUB_MAKEFILES man/adacurses${DFT_ARG_SUFFIX}-config.1:man/MKada_config.in" fi @@ -1869,26 +1889,26 @@ NCURSES_SHLIB2='sh $(top_srcdir)/misc/shlib' AC_SUBST(NCURSES_SHLIB2) # values to use as strings -AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR') +AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR',[Define to override ':' as library path-separator]) -AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}") +AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}",[Define to 1 if machine has ample memory for tic]) ### Now that we're done running tests, add the compiler-warnings, if any CF_ADD_CFLAGS($EXTRA_CFLAGS) ### Define substitutions for header files to avoid name-pollution -CF_SUBST_IF(["$cf_cv_have_tcgetattr" = yes], HAVE_TCGETATTR, 1, 0) -CF_SUBST_IF(["$ac_cv_header_termio_h" = yes], HAVE_TERMIO_H, 1, 0) -CF_SUBST_IF(["$ac_cv_header_termios_h" = yes], HAVE_TERMIOS_H, 1, 0) +CF_SUBST_IF(["x$cf_cv_have_tcgetattr" = xyes], HAVE_TCGETATTR, 1, 0) +CF_SUBST_IF(["x$ac_cv_header_termio_h" = xyes], HAVE_TERMIO_H, 1, 0) +CF_SUBST_IF(["x$ac_cv_header_termios_h" = xyes], HAVE_TERMIOS_H, 1, 0) ################################################################################ -test "$use_database" = yes && \ +test "x$use_database" = xyes && \ SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in" SUB_MAKEFILES="$SUB_MAKEFILES misc/ncurses-config:misc/ncurses-config.in" SUB_MAKEFILES="$SUB_MAKEFILES man/ncurses${DFT_ARG_SUFFIX}${cf_cv_abi_version}-config.1:man/MKncu_config.in" -if test x"$enable_pc_files" = xyes ; then \ +if test "x$enable_pc_files" = xyes ; then \ SUB_MAKEFILES="$SUB_MAKEFILES misc/gen-pkgconfig:misc/gen-pkgconfig.in" MAKE_PC_FILES= else @@ -1917,13 +1937,43 @@ AC_SUBST(MAKE_TESTS) ADAHTML_DIR=../../doc/html/ada AC_SUBST(ADAHTML_DIR) -SUB_SCRIPTS= +# these could be configurable, but are not currently +PANEL_NAME=panel +MENU_NAME=menu +FORM_NAME=form +CXX_NAME=ncurses++ + +AC_SUBST(PANEL_NAME) +AC_SUBST(MENU_NAME) +AC_SUBST(FORM_NAME) +AC_SUBST(CXX_NAME) + +# workaround for g++ versus Solaris (20131116) case $cf_cv_system_name in #(vi -*mingw32*) #(vi - SUB_SCRIPTS="mk-dlls.sh" +solaris2*) #(vi + case "x$CPPFLAGS" in #(vi + *-D_XOPEN_SOURCE_EXTENDED*) + CF_VERBOSE(moving _XOPEN_SOURCE_EXTENDED to work around g++ problem) + CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED" + CPPFLAGS=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/-D_XOPEN_SOURCE_EXTENDED//'` + ;; + esac ;; esac +# AC_CHECK_SIZEOF demands a literal parameter, no variables. So we do this. +case "x$NCURSES_OSPEED" in #(vi +*short*) #(vi + cf_compatible=1 + ;; +*) + cf_compatible=0 + ;; +esac +AC_DEFINE_UNQUOTED(NCURSES_OSPEED_COMPAT,$cf_compatible,[Define to 1 if termcap variable ospeed is short]) + +SUB_SCRIPTS= + AC_OUTPUT( \ include/MKterm.h.awk \ include/curses.head:include/curses.h.in \ @@ -1934,11 +1984,11 @@ AC_OUTPUT( \ $SUB_MAKEFILES \ Makefile,[ if test "x$cf_with_tests" != xno ; then - CF_PRG_RULES([$srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LINK"], test) + CF_PRG_RULES([$srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LD"], test) fi CF_LIB_RULES($SRC_SUBDIRS) -if test "x$cf_with_ada" != xno ; then +if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then if test -z "$USE_OLD_MAKERULES" ; then $AWK -f $srcdir/Ada95/mk-1st.awk <$srcdir/Ada95/src/modules >>Ada95/src/Makefile fi @@ -1950,10 +2000,11 @@ fi AWK="$AWK" DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX" DFT_LWR_MODEL="$DFT_LWR_MODEL" -ECHO_LINK="$ECHO_LINK" +ECHO_LD="$ECHO_LD" LDCONFIG="$LDCONFIG" LIBTOOL_VERSION="$LIBTOOL_VERSION" LIB_NAME="$LIB_NAME" +LIB_PREFIX="$LIB_PREFIX" LIB_SUBSETS="$LIB_SUBSETS" LIB_SUFFIX="$LIB_SUFFIX" LIB_TRACING="$LIB_TRACING" @@ -1975,7 +2026,7 @@ TINFO_NAME="$TINFO_NAME" TINFO_SUFFIX="$TINFO_SUFFIX" USE_OLD_MAKERULES="$USE_OLD_MAKERULES" WITH_CURSES_H="$with_curses_h" -WITH_ECHO="$with_echo" +WITH_ECHO="${enable_echo:=yes}" WITH_OVERWRITE="$with_overwrite" cf_LIST_MODELS="$cf_list_models" cf_cv_abi_version="$cf_cv_abi_version" @@ -1985,16 +2036,20 @@ cf_cv_enable_lp64="$cf_cv_enable_lp64" cf_cv_enable_opaque="$cf_cv_enable_opaque" cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o +cf_cv_prog_gnat_correct=$cf_cv_prog_gnat_correct cf_cv_rel_version="$cf_cv_rel_version" cf_cv_rm_so_locs="$cf_cv_rm_so_locs" cf_cv_shared_soname='$cf_cv_shared_soname' cf_cv_shlib_version="$cf_cv_shlib_version" cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix" cf_cv_system_name="$cf_cv_system_name" +cf_cv_term_driver="$with_term_driver" cf_with_ada="$cf_with_ada" cf_with_cxx_binding="$cf_with_cxx_binding" +cf_with_db_install="$cf_with_db_install" cf_with_manpages="$cf_with_manpages" cf_with_tests="$cf_with_tests" +with_shared_cxx="$with_shared_cxx" host="$host" target="$target" diff --git a/contrib/ncurses/dist.mk b/contrib/ncurses/dist.mk index 371f0043b3fa..11db597de4c9 100644 --- a/contrib/ncurses/dist.mk +++ b/contrib/ncurses/dist.mk @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. # +# Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. # # # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # @@ -25,7 +25,7 @@ # use or other dealings in this Software without prior written # # authorization. # ############################################################################## -# $Id: dist.mk,v 1.810 2011/04/04 22:42:20 tom Exp $ +# $Id: dist.mk,v 1.973 2014/02/22 16:55:12 tom Exp $ # Makefile for creating ncurses distributions. # # This only needs to be used directly as a makefile by developers, but @@ -37,20 +37,21 @@ SHELL = /bin/sh # These define the major/minor/patch versions of ncurses. NCURSES_MAJOR = 5 NCURSES_MINOR = 9 -NCURSES_PATCH = 20110404 +NCURSES_PATCH = 20140222 # We don't append the patch to the version, since this only applies to releases VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) -# The most recent html files were generated with lynx 2.8.6, using ncurses -# configured with +# The most recent html files were generated with lynx 2.8.6 (or later), using +# ncurses configured with # --without-manpage-renames # on Debian/testing. The -scrollbar and -width options are used to make lynx # use 79 columns as it did in 2.8.5 and before. DUMP = lynx -dump -scrollbar=0 -width=79 DUMP2 = $(DUMP) -nolist -GNATHTML= `type -p gnathtml || type -p gnathtml.pl` +# gcc's file is "gnathtml.pl" +GNATHTML= gnathtml # man2html 3.0.1 is a Perl script which assumes that pages are fixed size. # Not all man programs agree with this assumption; some use half-spacing, which @@ -98,7 +99,13 @@ doc/hackguide.doc: doc/html/hackguide.html MANPROG = tbl | nroff -mandoc -rLL=65n -rLT=71n -Tascii manhtml: - @rm -f doc/html/man/*.html + @for f in doc/html/man/*.html; do \ + test -f $$f || continue; \ + case $$f in \ + */index.html) ;; \ + *) rm -f $$f ;; \ + esac; \ + done @mkdir -p doc/html/man @rm -f subst.tmp ; @for f in man/*.[0-9]*; do \ @@ -126,7 +133,7 @@ manhtml: g=$${m}.html ;\ if [ -f doc/html/$$g ]; then chmod +w doc/html/$$g; fi;\ echo "Converting $$m to HTML" ;\ - echo '' > doc/html/man/$$g ;\ + echo '' > doc/html/man/$$g ;\ echo '' >> doc/html/man/$$g ;\ - ./edit_man.sh normal editing /usr/man man $$f | $(MANPROG) | tr '\255' '-' | $(MAN2HTML) -title "$$T" | \ - sed -f subst.sed |\ - sed -e 's/"curses.3x.html"/"ncurses.3x.html"/g' \ + ./edit_man.sh normal editing /usr/man man $$f | \ + $(MANPROG) | \ + tr '\255' '-' | \ + $(MAN2HTML) \ + -title "$$T" \ + -aliases man/manhtml.aliases \ + -externs man/manhtml.externs | \ + sed -f subst.sed |\ + sed -e 's/"curses.3x.html"/"ncurses.3x.html"/g' \ >> doc/html/man/$$g ;\ done @rm -f subst.sed @@ -149,7 +162,7 @@ manhtml: # .ali files contain cross referencing information required by gnathtml. adahtml: if [ ! -z "$(GNATHTML)" ]; then \ - (cd ./Ada95/gen ; make html) ;\ + (cd ./Ada95/gen ; make html GNATHTML=$(GNATHTML) ) ;\ fi # This only works on a clean source tree, of course. diff --git a/contrib/ncurses/doc/html/NCURSES-Programming-HOWTO.html b/contrib/ncurses/doc/html/NCURSES-Programming-HOWTO.html index 3a1010635ff0..b1e40a2809a3 100644 --- a/contrib/ncurses/doc/html/NCURSES-Programming-HOWTO.html +++ b/contrib/ncurses/doc/html/NCURSES-Programming-HOWTO.html @@ -1,516 +1,1282 @@ - - - - -NCURSES Programming HOWTO - - - -

-
-

NCURSES Programming -HOWTO

-

Pradeep Padala

- -

v1.9, 2005-06-20

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Revision -History
Revision 1.92005-06-20Revised by: ppadala
The license has been changed to the -MIT-style license used by NCURSES. Note that the programs are also -re-licensed under this.
Revision 1.82005-06-17Revised by: ppadala
Lots of updates. Added references and -perl examples. Changes to examples. Many grammatical and stylistic -changes to the content. Changes to NCURSES history.
Revision 1.7.12002-06-25Revised by: ppadala
Added a README file for building and -instructions for building from source.
Revision 1.72002-06-25Revised by: ppadala
Added "Other formats" section and made -a lot of fancy changes to the programs. Inlining of programs is -gone.
Revision 1.6.12002-02-24Revised by: ppadala
Removed the old Changelog section, -cleaned the makefiles
Revision 1.62002-02-16Revised by: ppadala
Corrected a lot of spelling mistakes, -added ACS variables section
Revision 1.52002-01-05Revised by: ppadala
Changed structure to present proper -TOC
Revision 1.3.12001-07-26Revised by: ppadala
Corrected maintainers paragraph, -Corrected stable release number
Revision 1.32001-07-24Revised by: ppadala
Added copyright notices to main -document (LDP license) and programs (GPL), Corrected -printw_example.
Revision 1.22001-06-05Revised by: ppadala
Incorporated ravi's changes. Mainly to -introduction, menu, form, justforfun sections
Revision 1.12001-05-22Revised by: ppadala
Added "a word about window" section, -Added scanw_example.
-
-
-
-

This document is intended to be an "All in One" guide for -programming with ncurses and its sister libraries. We graduate from -a simple "Hello World" program to more complex form manipulation. -No prior experience in ncurses is assumed. Send comments to -this -address

-
-
-
-
-
-
Table of Contents
-
1. Introduction
-
-
-
1.1. What is NCURSES?
-
1.2. What we can do with -NCURSES
-
1.3. Where to get it
-
1.4. Purpose/Scope of the document
-
1.5. About the Programs
-
1.6. Other Formats of the -document
-
1.7. Credits
-
1.8. Wish List
-
1.9. Copyright
-
-
-
2. Hello World !!!
-
-
-
2.1. Compiling With the NCURSES -Library
-
2.2. Dissection
-
-
-
3. The Gory Details
-
4. Initialization
-
-
-
4.1. Initialization functions
-
4.2. raw() and cbreak()
-
4.3. echo() and noecho()
-
4.4. keypad()
-
4.5. halfdelay()
-
4.6. Miscellaneous Initialization -functions
-
4.7. An Example
-
-
-
5. A Word about Windows
-
6. Output functions
-
-
-
6.1. addch() class of functions
-
6.2. mvaddch(), waddch() and -mvwaddch()
-
6.3. printw() class of -functions
-
6.4. addstr() class of -functions
-
6.5. A word of caution
-
-
-
7. Input functions
-
-
-
7.1. getch() class of functions
-
7.2. scanw() class of functions
-
7.3. getstr() class of -functions
-
7.4. Some examples
-
-
-
8. Attributes
-
-
-
8.1. The details
-
8.2. attron() vs attrset()
-
8.3. attr_get()
-
8.4. attr_ functions
-
8.5. wattr functions
-
8.6. chgat() functions
-
-
-
9. Windows
-
-
-
9.1. The basics
-
9.2. Let there be a Window !!!
-
9.3. Explanation
-
9.4. The other stuff in the -example
-
9.5. Other Border -functions
-
-
-
10. Colors
-
-
-
10.1. The basics
-
10.2. Changing Color -Definitions
-
10.3. Color Content
-
-
-
11. Interfacing with the key board
-
-
-
11.1. The Basics
-
11.2. A Simple Key Usage -example
-
-
-
12. Interfacing with the mouse
-
-
-
12.1. The Basics
-
12.2. Getting the events
-
12.3. Putting it all Together
-
12.4. Miscellaneous -Functions
-
-
-
13. Screen Manipulation
-
-
-
13.1. getyx() functions
-
13.2. Screen Dumping
-
13.3. Window Dumping
-
-
-
14. Miscellaneous features
-
-
-
14.1. curs_set()
-
14.2. Temporarily Leaving Curses -mode
-
14.3. ACS_ variables
-
-
-
15. Other libraries
-
16. Panel Library
-
-
-
16.1. The Basics
-
16.2. Compiling With the Panels -Library
-
16.3. Panel Window Browsing
-
16.4. Using User Pointers
-
16.5. Moving and Resizing -Panels
-
16.6. Hiding and Showing -Panels
-
16.7. panel_above() and panel_below() -Functions
-
-
-
17. Menus Library
-
-
-
17.1. The Basics
-
17.2. Compiling With the Menu -Library
-
17.3. Menu Driver: The work horse of the -menu system
-
17.4. Menu Windows
-
17.5. Scrolling Menus
-
17.6. Multi Columnar Menus
-
17.7. Multi Valued Menus
-
17.8. Menu Options
-
17.9. The useful User Pointer
-
-
-
18. Forms Library
-
-
-
18.1. The Basics
-
18.2. Compiling With the Forms -Library
-
18.3. Playing with Fields
-
18.4. Form Windows
-
18.5. Field Validation
-
18.6. Form Driver: The work horse of the -forms system
-
-
-
19. Tools and Widget Libraries
-
-
-
19.1. CDK (Curses Development Kit)
-
19.2. The dialog
-
19.3. Perl Curses Modules CURSES::FORM -and CURSES::WIDGETS
-
-
-
20. Just For Fun !!!
-
-
-
20.1. The Game of Life
-
20.2. Magic Square
-
20.3. Towers of Hanoi
-
20.4. Queens Puzzle
-
20.5. Shuffle
-
20.6. Typing Tutor
-
-
-
21. References
-
-
-
-

1. -Introduction

-

In the olden days of teletype terminals, terminals were away -from computers and were connected to them through serial cables. -The terminals could be configured by sending a series of bytes. All -the capabilities (such as moving the cursor to a new location, -erasing part of the screen, scrolling the screen, changing modes -etc.) of terminals could be accessed through these series of bytes. -These control seeuqnces are usually called escape sequences, -because they start with an escape(0x1B) character. Even today, with -proper emulation, we can send escape sequences to the emulator and -achieve the same effect on a terminal window.

-

Suppose you wanted to print a line in color. Try typing this on -your console.

- - - - -
-
-echo "^[[0;31;40mIn Color"
-
-

The first character is an escape character, which looks like two -characters ^ and [. To be able to print it, you have to press -CTRL+V and then the ESC key. All the others are normal printable -characters. You should be able to see the string "In Color" in red. -It stays that way and to revert back to the original mode type -this.

- - - - -
-
-echo "^[[0;37;40m"
-
-

Now, what do these magic characters mean? Difficult to -comprehend? They might even be different for different terminals. -So the designers of UNIX invented a mechanism named termcap. It is a file that lists all the -capabilities of a particular terminal, along with the escape -sequences needed to achieve a particular effect. In the later -years, this was replaced by terminfo. -Without delving too much into details, this mechanism allows -application programs to query the terminfo database and obtain the -control characters to be sent to a terminal or terminal -emulator.

-
-
-

1.1. What is -NCURSES?

-

You might be wondering, what the import of all this technical -gibberish is. In the above scenario, every application program is -supposed to query the terminfo and perform the necessary stuff -(sending control characters etc.). It soon became difficult to -manage this complexity and this gave birth to 'CURSES'. Curses is a -pun on the name "cursor optimization". The Curses library forms a -wrapper over working with raw terminal codes, and provides highly -flexible and efficient API (Application Programming Interface). It -provides functions to move the cursor, create windows, produce -colors, play with mouse etc. The application programs need not -worry about the underlying terminal capabilities.

-

So what is NCURSES? NCURSES is a clone of the original System V -Release 4.0 (SVr4) curses. It is a freely distributable library, -fully compatible with older version of curses. In short, it is a -library of functions that manages an application's display on -character-cell terminals. In the remainder of the document, the -terms curses and ncurses are used interchangeably.

-

A detailed history of NCURSES can be found in the NEWS file from -the source distribution. The current package is maintained by -Thomas Dickey. -You can contact the maintainers at bug-ncurses@gnu.org.

-
-
-
-

1.2. What -we can do with NCURSES

-

NCURSES not only creates a wrapper over terminal capabilities, -but also gives a robust framework to create nice looking UI (User -Interface)s in text mode. It provides functions to create windows -etc. Its sister libraries panel, menu and form provide an extension -to the basic curses library. These libraries usually come along -with curses. One can create applications that contain multiple -windows, menus, panels and forms. Windows can be managed -independently, can provide 'scrollability' and even can be -hidden.

-

Menus provide the user with an easy command selection option. -Forms allow the creation of easy-to-use data entry and display -windows. Panels extend the capabilities of ncurses to deal with -overlapping and stacked windows.

-

These are just some of the basic things we can do with ncurses. -As we move along, We will see all the capabilities of these -libraries.

-
-
-
-

1.3. -Where to get it

-

All right, now that you know what you can do with ncurses, you -must be rearing to get started. NCURSES is usually shipped with -your installation. In case you don't have the library or want to -compile it on your own, read on.

-

Compiling the package

-

NCURSES can be obtained from ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz or any -of the ftp sites mentioned in http://www.gnu.org/order/ftp.html.

-

Read the README and INSTALL files for details on to how to -install it. It usually involves the following operations.

- - - - -
-
-    tar zxvf ncurses<version>.tar.gz  # unzip and untar the archive
+
+ NCURSES Programming HOWTO 

NCURSES Programming HOWTO

Pradeep Padala

v1.9, 2005-06-20

Revision History
Revision 1.92005-06-20Revised by: ppadala
The license has been changed to the MIT-style license used + by NCURSES. Note that the programs are also re-licensed under this.
Revision 1.82005-06-17Revised by: ppadala
Lots of updates. Added references and perl examples. + Changes to examples. Many grammatical and stylistic changes to the + content. Changes to NCURSES history.
Revision 1.7.12002-06-25Revised by: ppadala
Added a README file for building and instructions + for building from source.
Revision 1.72002-06-25Revised by: ppadala
Added "Other formats" section and made a lot of fancy + changes to the programs. Inlining of programs is gone.
Revision 1.6.12002-02-24Revised by: ppadala
Removed the old Changelog section, cleaned the makefiles
Revision 1.62002-02-16Revised by: ppadala
Corrected a lot of spelling mistakes, added ACS variables + section
Revision 1.52002-01-05Revised by: ppadala
Changed structure to present proper TOC
Revision 1.3.12001-07-26Revised by: ppadala
Corrected maintainers paragraph, Corrected stable release number
Revision 1.32001-07-24Revised by: ppadala
Added copyright notices to main document (LDP license) + and programs (GPL), Corrected + printw_example.
Revision 1.22001-06-05Revised by: ppadala
Incorporated ravi's changes. Mainly to introduction, menu, + form, justforfun sections
Revision 1.12001-05-22Revised by: ppadala
Added "a word about window" section, Added scanw_example.

This document is intended to be an "All in One" guide for programming with +ncurses and its sister libraries. We graduate from a simple "Hello World" +program to more complex form manipulation. No prior experience in ncurses is +assumed. Send comments to this address + +


Table of Contents
1. Introduction
1.1. What is NCURSES?
1.2. What we can do with NCURSES
1.3. Where to get it
1.4. Purpose/Scope of the document
1.5. About the Programs
1.6. Other Formats of the document
1.6.1. Readily available formats from tldp.org
1.6.2. Building from source
1.7. Credits
1.8. Wish List
1.9. Copyright
2. Hello World !!!
2.1. Compiling With the NCURSES Library
2.2. Dissection
2.2.1. About initscr()
2.2.2. The mysterious refresh()
2.2.3. About endwin()
3. The Gory Details
4. Initialization
4.1. Initialization functions
4.2. raw() and cbreak()
4.3. echo() and noecho()
4.4. keypad()
4.5. halfdelay()
4.6. Miscellaneous Initialization functions
4.7. An Example
5. A Word about Windows
6. Output functions
6.1. addch() class of functions
6.2. mvaddch(), waddch() and mvwaddch()
6.3. printw() class of functions
6.3.1. printw() and mvprintw
6.3.2. wprintw() and mvwprintw
6.3.3. vwprintw()
6.3.4. A Simple printw example
6.4. addstr() class of functions
6.5. A word of caution
7. Input functions
7.1. getch() class of functions
7.2. scanw() class of functions
7.2.1. scanw() and mvscanw
7.2.2. wscanw() and mvwscanw()
7.2.3. vwscanw()
7.3. getstr() class of functions
7.4. Some examples
8. Attributes
8.1. The details
8.2. attron() vs attrset()
8.3. attr_get()
8.4. attr_ functions
8.5. wattr functions
8.6. chgat() functions
9. Windows
9.1. The basics
9.2. Let there be a Window !!!
9.3. Explanation
9.4. The other stuff in the example
9.5. Other Border functions
10. Colors
10.1. The basics
10.2. Changing Color Definitions
10.3. Color Content
11. Interfacing with the key board
11.1. The Basics
11.2. A Simple Key Usage example
12. Interfacing with the mouse
12.1. The Basics
12.2. Getting the events
12.3. Putting it all Together
12.4. Miscellaneous Functions
13. Screen Manipulation
13.1. getyx() functions
13.2. Screen Dumping
13.3. Window Dumping
14. Miscellaneous features
14.1. curs_set()
14.2. Temporarily Leaving Curses mode
14.3. ACS_ variables
15. Other libraries
16. Panel Library
16.1. The Basics
16.2. Compiling With the Panels Library
16.3. Panel Window Browsing
16.4. Using User Pointers
16.5. Moving and Resizing Panels
16.6. Hiding and Showing Panels
16.7. panel_above() and panel_below() Functions
17. Menus Library
17.1. The Basics
17.2. Compiling With the Menu Library
17.3. Menu Driver: The work horse of the menu system
17.4. Menu Windows
17.5. Scrolling Menus
17.6. Multi Columnar Menus
17.7. Multi Valued Menus
17.8. Menu Options
17.9. The useful User Pointer
18. Forms Library
18.1. The Basics
18.2. Compiling With the Forms Library
18.3. Playing with Fields
18.3.1. Fetching Size and Location of Field
18.3.2. Moving the field
18.3.3. Field Justification
18.3.4. Field Display Attributes
18.3.5. Field Option Bits
18.3.6. Field Status
18.3.7. Field User Pointer
18.3.8. Variable-Sized Fields
18.4. Form Windows
18.5. Field Validation
18.6. Form Driver: The work horse of the forms system
18.6.1. Page Navigation Requests
18.6.2. Inter-Field Navigation Requests
18.6.3. Intra-Field Navigation Requests
18.6.4. Scrolling Requests
18.6.5. Editing Requests
18.6.6. Order Requests
18.6.7. Application Commands
19. Tools and Widget Libraries
19.1. CDK (Curses Development Kit)
19.1.1. Widget List
19.1.2. Some Attractive Features
19.1.3. Conclusion
19.2. The dialog
19.3. Perl Curses Modules CURSES::FORM and CURSES::WIDGETS
20. Just For Fun !!!
20.1. The Game of Life
20.2. Magic Square
20.3. Towers of Hanoi
20.4. Queens Puzzle
20.5. Shuffle
20.6. Typing Tutor
21. References

1. Introduction

In the olden days of teletype terminals, terminals were away from computers and +were connected to them through serial cables. The terminals could be configured +by sending a series of bytes. All the capabilities (such as +moving the cursor to a new location, erasing part of the screen, scrolling the +screen, changing modes etc.) of terminals could be accessed through these +series of bytes. These control seeuqnces are usually called escape sequences, +because they start +with an escape(0x1B) character. Even today, with proper emulation, we can send +escape sequences to the emulator and achieve the same effect on a terminal +window.

Suppose you wanted to print a line in color. Try typing this on your console.

echo "^[[0;31;40mIn Color"

The first character is an escape character, which looks like two characters ^ +and [. To be able to print it, you have to press CTRL+V and then the ESC key. +All the others are normal printable characters. You should be able to see the +string "In Color" in red. It stays that way and to revert back to the original +mode type this.

echo "^[[0;37;40m"

Now, what do these magic characters mean? Difficult to comprehend? They might +even be different for different terminals. So the designers of UNIX invented a +mechanism named termcap. It is a file that +lists all the capabilities of a particular terminal, along with the escape +sequences needed to achieve a particular effect. In the later years, this was +replaced by terminfo. Without delving too +much into details, this mechanism allows application +programs to query the terminfo database and obtain the control characters to be +sent to a terminal or terminal emulator.


1.1. What is NCURSES?

+You might be wondering, what the import of all this technical gibberish is. In +the above scenario, every application program is supposed to query the terminfo +and perform the necessary stuff (sending control characters etc.). It soon became +difficult to manage this complexity and this gave birth to 'CURSES'. Curses is +a pun on the name "cursor optimization". The Curses library forms a wrapper +over working with raw terminal codes, and provides highly flexible and +efficient API (Application Programming Interface). It provides functions to +move the cursor, create windows, produce colors, play with mouse etc. The +application programs need not worry about the underlying terminal capabilities.

So what is NCURSES? NCURSES is a clone of the original System V Release 4.0 +(SVr4) curses. It is a freely distributable library, fully compatible with +older version of curses. In short, it is a library of functions that manages +an application's display on character-cell terminals. In the remainder of the +document, the terms curses and ncurses are used interchangeably.

A detailed history of NCURSES can be found in the NEWS file from the source +distribution. The current package is maintained by +Thomas Dickey. +You can contact the maintainers at bug-ncurses@gnu.org.


1.2. What we can do with NCURSES

NCURSES not only creates a wrapper over terminal capabilities, but also gives a +robust framework to create nice looking UI (User Interface)s in text mode. It +provides functions to create windows etc. Its sister libraries panel, menu and +form provide an extension to the basic curses library. These libraries usually +come along with curses. One can create applications that contain multiple +windows, menus, panels and forms. Windows can be managed independently, can +provide 'scrollability' and even can be hidden.

+Menus provide the user with an easy command selection option. Forms allow the +creation of easy-to-use data entry and display windows. Panels extend the +capabilities of ncurses to deal with overlapping and stacked windows.

These are just some of the basic things we can do with ncurses. As we move +along, We will see all the capabilities of these libraries.


1.3. Where to get it

All right, now that you know what you can do with ncurses, you must be rearing +to get started. NCURSES is usually shipped with your installation. In case +you don't have the library or want to compile it on your own, read on.

Compiling the package

NCURSES can be obtained from ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz or any of the ftp +sites mentioned in http://www.gnu.org/order/ftp.html.

Read the README and INSTALL files for details on to how to install it. It +usually involves the following operations.

    tar zxvf ncurses<version>.tar.gz  # unzip and untar the archive
     cd ncurses<version>               # cd to the directory
     ./configure                             # configure the build according to your 
                                             # environment
     make                                    # make it
     su root                                 # become root
-    make install                            # install it
-
-

Using the RPM

-

NCURSES RPM can be found and downloaded from http://rpmfind.net . The RPM -can be installed with the following command after becoming -root.

- - - - -
-
-    rpm -i <downloaded rpm>
-
-
-
-
-

1.4. Purpose/Scope -of the document

-

This document is intended to be a "All in One" guide for -programming with ncurses and its sister libraries. We graduate from -a simple "Hello World" program to more complex form manipulation. -No prior experience in ncurses is assumed. The writing is informal, -but a lot of detail is provided for each of the examples.

-
-
-
-

1.5. -About the Programs

-

All the programs in the document are available in zipped form -here. Unzip and untar it. The directory structure -looks like this.

- - - - -
-
-ncurses
+    make install                            # install it

Using the RPM

NCURSES RPM can be found and downloaded from http://rpmfind.net . The RPM can be installed with the following +command after becoming root.

    rpm -i <downloaded rpm>

1.4. Purpose/Scope of the document

This document is intended to be a "All in One" guide for programming with +ncurses and its sister libraries. We graduate from a simple "Hello World" +program to more complex form manipulation. No prior experience in ncurses is +assumed. The writing is informal, but a lot of detail is provided for +each of the examples.


1.5. About the Programs

All the programs in the document are available in zipped form +here. Unzip and untar it. The directory structure looks like this.

ncurses
    |
    |----> JustForFun     -- just for fun programs
    |----> basics         -- basic programs
@@ -524,16 +1290,12 @@ looks like this.

| by Anuradha Ratnaweera) |----> Makefile -- the top level Makefile |----> README -- the top level README file. contains instructions - |----> COPYING -- copyright notice
-
-

The individual directories contain the following files.

- - - - -
-
-Description of files in each directory
+   |----> COPYING        -- copyright notice

The individual directories contain the following files.

Description of files in each directory
 --------------------------------------
 JustForFun
     |
@@ -592,73 +1354,96 @@ JustForFun
     |----> panel_simple.c    -- A simple panel example
 
   perl
-    |----> 01-10.pl          -- Perl equivalents of first ten example programs
-
-

There is a top level Makefile included in the main directory. It -builds all the files and puts the ready-to-use exes in demo/exe -directory. You can also do selective make by going into the -corresponding directory. Each directory contains a README file -explaining the purpose of each c file in the directory.

-

For every example, I have included path name for the file -relative to the examples directory.

-

If you prefer browsing individual programs, point your browser -to http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/

-

All the programs are released under the same license that is -used by ncurses (MIT-style). This gives you the ability to do -pretty much anything other than claiming them as yours. Feel free -to use them in your programs as appropriate.

-
-
-
-

1.6. -Other Formats of the document

-

This howto is also availabe in various other formats on the -tldp.org site. Here are the links to other formats of this -document.

- -
-
-

1.6.2. -Building from source

-

If above links are broken or if you want to experiment with sgml -read on.

- - - - -
-
-
    Get both the source and the tar,gzipped programs, available at
+    |----> 01-10.pl          -- Perl equivalents of first ten example programs

There is a top level Makefile included in the main directory. It builds all the +files and puts the ready-to-use exes in demo/exe directory. You can also +do selective make by going into the corresponding directory. Each directory +contains a README file explaining the purpose of each c file in the directory.

For every example, I have included path name for the file relative to the +examples directory.

If you prefer browsing individual programs, point your browser to +http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/

All the programs are released under the same license that is used by ncurses +(MIT-style). This gives you the ability to do pretty much anything other than +claiming them as yours. Feel free to use them in your programs as appropriate.


1.6. Other Formats of the document

This howto is also availabe in various other formats on the tldp.org site. +Here are the links to other formats of this document.


1.6.2. Building from source

If above links are broken or if you want to experiment with sgml read on. +


    Get both the source and the tar,gzipped programs, available at
         http://cvsview.tldp.org/index.cgi/LDP/howto/docbook/
         NCURSES-HOWTO/NCURSES-Programming-HOWTO.sgml
         http://cvsview.tldp.org/index.cgi/LDP/howto/docbook/
@@ -679,588 +1464,862 @@ read on.

NCURSES-ONE-BIG-FILE.html for ps, you would use htmldoc --size universal -t ps --firstpage p1 -f <output file name.ps> - NCURSES-ONE-BIG-FILE.html
-
-

See LDP Author guide for more details. If all else failes, -mail me at ppadala@gmail.com

-
-
-
-
-

1.7. -Credits

-

I thank Sharath and Emre Akbas for helping me with few sections. -The introduction was initially written by sharath. I rewrote it -with few excerpts taken from his initial work. Emre helped in -writing printw and scanw sections.

-

Perl equivalents of the example programs are contributed by -Anuradha -Ratnaweera.

-

Then comes Ravi Parimi, my dearest friend, who has been on this -project before even one line was written. He constantly bombarded -me with suggestions and patiently reviewed the whole text. He also -checked each program on Linux and Solaris.

-
-
-
-

1.8. Wish -List

-

This is the wish list, in the order of priority. If you have a -wish or you want to work on completing the wish, mail me.

-
    -
  • -

    Add examples to last parts of forms section.

    -
  • -
  • -

    Prepare a Demo showing all the programs and allow the user to -browse through description of each program. Let the user compile -and see the program in action. A dialog based interface is -preferred.

    -
  • -
  • -

    Add debug info. _tracef, _tracemouse stuff.

    -
  • -
  • -

    Accessing termcap, terminfo using functions provided by ncurses -package.

    -
  • -
  • -

    Working on two terminals simultaneously.

    -
  • -
  • -

    Add more stuff to miscellaneous section.

    -
  • -
-
-
-
-

1.9. -Copyright

-

Copyright © 2001 by Pradeep Padala.

-

Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, copy, -modify, merge, publish, distribute, distribute with modifications, -sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions:

-

The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE.

-

Except as contained in this notice, the name(s) of the above -copyright holders shall not be used in advertising or otherwise to -promote the sale, use or other dealings in this Software without -prior written authorization.

-
-
-
-
-

2. Hello -World !!!

-

Welcome to the world of curses. Before we plunge into the -library and look into its various features, let's write a simple -program and say hello to the world.

-
-
-

2.1. -Compiling With the NCURSES Library

-

To use ncurses library functions, you have to include ncurses.h -in your programs. To link the program with ncurses the flag --lncurses should be added.

- - - - -
-
-    #include <ncurses.h>
+        NCURSES-ONE-BIG-FILE.html

See LDP Author guide for more details. If all else failes, mail me at +ppadala@gmail.com


1.7. Credits

I thank Sharath and Emre Akbas for +helping me with few sections. The introduction was initially written by sharath. +I rewrote it with few excerpts taken from his initial work. Emre helped in +writing printw and scanw sections.

Perl equivalents of the example programs are contributed by Anuradha Ratnaweera.

Then comes Ravi Parimi, my +dearest friend, who has been on this project before even one line was written. +He constantly bombarded me with suggestions and patiently reviewed the whole +text. He also checked each program on Linux and Solaris.


1.8. Wish List

This is the wish list, in the order of priority. If you have a wish or you want +to work on completing the wish, mail me.

  • Add examples to last parts of forms section.

  • Prepare a Demo showing all the programs and allow the user to browse through +description of each program. Let the user compile and see the program in action. +A dialog based interface is preferred.

  • Add debug info. _tracef, _tracemouse stuff.

  • Accessing termcap, terminfo using functions provided by ncurses +package.

  • Working on two terminals simultaneously.

  • Add more stuff to miscellaneous section.


1.9. Copyright

Copyright © 2001 by Pradeep Padala.

Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, distribute with +modifications, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following +conditions:

The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Except as contained in this notice, the name(s) of the above copyright holders +shall not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization.


2. Hello World !!!

Welcome to the world of curses. Before we plunge into the library and look into +its various features, let's write a simple program and say +hello to the world.


2.1. Compiling With the NCURSES Library

To use ncurses library functions, you have to include ncurses.h in your +programs. To link the +program with ncurses the flag -lncurses should be added.

    #include <ncurses.h>
     .
     .
     .
 
-    compile and link: gcc <program file> -lncurses
-
-
-

Example 1. The Hello World !!! Program

- - - - -
-
-#include <ncurses.h>
+    compile and link: gcc <program file> -lncurses

Example 1. The Hello World !!! Program

#include <ncurses.h>
 
 int main()
-{       
-        initscr();                      /* Start curses mode              */
-        printw("Hello World !!!");      /* Print Hello World              */
-        refresh();                      /* Print it on to the real screen */
-        getch();                        /* Wait for user input */
-        endwin();                       /* End curses mode                */
+{	
+	initscr();			/* Start curses mode 		  */
+	printw("Hello World !!!");	/* Print Hello World		  */
+	refresh();			/* Print it on to the real screen */
+	getch();			/* Wait for user input */
+	endwin();			/* End curses mode		  */
 
-        return 0;
-}
-
-
-
-
-
-

2.2. -Dissection

-

The above program prints "Hello World !!!" to the screen and -exits. This program shows how to initialize curses and do screen -manipulation and end curses mode. Let's dissect it line by -line.

-
-
-

2.2.1. -About initscr()

-

The function initscr() initializes the terminal in curses mode. -In some implementations, it clears the screen and presents a blank -screen. To do any screen manipulation using curses package this has -to be called first. This function initializes the curses system and -allocates memory for our present window (called stdscr) and some other data-structures. Under -extreme cases this function might fail due to insufficient memory -to allocate memory for curses library's data structures.

-

After this is done, we can do a variety of initializations to -customize our curses settings. These details will be explained -later .

-
-
-
-

2.2.2. -The mysterious refresh()

-

The next line printw prints the string "Hello World !!!" on to -the screen. This function is analogous to normal printf in all -respects except that it prints the data on a window called stdscr -at the current (y,x) co-ordinates. Since our present co-ordinates -are at 0,0 the string is printed at the left hand corner of the -window.

-

This brings us to that mysterious refresh(). Well, when we -called printw the data is actually written to an imaginary window, -which is not updated on the screen yet. The job of printw is to -update a few flags and data structures and write the data to a -buffer corresponding to stdscr. In order to show it on the screen, -we need to call refresh() and tell the curses system to dump the -contents on the screen.

-

The philosophy behind all this is to allow the programmer to do -multiple updates on the imaginary screen or windows and do a -refresh once all his screen update is done. refresh() checks the -window and updates only the portion which has been changed. This -improves performance and offers greater flexibility too. But, it is -sometimes frustrating to beginners. A common mistake committed by -beginners is to forget to call refresh() after they did some update -through printw() class of functions. I still forget to add it -sometimes :-)

-
-
-
-

2.2.3. -About endwin()

-

And finally don't forget to end the curses mode. Otherwise your -terminal might behave strangely after the program quits. endwin() -frees the memory taken by curses sub-system and its data structures -and puts the terminal in normal mode. This function must be called -after you are done with the curses mode.

-
-
-
-
-
-

3. The Gory -Details

-

Now that we have seen how to write a simple curses program let's -get into the details. There are many functions that help customize -what you see on screen and many features which can be put to full -use.

-

Here we go...

-
-
-
-

4. -Initialization

-

We now know that to initialize curses system the function -initscr() has to be called. There are functions which can be called -after this initialization to customize our curses session. We may -ask the curses system to set the terminal in raw mode or initialize -color or initialize the mouse etc.. Let's discuss some of the -functions that are normally called immediately after initscr();

- -
-
-

4.2. raw() and -cbreak()

-

Normally the terminal driver buffers the characters a user types -until a new line or carriage return is encountered. But most -programs require that the characters be available as soon as the -user types them. The above two functions are used to disable line -buffering. The difference between these two functions is in the way -control characters like suspend (CTRL-Z), interrupt and quit -(CTRL-C) are passed to the program. In the raw() mode these -characters are directly passed to the program without generating a -signal. In the cbreak() mode these -control characters are interpreted as any other character by the -terminal driver. I personally prefer to use raw() as I can exercise -greater control over what the user does.

-
-
-
-

4.3. echo() -and noecho()

-

These functions control the echoing of characters typed by the -user to the terminal. noecho() switches -off echoing. The reason you might want to do this is to gain more -control over echoing or to suppress unnecessary echoing while -taking input from the user through the getch() etc. functions. Most -of the interactive programs call noecho() at initialization and do the echoing of -characters in a controlled manner. It gives the programmer the -flexibility of echoing characters at any place in the window -without updating current (y,x) co-ordinates.

-
-
-
-

4.4. -keypad()

-

This is my favorite initialization function. It enables the -reading of function keys like F1, F2, arrow keys etc. Almost every -interactive program enables this, as arrow keys are a major part of -any User Interface. Do keypad(stdscr, -TRUE) to enable this feature for the regular screen (stdscr). -You will learn more about key management in later sections of this -document.

-
-
-
-

4.5. -halfdelay()

-

This function, though not used very often, is a useful one at -times. halfdelay()is called to enable the half-delay mode, which is -similar to the cbreak() mode in that characters typed are -immediately available to program. However, it waits for 'X' tenths -of a second for input and then returns ERR, if no input is -available. 'X' is the timeout value passed to the function -halfdelay(). This function is useful when you want to ask the user -for input, and if he doesn't respond with in certain time, we can -do some thing else. One possible example is a timeout at the -password prompt.

-
-
-
-

4.6. -Miscellaneous Initialization functions

-

There are few more functions which are called at initialization -to customize curses behavior. They are not used as extensively as -those mentioned above. Some of them are explained where -appropriate.

-
-
-
-

4.7. An -Example

-

Let's write a program which will clarify the usage of these -functions.

-
-

Example 2. Initialization Function Usage example

- - - - -
-
-#include <ncurses.h>
+	return 0;
+}

2.2. Dissection

+The above program prints "Hello World !!!" to the screen and exits. This +program shows how to initialize curses and do screen manipulation and +end curses mode. Let's dissect it line by line.


2.2.1. About initscr()

The function initscr() initializes the terminal in curses mode. In some +implementations, it clears the screen and presents a blank screen. To do any +screen manipulation using curses package this has to be called first. This +function initializes the curses system and allocates memory for our present +window (called stdscr) and some other data-structures. Under extreme +cases this function might fail due to insufficient memory to allocate memory +for curses library's data structures.

+After this is done, we can do a variety of initializations to customize +our curses settings. These details will be explained later .


2.2.2. The mysterious refresh()

The next line printw prints the string "Hello World !!!" on to the screen. This +function is analogous to normal printf in all respects except that it prints +the data on a window called stdscr at the current (y,x) co-ordinates. Since our +present co-ordinates are at 0,0 the string is printed at the left hand corner +of the window.

This brings us to that mysterious refresh(). Well, when we called printw +the data is actually written to an imaginary window, which is not updated +on the screen yet. The job of printw is to update a few flags +and data structures and write the data to a buffer corresponding to stdscr. +In order to show it on the screen, we need to call refresh() and tell the +curses system to dump the contents on the screen.

The philosophy behind all this is to allow the programmer to do multiple updates +on the imaginary screen or windows and do a refresh once all his screen update +is done. refresh() checks the window and updates only the portion which has been +changed. This improves performance and offers greater flexibility too. But, it is +sometimes frustrating to beginners. A common mistake committed by beginners is +to forget to call refresh() after they did some update through printw() class of +functions. I still forget to add it sometimes :-)


2.2.3. About endwin()

And finally don't forget to end the curses mode. Otherwise your terminal might +behave strangely after the program quits. endwin() frees the memory taken by +curses sub-system and its data structures and puts the terminal in normal +mode. This function must be called after you are done with the curses mode.


3. The Gory Details

Now that we have seen how to write a simple curses program let's get into the +details. There are many functions that help customize what you see on screen and +many features which can be put to full use.

Here we go...


4. Initialization

We now know that to initialize curses system the function initscr() has to be +called. There are functions which can be called after this initialization to +customize our curses session. We may ask the curses system to set the terminal +in raw mode or initialize color or initialize the mouse etc.. Let's discuss some +of the functions that are normally called immediately after initscr();


4.2. raw() and cbreak()

Normally the terminal driver buffers the characters a user types until a new +line or carriage return is encountered. But most programs require that the +characters be available as soon as the user types them. The above two functions +are used to disable line buffering. The difference between these two functions +is in the way control characters like suspend (CTRL-Z), interrupt and quit +(CTRL-C) are passed to the program. In the raw() mode these characters are +directly passed to the program without generating a signal. In the +cbreak() mode these control characters are +interpreted as any other character by the terminal driver. I personally prefer +to use raw() as I can exercise greater control over what the user does.


4.3. echo() and noecho()

+These functions control the echoing of characters typed by the user to the +terminal. noecho() switches off echoing. The +reason you might want to do this is to gain more control over echoing or to +suppress unnecessary echoing while taking input from the user through the +getch() etc. functions. Most of the interactive programs call +noecho() at initialization and do the echoing +of characters in a controlled manner. It gives the programmer the flexibility +of echoing characters at any place in the window without updating current (y,x) +co-ordinates.


4.4. keypad()

This is my favorite initialization function. It enables the reading of function +keys like F1, F2, arrow keys etc. Almost every interactive program enables this, +as arrow keys are a major part of any User Interface. Do +keypad(stdscr, TRUE) to enable this feature +for the regular screen (stdscr). You will learn more about key management in +later sections of this document.


4.5. halfdelay()

This function, though not used very often, is a useful one at times. +halfdelay()is called to enable the half-delay mode, which is similar to the +cbreak() mode in that characters typed are immediately available to program. +However, it waits for 'X' tenths of a second for input and then returns ERR, if +no input is available. 'X' is the timeout value passed to the function +halfdelay(). This function is useful when you want to ask the user for input, +and if he doesn't respond with in certain time, we can do some thing else. One +possible example is a timeout at the password prompt.


4.6. Miscellaneous Initialization functions

There are few more functions which are called at initialization to +customize curses behavior. They are not used as extensively as those mentioned +above. Some of them are explained where appropriate.


4.7. An Example

Let's write a program which will clarify the usage of these functions.

Example 2. Initialization Function Usage example

#include <ncurses.h>
 
 int main()
-{       int ch;
+{	int ch;
 
-        initscr();                      /* Start curses mode            */
-        raw();                          /* Line buffering disabled      */
-        keypad(stdscr, TRUE);           /* We get F1, F2 etc..          */
-        noecho();                       /* Don't echo() while we do getch */
+	initscr();			/* Start curses mode 		*/
+	raw();				/* Line buffering disabled	*/
+	keypad(stdscr, TRUE);		/* We get F1, F2 etc..		*/
+	noecho();			/* Don't echo() while we do getch */
 
-        printw("Type any character to see it in bold\n");
-        ch = getch();                   /* If raw() hadn't been called
-                                         * we have to press enter before it
-                                         * gets to the program          */
-        if(ch == KEY_F(1))              /* Without keypad enabled this will */
-                printw("F1 Key pressed");/*  not get to us either       */
-                                        /* Without noecho() some ugly escape
-                                         * charachters might have been printed
-                                         * on screen                    */
-        else
-        {       printw("The pressed key is ");
-                attron(A_BOLD);
-                printw("%c", ch);
-                attroff(A_BOLD);
-        }
-        refresh();                      /* Print it on to the real screen */
-        getch();                        /* Wait for user input */
-        endwin();                       /* End curses mode                */
+    	printw("Type any character to see it in bold\n");
+	ch = getch();			/* If raw() hadn't been called
+					 * we have to press enter before it
+					 * gets to the program 		*/
+	if(ch == KEY_F(1))		/* Without keypad enabled this will */
+		printw("F1 Key pressed");/*  not get to us either	*/
+					/* Without noecho() some ugly escape
+					 * charachters might have been printed
+					 * on screen			*/
+	else
+	{	printw("The pressed key is ");
+		attron(A_BOLD);
+		printw("%c", ch);
+		attroff(A_BOLD);
+	}
+	refresh();			/* Print it on to the real screen */
+    	getch();			/* Wait for user input */
+	endwin();			/* End curses mode		  */
 
-        return 0;
-}
-
-
-

This program is self-explanatory. But I used functions which -aren't explained yet. The function getch() is used to get a character from user. It is -equivalent to normal getchar() except -that we can disable the line buffering to avoid <enter> after -input. Look for more about getch()and -reading keys in the key management section . -The functions attron and attroff are used to switch some attributes -on and off respectively. In the example I used them to print the -character in bold. These functions are explained in detail -later.

-
-
-
-
-

5. A -Word about Windows

-

Before we plunge into the myriad ncurses functions, let me clear -few things about windows. Windows are explained in detail in -following sections

-

A Window is an imaginary screen defined by curses system. A -window does not mean a bordered window which you usually see on -Win9X platforms. When curses is initialized, it creates a default -window named stdscr which represents -your 80x25 (or the size of window in which you are running) screen. -If you are doing simple tasks like printing few strings, reading -input etc., you can safely use this single window for all of your -purposes. You can also create windows and call functions which -explicitly work on the specified window.

-

For example, if you call

- - - - -
-
-    printw("Hi There !!!");
-    refresh();
-
-

It prints the string on stdscr at the present cursor position. -Similarly the call to refresh(), works on stdscr only.

-

Say you have created windows then you -have to call a function with a 'w' added to the usual function.

- - - - -
-
-    wprintw(win, "Hi There !!!");
-    wrefresh(win);
-
-

As you will see in the rest of the document, naming of functions -follow the same convention. For each function there usually are -three more functions.

- - - - -
-
-    printw(string);        /* Print on stdscr at present cursor position */
+	return 0;
+}

This program is self-explanatory. But I used functions which aren't explained +yet. The function getch() is used to get a +character from user. It is equivalent to normal +getchar() except that we can disable the line +buffering to avoid <enter> after input. Look for more about +getch()and reading keys in the key management section . The functions attron and attroff +are used to switch some attributes on and off respectively. In the example I +used them to print the character in bold. These functions are explained in detail +later.


5. A Word about Windows

+Before we plunge into the myriad ncurses functions, let me clear few things +about windows. Windows are explained in detail in following sections

A Window is an imaginary screen defined by curses system. A window does not mean +a bordered window which you usually see on Win9X platforms. When curses is +initialized, it creates a default window named +stdscr which represents your 80x25 (or the size +of window in which you are running) screen. If you are doing simple tasks like +printing few strings, reading input etc., you can safely use this single window +for all of your purposes. You can also create windows and call functions which +explicitly work on the specified window.

For example, if you call

    printw("Hi There !!!");
+    refresh();

It prints the string on stdscr at the present cursor position. Similarly the +call to refresh(), works on stdscr only.

Say you have created windows then you have to +call a function with a 'w' added to the usual function.

    wprintw(win, "Hi There !!!");
+    wrefresh(win);

As you will see in the rest of the document, naming of functions follow the +same convention. For each function there usually are three more functions.

    printw(string);        /* Print on stdscr at present cursor position */
     mvprintw(y, x, string);/* Move to (y, x) then print string     */
     wprintw(win, string);  /* Print on window win at present cursor position */
                            /* in the window */
     mvwprintw(win, y, x, string);   /* Move to (y, x) relative to window */
-                                    /* co-ordinates and then print         */
-
-

Usually the w-less functions are macros which expand to -corresponding w-function with stdscr as the window parameter.

-
-
-
-

6. Output -functions

-

I guess you can't wait any more to see some action. Back to our -odyssey of curses functions. Now that curses is initialized, let's -interact with world.

-

There are three classes of functions which you can use to do -output on screen.

-
    -
  1. -

    addch() class: Print single character with attributes

    -
  2. -
  3. -

    printw() class: Print formatted output similar to printf()

    -
  4. -
  5. -

    addstr() class: Print strings

    -
  6. -
-

These functions can be used interchangeably and it's a matter of -style as to which class is used. Let's see each one in detail.

-
-
-

6.1. addch() -class of functions

-

These functions put a single character into the current cursor -location and advance the position of the cursor. You can give the -character to be printed but they usually are used to print a -character with some attributes. Attributes are explained in detail -in later sections of the document. If a -character is associated with an attribute(bold, reverse video -etc.), when curses prints the character, it is printed in that -attribute.

-

In order to combine a character with some attributes, you have -two options:

-
    -
  • -

    By OR'ing a single character with the desired attribute macros. -These attribute macros could be found in the header file -ncurses.h. For example, you want to -print a character ch(of type char) bold and underlined, you would -call addch() as below.

    - - - - -
    -
    -    addch(ch | A_BOLD | A_UNDERLINE);
    -
    -
  • -
  • -

    By using functions like attrset(),attron(),attroff(). These functions are -explained in the Attributes section. Briefly, -they manipulate the current attributes of the given window. Once -set, the character printed in the window are associated with the -attributes until it is turned off.

    -
  • -
-

Additionally, curses provides some -special characters for character-based graphics. You can draw -tables, horizontal or vertical lines, etc. You can find all -avaliable characters in the header file ncurses.h. Try looking for macros beginning with -ACS_ in this file.

-
-
-
-

6.2. mvaddch(), -waddch() and mvwaddch()

-

mvaddch() is used to move the cursor -to a given point, and then print. Thus, the calls:

- - - - -
-
-    move(row,col);    /* moves the cursor to rowth row and colth column */
-    addch(ch);
-
+ /* co-ordinates and then print */

Usually the w-less functions are macros which expand to corresponding w-function +with stdscr as the window parameter.


6. Output functions

I guess you can't wait any more to see some action. Back to our odyssey of +curses functions. Now that curses is initialized, let's interact with +world.

There are three classes of functions which you can use to do output on screen. +

  1. addch() class: Print single character with attributes

  2. printw() class: Print formatted output similar to printf()

  3. addstr() class: Print strings

These functions can be used interchangeably and it's a matter of style as to +which class is used. Let's see each one in detail.


6.1. addch() class of functions

These functions put a single character into the current cursor location and +advance the position of the cursor. You can give the character to be printed but +they usually are used to print a character with some attributes. Attributes are +explained in detail in later sections of the +document. If a character is associated with an attribute(bold, reverse video +etc.), when curses prints the character, it is printed in that attribute.

In order to combine a character with some attributes, you have two options:

  • By OR'ing a single character with the desired attribute macros. These attribute +macros could be found in the header file +ncurses.h. For example, you want to print a +character ch(of type char) bold and underlined, you would call addch() as below. +

        addch(ch | A_BOLD | A_UNDERLINE);

  • By using functions like attrset(),attron(),attroff(). These functions are explained in the Attributes section. Briefly, they manipulate the current attributes of +the given window. Once set, the character printed in the window are associated +with the attributes until it is turned off.

Additionally, curses provides some special +characters for character-based graphics. You can draw tables, horizontal or +vertical lines, etc. You can find all avaliable characters in the header file +ncurses.h. Try looking for macros beginning +with ACS_ in this file.


6.2. mvaddch(), waddch() and mvwaddch()

mvaddch() is used to move the cursor to a +given point, and then print. Thus, the calls: +

    move(row,col);    /* moves the cursor to rowth row and colth column */
+    addch(ch);
can be replaced by - - - - -
-
-    mvaddch(row,col,ch);
-
-

waddch() is similar to addch(), except that it adds a character into the -given window. (Note that addch() adds a -character into the window stdscr.)

-

In a similar fashion mvwaddch() -function is used to add a character into the given window at the -given coordinates.

-

Now, we are familiar with the basic output function addch(). But, if we want to print a string, it -would be very annoying to print it character by character. -Fortunately, ncurses provides -printf-like or puts-like functions.

-
-
-
-

6.3. -printw() class of functions

-

These functions are similar to printf() with the added capability of printing at -any position on the screen.

-
-
-

6.3.1. printw() and mvprintw

-

These two functions work much like printf(). mvprintw() can -be used to move the cursor to a position and then print. If you -want to move the cursor first and then print using printw() function, use move() first and then use printw() though I see no point why one should avoid -using mvprintw(), you have the -flexibility to manipulate.

-
-
-
-

6.3.2. wprintw() and mvwprintw

-

These two functions are similar to above two except that they -print in the corresponding window given as argument.

-
-
-
-

6.3.3. -vwprintw()

-

This function is similar to vprintf(). This can be used when variable number of -arguments are to be printed.

-
-
-
-

6.3.4. A Simple printw example

-
-

Example 3. A Simple printw example

- - - - -
-
-#include <ncurses.h>                   /* ncurses.h includes stdio.h */  
-#include <string.h> 
+
    mvaddch(row,col,ch);

waddch() is similar to +addch(), except that it adds a character into +the given window. (Note that addch() adds a +character into the window stdscr.)

In a similar fashion mvwaddch() function is +used to add a character into the given window at the given coordinates.

Now, we are familiar with the basic output function +addch(). But, if we want to print a string, it +would be very annoying to print it character by character. Fortunately, +ncurses provides printf-like or +puts-like functions.


6.3. printw() class of functions

These functions are similar to printf() with +the added capability of printing at any position on the screen.


6.3.1. printw() and mvprintw

These two functions work much like printf(). +mvprintw() can be used to move the cursor to a +position and then print. If you want to move the cursor first and then print +using printw() function, use +move() first and then use +printw() though I see no point why one should +avoid using mvprintw(), you have the +flexibility to manipulate.


6.3.2. wprintw() and mvwprintw

These two functions are similar to above two except that they print in the +corresponding window given as argument.


6.3.3. vwprintw()

This function is similar to vprintf(). This can +be used when variable number of arguments are to be printed.


6.3.4. A Simple printw example

Example 3. A Simple printw example

#include <ncurses.h>			/* ncurses.h includes stdio.h */  
+#include <string.h> 
  
 int main()
 {
- char mesg[]="Just a string";           /* message to be appeared on the screen */
- int row,col;                           /* to store the number of rows and *
-                                         * the number of colums of the screen */
- initscr();                             /* start the curses mode */
- getmaxyx(stdscr,row,col);              /* get the number of rows and columns */
+ char mesg[]="Just a string";		/* message to be appeared on the screen */
+ int row,col;				/* to store the number of rows and *
+					 * the number of colums of the screen */
+ initscr();				/* start the curses mode */
+ getmaxyx(stdscr,row,col);		/* get the number of rows and columns */
  mvprintw(row/2,(col-strlen(mesg))/2,"%s",mesg);
-                                        /* print the message at the center of the screen */
+                                	/* print the message at the center of the screen */
  mvprintw(row-2,0,"This screen has %d rows and %d columns\n",row,col);
  printw("Try resizing your window(if possible) and then run this program again");
  refresh();
@@ -1268,192 +2327,302 @@ int main()
  endwin();
 
  return 0;
-}
-
-
-

Above program demonstrates how easy it is to use printw. You just feed the coordinates and the -message to be appeared on the screen, then it does what you -want.

-

The above program introduces us to a new function getmaxyx(), a macro defined in ncurses.h. It gives the number of columns and the -number of rows in a given window. getmaxyx() does this by updating the variables -given to it. Since getmaxyx() is not a -function we don't pass pointers to it, we just give two integer -variables.

-
-
-
-
-

6.4. -addstr() class of functions

-

addstr() is used to put a character -string into a given window. This function is similar to calling -addch() once for each character in a -given string. This is true for all output functions. There are -other functions from this family such as mvaddstr(),mvwaddstr() and waddstr(), which obey the naming convention of -curses.(e.g. mvaddstr() is similar to the respective calls move() -and then addstr().) Another function of this family is addnstr(), -which takes an integer parameter(say n) additionally. This function -puts at most n characters into the screen. If n is negative, then -the entire string will be added.

-
-
-
-

6.5. A word of -caution

-

All these functions take y co-ordinate first and then x in their -arguments. A common mistake by beginners is to pass x,y in that -order. If you are doing too many manipulations of (y,x) -co-ordinates, think of dividing the screen into windows and -manipulate each one separately. Windows are explained in the -windows section.

-
-
-
-
-

7. Input -functions

-

Well, printing without taking input, is boring. Let's see -functions which allow us to get input from user. These functions -also can be divided into three categories.

-
    -
  1. -

    getch() class: Get a character

    -
  2. -
  3. -

    scanw() class: Get formatted input

    -
  4. -
  5. -

    getstr() class: Get strings

    -
  6. -
-
-
-

7.1. getch() -class of functions

-

These functions read a single character from the terminal. But -there are several subtle facts to consider. For example if you -don't use the function cbreak(), curses will not read your input -characters contiguously but will begin read them only after a new -line or an EOF is encountered. In order to avoid this, the cbreak() -function must used so that characters are immediately available to -your program. Another widely used function is noecho(). As the name -suggests, when this function is set (used), the characters that are -keyed in by the user will not show up on the screen. The two -functions cbreak() and noecho() are typical examples of key -management. Functions of this genre are explained in the key management section .

-
-
-
-

7.2. scanw() -class of functions

-

These functions are similar to scanf() with the added capability of getting the -input from any location on the screen.

-
-
-

7.2.1. -scanw() and mvscanw

-

The usage of these functions is similar to that of sscanf(), where the line to be scanned is provided -by wgetstr() function. That is, these -functions call to wgetstr() -function(explained below) and uses the resulting line for a -scan.

-
-
-
-

7.2.2. wscanw() and mvwscanw()

-

These are similar to above two functions except that they read -from a window, which is supplied as one of the arguments to these -functions.

-
-
-
-

7.2.3. -vwscanw()

-

This function is similar to vscanf(). -This can be used when a variable number of arguments are to be -scanned.

-
-
-
-
-

7.3. -getstr() class of functions

-

These functions are used to get strings from the terminal. In -essence, this function performs the same task as would be achieved -by a series of calls to getch() until a -newline, carriage return, or end-of-file is received. The resulting -string of characters are pointed to by str, which is a character pointer provided by the -user.

-
-
-
-

7.4. Some -examples

-
-

Example 4. A Simple scanw example

- - - - -
-
-#include <ncurses.h>                   /* ncurses.h includes stdio.h */  
-#include <string.h> 
+}

Above program demonstrates how easy it is to use printw. You just feed the coordinates and the message to be appeared +on the screen, then it does what you want.

The above program introduces us to a new function +getmaxyx(), a macro defined in +ncurses.h. It gives the number of columns and +the number of rows in a given window. +getmaxyx() does this by updating the variables +given to it. Since getmaxyx() is not a function +we don't pass pointers to it, we just give two integer variables.


6.4. addstr() class of functions

addstr() is used to put a character string into +a given window. This function is similar to calling +addch() once for each character in a given +string. This is true for all output functions. There are other functions from +this family such as mvaddstr(),mvwaddstr() and +waddstr(), which obey the naming convention of +curses.(e.g. mvaddstr() is similar to the respective calls move() and then +addstr().) Another function of this family is addnstr(), which takes an integer +parameter(say n) additionally. This function puts at most n characters into the +screen. If n is negative, then the entire string will be added.


6.5. A word of caution

All these functions take y co-ordinate first and then x in their arguments. +A common mistake by beginners is to pass x,y in that order. If you are +doing too many manipulations of (y,x) co-ordinates, think of dividing the +screen into windows and manipulate each one separately. Windows are explained +in the windows section.


7. Input functions

Well, printing without taking input, is boring. Let's see functions which +allow us to get input from user. These functions also can be divided into +three categories.

  1. getch() class: Get a character

  2. scanw() class: Get formatted input

  3. getstr() class: Get strings


7.1. getch() class of functions

These functions read a single character from the terminal. But there are several +subtle facts to consider. For example if you don't use the function cbreak(), +curses will not read your input characters contiguously but will begin read them +only after a new line or an EOF is encountered. In order to avoid this, the +cbreak() function must used so that characters are immediately available to your +program. Another widely used function is noecho(). As the name suggests, when +this function is set (used), the characters that are keyed in by the user will +not show up on the screen. The two functions cbreak() and noecho() are typical +examples of key management. Functions of this genre are explained in the +key management section .


7.2. scanw() class of functions

These functions are similar to scanf() with the +added capability of getting the input from any location on the screen.


7.2.1. scanw() and mvscanw

The usage of these functions is similar to that of +sscanf(), where the line to be scanned is +provided by wgetstr() function. That is, these +functions call to wgetstr() function(explained +below) and uses the resulting line for a scan.


7.2.2. wscanw() and mvwscanw()

These are similar to above two functions except that they read from a window, +which is supplied as one of the arguments to these functions.


7.2.3. vwscanw()

This function is similar to vscanf(). This can +be used when a variable number of arguments are to be scanned.


7.3. getstr() class of functions

These functions are used to get strings from the terminal. In essence, this +function performs the same task as would be achieved by a series of calls to +getch() until a newline, carriage return, or +end-of-file is received. The resulting string of characters are pointed to by +str, which is a character pointer provided by +the user.


7.4. Some examples

Example 4. A Simple scanw example

#include <ncurses.h>			/* ncurses.h includes stdio.h */  
+#include <string.h> 
  
 int main()
 {
- char mesg[]="Enter a string: ";                /* message to be appeared on the screen */
+ char mesg[]="Enter a string: ";		/* message to be appeared on the screen */
  char str[80];
- int row,col;                           /* to store the number of rows and *
-                                         * the number of colums of the screen */
- initscr();                             /* start the curses mode */
- getmaxyx(stdscr,row,col);              /* get the number of rows and columns */
+ int row,col;				/* to store the number of rows and *
+					 * the number of colums of the screen */
+ initscr();				/* start the curses mode */
+ getmaxyx(stdscr,row,col);		/* get the number of rows and columns */
  mvprintw(row/2,(col-strlen(mesg))/2,"%s",mesg);
-                                /* print the message at the center of the screen */
+                     		/* print the message at the center of the screen */
  getstr(str);
  mvprintw(LINES - 2, 0, "You Entered: %s", str);
  getch();
  endwin();
 
  return 0;
-}
-
-
-
-
-
-
-

8. -Attributes

-

We have seen an example of how attributes can be used to print -characters with some special effects. Attributes, when set -prudently, can present information in an easy, understandable -manner. The following program takes a C file as input and prints -the file with comments in bold. Scan through the code.

-
-

Example 5. A Simple Attributes example

- - - - -
-
-/* pager functionality by Joseph Spainhour" <spainhou@bellsouth.net> */
-#include <ncurses.h>
-#include <stdlib.h>
+}

8. Attributes

We have seen an example of how attributes can be used to print characters with +some special effects. Attributes, when set prudently, can present information in +an easy, understandable manner. The following program takes a C file as input +and prints the file with comments in bold. Scan through the code.

Example 5. A Simple Attributes example

/* pager functionality by Joseph Spainhour" <spainhou@bellsouth.net> */
+#include <ncurses.h>
+#include <stdlib.h>
 
 int main(int argc, char *argv[])
 { 
@@ -1464,7 +2633,7 @@ int main(int argc, char *argv[])
 
   if(argc != 2)
   {
-    printf("Usage: %s <a c file name>\n", argv[0]);
+    printf("Usage: %s <a c file name>\n", argv[0]);
     exit(1);
   }
   fp = fopen(argv[1], "r");
@@ -1473,77 +2642,101 @@ int main(int argc, char *argv[])
     perror("Cannot open input file");
     exit(1);
   }
-  initscr();                            /* Start curses mode */
-  getmaxyx(stdscr, row, col);           /* find the boundaries of the screeen */
-  while((ch = fgetc(fp)) != EOF)        /* read the file till we reach the end */
+  initscr();				/* Start curses mode */
+  getmaxyx(stdscr, row, col);		/* find the boundaries of the screeen */
+  while((ch = fgetc(fp)) != EOF)	/* read the file till we reach the end */
   {
-    getyx(stdscr, y, x);                /* get the current curser position */
-    if(y == (row - 1))                  /* are we are at the end of the screen */
+    getyx(stdscr, y, x);		/* get the current curser position */
+    if(y == (row - 1))			/* are we are at the end of the screen */
     {
-      printw("<-Press Any Key->");      /* tell the user to press a key */
+      printw("<-Press Any Key->");	/* tell the user to press a key */
       getch();
-      clear();                          /* clear the screen */
-      move(0, 0);                       /* start at the beginning of the screen */
+      clear();				/* clear the screen */
+      move(0, 0);			/* start at the beginning of the screen */
     }
-    if(prev == '/' && ch == '*')        /* If it is / and * then only
-                                         * switch bold on */    
+    if(prev == '/' && ch == '*')    	/* If it is / and * then only
+                                     	 * switch bold on */    
     {
-      attron(A_BOLD);                   /* cut bold on */
-      getyx(stdscr, y, x);              /* get the current curser position */
-      move(y, x - 1);                   /* back up one space */
-      printw("%c%c", '/', ch);          /* The actual printing is done here */
+      attron(A_BOLD);			/* cut bold on */
+      getyx(stdscr, y, x);		/* get the current curser position */
+      move(y, x - 1);			/* back up one space */
+      printw("%c%c", '/', ch); 		/* The actual printing is done here */
     }
     else
       printw("%c", ch);
     refresh();
-    if(prev == '*' && ch == '/')
-      attroff(A_BOLD);                  /* Switch it off once we got *
-                                         * and then / */
+    if(prev == '*' && ch == '/')
+      attroff(A_BOLD);        		/* Switch it off once we got *
+                                 	 * and then / */
     prev = ch;
   }
-  endwin();                             /* End curses mode */
+  endwin();                       	/* End curses mode */
   fclose(fp);
   return 0;
-}
-
-
-

Don't worry about all those initialization and other crap. -Concentrate on the while loop. It reads each character in the file -and searches for the pattern /*. Once it spots the pattern, it -switches the BOLD attribute on with attron() . When we get the pattern */ it is -switched off by attroff() .

-

The above program also introduces us to two useful functions -getyx() and move(). The first function gets the co-ordinates of -the present cursor into the variables y, x. Since getyx() is a +}

+Don't worry about all those initialization and other crap. Concentrate on +the while loop. It reads each character in the file and searches for the +pattern /*. Once it spots the pattern, it switches the BOLD attribute on with + attron() . When we get the pattern */ it is +switched off by attroff() .

+The above program also introduces us to two useful functions +getyx() and +move(). The first function gets the +co-ordinates of the present cursor into the variables y, x. Since getyx() is a macro we don't have to pass pointers to variables. The function -move() moves the cursor to the -co-ordinates given to it.

-

The above program is really a simple one which doesn't do much. -On these lines one could write a more useful program which reads a -C file, parses it and prints it in different colors. One could even -extend it to other languages as well.

-
-
-

8.1. -The details

-

Let's get into more details of attributes. The functions -attron(), attroff(), attrset() , and -their sister functions attr_get() etc.. -can be used to switch attributes on/off , get attributes and -produce a colorful display.

-

The functions attron and attroff take a bit-mask of attributes -and switch them on or off, respectively. The following video -attributes, which are defined in <curses.h> can be passed to -these functions.

- - - - -
-
-    
+move() moves the cursor to the co-ordinates
+given to it. 

+The above program is really a simple one which doesn't do much. On these lines +one could write a more useful program which reads a C file, parses it and prints +it in different colors. One could even extend it to other languages as well.


8.1. The details

Let's get into more details of attributes. The functions attron(), attroff(), attrset() , and their sister functions + attr_get() etc.. can be used to switch +attributes on/off , get attributes and produce a colorful display.

The functions attron and attroff take a bit-mask of attributes and switch them +on or off, respectively. The following video attributes, which are defined in +<curses.h> can be passed to these functions.

    
     A_NORMAL        Normal display (no highlight)
     A_STANDOUT      Best highlighting mode of the terminal.
     A_UNDERLINE     Underlining
@@ -1556,368 +2749,445 @@ these functions.

A_ALTCHARSET Alternate character set A_CHARTEXT Bit-mask to extract a character COLOR_PAIR(n) Color-pair number n -
-
-

The last one is the most colorful one :-) Colors are explained -in the next sections.

-

We can OR(|) any number of above attributes to get a combined -effect. If you wanted reverse video with blinking characters you -can use

- - - - -
-
-    attron(A_REVERSE | A_BLINK);
-
-
-
-
-

8.2. attron() vs attrset()

-

Then what is the difference between attron() and attrset()? -attrset sets the attributes of window whereas attron just switches -on the attribute given to it. So attrset() fully overrides whatever -attributes the window previously had and sets it to the new -attribute(s). Similarly attroff() just switches off the -attribute(s) given to it as an argument. This gives us the -flexibility of managing attributes easily.But if you use them -carelessly you may loose track of what attributes the window has -and garble the display. This is especially true while managing -menus with colors and highlighting. So decide on a consistent -policy and stick to it. You can always use standend() which is equivalent to attrset(A_NORMAL) which turns off all attributes -and brings you to normal mode.

-
-
-
-

8.3. -attr_get()

-

The function attr_get() gets the current attributes and color -pair of the window. Though we might not use this as often as the -above functions, this is useful in scanning areas of screen. Say we -wanted to do some complex update on screen and we are not sure what -attribute each character is associated with. Then this function can -be used with either attrset or attron to produce the desired -effect.

-
-
-
-

8.4. attr_ -functions

-

There are series of functions like attr_set(), attr_on etc.. -These are similar to above functions except that they take -parameters of type attr_t.

-
-
-
-

8.5. wattr -functions

-

For each of the above functions we have a corresponding function -with 'w' which operates on a particular window. The above functions -operate on stdscr.

-
-
-
-

8.6. chgat() -functions

-

The function chgat() is listed in the end of the man page -curs_attr. It actually is a useful one. This function can be used -to set attributes for a group of characters without moving. I mean -it !!! without moving the cursor :-) It changes the attributes of a -given number of characters starting at the current cursor -location.

-

We can give -1 as the character count to update till end of -line. If you want to change attributes of characters from current -position to end of line, just use this.

- - - - -
-
-    chgat(-1, A_REVERSE, 0, NULL);
-
-

This function is useful when changing attributes for characters -that are already on the screen. Move to the character from which -you want to change and change the attribute.

-

Other functions wchgat(), mvchgat(), wchgat() behave similarly -except that the w functions operate on the particular window. The -mv functions first move the cursor then perform the work given to -them. Actually chgat is a macro which is replaced by a wchgat() -with stdscr as the window. Most of the "w-less" functions are -macros.

-
-

Example 6. Chgat() Usage example

- - - - -
-
-#include <ncurses.h>
+    

+The last one is the most colorful one :-) Colors are explained in the +next sections.

We can OR(|) any number of above attributes to get a combined effect. If you +wanted reverse video with blinking characters you can use

    attron(A_REVERSE | A_BLINK);

8.2. attron() vs attrset()

Then what is the difference between attron() and attrset()? attrset sets the +attributes of window whereas attron just switches on the attribute given to it. +So attrset() fully overrides whatever attributes the window previously had and +sets it to the new attribute(s). Similarly attroff() just switches off the +attribute(s) given to it as an argument. This gives us the flexibility of +managing attributes easily.But if you use them carelessly you may loose track of +what attributes the window has and garble the display. This is especially true +while managing menus with colors and highlighting. So decide on a consistent +policy and stick to it. You can always use standend() which is equivalent to attrset(A_NORMAL) which turns off all attributes and brings you to normal mode.


8.3. attr_get()

The function attr_get() gets the current attributes and color pair of the +window. Though we might not use this as often as the above functions, this is +useful in scanning areas of screen. Say we wanted to do some complex update on +screen and we are not sure what attribute each character is associated with. +Then this function can be used with either attrset or attron to produce the +desired effect.


8.4. attr_ functions

There are series of functions like attr_set(), attr_on etc.. These are similar +to above functions except that they take parameters of type +attr_t.


8.5. wattr functions

For each of the above functions we have a corresponding function with 'w' which +operates on a particular window. The above functions operate on stdscr.


8.6. chgat() functions

The function chgat() is listed in the end of the man page curs_attr. It actually +is a useful one. This function can be used to set attributes for a group of +characters without moving. I mean it !!! without moving the cursor :-) It +changes the attributes of a given number of characters starting at the current +cursor location.

We can give -1 as the character count to update till end of line. If you want to +change attributes of characters from current position to end of line, just use +this.

    chgat(-1, A_REVERSE, 0, NULL);

+This function is useful when changing attributes for characters that are +already on the screen. Move to the character from which you want to change and +change the attribute.

Other functions wchgat(), mvchgat(), wchgat() behave similarly except that the w +functions operate on the particular window. The mv functions first move the +cursor then perform the work given to them. Actually chgat is a macro which is +replaced by a wchgat() with stdscr as the window. Most of the "w-less" functions +are macros.

Example 6. Chgat() Usage example

#include <ncurses.h>
 
 int main(int argc, char *argv[])
-{       initscr();                      /* Start curses mode            */
-        start_color();                  /* Start color functionality    */
-        
-        init_pair(1, COLOR_CYAN, COLOR_BLACK);
-        printw("A Big string which i didn't care to type fully ");
-        mvchgat(0, 0, -1, A_BLINK, 1, NULL);    
-        /* 
-         * First two parameters specify the position at which to start 
-         * Third parameter number of characters to update. -1 means till 
-         * end of line
-         * Forth parameter is the normal attribute you wanted to give 
-         * to the charcter
-         * Fifth is the color index. It is the index given during init_pair()
-         * use 0 if you didn't want color
-         * Sixth one is always NULL 
-         */
-        refresh();
-        getch();
-        endwin();                       /* End curses mode                */
-        return 0;
-}
-
-
-

This example also introduces us to the color world of curses. -Colors will be explained in detail later. Use 0 for no color.

-
-
-
-
-

9. -Windows

-

Windows form the most important concept in curses. You have seen -the standard window stdscr above where all the functions implicitly -operated on this window. Now to make design even a simplest GUI, -you need to resort to windows. The main reason you may want to use -windows is to manipulate parts of the screen separately, for better -efficiency, by updating only the windows that need to be changed -and for a better design. I would say the last reason is the most -important in going for windows. You should always strive for a -better and easy-to-manage design in your programs. If you are -writing big, complex GUIs this is of pivotal importance before you -start doing anything.

-
-
-

9.1. The -basics

-

A Window can be created by calling the function newwin(). It doesn't create any thing on the screen -actually. It allocates memory for a structure to manipulate the -window and updates the structure with data regarding the window -like it's size, beginy, beginx etc.. Hence in curses, a window is -just an abstraction of an imaginary window, which can be -manipulated independent of other parts of screen. The function -newwin() returns a pointer to structure WINDOW, which can be passed -to window related functions like wprintw() etc.. Finally the window -can be destroyed with delwin(). It will deallocate the memory -associated with the window structure.

-
-
-
-

9.2. Let -there be a Window !!!

-

What fun is it, if a window is created and we can't see it. So -the fun part begins by displaying the window. The function -box() can be used to draw a border -around the window. Let's explore these functions in more detail in -this example.

-
-

Example 7. Window Border example

- - - - -
-
-#include <ncurses.h>
+{	initscr();			/* Start curses mode 		*/
+	start_color();			/* Start color functionality	*/
+	
+	init_pair(1, COLOR_CYAN, COLOR_BLACK);
+	printw("A Big string which i didn't care to type fully ");
+	mvchgat(0, 0, -1, A_BLINK, 1, NULL);	
+	/* 
+	 * First two parameters specify the position at which to start 
+	 * Third parameter number of characters to update. -1 means till 
+	 * end of line
+	 * Forth parameter is the normal attribute you wanted to give 
+	 * to the charcter
+	 * Fifth is the color index. It is the index given during init_pair()
+	 * use 0 if you didn't want color
+	 * Sixth one is always NULL 
+	 */
+	refresh();
+    	getch();
+	endwin();			/* End curses mode		  */
+	return 0;
+}

This example also introduces us to the color world of curses. Colors will be +explained in detail later. Use 0 for no color.


9. Windows

Windows form the most important concept in curses. You have seen the standard +window stdscr above where all the functions implicitly operated on this window. +Now to make design even a simplest GUI, you need to resort to windows. The main +reason you may want to use windows is to manipulate parts of the screen +separately, for better efficiency, by updating only the windows that need to be +changed and for a better design. I would say the last reason is the most +important in going for windows. You should always strive for a better and +easy-to-manage design in your programs. If you are writing big, complex GUIs +this is of pivotal importance before you start doing anything.


9.1. The basics

A Window can be created by calling the function +newwin(). It doesn't create any thing on the +screen actually. It allocates memory for a structure to manipulate the window +and updates the structure with data regarding the window like it's size, beginy, +beginx etc.. Hence in curses, a window is just an abstraction of an imaginary +window, which can be manipulated independent of other parts of screen. The +function newwin() returns a pointer to structure WINDOW, which can be passed to +window related functions like wprintw() etc.. Finally the window can be +destroyed with delwin(). It will deallocate the memory associated with the +window structure.


9.2. Let there be a Window !!!

What fun is it, if a window is created and we can't see it. So the fun part +begins by displaying the window. The function +box() can be used to draw a border around the +window. Let's explore these functions in more detail in this example.

Example 7. Window Border example

#include <ncurses.h>
 
 
 WINDOW *create_newwin(int height, int width, int starty, int startx);
 void destroy_win(WINDOW *local_win);
 
 int main(int argc, char *argv[])
-{       WINDOW *my_win;
-        int startx, starty, width, height;
-        int ch;
+{	WINDOW *my_win;
+	int startx, starty, width, height;
+	int ch;
 
-        initscr();                      /* Start curses mode            */
-        cbreak();                       /* Line buffering disabled, Pass on
-                                         * everty thing to me           */
-        keypad(stdscr, TRUE);           /* I need that nifty F1         */
+	initscr();			/* Start curses mode 		*/
+	cbreak();			/* Line buffering disabled, Pass on
+					 * everty thing to me 		*/
+	keypad(stdscr, TRUE);		/* I need that nifty F1 	*/
 
-        height = 3;
-        width = 10;
-        starty = (LINES - height) / 2;  /* Calculating for a center placement */
-        startx = (COLS - width) / 2;    /* of the window                */
-        printw("Press F1 to exit");
-        refresh();
-        my_win = create_newwin(height, width, starty, startx);
+	height = 3;
+	width = 10;
+	starty = (LINES - height) / 2;	/* Calculating for a center placement */
+	startx = (COLS - width) / 2;	/* of the window		*/
+	printw("Press F1 to exit");
+	refresh();
+	my_win = create_newwin(height, width, starty, startx);
 
-        while((ch = getch()) != KEY_F(1))
-        {       switch(ch)
-                {       case KEY_LEFT:
-                                destroy_win(my_win);
-                                my_win = create_newwin(height, width, starty,--startx);
-                                break;
-                        case KEY_RIGHT:
-                                destroy_win(my_win);
-                                my_win = create_newwin(height, width, starty,++startx);
-                                break;
-                        case KEY_UP:
-                                destroy_win(my_win);
-                                my_win = create_newwin(height, width, --starty,startx);
-                                break;
-                        case KEY_DOWN:
-                                destroy_win(my_win);
-                                my_win = create_newwin(height, width, ++starty,startx);
-                                break;  
-                }
-        }
-                
-        endwin();                       /* End curses mode                */
-        return 0;
+	while((ch = getch()) != KEY_F(1))
+	{	switch(ch)
+		{	case KEY_LEFT:
+				destroy_win(my_win);
+				my_win = create_newwin(height, width, starty,--startx);
+				break;
+			case KEY_RIGHT:
+				destroy_win(my_win);
+				my_win = create_newwin(height, width, starty,++startx);
+				break;
+			case KEY_UP:
+				destroy_win(my_win);
+				my_win = create_newwin(height, width, --starty,startx);
+				break;
+			case KEY_DOWN:
+				destroy_win(my_win);
+				my_win = create_newwin(height, width, ++starty,startx);
+				break;	
+		}
+	}
+		
+	endwin();			/* End curses mode		  */
+	return 0;
 }
 
 WINDOW *create_newwin(int height, int width, int starty, int startx)
-{       WINDOW *local_win;
+{	WINDOW *local_win;
 
-        local_win = newwin(height, width, starty, startx);
-        box(local_win, 0 , 0);          /* 0, 0 gives default characters 
-                                         * for the vertical and horizontal
-                                         * lines                        */
-        wrefresh(local_win);            /* Show that box                */
+	local_win = newwin(height, width, starty, startx);
+	box(local_win, 0 , 0);		/* 0, 0 gives default characters 
+					 * for the vertical and horizontal
+					 * lines			*/
+	wrefresh(local_win);		/* Show that box 		*/
 
-        return local_win;
+	return local_win;
 }
 
 void destroy_win(WINDOW *local_win)
-{       
-        /* box(local_win, ' ', ' '); : This won't produce the desired
-         * result of erasing the window. It will leave it's four corners 
-         * and so an ugly remnant of window. 
-         */
-        wborder(local_win, ' ', ' ', ' ',' ',' ',' ',' ',' ');
-        /* The parameters taken are 
-         * 1. win: the window on which to operate
-         * 2. ls: character to be used for the left side of the window 
-         * 3. rs: character to be used for the right side of the window 
-         * 4. ts: character to be used for the top side of the window 
-         * 5. bs: character to be used for the bottom side of the window 
-         * 6. tl: character to be used for the top left corner of the window 
-         * 7. tr: character to be used for the top right corner of the window 
-         * 8. bl: character to be used for the bottom left corner of the window 
-         * 9. br: character to be used for the bottom right corner of the window
-         */
-        wrefresh(local_win);
-        delwin(local_win);
-}
-
-
-
-
-
-

9.3. -Explanation

-

Don't scream. I know it's a big example. But I have to explain -some important things here :-). This program creates a rectangular -window that can be moved with left, right, up, down arrow keys. It -repeatedly creates and destroys windows as user press a key. Don't -go beyond the screen limits. Checking for those limits is left as -an exercise for the reader. Let's dissect it by line by line.

-

The create_newwin() function creates -a window with newwin() and displays a -border around it with box. The function destroy_win() first erases the window from screen -by painting a border with ' ' character and then calling -delwin() to deallocate memory related to -it. Depending on the key the user presses, starty or startx is -changed and a new window is created.

-

In the destroy_win, as you can see, I used wborder instead of -box. The reason is written in the comments (You missed it. I know. -Read the code :-)). wborder draws a border around the window with -the characters given to it as the 4 corner points and the 4 lines. -To put it clearly, if you have called wborder as below:

- - - - -
-
-    wborder(win, '|', '|', '-', '-', '+', '+', '+', '+');
-
-

it produces some thing like

- - - - -
-
-    +------------+
+{	
+	/* box(local_win, ' ', ' '); : This won't produce the desired
+	 * result of erasing the window. It will leave it's four corners 
+	 * and so an ugly remnant of window. 
+	 */
+	wborder(local_win, ' ', ' ', ' ',' ',' ',' ',' ',' ');
+	/* The parameters taken are 
+	 * 1. win: the window on which to operate
+	 * 2. ls: character to be used for the left side of the window 
+	 * 3. rs: character to be used for the right side of the window 
+	 * 4. ts: character to be used for the top side of the window 
+	 * 5. bs: character to be used for the bottom side of the window 
+	 * 6. tl: character to be used for the top left corner of the window 
+	 * 7. tr: character to be used for the top right corner of the window 
+	 * 8. bl: character to be used for the bottom left corner of the window 
+	 * 9. br: character to be used for the bottom right corner of the window
+	 */
+	wrefresh(local_win);
+	delwin(local_win);
+}

9.3. Explanation

Don't scream. I know it's a big example. But I have to explain some important +things here :-). This program creates a rectangular window that can be moved +with left, right, up, down arrow keys. It repeatedly creates and destroys +windows as user press a key. Don't go beyond the screen limits. Checking for +those limits is left as an exercise for the reader. Let's dissect it by line by line.

The create_newwin() function creates a window +with newwin() and displays a border around it +with box. The function destroy_win() first +erases the window from screen by painting a border with ' ' character and then +calling delwin() to deallocate memory related +to it. Depending on the key the user presses, starty or startx is changed and a +new window is created.

In the destroy_win, as you can see, I used wborder instead of box. The reason is +written in the comments (You missed it. I know. Read the code :-)). wborder +draws a border around the window with the characters given to it as the 4 corner +points and the 4 lines. To put it clearly, if you have called wborder as below: +

    wborder(win, '|', '|', '-', '-', '+', '+', '+', '+');

it produces some thing like

    +------------+
     |            |
     |            |
     |            |
     |            |
     |            |
     |            |
-    +------------+
-
-
-
-
-

9.4. The -other stuff in the example

-

You can also see in the above examples, that I have used the -variables COLS, LINES which are initialized to the screen sizes -after initscr(). They can be useful in finding screen dimensions -and finding the center co-ordinate of the screen as above. The -function getch() as usual gets the key -from keyboard and according to the key it does the corresponding -work. This type of switch- case is very common in any GUI based -programs.

-
-
-
-

9.5. Other Border functions

-

Above program is grossly inefficient in that with each press of -a key, a window is destroyed and another is created. So let's write -a more efficient program which uses other border related -functions.

-

The following program uses mvhline() -and mvvline() to achieve similar effect. -These two functions are simple. They create a horizontal or -vertical line of the specified length at the specified -position.

-
-

Example 8. More border functions

- - - - -
-
-#include <ncurses.h>
+    +------------+

9.4. The other stuff in the example

You can also see in the above examples, that I have used the variables COLS, +LINES which are initialized to the screen sizes after initscr(). They can be +useful in finding screen dimensions and finding the center co-ordinate of the +screen as above. The function getch() as usual +gets the key from keyboard and according to the key it does the corresponding +work. This type of switch- case is very common in any GUI based programs.


9.5. Other Border functions

Above program is grossly inefficient in that with each press of a key, a window +is destroyed and another is created. So let's write a more efficient program +which uses other border related functions.

The following program uses mvhline() and +mvvline() to achieve similar effect. These two +functions are simple. They create a horizontal or vertical line of the specified +length at the specified position.

Example 8. More border functions

#include <ncurses.h>
 
 typedef struct _win_border_struct {
-        chtype  ls, rs, ts, bs, 
-                tl, tr, bl, br;
+	chtype 	ls, rs, ts, bs, 
+	 	tl, tr, bl, br;
 }WIN_BORDER;
 
 typedef struct _WIN_struct {
 
-        int startx, starty;
-        int height, width;
-        WIN_BORDER border;
+	int startx, starty;
+	int height, width;
+	WIN_BORDER border;
 }WIN;
 
 void init_win_params(WIN *p_win);
@@ -1925,319 +3195,380 @@ void print_win_params(WIN *p_win);
 void create_box(WIN *win, bool flag);
 
 int main(int argc, char *argv[])
-{       WIN win;
-        int ch;
+{	WIN win;
+	int ch;
 
-        initscr();                      /* Start curses mode            */
-        start_color();                  /* Start the color functionality */
-        cbreak();                       /* Line buffering disabled, Pass on
-                                         * everty thing to me           */
-        keypad(stdscr, TRUE);           /* I need that nifty F1         */
-        noecho();
-        init_pair(1, COLOR_CYAN, COLOR_BLACK);
+	initscr();			/* Start curses mode 		*/
+	start_color();			/* Start the color functionality */
+	cbreak();			/* Line buffering disabled, Pass on
+					 * everty thing to me 		*/
+	keypad(stdscr, TRUE);		/* I need that nifty F1 	*/
+	noecho();
+	init_pair(1, COLOR_CYAN, COLOR_BLACK);
 
-        /* Initialize the window parameters */
-        init_win_params(&win);
-        print_win_params(&win);
+	/* Initialize the window parameters */
+	init_win_params(&win);
+	print_win_params(&win);
 
-        attron(COLOR_PAIR(1));
-        printw("Press F1 to exit");
-        refresh();
-        attroff(COLOR_PAIR(1));
-        
-        create_box(&win, TRUE);
-        while((ch = getch()) != KEY_F(1))
-        {       switch(ch)
-                {       case KEY_LEFT:
-                                create_box(&win, FALSE);
-                                --win.startx;
-                                create_box(&win, TRUE);
-                                break;
-                        case KEY_RIGHT:
-                                create_box(&win, FALSE);
-                                ++win.startx;
-                                create_box(&win, TRUE);
-                                break;
-                        case KEY_UP:
-                                create_box(&win, FALSE);
-                                --win.starty;
-                                create_box(&win, TRUE);
-                                break;
-                        case KEY_DOWN:
-                                create_box(&win, FALSE);
-                                ++win.starty;
-                                create_box(&win, TRUE);
-                                break;  
-                }
-        }
-        endwin();                       /* End curses mode                */
-        return 0;
+	attron(COLOR_PAIR(1));
+	printw("Press F1 to exit");
+	refresh();
+	attroff(COLOR_PAIR(1));
+	
+	create_box(&win, TRUE);
+	while((ch = getch()) != KEY_F(1))
+	{	switch(ch)
+		{	case KEY_LEFT:
+				create_box(&win, FALSE);
+				--win.startx;
+				create_box(&win, TRUE);
+				break;
+			case KEY_RIGHT:
+				create_box(&win, FALSE);
+				++win.startx;
+				create_box(&win, TRUE);
+				break;
+			case KEY_UP:
+				create_box(&win, FALSE);
+				--win.starty;
+				create_box(&win, TRUE);
+				break;
+			case KEY_DOWN:
+				create_box(&win, FALSE);
+				++win.starty;
+				create_box(&win, TRUE);
+				break;	
+		}
+	}
+	endwin();			/* End curses mode		  */
+	return 0;
 }
 void init_win_params(WIN *p_win)
 {
-        p_win->height = 3;
-        p_win->width = 10;
-        p_win->starty = (LINES - p_win->height)/2;      
-        p_win->startx = (COLS - p_win->width)/2;
+	p_win->height = 3;
+	p_win->width = 10;
+	p_win->starty = (LINES - p_win->height)/2;	
+	p_win->startx = (COLS - p_win->width)/2;
 
-        p_win->border.ls = '|';
-        p_win->border.rs = '|';
-        p_win->border.ts = '-';
-        p_win->border.bs = '-';
-        p_win->border.tl = '+';
-        p_win->border.tr = '+';
-        p_win->border.bl = '+';
-        p_win->border.br = '+';
+	p_win->border.ls = '|';
+	p_win->border.rs = '|';
+	p_win->border.ts = '-';
+	p_win->border.bs = '-';
+	p_win->border.tl = '+';
+	p_win->border.tr = '+';
+	p_win->border.bl = '+';
+	p_win->border.br = '+';
 
 }
 void print_win_params(WIN *p_win)
 {
 #ifdef _DEBUG
-        mvprintw(25, 0, "%d %d %d %d", p_win->startx, p_win->starty, 
-                                p_win->width, p_win->height);
-        refresh();
+	mvprintw(25, 0, "%d %d %d %d", p_win->startx, p_win->starty, 
+				p_win->width, p_win->height);
+	refresh();
 #endif
 }
 void create_box(WIN *p_win, bool flag)
-{       int i, j;
-        int x, y, w, h;
+{	int i, j;
+	int x, y, w, h;
 
-        x = p_win->startx;
-        y = p_win->starty;
-        w = p_win->width;
-        h = p_win->height;
+	x = p_win->startx;
+	y = p_win->starty;
+	w = p_win->width;
+	h = p_win->height;
 
-        if(flag == TRUE)
-        {       mvaddch(y, x, p_win->border.tl);
-                mvaddch(y, x + w, p_win->border.tr);
-                mvaddch(y + h, x, p_win->border.bl);
-                mvaddch(y + h, x + w, p_win->border.br);
-                mvhline(y, x + 1, p_win->border.ts, w - 1);
-                mvhline(y + h, x + 1, p_win->border.bs, w - 1);
-                mvvline(y + 1, x, p_win->border.ls, h - 1);
-                mvvline(y + 1, x + w, p_win->border.rs, h - 1);
+	if(flag == TRUE)
+	{	mvaddch(y, x, p_win->border.tl);
+		mvaddch(y, x + w, p_win->border.tr);
+		mvaddch(y + h, x, p_win->border.bl);
+		mvaddch(y + h, x + w, p_win->border.br);
+		mvhline(y, x + 1, p_win->border.ts, w - 1);
+		mvhline(y + h, x + 1, p_win->border.bs, w - 1);
+		mvvline(y + 1, x, p_win->border.ls, h - 1);
+		mvvline(y + 1, x + w, p_win->border.rs, h - 1);
 
-        }
-        else
-                for(j = y; j <= y + h; ++j)
-                        for(i = x; i <= x + w; ++i)
-                                mvaddch(j, i, ' ');
-                                
-        refresh();
+	}
+	else
+		for(j = y; j <= y + h; ++j)
+			for(i = x; i <= x + w; ++i)
+				mvaddch(j, i, ' ');
+				
+	refresh();
 
-}
-
-
-
-
-
-
-

10. Colors

-
-

10.1. The -basics

-

Life seems dull with no colors. Curses has a nice mechanism to -handle colors. Let's get into the thick of the things with a small -program.

-
-

Example 9. A Simple Color example

- - - - -
-
-#include <ncurses.h>
+}

10. Colors

10.1. The basics

Life seems dull with no colors. Curses has a nice mechanism to handle colors. +Let's get into the thick of the things with a small program.

Example 9. A Simple Color example

#include <ncurses.h>
 
 void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string);
 int main(int argc, char *argv[])
-{       initscr();                      /* Start curses mode            */
-        if(has_colors() == FALSE)
-        {       endwin();
-                printf("Your terminal does not support color\n");
-                exit(1);
-        }
-        start_color();                  /* Start color                  */
-        init_pair(1, COLOR_RED, COLOR_BLACK);
+{	initscr();			/* Start curses mode 		*/
+	if(has_colors() == FALSE)
+	{	endwin();
+		printf("Your terminal does not support color\n");
+		exit(1);
+	}
+	start_color();			/* Start color 			*/
+	init_pair(1, COLOR_RED, COLOR_BLACK);
 
-        attron(COLOR_PAIR(1));
-        print_in_middle(stdscr, LINES / 2, 0, 0, "Viola !!! In color ...");
-        attroff(COLOR_PAIR(1));
-        getch();
-        endwin();
+	attron(COLOR_PAIR(1));
+	print_in_middle(stdscr, LINES / 2, 0, 0, "Viola !!! In color ...");
+	attroff(COLOR_PAIR(1));
+    	getch();
+	endwin();
 }
 void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string)
-{       int length, x, y;
-        float temp;
+{	int length, x, y;
+	float temp;
 
-        if(win == NULL)
-                win = stdscr;
-        getyx(win, y, x);
-        if(startx != 0)
-                x = startx;
-        if(starty != 0)
-                y = starty;
-        if(width == 0)
-                width = 80;
+	if(win == NULL)
+		win = stdscr;
+	getyx(win, y, x);
+	if(startx != 0)
+		x = startx;
+	if(starty != 0)
+		y = starty;
+	if(width == 0)
+		width = 80;
 
-        length = strlen(string);
-        temp = (width - length)/ 2;
-        x = startx + (int)temp;
-        mvwprintw(win, y, x, "%s", string);
-        refresh();
+	length = strlen(string);
+	temp = (width - length)/ 2;
+	x = startx + (int)temp;
+	mvwprintw(win, y, x, "%s", string);
+	refresh();
 }
-
-
-
-

As you can see, to start using color, you should first call the -function start_color(). After that, you -can use color capabilities of your terminals using various -functions. To find out whether a terminal has color capabilities or -not, you can use has_colors() function, -which returns FALSE if the terminal does not support color.

-

Curses initializes all the colors supported by terminal when -start_color() is called. These can be accessed by the define -constants like COLOR_BLACK etc. Now to -actually start using colors, you have to define pairs. Colors are -always used in pairs. That means you have to use the function -init_pair() to define the foreground and -background for the pair number you give. After that that pair -number can be used as a normal attribute with COLOR_PAIR()function. This may seem to be -cumbersome at first. But this elegant solution allows us to manage -color pairs very easily. To appreciate it, you have to look into -the the source code of "dialog", a utility for displaying dialog -boxes from shell scripts. The developers have defined foreground -and background combinations for all the colors they might need and -initialized at the beginning. This makes it very easy to set -attributes just by accessing a pair which we already have defined -as a constant.

-

The following colors are defined in curses.h. You can use these as parameters for -various color functions.

- - - - -
-
-        COLOR_BLACK   0
+

As you can see, to start using color, you should first call the function + start_color(). After that, you can use color +capabilities of your terminals using various functions. To find out whether a +terminal has color capabilities or not, you can use +has_colors() function, which returns FALSE if +the terminal does not support color.

Curses initializes all the colors supported by terminal when start_color() is +called. These can be accessed by the define constants like +COLOR_BLACK etc. Now to actually start using +colors, you have to define pairs. Colors are always used in pairs. That means +you have to use the function init_pair() to +define the foreground and background for the pair number you give. After that +that pair number can be used as a normal attribute with COLOR_PAIR()function. This may seem to be cumbersome at first. +But this elegant solution allows us to manage color pairs very easily. To +appreciate it, you have to look into the the source code of "dialog", a utility +for displaying dialog boxes from shell scripts. The developers have defined +foreground and background combinations for all the colors they might need and +initialized at the beginning. This makes it very easy to set attributes just by +accessing a pair which we already have defined as a constant.

The following colors are defined in curses.h. +You can use these as parameters for various color functions. +

        COLOR_BLACK   0
         COLOR_RED     1
         COLOR_GREEN   2
         COLOR_YELLOW  3
         COLOR_BLUE    4
         COLOR_MAGENTA 5
         COLOR_CYAN    6
-        COLOR_WHITE   7
-
-
-
-
-

10.2. Changing Color Definitions

-

The function init_color()can be used -to change the rgb values for the colors defined by curses -initially. Say you wanted to lighten the intensity of red color by -a minuscule. Then you can use this function as

- - - - -
-
-    init_color(COLOR_RED, 700, 0, 0);
+        COLOR_WHITE   7


10.2. Changing Color Definitions

The function init_color()can be used to change +the rgb values for the colors defined by curses initially. Say you wanted to +lighten the intensity of red color by a minuscule. Then you can use this +function as

    init_color(COLOR_RED, 700, 0, 0);
     /* param 1     : color name
-     * param 2, 3, 4 : rgb content min = 0, max = 1000 */
-
-

If your terminal cannot change the color definitions, the -function returns ERR. The function can_change_color() can be used to find out whether -the terminal has the capability of changing color content or not. -The rgb content is scaled from 0 to 1000. Initially RED color is -defined with content 1000(r), 0(g), 0(b).

-
-
-
-

10.3. -Color Content

-

The functions color_content() and -pair_content() can be used to find the -color content and foreground, background combination for the -pair.

-
-
-
-
-

11. Interfacing with the -key board

-
-

11.1. The -Basics

-

No GUI is complete without a strong user interface and to -interact with the user, a curses program should be sensitive to key -presses or the mouse actions done by the user. Let's deal with the -keys first.

-

As you have seen in almost all of the above examples, it's very -easy to get key input from the user. A simple way of getting key -presses is to use getch() function. The -cbreak mode should be enabled to read keys when you are interested -in reading individual key hits rather than complete lines of text -(which usually end with a carriage return). keypad should be -enabled to get the Functions keys, arrow keys etc. See the -initialization section for details.

-

getch() returns an integer -corresponding to the key pressed. If it is a normal character, the -integer value will be equivalent to the character. Otherwise it -returns a number which can be matched with the constants defined in -curses.h. For example if the user -presses F1, the integer returned is 265. This can be checked using -the macro KEY_F() defined in curses.h. This makes reading keys -portable and easy to manage.

-

For example, if you call getch() like this

- - - - -
-
-    int ch;
+     * param 2, 3, 4 : rgb content min = 0, max = 1000 */

If your terminal cannot change the color definitions, the function returns ERR. +The function can_change_color() can be used to +find out whether the terminal has the capability of changing color content or +not. The rgb content is scaled from 0 to 1000. Initially RED color is defined +with content 1000(r), 0(g), 0(b).


10.3. Color Content

The functions color_content() and +pair_content() can be used to find the color +content and foreground, background combination for the pair.


11. Interfacing with the key board

11.1. The Basics

No GUI is complete without a strong user interface and to interact with the +user, a curses program should be sensitive to key presses or the mouse actions +done by the user. Let's deal with the keys first.

As you have seen in almost all of the above examples, it's very easy to get key +input from the user. A simple way of getting key presses is to use +getch() function. The cbreak mode should be +enabled to read keys when you are interested in reading individual key hits +rather than complete lines of text (which usually end with a carriage return). +keypad should be enabled to get the Functions keys, arrow keys etc. See the +initialization section for details.

getch() returns an integer corresponding to the +key pressed. If it is a normal character, the integer value will be equivalent +to the character. Otherwise it returns a number which can be matched with the +constants defined in curses.h. For example if +the user presses F1, the integer returned is 265. This can be checked using the +macro KEY_F() defined in curses.h. This makes reading keys portable and easy to +manage.

For example, if you call getch() like this

    int ch;
 
-    ch = getch();
-
-

getch() will wait for the user to press a key, (unless you -specified a timeout) and when user presses a key, the corresponding -integer is returned. Then you can check the value returned with the -constants defined in curses.h to match against the keys you -want.

-

The following code piece will do that job.

- - - - -
-
-    if(ch == KEY_LEFT)
-        printw("Left arrow is pressed\n");
-
-

Let's write a small program which creates a menu which can be -navigated by up and down arrows.

-
-
-
-

11.2. A -Simple Key Usage example

-
-

Example 10. A Simple Key Usage example

- - - - -
-
-#include <stdio.h>
-#include <ncurses.h>
+    ch = getch();

getch() will wait for the user to press a key, (unless you specified a timeout) +and when user presses a key, the corresponding integer is returned. Then you can +check the value returned with the constants defined in curses.h to match against +the keys you want.

The following code piece will do that job.

    if(ch == KEY_LEFT)
+        printw("Left arrow is pressed\n");

Let's write a small program which creates a menu which can be navigated by up +and down arrows.


11.2. A Simple Key Usage example

Example 10. A Simple Key Usage example

#include <stdio.h>
+#include <ncurses.h>
 
 #define WIDTH 30
 #define HEIGHT 10 
@@ -2246,127 +3577,132 @@ int startx = 0;
 int starty = 0;
 
 char *choices[] = { 
-                        "Choice 1",
-                        "Choice 2",
-                        "Choice 3",
-                        "Choice 4",
-                        "Exit",
-                  };
+			"Choice 1",
+			"Choice 2",
+			"Choice 3",
+			"Choice 4",
+			"Exit",
+		  };
 int n_choices = sizeof(choices) / sizeof(char *);
 void print_menu(WINDOW *menu_win, int highlight);
 
 int main()
-{       WINDOW *menu_win;
-        int highlight = 1;
-        int choice = 0;
-        int c;
+{	WINDOW *menu_win;
+	int highlight = 1;
+	int choice = 0;
+	int c;
 
-        initscr();
-        clear();
-        noecho();
-        cbreak();       /* Line buffering disabled. pass on everything */
-        startx = (80 - WIDTH) / 2;
-        starty = (24 - HEIGHT) / 2;
-                
-        menu_win = newwin(HEIGHT, WIDTH, starty, startx);
-        keypad(menu_win, TRUE);
-        mvprintw(0, 0, "Use arrow keys to go up and down, Press enter to select a choice");
-        refresh();
-        print_menu(menu_win, highlight);
-        while(1)
-        {       c = wgetch(menu_win);
-                switch(c)
-                {       case KEY_UP:
-                                if(highlight == 1)
-                                        highlight = n_choices;
-                                else
-                                        --highlight;
-                                break;
-                        case KEY_DOWN:
-                                if(highlight == n_choices)
-                                        highlight = 1;
-                                else 
-                                        ++highlight;
-                                break;
-                        case 10:
-                                choice = highlight;
-                                break;
-                        default:
-                                mvprintw(24, 0, "Charcter pressed is = %3d Hopefully it can be printed as '%c'", c, c);
-                                refresh();
-                                break;
-                }
-                print_menu(menu_win, highlight);
-                if(choice != 0) /* User did a choice come out of the infinite loop */
-                        break;
-        }       
-        mvprintw(23, 0, "You chose choice %d with choice string %s\n", choice, choices[choice - 1]);
-        clrtoeol();
-        refresh();
-        endwin();
-        return 0;
+	initscr();
+	clear();
+	noecho();
+	cbreak();	/* Line buffering disabled. pass on everything */
+	startx = (80 - WIDTH) / 2;
+	starty = (24 - HEIGHT) / 2;
+		
+	menu_win = newwin(HEIGHT, WIDTH, starty, startx);
+	keypad(menu_win, TRUE);
+	mvprintw(0, 0, "Use arrow keys to go up and down, Press enter to select a choice");
+	refresh();
+	print_menu(menu_win, highlight);
+	while(1)
+	{	c = wgetch(menu_win);
+		switch(c)
+		{	case KEY_UP:
+				if(highlight == 1)
+					highlight = n_choices;
+				else
+					--highlight;
+				break;
+			case KEY_DOWN:
+				if(highlight == n_choices)
+					highlight = 1;
+				else 
+					++highlight;
+				break;
+			case 10:
+				choice = highlight;
+				break;
+			default:
+				mvprintw(24, 0, "Charcter pressed is = %3d Hopefully it can be printed as '%c'", c, c);
+				refresh();
+				break;
+		}
+		print_menu(menu_win, highlight);
+		if(choice != 0)	/* User did a choice come out of the infinite loop */
+			break;
+	}	
+	mvprintw(23, 0, "You chose choice %d with choice string %s\n", choice, choices[choice - 1]);
+	clrtoeol();
+	refresh();
+	endwin();
+	return 0;
 }
 
 
 void print_menu(WINDOW *menu_win, int highlight)
 {
-        int x, y, i;    
+	int x, y, i;	
 
-        x = 2;
-        y = 2;
-        box(menu_win, 0, 0);
-        for(i = 0; i < n_choices; ++i)
-        {       if(highlight == i + 1) /* High light the present choice */
-                {       wattron(menu_win, A_REVERSE); 
-                        mvwprintw(menu_win, y, x, "%s", choices[i]);
-                        wattroff(menu_win, A_REVERSE);
-                }
-                else
-                        mvwprintw(menu_win, y, x, "%s", choices[i]);
-                ++y;
-        }
-        wrefresh(menu_win);
+	x = 2;
+	y = 2;
+	box(menu_win, 0, 0);
+	for(i = 0; i < n_choices; ++i)
+	{	if(highlight == i + 1) /* High light the present choice */
+		{	wattron(menu_win, A_REVERSE); 
+			mvwprintw(menu_win, y, x, "%s", choices[i]);
+			wattroff(menu_win, A_REVERSE);
+		}
+		else
+			mvwprintw(menu_win, y, x, "%s", choices[i]);
+		++y;
+	}
+	wrefresh(menu_win);
 }
-
-
-
-
-
-
-
-

12. Interfacing with -the mouse

-

Now that you have seen how to get keys, lets do the same thing -from mouse. Usually each UI allows the user to interact with both -keyboard and mouse.

-
-
-

12.1. The -Basics

-

Before you do any thing else, the events you want to receive -have to be enabled with mousemask().

- - - - -
-
-    mousemask(  mmask_t newmask,    /* The events you want to listen to */
-                mmask_t *oldmask)    /* The old events mask                */
-
-

The first parameter to above function is a bit mask of events -you would like to listen. By default, all the events are turned -off. The bit mask ALL_MOUSE_EVENTS can -be used to get all the events.

-

The following are all the event masks:

- - - - -
-
-    Name            Description
+

12. Interfacing with the mouse

Now that you have seen how to get keys, lets do the same thing from mouse. +Usually each UI allows the user to interact with both keyboard and mouse.


12.1. The Basics

Before you do any thing else, the events you want to receive have to be enabled +with mousemask().

    mousemask(  mmask_t newmask,    /* The events you want to listen to */
+                mmask_t *oldmask)    /* The old events mask                */

The first parameter to above function is a bit mask of events you would like to +listen. By default, all the events are turned off. The bit mask ALL_MOUSE_EVENTS can be used to get all the events.

The following are all the event masks:

    Name            Description
        ---------------------------------------------------------------------
        BUTTON1_PRESSED          mouse button 1 down
        BUTTON1_RELEASED         mouse button 1 up
@@ -2392,79 +3728,85 @@ be used to get all the events.

BUTTON_CTRL control was down during button state change BUTTON_ALT alt was down during button state change ALL_MOUSE_EVENTS report all button state changes - REPORT_MOUSE_POSITION report mouse movement
-
-
-
-
-

12.2. -Getting the events

-

Once a class of mouse events have been enabled, getch() class of -functions return KEY_MOUSE every time some mouse event happens. -Then the mouse event can be retrieved with getmouse().

-

The code approximately looks like this:

- - - - -
-
-    MEVENT event;
+       REPORT_MOUSE_POSITION    report mouse movement

12.2. Getting the events

Once a class of mouse events have been enabled, getch() class of functions +return KEY_MOUSE every time some mouse event happens. Then the mouse event can +be retrieved with getmouse().

The code approximately looks like this:

    MEVENT event;
 
     ch = getch();
     if(ch == KEY_MOUSE)
         if(getmouse(&event) == OK)
             .    /* Do some thing with the event */
             .
-            .
-
-

getmouse() returns the event into the pointer given to it. It's -a structure which contains

- - - - -
-
-    typedef struct
+            .

+getmouse() returns the event into the pointer given to it. It's a structure +which contains

    typedef struct
     {
         short id;         /* ID to distinguish multiple devices */
         int x, y, z;      /* event coordinates */
         mmask_t bstate;   /* button state bits */
-    }    
-
-

The bstate is the main variable we -are interested in. It tells the button state of the mouse.

-

Then with a code snippet like the following, we can find out -what happened.

- - - - -
-
-    if(event.bstate & BUTTON1_PRESSED)
-        printw("Left Button Pressed");
-
-
-
-
-

12.3. -Putting it all Together

-

That's pretty much interfacing with mouse. Let's create the same -menu and enable mouse interaction. To make things simpler, key -handling is removed.

-
-

Example 11. Access the menu with mouse !!!

- - - - -
-
-#include <ncurses.h>
+    }    

The bstate is the main variable we are +interested in. It tells the button state of the mouse.

Then with a code snippet like the following, we can find out what happened.

    if(event.bstate & BUTTON1_PRESSED)
+        printw("Left Button Pressed");

12.3. Putting it all Together

That's pretty much interfacing with mouse. Let's create the same menu and enable +mouse interaction. To make things simpler, key handling is removed.

Example 11. Access the menu with mouse !!!

#include <ncurses.h>
 
 #define WIDTH 30
 #define HEIGHT 10 
@@ -2472,12 +3814,12 @@ handling is removed.

int startx = 0; int starty = 0; -char *choices[] = { "Choice 1", - "Choice 2", - "Choice 3", - "Choice 4", - "Exit", - }; +char *choices[] = { "Choice 1", + "Choice 2", + "Choice 3", + "Choice 4", + "Exit", + }; int n_choices = sizeof(choices) / sizeof(char *); @@ -2485,270 +3827,338 @@ void print_menu(WINDOW *menu_win, int highlight); void report_choice(int mouse_x, int mouse_y, int *p_choice); int main() -{ int c, choice = 0; - WINDOW *menu_win; - MEVENT event; +{ int c, choice = 0; + WINDOW *menu_win; + MEVENT event; - /* Initialize curses */ - initscr(); - clear(); - noecho(); - cbreak(); //Line buffering disabled. pass on everything + /* Initialize curses */ + initscr(); + clear(); + noecho(); + cbreak(); //Line buffering disabled. pass on everything - /* Try to put the window in the middle of screen */ - startx = (80 - WIDTH) / 2; - starty = (24 - HEIGHT) / 2; - - attron(A_REVERSE); - mvprintw(23, 1, "Click on Exit to quit (Works best in a virtual console)"); - refresh(); - attroff(A_REVERSE); + /* Try to put the window in the middle of screen */ + startx = (80 - WIDTH) / 2; + starty = (24 - HEIGHT) / 2; + + attron(A_REVERSE); + mvprintw(23, 1, "Click on Exit to quit (Works best in a virtual console)"); + refresh(); + attroff(A_REVERSE); - /* Print the menu for the first time */ - menu_win = newwin(HEIGHT, WIDTH, starty, startx); - print_menu(menu_win, 1); - /* Get all the mouse events */ - mousemask(ALL_MOUSE_EVENTS, NULL); - - while(1) - { c = wgetch(menu_win); - switch(c) - { case KEY_MOUSE: - if(getmouse(&event) == OK) - { /* When the user clicks left mouse button */ - if(event.bstate & BUTTON1_PRESSED) - { report_choice(event.x + 1, event.y + 1, &choice); - if(choice == -1) //Exit chosen - goto end; - mvprintw(22, 1, "Choice made is : %d String Chosen is \"%10s\"", choice, choices[choice - 1]); - refresh(); - } - } - print_menu(menu_win, choice); - break; - } - } + /* Print the menu for the first time */ + menu_win = newwin(HEIGHT, WIDTH, starty, startx); + print_menu(menu_win, 1); + /* Get all the mouse events */ + mousemask(ALL_MOUSE_EVENTS, NULL); + + while(1) + { c = wgetch(menu_win); + switch(c) + { case KEY_MOUSE: + if(getmouse(&event) == OK) + { /* When the user clicks left mouse button */ + if(event.bstate & BUTTON1_PRESSED) + { report_choice(event.x + 1, event.y + 1, &choice); + if(choice == -1) //Exit chosen + goto end; + mvprintw(22, 1, "Choice made is : %d String Chosen is \"%10s\"", choice, choices[choice - 1]); + refresh(); + } + } + print_menu(menu_win, choice); + break; + } + } end: - endwin(); - return 0; + endwin(); + return 0; } void print_menu(WINDOW *menu_win, int highlight) { - int x, y, i; + int x, y, i; - x = 2; - y = 2; - box(menu_win, 0, 0); - for(i = 0; i < n_choices; ++i) - { if(highlight == i + 1) - { wattron(menu_win, A_REVERSE); - mvwprintw(menu_win, y, x, "%s", choices[i]); - wattroff(menu_win, A_REVERSE); - } - else - mvwprintw(menu_win, y, x, "%s", choices[i]); - ++y; - } - wrefresh(menu_win); + x = 2; + y = 2; + box(menu_win, 0, 0); + for(i = 0; i < n_choices; ++i) + { if(highlight == i + 1) + { wattron(menu_win, A_REVERSE); + mvwprintw(menu_win, y, x, "%s", choices[i]); + wattroff(menu_win, A_REVERSE); + } + else + mvwprintw(menu_win, y, x, "%s", choices[i]); + ++y; + } + wrefresh(menu_win); } /* Report the choice according to mouse position */ void report_choice(int mouse_x, int mouse_y, int *p_choice) -{ int i,j, choice; +{ int i,j, choice; - i = startx + 2; - j = starty + 3; - - for(choice = 0; choice < n_choices; ++choice) - if(mouse_y == j + choice && mouse_x >= i && mouse_x <= i + strlen(choices[choice])) - { if(choice == n_choices - 1) - *p_choice = -1; - else - *p_choice = choice + 1; - break; - } -}
-
-
-
-
-
-

12.4. Miscellaneous Functions

-

The functions mouse_trafo() and wmouse_trafo() can be used to -convert to mouse co-ordinates to screen relative co-ordinates. See -curs_mouse(3X) man page for details.

-

The mouseinterval function sets the maximum time (in thousands -of a second) that can elapse between press and release events in -order for them to be recognized as a click. This function returns -the previous interval value. The default is one fifth of a -second.

-
-
-
-
-

13. Screen -Manipulation

-

In this section, we will look into some functions, which allow -us to manage the screen efficiently and to write some fancy -programs. This is especially important in writing games.

-
-
-

13.1. getyx() -functions

-

The function getyx() can be used to -find out the present cursor co-ordinates. It will fill the values -of x and y co-ordinates in the arguments given to it. Since getyx() -is a macro you don't have to pass the address of the variables. It -can be called as

- - - - -
-
-    getyx(win, y, x);
+	i = startx + 2;
+	j = starty + 3;
+	
+	for(choice = 0; choice < n_choices; ++choice)
+		if(mouse_y == j + choice && mouse_x >= i && mouse_x <= i + strlen(choices[choice]))
+		{	if(choice == n_choices - 1)
+				*p_choice = -1;		
+			else
+				*p_choice = choice + 1;	
+			break;
+		}
+}

12.4. Miscellaneous Functions

The functions mouse_trafo() and wmouse_trafo() can be used to convert to mouse +co-ordinates to screen relative co-ordinates. See curs_mouse(3X) man page for details.

The mouseinterval function sets the maximum time (in thousands of a +second) that can elapse between press and release events in order for +them to be recognized as a click. This function returns the previous +interval value. The default is one fifth of a second.


13. Screen Manipulation

In this section, we will look into some functions, which allow us to manage the +screen efficiently and to write some fancy programs. This is especially +important in writing games.


13.1. getyx() functions

The function getyx() can be used to find out +the present cursor co-ordinates. It will fill the values of x and y co-ordinates +in the arguments given to it. Since getyx() is a macro you don't have to pass +the address of the variables. It can be called as

    getyx(win, y, x);
     /* win: window pointer
      *   y, x: y, x co-ordinates will be put into this variables 
-     */
-
-

The function getparyx() gets the beginning co-ordinates of the -sub window relative to the main window. This is some times useful -to update a sub window. When designing fancy stuff like writing -multiple menus, it becomes difficult to store the menu positions, -their first option co-ordinates etc. A simple solution to this -problem, is to create menus in sub windows and later find the -starting co-ordinates of the menus by using getparyx().

-

The functions getbegyx() and getmaxyx() store current window's -beginning and maximum co-ordinates. These functions are useful in -the same way as above in managing the windows and sub windows -effectively.

-
-
-
-

13.2. Screen -Dumping

-

While writing games, some times it becomes necessary to store -the state of the screen and restore it back to the same state. The -function scr_dump() can be used to dump the screen contents to a -file given as an argument. Later it can be restored by scr_restore -function. These two simple functions can be used effectively to -maintain a fast moving game with changing scenarios.

-
-
-
-

13.3. Window -Dumping

-

To store and restore windows, the functions putwin() and getwin() -can be used. putwin() puts the present -window state into a file, which can be later restored by -getwin().

-

The function copywin() can be used to -copy a window completely onto another window. It takes the source -and destination windows as parameters and according to the -rectangle specified, it copies the rectangular region from source -to destination window. It's last parameter specifies whether to -overwrite or just overlay the contents on to the destination -window. If this argument is true, then the copying is -non-destructive.

-
-
-
-
-

14. Miscellaneous -features

-

Now you know enough features to write a good curses program, -with all bells and whistles. There are some miscellaneous functions -which are useful in various cases. Let's go headlong into some of -those.

-
-
-

14.1. -curs_set()

-

This function can be used to make the cursor invisible. The -parameter to this function should be

- - - - -
-
-    0 : invisible      or
+     */

The function getparyx() gets the beginning co-ordinates of the sub window +relative to the main window. This is some times useful to update a sub window. +When designing fancy stuff like writing multiple menus, it becomes difficult to +store the menu positions, their first option co-ordinates etc. A simple solution +to this problem, is to create menus in sub windows and later find the starting +co-ordinates of the menus by using getparyx().

The functions getbegyx() and getmaxyx() store current window's beginning and +maximum co-ordinates. These functions are useful in the same way as above in +managing the windows and sub windows effectively.


13.2. Screen Dumping

While writing games, some times it becomes necessary to store the state of the +screen and restore it back to the same state. The function scr_dump() can be +used to dump the screen contents to a file given as an argument. Later it can be +restored by scr_restore function. These two simple functions can be used +effectively to maintain a fast moving game with changing scenarios.


13.3. Window Dumping

To store and restore windows, the functions +putwin() and getwin() can be used. putwin() puts +the present window state into a file, which can be later restored by +getwin().

+The function copywin() can be used to copy a +window completely onto another window. It takes the source and destination +windows as parameters and according to the rectangle specified, it copies the +rectangular region from source to destination window. It's last parameter +specifies whether to overwrite or just overlay the contents on to the +destination window. If this argument is true, then the copying is +non-destructive.


14. Miscellaneous features

Now you know enough features to write a good curses program, with all bells and +whistles. There are some miscellaneous functions which are useful in various +cases. Let's go headlong into some of those.


14.1. curs_set()

This function can be used to make the cursor invisible. The parameter to this +function should be

    0 : invisible      or
     1 : normal    or
-    2 : very visible.
-
-
-
-
-

14.2. -Temporarily Leaving Curses mode

-

Some times you may want to get back to cooked mode (normal line -buffering mode) temporarily. In such a case you will first need to -save the tty modes with a call to def_prog_mode() and then call endwin() to end the curses mode. This will leave -you in the original tty mode. To get back to curses once you are -done, call reset_prog_mode() . This -function returns the tty to the state stored by def_prog_mode(). Then do refresh(), and you are -back to the curses mode. Here is an example showing the sequence of -things to be done.

-
-

Example 12. Temporarily Leaving Curses Mode

- - - - -
-
-#include <ncurses.h>
+    2 : very visible.

14.2. Temporarily Leaving Curses mode

Some times you may want to get back to cooked mode (normal line buffering mode) +temporarily. In such a case you will first need to save the tty modes with a +call to def_prog_mode() and then call +endwin() to end the curses mode. This will +leave you in the original tty mode. To get back to curses once you are done, +call reset_prog_mode() . This function returns +the tty to the state stored by def_prog_mode(). Then do refresh(), and you are back to the curses mode. Here +is an example showing the sequence of things to be done.

Example 12. Temporarily Leaving Curses Mode

#include <ncurses.h>
 
 int main()
-{       
-        initscr();                      /* Start curses mode              */
-        printw("Hello World !!!\n");    /* Print Hello World              */
-        refresh();                      /* Print it on to the real screen */
-        def_prog_mode();                /* Save the tty modes             */
-        endwin();                       /* End curses mode temporarily    */
-        system("/bin/sh");              /* Do whatever you like in cooked mode */
-        reset_prog_mode();              /* Return to the previous tty mode*/
-                                        /* stored by def_prog_mode()      */
-        refresh();                      /* Do refresh() to restore the    */
-                                        /* Screen contents                */
-        printw("Another String\n");     /* Back to curses use the full    */
-        refresh();                      /* capabilities of curses         */
-        endwin();                       /* End curses mode                */
+{	
+	initscr();			/* Start curses mode 		  */
+	printw("Hello World !!!\n");	/* Print Hello World		  */
+	refresh();			/* Print it on to the real screen */
+	def_prog_mode();		/* Save the tty modes		  */
+	endwin();			/* End curses mode temporarily	  */
+	system("/bin/sh");		/* Do whatever you like in cooked mode */
+	reset_prog_mode();		/* Return to the previous tty mode*/
+					/* stored by def_prog_mode() 	  */
+	refresh();			/* Do refresh() to restore the	  */
+					/* Screen contents		  */
+	printw("Another String\n");	/* Back to curses use the full    */
+	refresh();			/* capabilities of curses	  */
+	endwin();			/* End curses mode		  */
 
-        return 0;
-}
-
-
-
-
-
-

14.3. ACS_ -variables

-

If you have ever programmed in DOS, you know about those nifty -characters in extended character set. They are printable only on -some terminals. NCURSES functions like box() use these characters. All these variables -start with ACS meaning alternative character set. You might have -noticed me using these characters in some of the programs above. -Here's an example showing all the characters.

-
-

Example 13. ACS Variables Example

- - - - -
-
-#include <ncurses.h>
+	return 0;
+}

14.3. ACS_ variables

If you have ever programmed in DOS, you know about those nifty characters in +extended character set. They are printable only on some terminals. NCURSES +functions like box() use these characters. All +these variables start with ACS meaning alternative character set. You might have +noticed me using these characters in some of the programs above. Here's an example +showing all the characters.

Example 13. ACS Variables Example

#include <ncurses.h>
 
 int main()
 {
@@ -2790,181 +4200,218 @@ int main()
         getch();
         endwin();
 
-        return 0;
-}
-
-
-
-
-
-
-

15. Other -libraries

-

Apart from the curses library, there are few text mode -libraries, which provide more functionality and a lot of features. -The following sections explain three standard libraries which are -usually distributed along with curses.

-
-
-
-

16. Panel -Library

-

Now that you are proficient in curses, you wanted to do some -thing big. You created a lot of overlapping windows to give a -professional windows-type look. Unfortunately, it soon becomes -difficult to manage these. The multiple refreshes, updates plunge -you into a nightmare. The overlapping windows create blotches, -whenever you forget to refresh the windows in the proper order.

-

Don't despair. There's an elegant solution provided in panels -library. In the words of developers of ncurses

-

When your interface design is such that windows may dive -deeper into the visibility stack or pop to the top at runtime, the -resulting book-keeping can be tedious and difficult to get right. -Hence the panels library.

-

If you have lot of overlapping windows, then panels library is -the way to go. It obviates the need of doing series of -wnoutrefresh(), doupdate() and relieves the burden of doing it -correctly(bottom up). The library maintains information about the -order of windows, their overlapping and update the screen properly. -So why wait? Let's take a close peek into panels.

-
-
-

16.1. The -Basics

-

Panel object is a window that is implicitly treated as part of a -deck including all other panel objects. The deck is treated as a -stack with the top panel being completely visible and the other -panels may or may not be obscured according to their positions. So -the basic idea is to create a stack of overlapping panels and use -panels library to display them correctly. There is a function -similar to refresh() which, when called , displays panels in the -correct order. Functions are provided to hide or show panels, move -panels, change its size etc.. The overlapping problem is managed by -the panels library during all the calls to these functions.

-

The general flow of a panel program goes like this:

-
    -
  1. -

    Create the windows (with newwin()) to be attached to the -panels.

    -
  2. -
  3. -

    Create panels with the chosen visibility order. Stack them up -according to the desired visibility. The function new_panel() is -used to created panels.

    -
  4. -
  5. -

    Call update_panels() to write the panels to the virtual screen -in correct visibility order. Do a doupdate() to show it on the -screen.

    -
  6. -
  7. -

    Mainpulate the panels with show_panel(), hide_panel(), -move_panel() etc. Make use of helper functions like panel_hidden() -and panel_window(). Make use of user pointer to store custom data -for a panel. Use the functions set_panel_userptr() and -panel_userptr() to set and get the user pointer for a panel.

    -
  8. -
  9. -

    When you are done with the panel use del_panel() to delete the -panel.

    -
  10. -
-

Let's make the concepts clear, with some programs. The following -is a simple program which creates 3 overlapping panels and shows -them on the screen.

-
-
-
-

16.2. -Compiling With the Panels Library

-

To use panels library functions, you have to include panel.h and -to link the program with panels library the flag -lpanel should be -added along with -lncurses in that order.

- - - - -
-
-    #include <panel.h>
+	return 0;
+}

15. Other libraries

Apart from the curses library, there are few text mode libraries, which provide +more functionality and a lot of features. The following sections explain three +standard libraries which are usually distributed along with curses.


16. Panel Library

Now that you are proficient in curses, you wanted to do some thing big. You +created a lot of overlapping windows to give a professional windows-type look. +Unfortunately, it soon becomes difficult to manage these. The multiple +refreshes, updates plunge you into a nightmare. The overlapping windows create +blotches, whenever you forget to refresh the windows in the proper order.

Don't despair. There's an elegant solution provided in panels library. In the +words of developers of ncurses

When your interface design is such that windows may dive deeper into the +visibility stack or pop to the top at runtime, the resulting book-keeping can be +tedious and difficult to get right. Hence the panels library.

If you have lot of overlapping windows, then panels library is the way to go. It +obviates the need of doing series of wnoutrefresh(), doupdate() and relieves the +burden of doing it correctly(bottom up). The library maintains information about +the order of windows, their overlapping and update the screen properly. So why +wait? Let's take a close peek into panels.


16.1. The Basics

Panel object is a window that is implicitly treated as part of a deck including +all other panel objects. The deck is treated as a stack with the top panel being +completely visible and the other panels may or may not be obscured according to +their positions. So the basic idea is to create a stack of overlapping panels +and use panels library to display them correctly. There is a function similar to +refresh() which, when called , displays panels in the correct order. Functions +are provided to hide or show panels, move panels, change its size etc.. The +overlapping problem is managed by the panels library during all the calls to +these functions.

The general flow of a panel program goes like this: + +

  1. Create the windows (with newwin()) to be attached to the panels.

  2. Create panels with the chosen visibility order. Stack them up according to the +desired visibility. The function new_panel() is used to created panels.

  3. Call update_panels() to write the panels to the virtual screen in correct +visibility order. Do a doupdate() to show it on the screen.

  4. Mainpulate the panels with show_panel(), hide_panel(), move_panel() etc. Make +use of helper functions like panel_hidden() and panel_window(). Make use of user +pointer to store custom data for a panel. Use the functions set_panel_userptr() +and panel_userptr() to set and get the user pointer for a panel.

  5. When you are done with the panel use del_panel() to delete the panel.

Let's make the concepts clear, with some programs. The following is a simple +program which creates 3 overlapping panels and shows them on the screen.


16.2. Compiling With the Panels Library

To use panels library functions, you have to include panel.h and to link the +program with panels library the flag -lpanel should be added along with +-lncurses in that order.

    #include <panel.h>
     .
     .
     .
 
-    compile and link: gcc <program file> -lpanel -lncurses
-
-
-

Example 14. Panel basics

- - - - -
-
-#include <panel.h>
+    compile and link: gcc <program file> -lpanel -lncurses

Example 14. Panel basics

#include <panel.h>
 
 int main()
-{       WINDOW *my_wins[3];
-        PANEL  *my_panels[3];
-        int lines = 10, cols = 40, y = 2, x = 4, i;
+{	WINDOW *my_wins[3];
+	PANEL  *my_panels[3];
+	int lines = 10, cols = 40, y = 2, x = 4, i;
 
-        initscr();
-        cbreak();
-        noecho();
+	initscr();
+	cbreak();
+	noecho();
 
-        /* Create windows for the panels */
-        my_wins[0] = newwin(lines, cols, y, x);
-        my_wins[1] = newwin(lines, cols, y + 1, x + 5);
-        my_wins[2] = newwin(lines, cols, y + 2, x + 10);
+	/* Create windows for the panels */
+	my_wins[0] = newwin(lines, cols, y, x);
+	my_wins[1] = newwin(lines, cols, y + 1, x + 5);
+	my_wins[2] = newwin(lines, cols, y + 2, x + 10);
 
-        /* 
-         * Create borders around the windows so that you can see the effect
-         * of panels
-         */
-        for(i = 0; i < 3; ++i)
-                box(my_wins[i], 0, 0);
+	/* 
+	 * Create borders around the windows so that you can see the effect
+	 * of panels
+	 */
+	for(i = 0; i < 3; ++i)
+		box(my_wins[i], 0, 0);
 
-        /* Attach a panel to each window */     /* Order is bottom up */
-        my_panels[0] = new_panel(my_wins[0]);   /* Push 0, order: stdscr-0 */
-        my_panels[1] = new_panel(my_wins[1]);   /* Push 1, order: stdscr-0-1 */
-        my_panels[2] = new_panel(my_wins[2]);   /* Push 2, order: stdscr-0-1-2 */
+	/* Attach a panel to each window */ 	/* Order is bottom up */
+	my_panels[0] = new_panel(my_wins[0]); 	/* Push 0, order: stdscr-0 */
+	my_panels[1] = new_panel(my_wins[1]); 	/* Push 1, order: stdscr-0-1 */
+	my_panels[2] = new_panel(my_wins[2]); 	/* Push 2, order: stdscr-0-1-2 */
 
-        /* Update the stacking order. 2nd panel will be on top */
-        update_panels();
+	/* Update the stacking order. 2nd panel will be on top */
+	update_panels();
 
-        /* Show it on the screen */
-        doupdate();
-        
-        getch();
-        endwin();
+	/* Show it on the screen */
+	doupdate();
+	
+	getch();
+	endwin();
 }
-
-
-
-

As you can see, above program follows a simple flow as -explained. The windows are created with newwin() and then they are -attached to panels with new_panel(). As we attach one panel after -another, the stack of panels gets updated. To put them on screen -update_panels() and doupdate() are called.

-
-
-
-

16.3. -Panel Window Browsing

-

A slightly complicated example is given below. This program -creates 3 windows which can be cycled through using tab. Have a -look at the code.

-
-

Example 15. Panel Window Browsing Example

- - - - -
-
-#include <panel.h>
+

As you can see, above program follows a simple flow as explained. The windows +are created with newwin() and then they are attached to panels with new_panel(). +As we attach one panel after another, the stack of panels gets updated. To put +them on screen update_panels() and doupdate() are called.


16.3. Panel Window Browsing

A slightly complicated example is given below. This program creates 3 +windows which can be cycled through using tab. Have a look at the code.

Example 15. Panel Window Browsing Example

#include <panel.h>
 
 #define NLINES 10
 #define NCOLS 40
@@ -2974,172 +4421,191 @@ void win_show(WINDOW *win, char *label, int label_color);
 void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
 
 int main()
-{       WINDOW *my_wins[3];
-        PANEL  *my_panels[3];
-        PANEL  *top;
-        int ch;
+{	WINDOW *my_wins[3];
+	PANEL  *my_panels[3];
+	PANEL  *top;
+	int ch;
 
-        /* Initialize curses */
-        initscr();
-        start_color();
-        cbreak();
-        noecho();
-        keypad(stdscr, TRUE);
+	/* Initialize curses */
+	initscr();
+	start_color();
+	cbreak();
+	noecho();
+	keypad(stdscr, TRUE);
 
-        /* Initialize all the colors */
-        init_pair(1, COLOR_RED, COLOR_BLACK);
-        init_pair(2, COLOR_GREEN, COLOR_BLACK);
-        init_pair(3, COLOR_BLUE, COLOR_BLACK);
-        init_pair(4, COLOR_CYAN, COLOR_BLACK);
+	/* Initialize all the colors */
+	init_pair(1, COLOR_RED, COLOR_BLACK);
+	init_pair(2, COLOR_GREEN, COLOR_BLACK);
+	init_pair(3, COLOR_BLUE, COLOR_BLACK);
+	init_pair(4, COLOR_CYAN, COLOR_BLACK);
 
-        init_wins(my_wins, 3);
-        
-        /* Attach a panel to each window */     /* Order is bottom up */
-        my_panels[0] = new_panel(my_wins[0]);   /* Push 0, order: stdscr-0 */
-        my_panels[1] = new_panel(my_wins[1]);   /* Push 1, order: stdscr-0-1 */
-        my_panels[2] = new_panel(my_wins[2]);   /* Push 2, order: stdscr-0-1-2 */
+	init_wins(my_wins, 3);
+	
+	/* Attach a panel to each window */ 	/* Order is bottom up */
+	my_panels[0] = new_panel(my_wins[0]); 	/* Push 0, order: stdscr-0 */
+	my_panels[1] = new_panel(my_wins[1]); 	/* Push 1, order: stdscr-0-1 */
+	my_panels[2] = new_panel(my_wins[2]); 	/* Push 2, order: stdscr-0-1-2 */
 
-        /* Set up the user pointers to the next panel */
-        set_panel_userptr(my_panels[0], my_panels[1]);
-        set_panel_userptr(my_panels[1], my_panels[2]);
-        set_panel_userptr(my_panels[2], my_panels[0]);
+	/* Set up the user pointers to the next panel */
+	set_panel_userptr(my_panels[0], my_panels[1]);
+	set_panel_userptr(my_panels[1], my_panels[2]);
+	set_panel_userptr(my_panels[2], my_panels[0]);
 
-        /* Update the stacking order. 2nd panel will be on top */
-        update_panels();
+	/* Update the stacking order. 2nd panel will be on top */
+	update_panels();
 
-        /* Show it on the screen */
-        attron(COLOR_PAIR(4));
-        mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
-        attroff(COLOR_PAIR(4));
-        doupdate();
+	/* Show it on the screen */
+	attron(COLOR_PAIR(4));
+	mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
+	attroff(COLOR_PAIR(4));
+	doupdate();
 
-        top = my_panels[2];
-        while((ch = getch()) != KEY_F(1))
-        {       switch(ch)
-                {       case 9:
-                                top = (PANEL *)panel_userptr(top);
-                                top_panel(top);
-                                break;
-                }
-                update_panels();
-                doupdate();
-        }
-        endwin();
-        return 0;
+	top = my_panels[2];
+	while((ch = getch()) != KEY_F(1))
+	{	switch(ch)
+		{	case 9:
+				top = (PANEL *)panel_userptr(top);
+				top_panel(top);
+				break;
+		}
+		update_panels();
+		doupdate();
+	}
+	endwin();
+	return 0;
 }
 
 /* Put all the windows */
 void init_wins(WINDOW **wins, int n)
-{       int x, y, i;
-        char label[80];
+{	int x, y, i;
+	char label[80];
 
-        y = 2;
-        x = 10;
-        for(i = 0; i < n; ++i)
-        {       wins[i] = newwin(NLINES, NCOLS, y, x);
-                sprintf(label, "Window Number %d", i + 1);
-                win_show(wins[i], label, i + 1);
-                y += 3;
-                x += 7;
-        }
+	y = 2;
+	x = 10;
+	for(i = 0; i < n; ++i)
+	{	wins[i] = newwin(NLINES, NCOLS, y, x);
+		sprintf(label, "Window Number %d", i + 1);
+		win_show(wins[i], label, i + 1);
+		y += 3;
+		x += 7;
+	}
 }
 
 /* Show the window with a border and a label */
 void win_show(WINDOW *win, char *label, int label_color)
-{       int startx, starty, height, width;
+{	int startx, starty, height, width;
 
-        getbegyx(win, starty, startx);
-        getmaxyx(win, height, width);
+	getbegyx(win, starty, startx);
+	getmaxyx(win, height, width);
 
-        box(win, 0, 0);
-        mvwaddch(win, 2, 0, ACS_LTEE); 
-        mvwhline(win, 2, 1, ACS_HLINE, width - 2); 
-        mvwaddch(win, 2, width - 1, ACS_RTEE); 
-        
-        print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
+	box(win, 0, 0);
+	mvwaddch(win, 2, 0, ACS_LTEE); 
+	mvwhline(win, 2, 1, ACS_HLINE, width - 2); 
+	mvwaddch(win, 2, width - 1, ACS_RTEE); 
+	
+	print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
 }
 
 void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
-{       int length, x, y;
-        float temp;
+{	int length, x, y;
+	float temp;
 
-        if(win == NULL)
-                win = stdscr;
-        getyx(win, y, x);
-        if(startx != 0)
-                x = startx;
-        if(starty != 0)
-                y = starty;
-        if(width == 0)
-                width = 80;
+	if(win == NULL)
+		win = stdscr;
+	getyx(win, y, x);
+	if(startx != 0)
+		x = startx;
+	if(starty != 0)
+		y = starty;
+	if(width == 0)
+		width = 80;
 
-        length = strlen(string);
-        temp = (width - length)/ 2;
-        x = startx + (int)temp;
-        wattron(win, color);
-        mvwprintw(win, y, x, "%s", string);
-        wattroff(win, color);
-        refresh();
-}
-
-
-
-
-
-

16.4. -Using User Pointers

-

In the above example I used user pointers to find out the next -window in the cycle. We can attach custom information to the panel -by specifying a user pointer, which can point to any information -you want to store. In this case I stored the pointer to the next -panel in the cycle. User pointer for a panel can be set with the -function set_panel_userptr(). It can be -accessed using the function panel_userptr() which will return the user pointer -for the panel given as argument. After finding the next panel in -the cycle It's brought to the top by the function top_panel(). This -function brings the panel given as argument to the top of the panel -stack.

-
-
-
-

16.5. Moving and Resizing Panels

-

The function move_panel() can be used -to move a panel to the desired location. It does not change the -position of the panel in the stack. Make sure that you use -move_panel() instead mvwin() on the window associated with the -panel.

-

Resizing a panel is slightly complex. There is no straight -forward function just to resize the window associated with a panel. -A solution to resize a panel is to create a new window with the -desired sizes, change the window associated with the panel using -replace_panel(). Don't forget to delete the old window. The window -associated with a panel can be found by using the function -panel_window().

-

The following program shows these concepts, in supposedly simple -program. You can cycle through the window with <TAB> as -usual. To resize or move the active panel press 'r' for resize 'm' -for moving. Then use arrow keys to resize or move it to the desired -way and press enter to end your resizing or moving. This example -makes use of user data to get the required data to do the -operations.

-
-

Example 16. Panel Moving and Resizing example

- - - - -
-
-#include <panel.h>
+	length = strlen(string);
+	temp = (width - length)/ 2;
+	x = startx + (int)temp;
+	wattron(win, color);
+	mvwprintw(win, y, x, "%s", string);
+	wattroff(win, color);
+	refresh();
+}

16.4. Using User Pointers

In the above example I used user pointers to find out the next window in the +cycle. We can attach custom information to the panel by specifying a user +pointer, which can point to any information you want to store. In this case I +stored the pointer to the next panel in the cycle. User pointer for a panel can +be set with the function set_panel_userptr(). +It can be accessed using the function panel_userptr() which will return the user pointer for the panel given as +argument. After finding the next panel in the cycle It's brought to the top by +the function top_panel(). This function brings the panel given as argument to +the top of the panel stack.


16.5. Moving and Resizing Panels

The function move_panel() can be used to move a +panel to the desired location. It does not change the position of the panel in +the stack. Make sure that you use move_panel() instead mvwin() on the window +associated with the panel.

Resizing a panel is slightly complex. There is no straight forward function +just to resize the window associated with a panel. A solution to resize a panel +is to create a new window with the desired sizes, change the window associated +with the panel using replace_panel(). Don't forget to delete the old window. The +window associated with a panel can be found by using the function +panel_window().

The following program shows these concepts, in supposedly simple program. You +can cycle through the window with <TAB> as usual. To resize or move the +active panel press 'r' for resize 'm' for moving. Then use arrow keys to resize +or move it to the desired way and press enter to end your resizing or moving. +This example makes use of user data to get the required data to do the +operations.

Example 16. Panel Moving and Resizing example

#include <panel.h>
 
 typedef struct _PANEL_DATA {
-        int x, y, w, h;
-        char label[80]; 
-        int label_color;
-        PANEL *next;
+	int x, y, w, h;
+	char label[80]; 
+	int label_color;
+	PANEL *next;
 }PANEL_DATA;
 
 #define NLINES 10
@@ -3151,275 +4617,289 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
 void set_user_ptrs(PANEL **panels, int n);
 
 int main()
-{       WINDOW *my_wins[3];
-        PANEL  *my_panels[3];
-        PANEL_DATA  *top;
-        PANEL *stack_top;
-        WINDOW *temp_win, *old_win;
-        int ch;
-        int newx, newy, neww, newh;
-        int size = FALSE, move = FALSE;
+{	WINDOW *my_wins[3];
+	PANEL  *my_panels[3];
+	PANEL_DATA  *top;
+	PANEL *stack_top;
+	WINDOW *temp_win, *old_win;
+	int ch;
+	int newx, newy, neww, newh;
+	int size = FALSE, move = FALSE;
 
-        /* Initialize curses */
-        initscr();
-        start_color();
-        cbreak();
-        noecho();
-        keypad(stdscr, TRUE);
+	/* Initialize curses */
+	initscr();
+	start_color();
+	cbreak();
+	noecho();
+	keypad(stdscr, TRUE);
 
-        /* Initialize all the colors */
-        init_pair(1, COLOR_RED, COLOR_BLACK);
-        init_pair(2, COLOR_GREEN, COLOR_BLACK);
-        init_pair(3, COLOR_BLUE, COLOR_BLACK);
-        init_pair(4, COLOR_CYAN, COLOR_BLACK);
+	/* Initialize all the colors */
+	init_pair(1, COLOR_RED, COLOR_BLACK);
+	init_pair(2, COLOR_GREEN, COLOR_BLACK);
+	init_pair(3, COLOR_BLUE, COLOR_BLACK);
+	init_pair(4, COLOR_CYAN, COLOR_BLACK);
 
-        init_wins(my_wins, 3);
-        
-        /* Attach a panel to each window */     /* Order is bottom up */
-        my_panels[0] = new_panel(my_wins[0]);   /* Push 0, order: stdscr-0 */
-        my_panels[1] = new_panel(my_wins[1]);   /* Push 1, order: stdscr-0-1 */
-        my_panels[2] = new_panel(my_wins[2]);   /* Push 2, order: stdscr-0-1-2 */
+	init_wins(my_wins, 3);
+	
+	/* Attach a panel to each window */ 	/* Order is bottom up */
+	my_panels[0] = new_panel(my_wins[0]); 	/* Push 0, order: stdscr-0 */
+	my_panels[1] = new_panel(my_wins[1]); 	/* Push 1, order: stdscr-0-1 */
+	my_panels[2] = new_panel(my_wins[2]); 	/* Push 2, order: stdscr-0-1-2 */
 
-        set_user_ptrs(my_panels, 3);
-        /* Update the stacking order. 2nd panel will be on top */
-        update_panels();
+	set_user_ptrs(my_panels, 3);
+	/* Update the stacking order. 2nd panel will be on top */
+	update_panels();
 
-        /* Show it on the screen */
-        attron(COLOR_PAIR(4));
-        mvprintw(LINES - 3, 0, "Use 'm' for moving, 'r' for resizing");
-        mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
-        attroff(COLOR_PAIR(4));
-        doupdate();
+	/* Show it on the screen */
+	attron(COLOR_PAIR(4));
+	mvprintw(LINES - 3, 0, "Use 'm' for moving, 'r' for resizing");
+	mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
+	attroff(COLOR_PAIR(4));
+	doupdate();
 
-        stack_top = my_panels[2];
-        top = (PANEL_DATA *)panel_userptr(stack_top);
-        newx = top->x;
-        newy = top->y;
-        neww = top->w;
-        newh = top->h;
-        while((ch = getch()) != KEY_F(1))
-        {       switch(ch)
-                {       case 9:         /* Tab */
-                                top = (PANEL_DATA *)panel_userptr(stack_top);
-                                top_panel(top->next);
-                                stack_top = top->next;
-                                top = (PANEL_DATA *)panel_userptr(stack_top);
-                                newx = top->x;
-                                newy = top->y;
-                                neww = top->w;
-                                newh = top->h;
-                                break;
-                        case 'r':       /* Re-Size*/
-                                size = TRUE;
-                                attron(COLOR_PAIR(4));
-                                mvprintw(LINES - 4, 0, "Entered Resizing :Use Arrow Keys to resize and press <ENTER> to end resizing");
-                                refresh();
-                                attroff(COLOR_PAIR(4));
-                                break;
-                        case 'm':       /* Move */
-                                attron(COLOR_PAIR(4));
-                                mvprintw(LINES - 4, 0, "Entered Moving: Use Arrow Keys to Move and press <ENTER> to end moving");
-                                refresh();
-                                attroff(COLOR_PAIR(4));
-                                move = TRUE;
-                                break;
-                        case KEY_LEFT:
-                                if(size == TRUE)
-                                {       --newx;
-                                        ++neww;
-                                }
-                                if(move == TRUE)
-                                        --newx;
-                                break;
-                        case KEY_RIGHT:
-                                if(size == TRUE)
-                                {       ++newx;
-                                        --neww;
-                                }
-                                if(move == TRUE)
-                                        ++newx;
-                                break;
-                        case KEY_UP:
-                                if(size == TRUE)
-                                {       --newy;
-                                        ++newh;
-                                }
-                                if(move == TRUE)
-                                        --newy;
-                                break;
-                        case KEY_DOWN:
-                                if(size == TRUE)
-                                {       ++newy;
-                                        --newh;
-                                }
-                                if(move == TRUE)
-                                        ++newy;
-                                break;
-                        case 10:        /* Enter */
-                                move(LINES - 4, 0);
-                                clrtoeol();
-                                refresh();
-                                if(size == TRUE)
-                                {       old_win = panel_window(stack_top);
-                                        temp_win = newwin(newh, neww, newy, newx);
-                                        replace_panel(stack_top, temp_win);
-                                        win_show(temp_win, top->label, top->label_color); 
-                                        delwin(old_win);
-                                        size = FALSE;
-                                }
-                                if(move == TRUE)
-                                {       move_panel(stack_top, newy, newx);
-                                        move = FALSE;
-                                }
-                                break;
-                        
-                }
-                attron(COLOR_PAIR(4));
-                mvprintw(LINES - 3, 0, "Use 'm' for moving, 'r' for resizing");
-                mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
-                attroff(COLOR_PAIR(4));
-                refresh();      
-                update_panels();
-                doupdate();
-        }
-        endwin();
-        return 0;
+	stack_top = my_panels[2];
+	top = (PANEL_DATA *)panel_userptr(stack_top);
+	newx = top->x;
+	newy = top->y;
+	neww = top->w;
+	newh = top->h;
+	while((ch = getch()) != KEY_F(1))
+	{	switch(ch)
+		{	case 9:		/* Tab */
+				top = (PANEL_DATA *)panel_userptr(stack_top);
+				top_panel(top->next);
+				stack_top = top->next;
+				top = (PANEL_DATA *)panel_userptr(stack_top);
+				newx = top->x;
+				newy = top->y;
+				neww = top->w;
+				newh = top->h;
+				break;
+			case 'r':	/* Re-Size*/
+				size = TRUE;
+				attron(COLOR_PAIR(4));
+				mvprintw(LINES - 4, 0, "Entered Resizing :Use Arrow Keys to resize and press <ENTER> to end resizing");
+				refresh();
+				attroff(COLOR_PAIR(4));
+				break;
+			case 'm':	/* Move */
+				attron(COLOR_PAIR(4));
+				mvprintw(LINES - 4, 0, "Entered Moving: Use Arrow Keys to Move and press <ENTER> to end moving");
+				refresh();
+				attroff(COLOR_PAIR(4));
+				move = TRUE;
+				break;
+			case KEY_LEFT:
+				if(size == TRUE)
+				{	--newx;
+					++neww;
+				}
+				if(move == TRUE)
+					--newx;
+				break;
+			case KEY_RIGHT:
+				if(size == TRUE)
+				{	++newx;
+					--neww;
+				}
+				if(move == TRUE)
+					++newx;
+				break;
+			case KEY_UP:
+				if(size == TRUE)
+				{	--newy;
+					++newh;
+				}
+				if(move == TRUE)
+					--newy;
+				break;
+			case KEY_DOWN:
+				if(size == TRUE)
+				{	++newy;
+					--newh;
+				}
+				if(move == TRUE)
+					++newy;
+				break;
+			case 10:	/* Enter */
+				move(LINES - 4, 0);
+				clrtoeol();
+				refresh();
+				if(size == TRUE)
+				{	old_win = panel_window(stack_top);
+					temp_win = newwin(newh, neww, newy, newx);
+					replace_panel(stack_top, temp_win);
+					win_show(temp_win, top->label, top->label_color); 
+					delwin(old_win);
+					size = FALSE;
+				}
+				if(move == TRUE)
+				{	move_panel(stack_top, newy, newx);
+					move = FALSE;
+				}
+				break;
+			
+		}
+		attron(COLOR_PAIR(4));
+		mvprintw(LINES - 3, 0, "Use 'm' for moving, 'r' for resizing");
+	    	mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
+	    	attroff(COLOR_PAIR(4));
+	        refresh();	
+		update_panels();
+		doupdate();
+	}
+	endwin();
+	return 0;
 }
 
 /* Put all the windows */
 void init_wins(WINDOW **wins, int n)
-{       int x, y, i;
-        char label[80];
+{	int x, y, i;
+	char label[80];
 
-        y = 2;
-        x = 10;
-        for(i = 0; i < n; ++i)
-        {       wins[i] = newwin(NLINES, NCOLS, y, x);
-                sprintf(label, "Window Number %d", i + 1);
-                win_show(wins[i], label, i + 1);
-                y += 3;
-                x += 7;
-        }
+	y = 2;
+	x = 10;
+	for(i = 0; i < n; ++i)
+	{	wins[i] = newwin(NLINES, NCOLS, y, x);
+		sprintf(label, "Window Number %d", i + 1);
+		win_show(wins[i], label, i + 1);
+		y += 3;
+		x += 7;
+	}
 }
 
 /* Set the PANEL_DATA structures for individual panels */
 void set_user_ptrs(PANEL **panels, int n)
-{       PANEL_DATA *ptrs;
-        WINDOW *win;
-        int x, y, w, h, i;
-        char temp[80];
-        
-        ptrs = (PANEL_DATA *)calloc(n, sizeof(PANEL_DATA));
+{	PANEL_DATA *ptrs;
+	WINDOW *win;
+	int x, y, w, h, i;
+	char temp[80];
+	
+	ptrs = (PANEL_DATA *)calloc(n, sizeof(PANEL_DATA));
 
-        for(i = 0;i < n; ++i)
-        {       win = panel_window(panels[i]);
-                getbegyx(win, y, x);
-                getmaxyx(win, h, w);
-                ptrs[i].x = x;
-                ptrs[i].y = y;
-                ptrs[i].w = w;
-                ptrs[i].h = h;
-                sprintf(temp, "Window Number %d", i + 1);
-                strcpy(ptrs[i].label, temp);
-                ptrs[i].label_color = i + 1;
-                if(i + 1 == n)
-                        ptrs[i].next = panels[0];
-                else
-                        ptrs[i].next = panels[i + 1];
-                set_panel_userptr(panels[i], &ptrs[i]);
-        }
+	for(i = 0;i < n; ++i)
+	{	win = panel_window(panels[i]);
+		getbegyx(win, y, x);
+		getmaxyx(win, h, w);
+		ptrs[i].x = x;
+		ptrs[i].y = y;
+		ptrs[i].w = w;
+		ptrs[i].h = h;
+		sprintf(temp, "Window Number %d", i + 1);
+		strcpy(ptrs[i].label, temp);
+		ptrs[i].label_color = i + 1;
+		if(i + 1 == n)
+			ptrs[i].next = panels[0];
+		else
+			ptrs[i].next = panels[i + 1];
+		set_panel_userptr(panels[i], &ptrs[i]);
+	}
 }
 
 /* Show the window with a border and a label */
 void win_show(WINDOW *win, char *label, int label_color)
-{       int startx, starty, height, width;
+{	int startx, starty, height, width;
 
-        getbegyx(win, starty, startx);
-        getmaxyx(win, height, width);
+	getbegyx(win, starty, startx);
+	getmaxyx(win, height, width);
 
-        box(win, 0, 0);
-        mvwaddch(win, 2, 0, ACS_LTEE); 
-        mvwhline(win, 2, 1, ACS_HLINE, width - 2); 
-        mvwaddch(win, 2, width - 1, ACS_RTEE); 
-        
-        print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
+	box(win, 0, 0);
+	mvwaddch(win, 2, 0, ACS_LTEE); 
+	mvwhline(win, 2, 1, ACS_HLINE, width - 2); 
+	mvwaddch(win, 2, width - 1, ACS_RTEE); 
+	
+	print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
 }
 
 void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
-{       int length, x, y;
-        float temp;
+{	int length, x, y;
+	float temp;
 
-        if(win == NULL)
-                win = stdscr;
-        getyx(win, y, x);
-        if(startx != 0)
-                x = startx;
-        if(starty != 0)
-                y = starty;
-        if(width == 0)
-                width = 80;
+	if(win == NULL)
+		win = stdscr;
+	getyx(win, y, x);
+	if(startx != 0)
+		x = startx;
+	if(starty != 0)
+		y = starty;
+	if(width == 0)
+		width = 80;
 
-        length = strlen(string);
-        temp = (width - length)/ 2;
-        x = startx + (int)temp;
-        wattron(win, color);
-        mvwprintw(win, y, x, "%s", string);
-        wattroff(win, color);
-        refresh();
-}
-
-
-

Concentrate on the main while loop. Once it finds out the type -of key pressed, it takes appropriate action. If 'r' is pressed -resizing mode is started. After this the new sizes are updated as -the user presses the arrow keys. When the user presses -<ENTER> present selection ends and panel is resized by using -the concept explained. While in resizing mode the program doesn't -show how the window is getting resized. It's left as an exercise to -the reader to print a dotted border while it gets resized to a new -position.

-

When the user presses 'm' the move mode starts. This is a bit -simpler than resizing. As the arrow keys are pressed the new -position is updated and pressing of <ENTER> causes the panel -to be moved by calling the function move_panel().

-

In this program the user data which is represented as -PANEL_DATA, plays very important role in finding the associated -information with a panel. As written in the comments, the -PANEL_DATA stores the panel sizes, label, label color and a pointer -to the next panel in the cycle.

-
-
-
-

16.6. -Hiding and Showing Panels

-

A Panel can be hidden by using the function hide_panel(). This -function merely removes it form the stack of panels, thus hiding it -on the screen once you do update_panels() and doupdate(). It -doesn't destroy the PANEL structure associated with the hidden -panel. It can be shown again by using the show_panel() -function.

-

The following program shows the hiding of panels. Press 'a' or -'b' or 'c' to show or hide first, second and third windows -respectively. It uses a user data with a small variable hide, which -keeps track of whether the window is hidden or not. For some reason -the function panel_hidden() which tells -whether a panel is hidden or not is not working. A bug report was -also presented by Michael Andres here

-
-

Example 17. Panel Hiding and Showing example

- - - - -
-
-#include <panel.h>
+	length = strlen(string);
+	temp = (width - length)/ 2;
+	x = startx + (int)temp;
+	wattron(win, color);
+	mvwprintw(win, y, x, "%s", string);
+	wattroff(win, color);
+	refresh();
+}

Concentrate on the main while loop. Once it finds out the type of key pressed, +it takes appropriate action. If 'r' is pressed resizing mode is started. After +this the new sizes are updated as the user presses the arrow keys. When the user +presses <ENTER> present selection ends and panel is resized by using the +concept explained. While in resizing mode the program doesn't show how the +window is getting resized. It's left as an exercise to the reader to print a +dotted border while it gets resized to a new position.

When the user presses 'm' the move mode starts. This is a bit simpler than +resizing. As the arrow keys are pressed the new position is updated and +pressing of <ENTER> causes the panel to be moved by calling the function +move_panel().

In this program the user data which is represented as PANEL_DATA, plays very +important role in finding the associated information with a panel. As written in +the comments, the PANEL_DATA stores the panel sizes, label, label color and a +pointer to the next panel in the cycle.


16.6. Hiding and Showing Panels

A Panel can be hidden by using the function hide_panel(). This function merely +removes it form the stack of panels, thus hiding it on the screen once you do +update_panels() and doupdate(). It doesn't destroy the PANEL structure +associated with the hidden panel. It can be shown again by using the +show_panel() function.

The following program shows the hiding of panels. Press 'a' or 'b' or 'c' to +show or hide first, second and third windows respectively. It uses a user data +with a small variable hide, which keeps track of whether the window is hidden or +not. For some reason the function +panel_hidden() which tells whether a panel is +hidden or not is not working. A bug report was also presented by Michael Andres + here

Example 17. Panel Hiding and Showing example

#include <panel.h>
 
 typedef struct _PANEL_DATA {
-        int hide;       /* TRUE if panel is hidden */
+	int hide;	/* TRUE if panel is hidden */
 }PANEL_DATA;
 
 #define NLINES 10
@@ -3430,257 +4910,292 @@ void win_show(WINDOW *win, char *label, int label_color);
 void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
 
 int main()
-{       WINDOW *my_wins[3];
-        PANEL  *my_panels[3];
-        PANEL_DATA panel_datas[3];
-        PANEL_DATA *temp;
-        int ch;
+{	WINDOW *my_wins[3];
+	PANEL  *my_panels[3];
+	PANEL_DATA panel_datas[3];
+	PANEL_DATA *temp;
+	int ch;
 
-        /* Initialize curses */
-        initscr();
-        start_color();
-        cbreak();
-        noecho();
-        keypad(stdscr, TRUE);
+	/* Initialize curses */
+	initscr();
+	start_color();
+	cbreak();
+	noecho();
+	keypad(stdscr, TRUE);
 
-        /* Initialize all the colors */
-        init_pair(1, COLOR_RED, COLOR_BLACK);
-        init_pair(2, COLOR_GREEN, COLOR_BLACK);
-        init_pair(3, COLOR_BLUE, COLOR_BLACK);
-        init_pair(4, COLOR_CYAN, COLOR_BLACK);
+	/* Initialize all the colors */
+	init_pair(1, COLOR_RED, COLOR_BLACK);
+	init_pair(2, COLOR_GREEN, COLOR_BLACK);
+	init_pair(3, COLOR_BLUE, COLOR_BLACK);
+	init_pair(4, COLOR_CYAN, COLOR_BLACK);
 
-        init_wins(my_wins, 3);
-        
-        /* Attach a panel to each window */     /* Order is bottom up */
-        my_panels[0] = new_panel(my_wins[0]);   /* Push 0, order: stdscr-0 */
-        my_panels[1] = new_panel(my_wins[1]);   /* Push 1, order: stdscr-0-1 */
-        my_panels[2] = new_panel(my_wins[2]);   /* Push 2, order: stdscr-0-1-2 */
+	init_wins(my_wins, 3);
+	
+	/* Attach a panel to each window */ 	/* Order is bottom up */
+	my_panels[0] = new_panel(my_wins[0]); 	/* Push 0, order: stdscr-0 */
+	my_panels[1] = new_panel(my_wins[1]); 	/* Push 1, order: stdscr-0-1 */
+	my_panels[2] = new_panel(my_wins[2]); 	/* Push 2, order: stdscr-0-1-2 */
 
-        /* Initialize panel datas saying that nothing is hidden */
-        panel_datas[0].hide = FALSE;
-        panel_datas[1].hide = FALSE;
-        panel_datas[2].hide = FALSE;
+	/* Initialize panel datas saying that nothing is hidden */
+	panel_datas[0].hide = FALSE;
+	panel_datas[1].hide = FALSE;
+	panel_datas[2].hide = FALSE;
 
-        set_panel_userptr(my_panels[0], &panel_datas[0]);
-        set_panel_userptr(my_panels[1], &panel_datas[1]);
-        set_panel_userptr(my_panels[2], &panel_datas[2]);
+	set_panel_userptr(my_panels[0], &panel_datas[0]);
+	set_panel_userptr(my_panels[1], &panel_datas[1]);
+	set_panel_userptr(my_panels[2], &panel_datas[2]);
 
-        /* Update the stacking order. 2nd panel will be on top */
-        update_panels();
+	/* Update the stacking order. 2nd panel will be on top */
+	update_panels();
 
-        /* Show it on the screen */
-        attron(COLOR_PAIR(4));
-        mvprintw(LINES - 3, 0, "Show or Hide a window with 'a'(first window)  'b'(Second Window)  'c'(Third Window)");
-        mvprintw(LINES - 2, 0, "F1 to Exit");
+	/* Show it on the screen */
+	attron(COLOR_PAIR(4));
+	mvprintw(LINES - 3, 0, "Show or Hide a window with 'a'(first window)  'b'(Second Window)  'c'(Third Window)");
+	mvprintw(LINES - 2, 0, "F1 to Exit");
 
-        attroff(COLOR_PAIR(4));
-        doupdate();
-        
-        while((ch = getch()) != KEY_F(1))
-        {       switch(ch)
-                {       case 'a':                       
-                                temp = (PANEL_DATA *)panel_userptr(my_panels[0]);
-                                if(temp->hide == FALSE)
-                                {       hide_panel(my_panels[0]);
-                                        temp->hide = TRUE;
-                                }
-                                else
-                                {       show_panel(my_panels[0]);
-                                        temp->hide = FALSE;
-                                }
-                                break;
-                        case 'b':
-                                temp = (PANEL_DATA *)panel_userptr(my_panels[1]);
-                                if(temp->hide == FALSE)
-                                {       hide_panel(my_panels[1]);
-                                        temp->hide = TRUE;
-                                }
-                                else
-                                {       show_panel(my_panels[1]);
-                                        temp->hide = FALSE;
-                                }
-                                break;
-                        case 'c':
-                                temp = (PANEL_DATA *)panel_userptr(my_panels[2]);
-                                if(temp->hide == FALSE)
-                                {       hide_panel(my_panels[2]);
-                                        temp->hide = TRUE;
-                                }
-                                else
-                                {       show_panel(my_panels[2]);
-                                        temp->hide = FALSE;
-                                }
-                                break;
-                }
-                update_panels();
-                doupdate();
-        }
-        endwin();
-        return 0;
+	attroff(COLOR_PAIR(4));
+	doupdate();
+	
+	while((ch = getch()) != KEY_F(1))
+	{	switch(ch)
+		{	case 'a':			
+				temp = (PANEL_DATA *)panel_userptr(my_panels[0]);
+				if(temp->hide == FALSE)
+				{	hide_panel(my_panels[0]);
+					temp->hide = TRUE;
+				}
+				else
+				{	show_panel(my_panels[0]);
+					temp->hide = FALSE;
+				}
+				break;
+			case 'b':
+				temp = (PANEL_DATA *)panel_userptr(my_panels[1]);
+				if(temp->hide == FALSE)
+				{	hide_panel(my_panels[1]);
+					temp->hide = TRUE;
+				}
+				else
+				{	show_panel(my_panels[1]);
+					temp->hide = FALSE;
+				}
+				break;
+			case 'c':
+				temp = (PANEL_DATA *)panel_userptr(my_panels[2]);
+				if(temp->hide == FALSE)
+				{	hide_panel(my_panels[2]);
+					temp->hide = TRUE;
+				}
+				else
+				{	show_panel(my_panels[2]);
+					temp->hide = FALSE;
+				}
+				break;
+		}
+		update_panels();
+		doupdate();
+	}
+	endwin();
+	return 0;
 }
 
 /* Put all the windows */
 void init_wins(WINDOW **wins, int n)
-{       int x, y, i;
-        char label[80];
+{	int x, y, i;
+	char label[80];
 
-        y = 2;
-        x = 10;
-        for(i = 0; i < n; ++i)
-        {       wins[i] = newwin(NLINES, NCOLS, y, x);
-                sprintf(label, "Window Number %d", i + 1);
-                win_show(wins[i], label, i + 1);
-                y += 3;
-                x += 7;
-        }
+	y = 2;
+	x = 10;
+	for(i = 0; i < n; ++i)
+	{	wins[i] = newwin(NLINES, NCOLS, y, x);
+		sprintf(label, "Window Number %d", i + 1);
+		win_show(wins[i], label, i + 1);
+		y += 3;
+		x += 7;
+	}
 }
 
 /* Show the window with a border and a label */
 void win_show(WINDOW *win, char *label, int label_color)
-{       int startx, starty, height, width;
+{	int startx, starty, height, width;
 
-        getbegyx(win, starty, startx);
-        getmaxyx(win, height, width);
+	getbegyx(win, starty, startx);
+	getmaxyx(win, height, width);
 
-        box(win, 0, 0);
-        mvwaddch(win, 2, 0, ACS_LTEE); 
-        mvwhline(win, 2, 1, ACS_HLINE, width - 2); 
-        mvwaddch(win, 2, width - 1, ACS_RTEE); 
-        
-        print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
+	box(win, 0, 0);
+	mvwaddch(win, 2, 0, ACS_LTEE); 
+	mvwhline(win, 2, 1, ACS_HLINE, width - 2); 
+	mvwaddch(win, 2, width - 1, ACS_RTEE); 
+	
+	print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
 }
 
 void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
-{       int length, x, y;
-        float temp;
+{	int length, x, y;
+	float temp;
 
-        if(win == NULL)
-                win = stdscr;
-        getyx(win, y, x);
-        if(startx != 0)
-                x = startx;
-        if(starty != 0)
-                y = starty;
-        if(width == 0)
-                width = 80;
+	if(win == NULL)
+		win = stdscr;
+	getyx(win, y, x);
+	if(startx != 0)
+		x = startx;
+	if(starty != 0)
+		y = starty;
+	if(width == 0)
+		width = 80;
 
-        length = strlen(string);
-        temp = (width - length)/ 2;
-        x = startx + (int)temp;
-        wattron(win, color);
-        mvwprintw(win, y, x, "%s", string);
-        wattroff(win, color);
-        refresh();
-}
-
-
-
-
-
-

16.7. -panel_above() and panel_below() Functions

-

The functions panel_above() and -panel_below() can be used to find out -the panel above and below a panel. If the argument to these -functions is NULL, then they return a pointer to bottom panel and -top panel respectively.

-
-
-
-
-

17. Menus -Library

-

The menus library provides a nice extension to basic curses, -through which you can create menus. It provides a set of functions -to create menus. But they have to be customized to give a nicer -look, with colors etc. Let's get into the details.

-

A menu is a screen display that assists the user to choose some -subset of a given set of items. To put it simple, a menu is a -collection of items from which one or more items can be chosen. -Some readers might not be aware of multiple item selection -capability. Menu library provides functionality to write menus from -which the user can chose more than one item as the preferred -choice. This is dealt with in a later section. Now it is time for -some rudiments.

-
-
-

17.1. The -Basics

-

To create menus, you first create items, and then post the menu -to the display. After that, all the processing of user responses is -done in an elegant function menu_driver() which is the work horse -of any menu program.

-

The general flow of control of a menu program looks like -this.

-
    -
  1. -

    Initialize curses

    -
  2. -
  3. -

    Create items using new_item(). You can specify a name and -description for the items.

    -
  4. -
  5. -

    Create the menu with new_menu() by specifying the items to be -attached with.

    -
  6. -
  7. -

    Post the menu with menu_post() and refresh the screen.

    -
  8. -
  9. -

    Process the user requests with a loop and do necessary updates -to menu with menu_driver.

    -
  10. -
  11. -

    Unpost the menu with menu_unpost()

    -
  12. -
  13. -

    Free the memory allocated to menu by free_menu()

    -
  14. -
  15. -

    Free the memory allocated to the items with free_item()

    -
  16. -
  17. -

    End curses

    -
  18. -
-

Let's see a program which prints a simple menu and updates the -current selection with up, down arrows.

-
-
-
-

17.2. -Compiling With the Menu Library

-

To use menu library functions, you have to include menu.h and to -link the program with menu library the flag -lmenu should be added -along with -lncurses in that order.

- - - - -
-
-    #include <menu.h>
+	length = strlen(string);
+	temp = (width - length)/ 2;
+	x = startx + (int)temp;
+	wattron(win, color);
+	mvwprintw(win, y, x, "%s", string);
+	wattroff(win, color);
+	refresh();
+}

16.7. panel_above() and panel_below() Functions

The functions panel_above() and +panel_below() can be used to find out the panel +above and below a panel. If the argument to these functions is NULL, then they +return a pointer to bottom panel and top panel respectively.


17. Menus Library

The menus library provides a nice extension to basic curses, through which you +can create menus. It provides a set of functions to create menus. But they have +to be customized to give a nicer look, with colors etc. Let's get into the +details.

A menu is a screen display that assists the user to choose some subset of a +given set of items. To put it simple, a menu is a collection of items from which +one or more items can be chosen. Some readers might not be aware of multiple +item selection capability. Menu library provides functionality to write menus +from which the user can chose more than one item as the preferred choice. This +is dealt with in a later section. Now it is time for some rudiments.


17.1. The Basics

To create menus, you first create items, and then post the menu to the display. +After that, all the processing of user responses is done in an elegant function +menu_driver() which is the work horse of any menu program.

The general flow of control of a menu program looks like this. +

  1. Initialize curses

  2. Create items using new_item(). You can specify a name and description for the +items.

  3. Create the menu with new_menu() by specifying the items to be attached with.

  4. Post the menu with menu_post() and refresh the screen.

  5. Process the user requests with a loop and do necessary updates to menu with +menu_driver.

  6. Unpost the menu with menu_unpost()

  7. Free the memory allocated to menu by free_menu()

  8. Free the memory allocated to the items with free_item()

  9. End curses

Let's see a program which prints a simple menu and updates the current selection +with up, down arrows.


17.2. Compiling With the Menu Library

To use menu library functions, you have to include menu.h and to link the +program with menu library the flag -lmenu should be added along with -lncurses +in that order.

    #include <menu.h>
     .
     .
     .
 
-    compile and link: gcc <program file> -lmenu -lncurses
-
-
-

Example 18. Menu Basics

- - - - -
-
-#include <curses.h>
-#include <menu.h>
+    compile and link: gcc <program file> -lmenu -lncurses

Example 18. Menu Basics

#include <curses.h>
+#include <menu.h>
 
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-#define CTRLD   4
+#define CTRLD 	4
 
 char *choices[] = {
                         "Choice 1",
@@ -3691,69 +5206,64 @@ char *choices[] = {
                   };
 
 int main()
-{       ITEM **my_items;
-        int c;                          
-        MENU *my_menu;
-        int n_choices, i;
-        ITEM *cur_item;
-        
-        
-        initscr();
-        cbreak();
-        noecho();
-        keypad(stdscr, TRUE);
-        
-        n_choices = ARRAY_SIZE(choices);
-        my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
+{	ITEM **my_items;
+	int c;				
+	MENU *my_menu;
+	int n_choices, i;
+	ITEM *cur_item;
+	
+	
+	initscr();
+	cbreak();
+	noecho();
+	keypad(stdscr, TRUE);
+	
+	n_choices = ARRAY_SIZE(choices);
+	my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
 
-        for(i = 0; i < n_choices; ++i)
-                my_items[i] = new_item(choices[i], choices[i]);
-        my_items[n_choices] = (ITEM *)NULL;
+	for(i = 0; i < n_choices; ++i)
+	        my_items[i] = new_item(choices[i], choices[i]);
+	my_items[n_choices] = (ITEM *)NULL;
 
-        my_menu = new_menu((ITEM **)my_items);
-        mvprintw(LINES - 2, 0, "F1 to Exit");
-        post_menu(my_menu);
-        refresh();
+	my_menu = new_menu((ITEM **)my_items);
+	mvprintw(LINES - 2, 0, "F1 to Exit");
+	post_menu(my_menu);
+	refresh();
 
-        while((c = getch()) != KEY_F(1))
-        {   switch(c)
-            {   case KEY_DOWN:
-                        menu_driver(my_menu, REQ_DOWN_ITEM);
-                                break;
-                        case KEY_UP:
-                                menu_driver(my_menu, REQ_UP_ITEM);
-                                break;
-                }
-        }       
+	while((c = getch()) != KEY_F(1))
+	{   switch(c)
+	    {	case KEY_DOWN:
+		        menu_driver(my_menu, REQ_DOWN_ITEM);
+				break;
+			case KEY_UP:
+				menu_driver(my_menu, REQ_UP_ITEM);
+				break;
+		}
+	}	
 
-        free_item(my_items[0]);
-        free_item(my_items[1]);
-        free_menu(my_menu);
-        endwin();
+	free_item(my_items[0]);
+	free_item(my_items[1]);
+	free_menu(my_menu);
+	endwin();
 }
-        
-
-
-

This program demonstrates the basic concepts involved in -creating a menu using menus library. First we create the items -using new_item() and then attach them to the menu with new_menu() -function. After posting the menu and refreshing the screen, the -main processing loop starts. It reads user input and takes -corresponding action. The function menu_driver() is the main work -horse of the menu system. The second parameter to this function -tells what's to be done with the menu. According to the parameter, -menu_driver() does the corresponding task. The value can be either -a menu navigational request, an ascii character, or a KEY_MOUSE -special key associated with a mouse event.

-

The menu_driver accepts following navigational requests.

- - - - -
-
-
     REQ_LEFT_ITEM         Move left to an item.
+	

This program demonstrates the basic concepts involved in creating a menu using +menus library. First we create the items using new_item() and then attach them +to the menu with new_menu() function. After posting the menu and refreshing the +screen, the main processing loop starts. It reads user input and takes +corresponding action. The function menu_driver() is the main work horse of the +menu system. The second parameter to this function tells what's to be done with +the menu. According to the parameter, menu_driver() does the corresponding task. +The value can be either a menu navigational request, an ascii character, or a +KEY_MOUSE special key associated with a mouse event.

The menu_driver accepts following navigational requests. +


     REQ_LEFT_ITEM         Move left to an item.
      REQ_RIGHT_ITEM      Move right to an item.
      REQ_UP_ITEM         Move up to an item.
      REQ_DOWN_ITEM       Move down to an item.
@@ -3769,87 +5279,144 @@ special key associated with a mouse event.

REQ_CLEAR_PATTERN Clear the menu pattern buffer. REQ_BACK_PATTERN Delete the previous character from the pattern buffer. REQ_NEXT_MATCH Move to the next item matching the pattern match. - REQ_PREV_MATCH Move to the previous item matching the pattern match.
-
-

Don't get overwhelmed by the number of options. We will see them -slowly one after another. The options of interest in this example -are REQ_UP_ITEM and REQ_DOWN_ITEM. These two options when passed to -menu_driver, menu driver updates the current item to one item up or -down respectively.

-
-
-
-

17.3. Menu -Driver: The work horse of the menu system

-

As you have seen in the above example, menu_driver plays an -important role in updating the menu. It is very important to -understand various options it takes and what they do. As explained -above, the second parameter to menu_driver() can be either a -navigational request, a printable character or a KEY_MOUSE key. -Let's dissect the different navigational requests.

-
    -
  • -

    REQ_LEFT_ITEM and REQ_RIGHT_ITEM

    -

    A Menu can be displayed with multiple columns for more than one -item. This can be done by using the menu_format()function. When a multi columnar menu -is displayed these requests cause the menu driver to move the -current selection to left or right.

    -
  • -
  • -

    REQ_UP_ITEM and REQ_DOWN_ITEM

    -

    These two options you have seen in the above example. These -options when given, makes the menu_driver to move the current -selection to an item up or down.

    -
  • -
  • -

    REQ_SCR_* options

    -

    The four options REQ_SCR_ULINE, REQ_SCR_DLINE, REQ_SCR_DPAGE, -REQ_SCR_UPAGE are related to scrolling. If all the items in the -menu cannot be displayed in the menu sub window, then the menu is -scrollable. These requests can be given to the menu_driver to do -the scrolling either one line up, down or one page down or up -respectively.

    -
  • -
  • -

    REQ_FIRST_ITEM, REQ_LAST_ITEM, REQ_NEXT_ITEM and -REQ_PREV_ITEM

    -

    These requests are self explanatory.

    -
  • -
  • -

    REQ_TOGGLE_ITEM

    -

    This request when given, toggles the present selection. This -option is to be used only in a multi valued menu. So to use this -request the option O_ONEVALUE must be off. This option can be made -off or on with set_menu_opts().

    -
  • -
  • -

    Pattern Requests

    -

    Every menu has an associated pattern buffer, which is used to -find the nearest match to the ascii characters entered by the user. -Whenever ascii characters are given to menu_driver, it puts in to -the pattern buffer. It also tries to find the nearest match to the -pattern in the items list and moves current selection to that item. -The request REQ_CLEAR_PATTERN clears the pattern buffer. The -request REQ_BACK_PATTERN deletes the previous character in the -pattern buffer. In case the pattern matches more than one item then -the matched items can be cycled through REQ_NEXT_MATCH and -REQ_PREV_MATCH which move the current selection to the next and -previous matches respectively.

    -
  • -
  • -

    Mouse Requests

    -

    In case of KEY_MOUSE requests, according to the mouse position -an action is taken accordingly. The action to be taken is explained -in the man page as,

    - - - - -
    -
    -       If  the  second argument is the KEY_MOUSE special key, the
    +     REQ_PREV_MATCH     Move to the previous item matching the pattern match.

    Don't get overwhelmed by the number of options. We will see them slowly one +after another. The options of interest in this example are REQ_UP_ITEM and +REQ_DOWN_ITEM. These two options when passed to menu_driver, menu driver +updates the current item to one item up or down respectively.


    17.3. Menu Driver: The work horse of the menu system

    As you have seen in the above example, menu_driver plays an important role in +updating the menu. It is very important to understand various options it takes +and what they do. As explained above, the second parameter to menu_driver() can +be either a navigational request, a printable character or a KEY_MOUSE key. +Let's dissect the different navigational requests.

    • REQ_LEFT_ITEM and REQ_RIGHT_ITEM

      A Menu can be displayed with multiple columns for more than one item. This can +be done by using the menu_format()function. +When a multi columnar menu is displayed these requests cause the menu driver to +move the current selection to left or right.

    • REQ_UP_ITEM and REQ_DOWN_ITEM

      These two options you have seen in the above example. These options when given, +makes the menu_driver to move the current selection to an item up or down.

    • REQ_SCR_* options

      The four options REQ_SCR_ULINE, REQ_SCR_DLINE, REQ_SCR_DPAGE, REQ_SCR_UPAGE are +related to scrolling. If all the items in the menu cannot be displayed in the +menu sub window, then the menu is scrollable. These requests can be given to the +menu_driver to do the scrolling either one line up, down or one page down or up +respectively.

    • REQ_FIRST_ITEM, REQ_LAST_ITEM, REQ_NEXT_ITEM and +REQ_PREV_ITEM

      These requests are self explanatory.

    • REQ_TOGGLE_ITEM

      This request when given, toggles the present selection. This option is to be +used only in a multi valued menu. So to use this request the option O_ONEVALUE +must be off. This option can be made off or on with set_menu_opts().

    • Pattern Requests

      Every menu has an associated pattern buffer, which is used to find the nearest +match to the ascii characters entered by the user. Whenever ascii characters are +given to menu_driver, it puts in to the pattern buffer. It also tries to find +the nearest match to the pattern in the items list and moves current selection +to that item. The request REQ_CLEAR_PATTERN clears the pattern buffer. The +request REQ_BACK_PATTERN deletes the previous character in the pattern buffer. +In case the pattern matches more than one item then the matched items can be +cycled through REQ_NEXT_MATCH and REQ_PREV_MATCH which move the current +selection to the next and previous matches respectively.

    • Mouse Requests

      In case of KEY_MOUSE requests, according to the mouse position an action is +taken accordingly. The action to be taken is explained in the man page as,

             If  the  second argument is the KEY_MOUSE special key, the
              associated mouse event is translated into one of the above
              pre-defined  requests.   Currently only clicks in the user
              window (e.g. inside the menu display area or  the  decora­
      @@ -3861,39 +5428,49 @@ in the man page as,

      generated, if you doubleclick a REQ_SCR_DPAGE is generated and if you tripleclick a REQ_LAST_ITEM is generated. If you click at an item inside the display area of the menu, - the menu cursor is positioned to that item.
      -
    -
  • -
-

Each of the above requests will be explained in the following -lines with several examples whenever appropriate.

-
-
-
-

17.4. Menu -Windows

-

Every menu created is associated with a window and a sub window. -The menu window displays any title or border associated with the -menu. The menu sub window displays the menu items currently -available for selection. But we didn't specify any window or sub -window in the simple example. When a window is not specified, -stdscr is taken as the main window, and then menu system calculates -the sub window size required for the display of items. Then items -are displayed in the calculated sub window. So let's play with -these windows and display a menu with a border and a title.

-
-

Example 19. Menu Windows Usage example

- - - - -
-
-#include <menu.h>
+       the menu cursor is positioned to that item.

Each of the above requests will be explained in the following lines with several +examples whenever appropriate.


17.4. Menu Windows

Every menu created is associated with a window and a sub window. The menu window +displays any title or border associated with the menu. The menu sub window +displays the menu items currently available for selection. But we didn't specify +any window or sub window in the simple example. When a window is not specified, +stdscr is taken as the main window, and then menu system calculates the sub +window size required for the display of items. Then items are displayed in the +calculated sub window. So let's play with these windows and display a menu with +a border and a title.

Example 19. Menu Windows Usage example

#include <menu.h>
 
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-#define CTRLD   4
+#define CTRLD 	4
 
 char *choices[] = {
                         "Choice 1",
@@ -3906,392 +5483,403 @@ char *choices[] = {
 void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
 
 int main()
-{       ITEM **my_items;
-        int c;                          
-        MENU *my_menu;
+{	ITEM **my_items;
+	int c;				
+	MENU *my_menu;
         WINDOW *my_menu_win;
         int n_choices, i;
-        
-        /* Initialize curses */
-        initscr();
-        start_color();
+	
+	/* Initialize curses */
+	initscr();
+	start_color();
         cbreak();
         noecho();
-        keypad(stdscr, TRUE);
-        init_pair(1, COLOR_RED, COLOR_BLACK);
+	keypad(stdscr, TRUE);
+	init_pair(1, COLOR_RED, COLOR_BLACK);
 
-        /* Create items */
+	/* Create items */
         n_choices = ARRAY_SIZE(choices);
         my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *));
-        for(i = 0; i < n_choices; ++i)
+        for(i = 0; i < n_choices; ++i)
                 my_items[i] = new_item(choices[i], choices[i]);
 
-        /* Crate menu */
-        my_menu = new_menu((ITEM **)my_items);
+	/* Crate menu */
+	my_menu = new_menu((ITEM **)my_items);
 
-        /* Create the window to be associated with the menu */
+	/* Create the window to be associated with the menu */
         my_menu_win = newwin(10, 40, 4, 4);
         keypad(my_menu_win, TRUE);
      
-        /* Set main window and sub window */
+	/* Set main window and sub window */
         set_menu_win(my_menu, my_menu_win);
         set_menu_sub(my_menu, derwin(my_menu_win, 6, 38, 3, 1));
 
-        /* Set menu mark to the string " * " */
+	/* Set menu mark to the string " * " */
         set_menu_mark(my_menu, " * ");
 
-        /* Print a border around the main window and print a title */
+	/* Print a border around the main window and print a title */
         box(my_menu_win, 0, 0);
-        print_in_middle(my_menu_win, 1, 0, 40, "My Menu", COLOR_PAIR(1));
-        mvwaddch(my_menu_win, 2, 0, ACS_LTEE);
-        mvwhline(my_menu_win, 2, 1, ACS_HLINE, 38);
-        mvwaddch(my_menu_win, 2, 39, ACS_RTEE);
-        mvprintw(LINES - 2, 0, "F1 to exit");
-        refresh();
+	print_in_middle(my_menu_win, 1, 0, 40, "My Menu", COLOR_PAIR(1));
+	mvwaddch(my_menu_win, 2, 0, ACS_LTEE);
+	mvwhline(my_menu_win, 2, 1, ACS_HLINE, 38);
+	mvwaddch(my_menu_win, 2, 39, ACS_RTEE);
+	mvprintw(LINES - 2, 0, "F1 to exit");
+	refresh();
         
-        /* Post the menu */
-        post_menu(my_menu);
-        wrefresh(my_menu_win);
+	/* Post the menu */
+	post_menu(my_menu);
+	wrefresh(my_menu_win);
 
-        while((c = wgetch(my_menu_win)) != KEY_F(1))
-        {       switch(c)
-                {       case KEY_DOWN:
-                                menu_driver(my_menu, REQ_DOWN_ITEM);
-                                break;
-                        case KEY_UP:
-                                menu_driver(my_menu, REQ_UP_ITEM);
-                                break;
-                }
+	while((c = wgetch(my_menu_win)) != KEY_F(1))
+	{       switch(c)
+	        {	case KEY_DOWN:
+				menu_driver(my_menu, REQ_DOWN_ITEM);
+				break;
+			case KEY_UP:
+				menu_driver(my_menu, REQ_UP_ITEM);
+				break;
+		}
                 wrefresh(my_menu_win);
-        }       
+	}	
 
-        /* Unpost and free all the memory taken up */
+	/* Unpost and free all the memory taken up */
         unpost_menu(my_menu);
         free_menu(my_menu);
-        for(i = 0; i < n_choices; ++i)
+        for(i = 0; i < n_choices; ++i)
                 free_item(my_items[i]);
-        endwin();
+	endwin();
 }
 
 void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
-{       int length, x, y;
-        float temp;
+{	int length, x, y;
+	float temp;
 
-        if(win == NULL)
-                win = stdscr;
-        getyx(win, y, x);
-        if(startx != 0)
-                x = startx;
-        if(starty != 0)
-                y = starty;
-        if(width == 0)
-                width = 80;
+	if(win == NULL)
+		win = stdscr;
+	getyx(win, y, x);
+	if(startx != 0)
+		x = startx;
+	if(starty != 0)
+		y = starty;
+	if(width == 0)
+		width = 80;
 
-        length = strlen(string);
-        temp = (width - length)/ 2;
-        x = startx + (int)temp;
-        wattron(win, color);
-        mvwprintw(win, y, x, "%s", string);
-        wattroff(win, color);
-        refresh();
-}
-
-
-

This example creates a menu with a title, border, a fancy line -separating title and the items. As you can see, in order to attach -a window to a menu the function set_menu_win() has to be used. Then -we attach the sub window also. This displays the items in the sub -window. You can also set the mark string which gets displayed to -the left of the selected item with set_menu_mark().

-
-
-
-

17.5. -Scrolling Menus

-

If the sub window given for a window is not big enough to show -all the items, then the menu will be scrollable. When you are on -the last item in the present list, if you send REQ_DOWN_ITEM, it -gets translated into REQ_SCR_DLINE and the menu scrolls by one -item. You can manually give REQ_SCR_ operations to do scrolling. -Let's see how it can be done.

-
-

Example 20. Scrolling Menus example

- - - - -
-
-#include <curses.h>
-#include <menu.h>
+	length = strlen(string);
+	temp = (width - length)/ 2;
+	x = startx + (int)temp;
+	wattron(win, color);
+	mvwprintw(win, y, x, "%s", string);
+	wattroff(win, color);
+	refresh();
+}

This example creates a menu with a title, border, a fancy line separating title +and the items. As you can see, in order to attach a window to a menu the +function set_menu_win() has to be used. Then we attach the sub window also. This +displays the items in the sub window. You can also set the mark string which +gets displayed to the left of the selected item with set_menu_mark().


17.5. Scrolling Menus

If the sub window given for a window is not big enough to show all the items, +then the menu will be scrollable. When you are on the last item in the present +list, if you send REQ_DOWN_ITEM, it gets translated into REQ_SCR_DLINE and the +menu scrolls by one item. You can manually give REQ_SCR_ operations to do +scrolling. Let's see how it can be done.

Example 20. Scrolling Menus example

#include <curses.h>
+#include <menu.h>
 
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-#define CTRLD   4
+#define CTRLD 	4
 
 char *choices[] = {
                         "Choice 1",
                         "Choice 2",
                         "Choice 3",
                         "Choice 4",
-                        "Choice 5",
-                        "Choice 6",
-                        "Choice 7",
-                        "Choice 8",
-                        "Choice 9",
-                        "Choice 10",
+			"Choice 5",
+			"Choice 6",
+			"Choice 7",
+			"Choice 8",
+			"Choice 9",
+			"Choice 10",
                         "Exit",
                         (char *)NULL,
                   };
 void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
 
 int main()
-{       ITEM **my_items;
-        int c;                          
-        MENU *my_menu;
+{	ITEM **my_items;
+	int c;				
+	MENU *my_menu;
         WINDOW *my_menu_win;
         int n_choices, i;
-        
-        /* Initialize curses */
-        initscr();
-        start_color();
+	
+	/* Initialize curses */
+	initscr();
+	start_color();
         cbreak();
         noecho();
-        keypad(stdscr, TRUE);
-        init_pair(1, COLOR_RED, COLOR_BLACK);
-        init_pair(2, COLOR_CYAN, COLOR_BLACK);
+	keypad(stdscr, TRUE);
+	init_pair(1, COLOR_RED, COLOR_BLACK);
+	init_pair(2, COLOR_CYAN, COLOR_BLACK);
 
-        /* Create items */
+	/* Create items */
         n_choices = ARRAY_SIZE(choices);
         my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *));
-        for(i = 0; i < n_choices; ++i)
+        for(i = 0; i < n_choices; ++i)
                 my_items[i] = new_item(choices[i], choices[i]);
 
-        /* Crate menu */
-        my_menu = new_menu((ITEM **)my_items);
+	/* Crate menu */
+	my_menu = new_menu((ITEM **)my_items);
 
-        /* Create the window to be associated with the menu */
+	/* Create the window to be associated with the menu */
         my_menu_win = newwin(10, 40, 4, 4);
         keypad(my_menu_win, TRUE);
      
-        /* Set main window and sub window */
+	/* Set main window and sub window */
         set_menu_win(my_menu, my_menu_win);
         set_menu_sub(my_menu, derwin(my_menu_win, 6, 38, 3, 1));
-        set_menu_format(my_menu, 5, 1);
-                        
-        /* Set menu mark to the string " * " */
+	set_menu_format(my_menu, 5, 1);
+			
+	/* Set menu mark to the string " * " */
         set_menu_mark(my_menu, " * ");
 
-        /* Print a border around the main window and print a title */
+	/* Print a border around the main window and print a title */
         box(my_menu_win, 0, 0);
-        print_in_middle(my_menu_win, 1, 0, 40, "My Menu", COLOR_PAIR(1));
-        mvwaddch(my_menu_win, 2, 0, ACS_LTEE);
-        mvwhline(my_menu_win, 2, 1, ACS_HLINE, 38);
-        mvwaddch(my_menu_win, 2, 39, ACS_RTEE);
+	print_in_middle(my_menu_win, 1, 0, 40, "My Menu", COLOR_PAIR(1));
+	mvwaddch(my_menu_win, 2, 0, ACS_LTEE);
+	mvwhline(my_menu_win, 2, 1, ACS_HLINE, 38);
+	mvwaddch(my_menu_win, 2, 39, ACS_RTEE);
         
-        /* Post the menu */
-        post_menu(my_menu);
-        wrefresh(my_menu_win);
-        
-        attron(COLOR_PAIR(2));
-        mvprintw(LINES - 2, 0, "Use PageUp and PageDown to scoll down or up a page of items");
-        mvprintw(LINES - 1, 0, "Arrow Keys to navigate (F1 to Exit)");
-        attroff(COLOR_PAIR(2));
-        refresh();
+	/* Post the menu */
+	post_menu(my_menu);
+	wrefresh(my_menu_win);
+	
+	attron(COLOR_PAIR(2));
+	mvprintw(LINES - 2, 0, "Use PageUp and PageDown to scoll down or up a page of items");
+	mvprintw(LINES - 1, 0, "Arrow Keys to navigate (F1 to Exit)");
+	attroff(COLOR_PAIR(2));
+	refresh();
 
-        while((c = wgetch(my_menu_win)) != KEY_F(1))
-        {       switch(c)
-                {       case KEY_DOWN:
-                                menu_driver(my_menu, REQ_DOWN_ITEM);
-                                break;
-                        case KEY_UP:
-                                menu_driver(my_menu, REQ_UP_ITEM);
-                                break;
-                        case KEY_NPAGE:
-                                menu_driver(my_menu, REQ_SCR_DPAGE);
-                                break;
-                        case KEY_PPAGE:
-                                menu_driver(my_menu, REQ_SCR_UPAGE);
-                                break;
-                }
+	while((c = wgetch(my_menu_win)) != KEY_F(1))
+	{       switch(c)
+	        {	case KEY_DOWN:
+				menu_driver(my_menu, REQ_DOWN_ITEM);
+				break;
+			case KEY_UP:
+				menu_driver(my_menu, REQ_UP_ITEM);
+				break;
+			case KEY_NPAGE:
+				menu_driver(my_menu, REQ_SCR_DPAGE);
+				break;
+			case KEY_PPAGE:
+				menu_driver(my_menu, REQ_SCR_UPAGE);
+				break;
+		}
                 wrefresh(my_menu_win);
-        }       
+	}	
 
-        /* Unpost and free all the memory taken up */
+	/* Unpost and free all the memory taken up */
         unpost_menu(my_menu);
         free_menu(my_menu);
-        for(i = 0; i < n_choices; ++i)
+        for(i = 0; i < n_choices; ++i)
                 free_item(my_items[i]);
-        endwin();
+	endwin();
 }
 
 void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
-{       int length, x, y;
-        float temp;
+{	int length, x, y;
+	float temp;
 
-        if(win == NULL)
-                win = stdscr;
-        getyx(win, y, x);
-        if(startx != 0)
-                x = startx;
-        if(starty != 0)
-                y = starty;
-        if(width == 0)
-                width = 80;
+	if(win == NULL)
+		win = stdscr;
+	getyx(win, y, x);
+	if(startx != 0)
+		x = startx;
+	if(starty != 0)
+		y = starty;
+	if(width == 0)
+		width = 80;
 
-        length = strlen(string);
-        temp = (width - length)/ 2;
-        x = startx + (int)temp;
-        wattron(win, color);
-        mvwprintw(win, y, x, "%s", string);
-        wattroff(win, color);
-        refresh();
-}
-
-
-

This program is self-explanatory. In this example the number of -choices has been increased to ten, which is larger than our sub -window size which can hold 6 items. This message has to be -explicitly conveyed to the menu system with the function -set_menu_format(). In here we specify the number of rows and -columns we want to be displayed for a single page. We can specify -any number of items to be shown, in the rows variables, if it is -less than the height of the sub window. If the key pressed by the -user is a PAGE UP or PAGE DOWN, the menu is scrolled a page due to -the requests (REQ_SCR_DPAGE and REQ_SCR_UPAGE) given to -menu_driver().

-
-
-
-

17.6. -Multi Columnar Menus

-

In the above example you have seen how to use the function -set_menu_format(). I didn't mention what the cols variable (third -parameter) does. Well, If your sub window is wide enough, you can -opt to display more than one item per row. This can be specified in -the cols variable. To make things simpler, the following example -doesn't show descriptions for the items.

-
-

Example 21. Milt Columnar Menus Example

- - - - -
-
-#include <curses.h>
-#include <menu.h>
+	length = strlen(string);
+	temp = (width - length)/ 2;
+	x = startx + (int)temp;
+	wattron(win, color);
+	mvwprintw(win, y, x, "%s", string);
+	wattroff(win, color);
+	refresh();
+}

This program is self-explanatory. In this example the number of choices has been +increased to ten, which is larger than our sub window size which can hold 6 +items. This message has to be explicitly conveyed to the menu system with the +function set_menu_format(). In here we specify the number of rows and columns we +want to be displayed for a single page. We can specify any number of items to be +shown, in the rows variables, if it is less than the height of the sub window. +If the key pressed by the user is a PAGE UP or PAGE DOWN, the menu is scrolled a +page due to the requests (REQ_SCR_DPAGE and REQ_SCR_UPAGE) given to +menu_driver().


17.6. Multi Columnar Menus

In the above example you have seen how to use the function set_menu_format(). I +didn't mention what the cols variable (third parameter) does. Well, If your sub +window is wide enough, you can opt to display more than one item per row. This +can be specified in the cols variable. To make things simpler, the following +example doesn't show descriptions for the items.

Example 21. Milt Columnar Menus Example

#include <curses.h>
+#include <menu.h>
 
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-#define CTRLD   4
+#define CTRLD 	4
 
 char *choices[] = {
                         "Choice 1", "Choice 2", "Choice 3", "Choice 4", "Choice 5",
-                        "Choice 6", "Choice 7", "Choice 8", "Choice 9", "Choice 10",
-                        "Choice 11", "Choice 12", "Choice 13", "Choice 14", "Choice 15",
-                        "Choice 16", "Choice 17", "Choice 18", "Choice 19", "Choice 20",
+			"Choice 6", "Choice 7", "Choice 8", "Choice 9", "Choice 10",
+			"Choice 11", "Choice 12", "Choice 13", "Choice 14", "Choice 15",
+			"Choice 16", "Choice 17", "Choice 18", "Choice 19", "Choice 20",
                         "Exit",
                         (char *)NULL,
                   };
 
 int main()
-{       ITEM **my_items;
-        int c;                          
-        MENU *my_menu;
+{	ITEM **my_items;
+	int c;				
+	MENU *my_menu;
         WINDOW *my_menu_win;
         int n_choices, i;
-        
-        /* Initialize curses */
-        initscr();
-        start_color();
+	
+	/* Initialize curses */
+	initscr();
+	start_color();
         cbreak();
         noecho();
-        keypad(stdscr, TRUE);
-        init_pair(1, COLOR_RED, COLOR_BLACK);
-        init_pair(2, COLOR_CYAN, COLOR_BLACK);
+	keypad(stdscr, TRUE);
+	init_pair(1, COLOR_RED, COLOR_BLACK);
+	init_pair(2, COLOR_CYAN, COLOR_BLACK);
 
-        /* Create items */
+	/* Create items */
         n_choices = ARRAY_SIZE(choices);
         my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *));
-        for(i = 0; i < n_choices; ++i)
+        for(i = 0; i < n_choices; ++i)
                 my_items[i] = new_item(choices[i], choices[i]);
 
-        /* Crate menu */
-        my_menu = new_menu((ITEM **)my_items);
+	/* Crate menu */
+	my_menu = new_menu((ITEM **)my_items);
 
-        /* Set menu option not to show the description */
-        menu_opts_off(my_menu, O_SHOWDESC);
+	/* Set menu option not to show the description */
+	menu_opts_off(my_menu, O_SHOWDESC);
 
-        /* Create the window to be associated with the menu */
+	/* Create the window to be associated with the menu */
         my_menu_win = newwin(10, 70, 4, 4);
         keypad(my_menu_win, TRUE);
      
-        /* Set main window and sub window */
+	/* Set main window and sub window */
         set_menu_win(my_menu, my_menu_win);
         set_menu_sub(my_menu, derwin(my_menu_win, 6, 68, 3, 1));
-        set_menu_format(my_menu, 5, 3);
-        set_menu_mark(my_menu, " * ");
+	set_menu_format(my_menu, 5, 3);
+	set_menu_mark(my_menu, " * ");
 
-        /* Print a border around the main window and print a title */
+	/* Print a border around the main window and print a title */
         box(my_menu_win, 0, 0);
-        
-        attron(COLOR_PAIR(2));
-        mvprintw(LINES - 3, 0, "Use PageUp and PageDown to scroll");
-        mvprintw(LINES - 2, 0, "Use Arrow Keys to navigate (F1 to Exit)");
-        attroff(COLOR_PAIR(2));
-        refresh();
+	
+	attron(COLOR_PAIR(2));
+	mvprintw(LINES - 3, 0, "Use PageUp and PageDown to scroll");
+	mvprintw(LINES - 2, 0, "Use Arrow Keys to navigate (F1 to Exit)");
+	attroff(COLOR_PAIR(2));
+	refresh();
 
-        /* Post the menu */
-        post_menu(my_menu);
-        wrefresh(my_menu_win);
-        
-        while((c = wgetch(my_menu_win)) != KEY_F(1))
-        {       switch(c)
-                {       case KEY_DOWN:
-                                menu_driver(my_menu, REQ_DOWN_ITEM);
-                                break;
-                        case KEY_UP:
-                                menu_driver(my_menu, REQ_UP_ITEM);
-                                break;
-                        case KEY_LEFT:
-                                menu_driver(my_menu, REQ_LEFT_ITEM);
-                                break;
-                        case KEY_RIGHT:
-                                menu_driver(my_menu, REQ_RIGHT_ITEM);
-                                break;
-                        case KEY_NPAGE:
-                                menu_driver(my_menu, REQ_SCR_DPAGE);
-                                break;
-                        case KEY_PPAGE:
-                                menu_driver(my_menu, REQ_SCR_UPAGE);
-                                break;
-                }
+	/* Post the menu */
+	post_menu(my_menu);
+	wrefresh(my_menu_win);
+	
+	while((c = wgetch(my_menu_win)) != KEY_F(1))
+	{       switch(c)
+	        {	case KEY_DOWN:
+				menu_driver(my_menu, REQ_DOWN_ITEM);
+				break;
+			case KEY_UP:
+				menu_driver(my_menu, REQ_UP_ITEM);
+				break;
+			case KEY_LEFT:
+				menu_driver(my_menu, REQ_LEFT_ITEM);
+				break;
+			case KEY_RIGHT:
+				menu_driver(my_menu, REQ_RIGHT_ITEM);
+				break;
+			case KEY_NPAGE:
+				menu_driver(my_menu, REQ_SCR_DPAGE);
+				break;
+			case KEY_PPAGE:
+				menu_driver(my_menu, REQ_SCR_UPAGE);
+				break;
+		}
                 wrefresh(my_menu_win);
-        }       
+	}	
 
-        /* Unpost and free all the memory taken up */
+	/* Unpost and free all the memory taken up */
         unpost_menu(my_menu);
         free_menu(my_menu);
-        for(i = 0; i < n_choices; ++i)
+        for(i = 0; i < n_choices; ++i)
                 free_item(my_items[i]);
-        endwin();
-}
-
-
-

Watch the function call to set_menu_format(). It specifies the -number of columns to be 3, thus displaying 3 items per row. We have -also switched off the showing descriptions with the function -menu_opts_off(). There are couple of functions set_menu_opts(), -menu_opts_on() and menu_opts() which can be used to manipulate menu -options. The following menu options can be specified.

- - - - -
-
-       O_ONEVALUE
+	endwin();
+}

Watch the function call to set_menu_format(). It specifies the number of columns +to be 3, thus displaying 3 items per row. We have also switched off the showing +descriptions with the function menu_opts_off(). There are couple of functions +set_menu_opts(), menu_opts_on() and menu_opts() which can be used to manipulate +menu options. The following menu options can be specified.

       O_ONEVALUE
             Only one item can be selected for this menu.
 
        O_SHOWDESC
@@ -4310,633 +5898,684 @@ options. The following menu options can be specified.

O_NONCYCLIC Don't wrap around next-item and previous-item, - requests to the other end of the menu.
-
-

All options are on by default. You can switch specific -attributes on or off with menu_opts_on() and menu_opts_off() -functions. You can also use set_menu_opts() to directly specify the -options. The argument to this function should be a OR ed value of -some of those above constants. The function menu_opts() can be used -to find out a menu's present options.

-
-
-
-

17.7. Multi Valued Menus

-

You might be wondering what if you switch off the option -O_ONEVALUE. Then the menu becomes multi-valued. That means you can -select more than one item. This brings us to the request -REQ_TOGGLE_ITEM. Let's see it in action.

-
-

Example 22. Multi Valued Menus example

- - - - -
-
-#include <curses.h>
-#include <menu.h>
+            requests to the other end of the menu.

All options are on by default. You can switch specific attributes on or off with +menu_opts_on() and menu_opts_off() functions. You can also use set_menu_opts() +to directly specify the options. The argument to this function should be a OR ed +value of some of those above constants. The function menu_opts() can be used to +find out a menu's present options.


17.7. Multi Valued Menus

You might be wondering what if you switch off the option O_ONEVALUE. Then the +menu becomes multi-valued. That means you can select more than one item. This +brings us to the request REQ_TOGGLE_ITEM. Let's see it in action.

Example 22. Multi Valued Menus example

#include <curses.h>
+#include <menu.h>
 
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-#define CTRLD   4
+#define CTRLD 	4
 
 char *choices[] = {
                         "Choice 1",
                         "Choice 2",
                         "Choice 3",
                         "Choice 4",
-                        "Choice 5",
-                        "Choice 6",
-                        "Choice 7",
+			"Choice 5",
+			"Choice 6",
+			"Choice 7",
                         "Exit",
                   };
 
 int main()
-{       ITEM **my_items;
-        int c;                          
-        MENU *my_menu;
+{	ITEM **my_items;
+	int c;				
+	MENU *my_menu;
         int n_choices, i;
-        ITEM *cur_item;
-        
-        /* Initialize curses */ 
-        initscr();
+	ITEM *cur_item;
+	
+	/* Initialize curses */	
+	initscr();
         cbreak();
         noecho();
-        keypad(stdscr, TRUE);
+	keypad(stdscr, TRUE);
 
-        /* Initialize items */
+	/* Initialize items */
         n_choices = ARRAY_SIZE(choices);
         my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
-        for(i = 0; i < n_choices; ++i)
+        for(i = 0; i < n_choices; ++i)
                 my_items[i] = new_item(choices[i], choices[i]);
-        my_items[n_choices] = (ITEM *)NULL;
+	my_items[n_choices] = (ITEM *)NULL;
 
-        my_menu = new_menu((ITEM **)my_items);
+	my_menu = new_menu((ITEM **)my_items);
 
-        /* Make the menu multi valued */
-        menu_opts_off(my_menu, O_ONEVALUE);
+	/* Make the menu multi valued */
+	menu_opts_off(my_menu, O_ONEVALUE);
 
-        mvprintw(LINES - 3, 0, "Use <SPACE> to select or unselect an item.");
-        mvprintw(LINES - 2, 0, "<ENTER> to see presently selected items(F1 to Exit)");
-        post_menu(my_menu);
-        refresh();
+	mvprintw(LINES - 3, 0, "Use <SPACE> to select or unselect an item.");
+	mvprintw(LINES - 2, 0, "<ENTER> to see presently selected items(F1 to Exit)");
+	post_menu(my_menu);
+	refresh();
 
-        while((c = getch()) != KEY_F(1))
-        {       switch(c)
-                {       case KEY_DOWN:
-                                menu_driver(my_menu, REQ_DOWN_ITEM);
-                                break;
-                        case KEY_UP:
-                                menu_driver(my_menu, REQ_UP_ITEM);
-                                break;
-                        case ' ':
-                                menu_driver(my_menu, REQ_TOGGLE_ITEM);
-                                break;
-                        case 10:        /* Enter */
-                        {       char temp[200];
-                                ITEM **items;
+	while((c = getch()) != KEY_F(1))
+	{       switch(c)
+	        {	case KEY_DOWN:
+				menu_driver(my_menu, REQ_DOWN_ITEM);
+				break;
+			case KEY_UP:
+				menu_driver(my_menu, REQ_UP_ITEM);
+				break;
+			case ' ':
+				menu_driver(my_menu, REQ_TOGGLE_ITEM);
+				break;
+			case 10:	/* Enter */
+			{	char temp[200];
+				ITEM **items;
 
-                                items = menu_items(my_menu);
-                                temp[0] = '\0';
-                                for(i = 0; i < item_count(my_menu); ++i)
-                                        if(item_value(items[i]) == TRUE)
-                                        {       strcat(temp, item_name(items[i]));
-                                                strcat(temp, " ");
-                                        }
-                                move(20, 0);
-                                clrtoeol();
-                                mvprintw(20, 0, temp);
-                                refresh();
-                        }
-                        break;
-                }
-        }       
+				items = menu_items(my_menu);
+				temp[0] = '\0';
+				for(i = 0; i < item_count(my_menu); ++i)
+					if(item_value(items[i]) == TRUE)
+					{	strcat(temp, item_name(items[i]));
+						strcat(temp, " ");
+					}
+				move(20, 0);
+				clrtoeol();
+				mvprintw(20, 0, temp);
+				refresh();
+			}
+			break;
+		}
+	}	
 
-        free_item(my_items[0]);
+	free_item(my_items[0]);
         free_item(my_items[1]);
-        free_menu(my_menu);
-        endwin();
+	free_menu(my_menu);
+	endwin();
 }
-        
-
-
-

Whew, A lot of new functions. Let's take them one after another. -Firstly, the REQ_TOGGLE_ITEM. In a multi-valued menu, the user -should be allowed to select or un select more than one item. The -request REQ_TOGGLE_ITEM toggles the present selection. In this case -when space is pressed REQ_TOGGLE_ITEM request is sent to -menu_driver to achieve the result.

-

Now when the user presses <ENTER> we show the items he -presently selected. First we find out the items associated with the -menu using the function menu_items(). Then we loop through the -items to find out if the item is selected or not. The function -item_value() returns TRUE if an item is selected. The function -item_count() returns the number of items in the menu. The item name -can be found with item_name(). You can also find the description -associated with an item using item_description().

-
-
-
-

17.8. Menu -Options

-

Well, by this time you must be itching for some difference in -your menu, with lots of functionality. I know. You want Colors !!!. -You want to create nice menus similar to those text mode dos -games. The functions set_menu_fore() and set_menu_back() can be -used to change the attribute of the selected item and unselected -item. The names are misleading. They don't change menu's foreground -or background which would have been useless.

-

The function set_menu_grey() can be used to set the display -attribute for the non-selectable items in the menu. This brings us -to the interesting option for an item the one and only -O_SELECTABLE. We can turn it off by the function item_opts_off() -and after that that item is not selectable. It's like a grayed item -in those fancy windows menus. Let's put these concepts in practice -with this example

-
-

Example 23. Menu Options example

- - - - -
-
-#include <menu.h>
+	

Whew, A lot of new functions. Let's take them one after another. Firstly, the +REQ_TOGGLE_ITEM. In a multi-valued menu, the user should be allowed to select +or un select more than one item. The request REQ_TOGGLE_ITEM toggles the present +selection. In this case when space is pressed REQ_TOGGLE_ITEM request is sent to +menu_driver to achieve the result.

Now when the user presses <ENTER> we show the items he presently selected. +First we find out the items associated with the menu using the function +menu_items(). Then we loop through the items to find out if the item is selected +or not. The function item_value() returns TRUE if an item is selected. The +function item_count() returns the number of items in the menu. The item name can +be found with item_name(). You can also find the description associated with an +item using item_description().


17.8. Menu Options

Well, by this time you must be itching for some difference in your menu, with +lots of functionality. I know. You want Colors !!!. You want to create nice +menus similar to those text mode dos games. The functions +set_menu_fore() and set_menu_back() can be used to change the attribute of the +selected item and unselected item. The names are misleading. They don't change +menu's foreground or background which would have been useless.

The function set_menu_grey() can be used to set the display attribute for the +non-selectable items in the menu. This brings us to the interesting option for +an item the one and only O_SELECTABLE. We can turn it off by the function +item_opts_off() and after that that item is not selectable. It's like a grayed +item in those fancy windows menus. Let's put these concepts in practice with +this example

Example 23. Menu Options example

#include <menu.h>
 
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-#define CTRLD   4
+#define CTRLD 	4
 
 char *choices[] = {
                         "Choice 1",
                         "Choice 2",
                         "Choice 3",
                         "Choice 4",
-                        "Choice 5",
-                        "Choice 6",
-                        "Choice 7",
+			"Choice 5",
+			"Choice 6",
+			"Choice 7",
                         "Exit",
                   };
 
 int main()
-{       ITEM **my_items;
-        int c;                          
-        MENU *my_menu;
+{	ITEM **my_items;
+	int c;				
+	MENU *my_menu;
         int n_choices, i;
-        ITEM *cur_item;
-        
-        /* Initialize curses */ 
-        initscr();
-        start_color();
+	ITEM *cur_item;
+	
+	/* Initialize curses */	
+	initscr();
+	start_color();
         cbreak();
         noecho();
-        keypad(stdscr, TRUE);
-        init_pair(1, COLOR_RED, COLOR_BLACK);
-        init_pair(2, COLOR_GREEN, COLOR_BLACK);
-        init_pair(3, COLOR_MAGENTA, COLOR_BLACK);
+	keypad(stdscr, TRUE);
+	init_pair(1, COLOR_RED, COLOR_BLACK);
+	init_pair(2, COLOR_GREEN, COLOR_BLACK);
+	init_pair(3, COLOR_MAGENTA, COLOR_BLACK);
 
-        /* Initialize items */
+	/* Initialize items */
         n_choices = ARRAY_SIZE(choices);
         my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
-        for(i = 0; i < n_choices; ++i)
+        for(i = 0; i < n_choices; ++i)
                 my_items[i] = new_item(choices[i], choices[i]);
-        my_items[n_choices] = (ITEM *)NULL;
-        item_opts_off(my_items[3], O_SELECTABLE);
-        item_opts_off(my_items[6], O_SELECTABLE);
+	my_items[n_choices] = (ITEM *)NULL;
+	item_opts_off(my_items[3], O_SELECTABLE);
+	item_opts_off(my_items[6], O_SELECTABLE);
 
-        /* Create menu */
-        my_menu = new_menu((ITEM **)my_items);
+	/* Create menu */
+	my_menu = new_menu((ITEM **)my_items);
 
-        /* Set fore ground and back ground of the menu */
-        set_menu_fore(my_menu, COLOR_PAIR(1) | A_REVERSE);
-        set_menu_back(my_menu, COLOR_PAIR(2));
-        set_menu_grey(my_menu, COLOR_PAIR(3));
+	/* Set fore ground and back ground of the menu */
+	set_menu_fore(my_menu, COLOR_PAIR(1) | A_REVERSE);
+	set_menu_back(my_menu, COLOR_PAIR(2));
+	set_menu_grey(my_menu, COLOR_PAIR(3));
 
-        /* Post the menu */
-        mvprintw(LINES - 3, 0, "Press <ENTER> to see the option selected");
-        mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)");
-        post_menu(my_menu);
-        refresh();
+	/* Post the menu */
+	mvprintw(LINES - 3, 0, "Press <ENTER> to see the option selected");
+	mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)");
+	post_menu(my_menu);
+	refresh();
 
-        while((c = getch()) != KEY_F(1))
-        {       switch(c)
-                {       case KEY_DOWN:
-                                menu_driver(my_menu, REQ_DOWN_ITEM);
-                                break;
-                        case KEY_UP:
-                                menu_driver(my_menu, REQ_UP_ITEM);
-                                break;
-                        case 10: /* Enter */
-                                move(20, 0);
-                                clrtoeol();
-                                mvprintw(20, 0, "Item selected is : %s", 
-                                                item_name(current_item(my_menu)));
-                                pos_menu_cursor(my_menu);
-                                break;
-                }
-        }       
-        unpost_menu(my_menu);
-        for(i = 0; i < n_choices; ++i)
-                free_item(my_items[i]);
-        free_menu(my_menu);
-        endwin();
+	while((c = getch()) != KEY_F(1))
+	{       switch(c)
+	        {	case KEY_DOWN:
+				menu_driver(my_menu, REQ_DOWN_ITEM);
+				break;
+			case KEY_UP:
+				menu_driver(my_menu, REQ_UP_ITEM);
+				break;
+			case 10: /* Enter */
+				move(20, 0);
+				clrtoeol();
+				mvprintw(20, 0, "Item selected is : %s", 
+						item_name(current_item(my_menu)));
+				pos_menu_cursor(my_menu);
+				break;
+		}
+	}	
+	unpost_menu(my_menu);
+	for(i = 0; i < n_choices; ++i)
+		free_item(my_items[i]);
+	free_menu(my_menu);
+	endwin();
 }
-        
-
-
-
-
-
-

17.9. The -useful User Pointer

-

We can associate a user pointer with each item in the menu. It -works the same way as user pointer in panels. It's not touched by -menu system. You can store any thing you like in that. I usually -use it to store the function to be executed when the menu option is -chosen (It's selected and may be the user pressed -<ENTER>);

-
-

Example 24. Menu User Pointer Usage

- - - - -
-
-#include <curses.h>
-#include <menu.h>
+	

17.9. The useful User Pointer

We can associate a user pointer with each item in the menu. It works the same +way as user pointer in panels. It's not touched by menu system. You can store +any thing you like in that. I usually use it to store the function to be +executed when the menu option is chosen (It's selected and may be the user +pressed <ENTER>);

Example 24. Menu User Pointer Usage

#include <curses.h>
+#include <menu.h>
 
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-#define CTRLD   4
+#define CTRLD 	4
 
 char *choices[] = {
                         "Choice 1",
                         "Choice 2",
                         "Choice 3",
                         "Choice 4",
-                        "Choice 5",
-                        "Choice 6",
-                        "Choice 7",
+			"Choice 5",
+			"Choice 6",
+			"Choice 7",
                         "Exit",
                   };
 void func(char *name);
 
 int main()
-{       ITEM **my_items;
-        int c;                          
-        MENU *my_menu;
+{	ITEM **my_items;
+	int c;				
+	MENU *my_menu;
         int n_choices, i;
-        ITEM *cur_item;
-        
-        /* Initialize curses */ 
-        initscr();
-        start_color();
+	ITEM *cur_item;
+	
+	/* Initialize curses */	
+	initscr();
+	start_color();
         cbreak();
         noecho();
-        keypad(stdscr, TRUE);
-        init_pair(1, COLOR_RED, COLOR_BLACK);
-        init_pair(2, COLOR_GREEN, COLOR_BLACK);
-        init_pair(3, COLOR_MAGENTA, COLOR_BLACK);
+	keypad(stdscr, TRUE);
+	init_pair(1, COLOR_RED, COLOR_BLACK);
+	init_pair(2, COLOR_GREEN, COLOR_BLACK);
+	init_pair(3, COLOR_MAGENTA, COLOR_BLACK);
 
-        /* Initialize items */
+	/* Initialize items */
         n_choices = ARRAY_SIZE(choices);
         my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
-        for(i = 0; i < n_choices; ++i)
-        {       my_items[i] = new_item(choices[i], choices[i]);
-                /* Set the user pointer */
-                set_item_userptr(my_items[i], func);
-        }
-        my_items[n_choices] = (ITEM *)NULL;
+        for(i = 0; i < n_choices; ++i)
+	{       my_items[i] = new_item(choices[i], choices[i]);
+		/* Set the user pointer */
+		set_item_userptr(my_items[i], func);
+	}
+	my_items[n_choices] = (ITEM *)NULL;
 
-        /* Create menu */
-        my_menu = new_menu((ITEM **)my_items);
+	/* Create menu */
+	my_menu = new_menu((ITEM **)my_items);
 
-        /* Post the menu */
-        mvprintw(LINES - 3, 0, "Press <ENTER> to see the option selected");
-        mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)");
-        post_menu(my_menu);
-        refresh();
+	/* Post the menu */
+	mvprintw(LINES - 3, 0, "Press <ENTER> to see the option selected");
+	mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)");
+	post_menu(my_menu);
+	refresh();
 
-        while((c = getch()) != KEY_F(1))
-        {       switch(c)
-                {       case KEY_DOWN:
-                                menu_driver(my_menu, REQ_DOWN_ITEM);
-                                break;
-                        case KEY_UP:
-                                menu_driver(my_menu, REQ_UP_ITEM);
-                                break;
-                        case 10: /* Enter */
-                        {       ITEM *cur;
-                                void (*p)(char *);
+	while((c = getch()) != KEY_F(1))
+	{       switch(c)
+	        {	case KEY_DOWN:
+				menu_driver(my_menu, REQ_DOWN_ITEM);
+				break;
+			case KEY_UP:
+				menu_driver(my_menu, REQ_UP_ITEM);
+				break;
+			case 10: /* Enter */
+			{	ITEM *cur;
+				void (*p)(char *);
 
-                                cur = current_item(my_menu);
-                                p = item_userptr(cur);
-                                p((char *)item_name(cur));
-                                pos_menu_cursor(my_menu);
-                                break;
-                        }
-                        break;
-                }
-        }       
-        unpost_menu(my_menu);
-        for(i = 0; i < n_choices; ++i)
-                free_item(my_items[i]);
-        free_menu(my_menu);
-        endwin();
+				cur = current_item(my_menu);
+				p = item_userptr(cur);
+				p((char *)item_name(cur));
+				pos_menu_cursor(my_menu);
+				break;
+			}
+			break;
+		}
+	}	
+	unpost_menu(my_menu);
+	for(i = 0; i < n_choices; ++i)
+		free_item(my_items[i]);
+	free_menu(my_menu);
+	endwin();
 }
 
 void func(char *name)
-{       move(20, 0);
-        clrtoeol();
-        mvprintw(20, 0, "Item selected is : %s", name);
-}       
-
-
-
-
-
-
-

18. Forms -Library

-

Well. If you have seen those forms on web pages which take input -from users and do various kinds of things, you might be wondering -how would any one create such forms in text mode display. It's -quite difficult to write those nifty forms in plain ncurses. Forms -library tries to provide a basic frame work to build and maintain -forms with ease. It has lot of features(functions) which manage -validation, dynamic expansion of fields etc.. Let's see it in full -flow.

-

A form is a collection of fields; each field can be either a -label(static text) or a data-entry location. The forms also library -provides functions to divide forms into multiple pages.

-
-
-

18.1. The -Basics

-

Forms are created in much the same way as menus. First the -fields related to the form are created with new_field(). You can -set options for the fields, so that they can be displayed with some -fancy attributes, validated before the field looses focus etc.. -Then the fields are attached to form. After this, the form can be -posted to display and is ready to receive inputs. On the similar -lines to menu_driver(), the form is manipulated with form_driver(). -We can send requests to form_driver to move focus to a certain -field, move cursor to end of the field etc.. After the user enters -values in the fields and validation done, form can be unposted and -memory allocated can be freed.

-

The general flow of control of a forms program looks like -this.

-
    -
  1. -

    Initialize curses

    -
  2. -
  3. -

    Create fields using new_field(). You can specify the height and -width of the field, and its position on the form.

    -
  4. -
  5. -

    Create the forms with new_form() by specifying the fields to be -attached with.

    -
  6. -
  7. -

    Post the form with form_post() and refresh the screen.

    -
  8. -
  9. -

    Process the user requests with a loop and do necessary updates -to form with form_driver.

    -
  10. -
  11. -

    Unpost the menu with form_unpost()

    -
  12. -
  13. -

    Free the memory allocated to menu by free_form()

    -
  14. -
  15. -

    Free the memory allocated to the items with free_field()

    -
  16. -
  17. -

    End curses

    -
  18. -
-

As you can see, working with forms library is much similar to -handling menu library. The following examples will explore various -aspects of form processing. Let's start the journey with a simple -example. first.

-
-
-
-

18.2. -Compiling With the Forms Library

-

To use forms library functions, you have to include form.h and -to link the program with forms library the flag -lform should be -added along with -lncurses in that order.

- - - - -
-
-    #include <form.h>
+{	move(20, 0);
+	clrtoeol();
+	mvprintw(20, 0, "Item selected is : %s", name);
+}	

18. Forms Library

Well. If you have seen those forms on web pages which take input from users and +do various kinds of things, you might be wondering how would any one create such +forms in text mode display. It's quite difficult to write those nifty forms in +plain ncurses. Forms library tries to provide a basic frame work to build and +maintain forms with ease. It has lot of features(functions) which manage +validation, dynamic expansion of fields etc.. Let's see it in full flow.

A form is a collection of fields; each field can be either a label(static text) +or a data-entry location. The forms also library provides functions to divide +forms into multiple pages.


18.1. The Basics

Forms are created in much the same way as menus. First the fields related to the +form are created with new_field(). You can set options for the fields, so that +they can be displayed with some fancy attributes, validated before the field +looses focus etc.. Then the fields are attached to form. After this, the form +can be posted to display and is ready to receive inputs. On the similar lines to +menu_driver(), the form is manipulated with form_driver(). We can send requests +to form_driver to move focus to a certain field, move cursor to end of the field +etc.. After the user enters values in the fields and validation done, form can +be unposted and memory allocated can be freed.

The general flow of control of a forms program looks like this. + +

  1. Initialize curses

  2. Create fields using new_field(). You can specify the height and +width of the field, and its position on the form.

  3. Create the forms with new_form() by specifying the fields to be +attached with.

  4. Post the form with form_post() and refresh the screen.

  5. Process the user requests with a loop and do necessary updates +to form with form_driver.

  6. Unpost the menu with form_unpost()

  7. Free the memory allocated to menu by free_form()

  8. Free the memory allocated to the items with free_field()

  9. End curses

As you can see, working with forms library is much similar to handling menu +library. The following examples will explore various aspects of form +processing. Let's start the journey with a simple example. first.


18.2. Compiling With the Forms Library

To use forms library functions, you have to include form.h and to link the +program with forms library the flag -lform should be added along with -lncurses +in that order.

    #include <form.h>
     .
     .
     .
 
-    compile and link: gcc <program file> -lform -lncurses
-
-
-

Example 25. Forms Basics

- - - - -
-
-#include <form.h>
+    compile and link: gcc <program file> -lform -lncurses

Example 25. Forms Basics

#include <form.h>
 
 int main()
-{       FIELD *field[3];
-        FORM  *my_form;
-        int ch;
-        
-        /* Initialize curses */
-        initscr();
-        cbreak();
-        noecho();
-        keypad(stdscr, TRUE);
+{	FIELD *field[3];
+	FORM  *my_form;
+	int ch;
+	
+	/* Initialize curses */
+	initscr();
+	cbreak();
+	noecho();
+	keypad(stdscr, TRUE);
 
-        /* Initialize the fields */
-        field[0] = new_field(1, 10, 4, 18, 0, 0);
-        field[1] = new_field(1, 10, 6, 18, 0, 0);
-        field[2] = NULL;
+	/* Initialize the fields */
+	field[0] = new_field(1, 10, 4, 18, 0, 0);
+	field[1] = new_field(1, 10, 6, 18, 0, 0);
+	field[2] = NULL;
 
-        /* Set field options */
-        set_field_back(field[0], A_UNDERLINE);  /* Print a line for the option  */
-        field_opts_off(field[0], O_AUTOSKIP);   /* Don't go to next field when this */
-                                                /* Field is filled up           */
-        set_field_back(field[1], A_UNDERLINE); 
-        field_opts_off(field[1], O_AUTOSKIP);
+	/* Set field options */
+	set_field_back(field[0], A_UNDERLINE); 	/* Print a line for the option 	*/
+	field_opts_off(field[0], O_AUTOSKIP);  	/* Don't go to next field when this */
+						/* Field is filled up 		*/
+	set_field_back(field[1], A_UNDERLINE); 
+	field_opts_off(field[1], O_AUTOSKIP);
 
-        /* Create the form and post it */
-        my_form = new_form(field);
-        post_form(my_form);
-        refresh();
-        
-        mvprintw(4, 10, "Value 1:");
-        mvprintw(6, 10, "Value 2:");
-        refresh();
+	/* Create the form and post it */
+	my_form = new_form(field);
+	post_form(my_form);
+	refresh();
+	
+	mvprintw(4, 10, "Value 1:");
+	mvprintw(6, 10, "Value 2:");
+	refresh();
 
-        /* Loop through to get user requests */
-        while((ch = getch()) != KEY_F(1))
-        {       switch(ch)
-                {       case KEY_DOWN:
-                                /* Go to next field */
-                                form_driver(my_form, REQ_NEXT_FIELD);
-                                /* Go to the end of the present buffer */
-                                /* Leaves nicely at the last character */
-                                form_driver(my_form, REQ_END_LINE);
-                                break;
-                        case KEY_UP:
-                                /* Go to previous field */
-                                form_driver(my_form, REQ_PREV_FIELD);
-                                form_driver(my_form, REQ_END_LINE);
-                                break;
-                        default:
-                                /* If this is a normal character, it gets */
-                                /* Printed                                */    
-                                form_driver(my_form, ch);
-                                break;
-                }
-        }
+	/* Loop through to get user requests */
+	while((ch = getch()) != KEY_F(1))
+	{	switch(ch)
+		{	case KEY_DOWN:
+				/* Go to next field */
+				form_driver(my_form, REQ_NEXT_FIELD);
+				/* Go to the end of the present buffer */
+				/* Leaves nicely at the last character */
+				form_driver(my_form, REQ_END_LINE);
+				break;
+			case KEY_UP:
+				/* Go to previous field */
+				form_driver(my_form, REQ_PREV_FIELD);
+				form_driver(my_form, REQ_END_LINE);
+				break;
+			default:
+				/* If this is a normal character, it gets */
+				/* Printed				  */	
+				form_driver(my_form, ch);
+				break;
+		}
+	}
 
-        /* Un post form and free the memory */
-        unpost_form(my_form);
-        free_form(my_form);
-        free_field(field[0]);
-        free_field(field[1]); 
+	/* Un post form and free the memory */
+	unpost_form(my_form);
+	free_form(my_form);
+	free_field(field[0]);
+	free_field(field[1]); 
 
-        endwin();
-        return 0;
-}
-
-
-

Above example is pretty straight forward. It creates two fields -with new_field(). new_field() takes -height, width, starty, startx, number of offscreen rows and number -of additional working buffers. The fifth argument number of -offscreen rows specifies how much of the field to be shown. If it -is zero, the entire field is always displayed otherwise the form -will be scrollable when the user accesses not displayed parts of -the field. The forms library allocates one buffer per field to -store the data user enters. Using the last parameter to new_field() -we can specify it to allocate some additional buffers. These can be -used for any purpose you like.

-

After creating the fields, back ground attribute of both of them -is set to an underscore with set_field_back(). The AUTOSKIP option -is turned off using field_opts_off(). If this option is turned on, -focus will move to the next field in the form once the active field -is filled up completely.

-

After attaching the fields to the form, it is posted. Here on, -user inputs are processed in the while loop, by making -corresponding requests to form_driver. The details of all the -requests to the form_driver() are explained later.

-
-
-
-

18.3. -Playing with Fields

-

Each form field is associated with a lot of attributes. They can -be manipulated to get the required effect and to have fun !!!. So -why wait?

-
-
-

18.3.1. -Fetching Size and Location of Field

-

The parameters we have given at the time of creation of a field -can be retrieved with field_info(). It returns height, width, -starty, startx, number of offscreen rows, and number of additional -buffers into the parameters given to it. It is a sort of inverse of -new_field().

- - - - -
-
-int field_info(     FIELD *field,              /* field from which to fetch */
+	endwin();
+	return 0;
+}

Above example is pretty straight forward. It creates two fields with +new_field(). new_field() takes height, width, +starty, startx, number of offscreen rows and number of additional working +buffers. The fifth argument number of offscreen rows specifies how much of the +field to be shown. If it is zero, the entire field is always displayed otherwise +the form will be scrollable when the user accesses not displayed parts of the +field. The forms library allocates one buffer per field to store the data user +enters. Using the last parameter to new_field() we can specify it to allocate +some additional buffers. These can be used for any purpose you like.

After creating the fields, back ground attribute of both of them is set to an +underscore with set_field_back(). The AUTOSKIP option is turned off using +field_opts_off(). If this option is turned on, focus will move to the next +field in the form once the active field is filled up completely.

After attaching the fields to the form, it is posted. Here on, user inputs are +processed in the while loop, by making corresponding requests to form_driver. +The details of all the requests to the form_driver() are explained later.


18.3. Playing with Fields

Each form field is associated with a lot of attributes. They can be manipulated +to get the required effect and to have fun !!!. So why wait?


18.3.1. Fetching Size and Location of Field

The parameters we have given at the time of creation of a field can be retrieved +with field_info(). It returns height, width, starty, startx, number of offscreen +rows, and number of additional buffers into the parameters given to it. It is a +sort of inverse of new_field().

int field_info(     FIELD *field,              /* field from which to fetch */
                     int *height, *int width,   /* field size */ 
                     int *top, int *left,       /* upper left corner */
                     int *offscreen,            /* number of offscreen rows */
-                    int *nbuf);                /* number of working buffers */
-
-
-
-
-

18.3.2. Moving -the field

-

The location of the field can be moved to a different position -with move_field().

- - - - -
-
-int move_field(    FIELD *field,              /* field to alter */
-                   int top, int left);        /* new upper-left corner */
-
-

As usual, the changed position can be queried with -field_infor().

-
-
-
-

18.3.3. -Field Justification

-

The justification to be done for the field can be fixed using -the function set_field_just().

- - - - -
-
-    int set_field_just(FIELD *field,          /* field to alter */
+                    int *nbuf);                /* number of working buffers */

18.3.2. Moving the field

The location of the field can be moved to a different position with +move_field().

int move_field(    FIELD *field,              /* field to alter */
+                   int top, int left);        /* new upper-left corner */

As usual, the changed position can be queried with field_infor().


18.3.3. Field Justification

The justification to be done for the field can be fixed using the function +set_field_just().

    int set_field_just(FIELD *field,          /* field to alter */
                int justmode);         /* mode to set */
-    int field_just(FIELD *field);          /* fetch justify mode of field */
-
-

The justification mode valued accepted and returned by these -functions are NO_JUSTIFICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or -JUSTIFY_CENTER.

-
-
-
-

18.3.4. Field Display Attributes

-

As you have seen, in the above example, display attribute for -the fields can be set with set_field_fore() and setfield_back(). -These functions set foreground and background attribute of the -fields. You can also specify a pad character which will be filled -in the unfilled portion of the field. The pad character is set with -a call to set_field_pad(). Default pad value is a space. The -functions field_fore(), field_back, field_pad() can be used to -query the present foreground, background attributes and pad -character for the field. The following list gives the usage of -functions.

- - - - -
-
-
int set_field_fore(FIELD *field,        /* field to alter */
+    int field_just(FIELD *field);          /* fetch justify mode of field */

The justification mode valued accepted and returned by these functions are +NO_JUSTIFICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or JUSTIFY_CENTER.


18.3.4. Field Display Attributes

As you have seen, in the above example, display attribute for the fields can be +set with set_field_fore() and setfield_back(). These functions set foreground +and background attribute of the fields. You can also specify a pad character +which will be filled in the unfilled portion of the field. The pad character is +set with a call to set_field_pad(). Default pad value is a space. The functions +field_fore(), field_back, field_pad() can be used to query the present +foreground, background attributes and pad character for the field. The following +list gives the usage of functions.


int set_field_fore(FIELD *field,        /* field to alter */
                    chtype attr);        /* attribute to set */ 
 
 chtype field_fore(FIELD *field);        /* field to query */
@@ -4952,124 +6591,127 @@ int set_field_pad(FIELD *field,         /* field to alter */
                   int pad);             /* pad character to set */ 
 
 chtype field_pad(FIELD *field);         /* field to query */  
-                                        /* returns present pad character */
-
-

Though above functions seem quite simple, using colors with -set_field_fore() may be frustrating in the beginning. Let me first -explain about foreground and background attributes of a field. The -foreground attribute is associated with the character. That means a -character in the field is printed with the attribute you have set -with set_field_fore(). Background attribute is the attribute used -to fill background of field, whether any character is there or not. -So what about colors? Since colors are always defined in pairs, -what is the right way to display colored fields? Here's an example -clarifying color attributes.

-
-

Example 26. Form Attributes example

- - - - -
-
-#include <form.h>
+                                        /* returns present pad character */

Though above functions seem quite simple, using colors with set_field_fore() may +be frustrating in the beginning. Let me first explain about foreground and +background attributes of a field. The foreground attribute is associated with +the character. That means a character in the field is printed with the attribute +you have set with set_field_fore(). Background attribute is the attribute used +to fill background of field, whether any character is there or not. So what +about colors? Since colors are always defined in pairs, what is the right way to +display colored fields? Here's an example clarifying color attributes.

Example 26. Form Attributes example

#include <form.h>
 
 int main()
-{       FIELD *field[3];
-        FORM  *my_form;
-        int ch;
-        
-        /* Initialize curses */
-        initscr();
-        start_color();
-        cbreak();
-        noecho();
-        keypad(stdscr, TRUE);
+{	FIELD *field[3];
+	FORM  *my_form;
+	int ch;
+	
+	/* Initialize curses */
+	initscr();
+	start_color();
+	cbreak();
+	noecho();
+	keypad(stdscr, TRUE);
 
-        /* Initialize few color pairs */
-        init_pair(1, COLOR_WHITE, COLOR_BLUE);
-        init_pair(2, COLOR_WHITE, COLOR_BLUE);
+	/* Initialize few color pairs */
+	init_pair(1, COLOR_WHITE, COLOR_BLUE);
+	init_pair(2, COLOR_WHITE, COLOR_BLUE);
 
-        /* Initialize the fields */
-        field[0] = new_field(1, 10, 4, 18, 0, 0);
-        field[1] = new_field(1, 10, 6, 18, 0, 0);
-        field[2] = NULL;
+	/* Initialize the fields */
+	field[0] = new_field(1, 10, 4, 18, 0, 0);
+	field[1] = new_field(1, 10, 6, 18, 0, 0);
+	field[2] = NULL;
 
-        /* Set field options */
-        set_field_fore(field[0], COLOR_PAIR(1));/* Put the field with blue background */
-        set_field_back(field[0], COLOR_PAIR(2));/* and white foreground (characters */
-                                                /* are printed in white         */
-        field_opts_off(field[0], O_AUTOSKIP);   /* Don't go to next field when this */
-                                                /* Field is filled up           */
-        set_field_back(field[1], A_UNDERLINE); 
-        field_opts_off(field[1], O_AUTOSKIP);
+	/* Set field options */
+	set_field_fore(field[0], COLOR_PAIR(1));/* Put the field with blue background */
+	set_field_back(field[0], COLOR_PAIR(2));/* and white foreground (characters */
+						/* are printed in white 	*/
+	field_opts_off(field[0], O_AUTOSKIP);  	/* Don't go to next field when this */
+						/* Field is filled up 		*/
+	set_field_back(field[1], A_UNDERLINE); 
+	field_opts_off(field[1], O_AUTOSKIP);
 
-        /* Create the form and post it */
-        my_form = new_form(field);
-        post_form(my_form);
-        refresh();
-        
-        set_current_field(my_form, field[0]); /* Set focus to the colored field */
-        mvprintw(4, 10, "Value 1:");
-        mvprintw(6, 10, "Value 2:");
-        mvprintw(LINES - 2, 0, "Use UP, DOWN arrow keys to switch between fields");
-        refresh();
+	/* Create the form and post it */
+	my_form = new_form(field);
+	post_form(my_form);
+	refresh();
+	
+	set_current_field(my_form, field[0]); /* Set focus to the colored field */
+	mvprintw(4, 10, "Value 1:");
+	mvprintw(6, 10, "Value 2:");
+	mvprintw(LINES - 2, 0, "Use UP, DOWN arrow keys to switch between fields");
+	refresh();
 
-        /* Loop through to get user requests */
-        while((ch = getch()) != KEY_F(1))
-        {       switch(ch)
-                {       case KEY_DOWN:
-                                /* Go to next field */
-                                form_driver(my_form, REQ_NEXT_FIELD);
-                                /* Go to the end of the present buffer */
-                                /* Leaves nicely at the last character */
-                                form_driver(my_form, REQ_END_LINE);
-                                break;
-                        case KEY_UP:
-                                /* Go to previous field */
-                                form_driver(my_form, REQ_PREV_FIELD);
-                                form_driver(my_form, REQ_END_LINE);
-                                break;
-                        default:
-                                /* If this is a normal character, it gets */
-                                /* Printed                                */    
-                                form_driver(my_form, ch);
-                                break;
-                }
-        }
+	/* Loop through to get user requests */
+	while((ch = getch()) != KEY_F(1))
+	{	switch(ch)
+		{	case KEY_DOWN:
+				/* Go to next field */
+				form_driver(my_form, REQ_NEXT_FIELD);
+				/* Go to the end of the present buffer */
+				/* Leaves nicely at the last character */
+				form_driver(my_form, REQ_END_LINE);
+				break;
+			case KEY_UP:
+				/* Go to previous field */
+				form_driver(my_form, REQ_PREV_FIELD);
+				form_driver(my_form, REQ_END_LINE);
+				break;
+			default:
+				/* If this is a normal character, it gets */
+				/* Printed				  */	
+				form_driver(my_form, ch);
+				break;
+		}
+	}
 
-        /* Un post form and free the memory */
-        unpost_form(my_form);
-        free_form(my_form);
-        free_field(field[0]);
-        free_field(field[1]); 
+	/* Un post form and free the memory */
+	unpost_form(my_form);
+	free_form(my_form);
+	free_field(field[0]);
+	free_field(field[1]); 
 
-        endwin();
-        return 0;
-}
-
-
-

Play with the color pairs and try to understand the foreground -and background attributes. In my programs using color attributes, I -usually set only the background with set_field_back(). Curses -simply doesn't allow defining individual color attributes.

-
-
-
-

18.3.5. Field Option Bits

-

There is also a large collection of field option bits you can -set to control various aspects of forms processing. You can -manipulate them with these functions:

- - - - -
-
-int set_field_opts(FIELD *field,          /* field to alter */
+	endwin();
+	return 0;
+}

Play with the color pairs and try to understand the foreground and background +attributes. In my programs using color attributes, I usually set only the +background with set_field_back(). Curses simply doesn't allow defining +individual color attributes.


18.3.5. Field Option Bits

There is also a large collection of field option bits you can set to control +various aspects of forms processing. You can manipulate them with these +functions:

int set_field_opts(FIELD *field,          /* field to alter */
                    int attr);             /* attribute to set */ 
 
 int field_opts_on(FIELD *field,           /* field to alter */
@@ -5078,108 +6720,134 @@ int field_opts_on(FIELD *field,           /* field to alter */
 int field_opts_off(FIELD *field,          /* field to alter */
                   int attr);              /* attributes to turn off */ 
 
-int field_opts(FIELD *field);             /* field to query */ 
-
-

The function set_field_opts() can be used to directly set -attributes of a field or you can choose to switch a few attributes -on and off with field_opts_on() and field_opts_off() selectively. -Anytime you can query the attributes of a field with field_opts(). -The following is the list of available options. By default, all -options are on.

-
-
-
O_VISIBLE
-
-

Controls whether the field is visible on the screen. Can be used -during form processing to hide or pop up fields depending on the -value of parent fields.

-
-
O_ACTIVE
-
-

Controls whether the field is active during forms processing -(i.e. visited by form navigation keys). Can be used to make labels -or derived fields with buffer values alterable by the forms -application, not the user.

-
-
O_PUBLIC
-
-

Controls whether data is displayed during field entry. If this -option is turned off on a field, the library will accept and edit -data in that field, but it will not be displayed and the visible -field cursor will not move. You can turn off the O_PUBLIC bit to -define password fields.

-
-
O_EDIT
-
-

Controls whether the field's data can be modified. When this -option is off, all editing requests except REQ_PREV_CHOICE and REQ_NEXT_CHOICEwill fail. Such read-only fields may -be useful for help messages.

-
-
O_WRAP
-
-

Controls word-wrapping in multi-line fields. Normally, when any -character of a (blank-separated) word reaches the end of the -current line, the entire word is wrapped to the next line (assuming -there is one). When this option is off, the word will be split -across the line break.

-
-
O_BLANK
-
-

Controls field blanking. When this option is on, entering a -character at the first field position erases the entire field -(except for the just-entered character).

-
-
O_AUTOSKIP
-
-

Controls automatic skip to next field when this one fills. -Normally, when the forms user tries to type more data into a field -than will fit, the editing location jumps to next field. When this -option is off, the user's cursor will hang at the end of the field. -This option is ignored in dynamic fields that have not reached -their size limit.

-
-
O_NULLOK
-
-

Controls whether validation is applied to blank fields. -Normally, it is not; the user can leave a field blank without -invoking the usual validation check on exit. If this option is off -on a field, exit from it will invoke a validation check.

-
-
O_PASSOK
-
-

Controls whether validation occurs on every exit, or only after -the field is modified. Normally the latter is true. Setting -O_PASSOK may be useful if your field's validation function may -change during forms processing.

-
-
O_STATIC
-
-

Controls whether the field is fixed to its initial dimensions. -If you turn this off, the field becomes dynamic and will stretch to -fit entered data.

-
-
-
-

A field's options cannot be changed while the field is currently -selected. However, options may be changed on posted fields that are -not current.

-

The option values are bit-masks and can be composed with -logical-or in the obvious way. You have seen the usage of switching -off O_AUTOSKIP option. The following example clarifies usage of -some more options. Other options are explained where -appropriate.

-
-

Example 27. Field Options Usage example

- - - - -
-
-#include <form.h>
+int field_opts(FIELD *field);             /* field to query */ 

The function set_field_opts() can be used to directly set attributes of a field +or you can choose to switch a few attributes on and off with field_opts_on() and +field_opts_off() selectively. Anytime you can query the attributes of a field +with field_opts(). The following is the list of available options. By default, +all options are on.

O_VISIBLE

Controls whether the field is visible on the screen. Can be used +during form processing to hide or pop up fields depending on the value +of parent fields.

O_ACTIVE

Controls whether the field is active during forms processing (i.e. +visited by form navigation keys). Can be used to make labels or derived +fields with buffer values alterable by the forms application, not the user.

O_PUBLIC

Controls whether data is displayed during field entry. If this option is +turned off on a field, the library will accept and edit data in that field, +but it will not be displayed and the visible field cursor will not move. +You can turn off the O_PUBLIC bit to define password fields.

O_EDIT

Controls whether the field's data can be modified. When this option is +off, all editing requests except REQ_PREV_CHOICE and REQ_NEXT_CHOICEwill +fail. Such read-only fields may be useful for help messages.

O_WRAP

Controls word-wrapping in multi-line fields. Normally, when any +character of a (blank-separated) word reaches the end of the current line, the +entire word is wrapped to the next line (assuming there is one). When this +option is off, the word will be split across the line break.

O_BLANK

Controls field blanking. When this option is on, entering a character at +the first field position erases the entire field (except for the just-entered +character).

O_AUTOSKIP

Controls automatic skip to next field when this one fills. Normally, +when the forms user tries to type more data into a field than will fit, +the editing location jumps to next field. When this option is off, the +user's cursor will hang at the end of the field. This option is ignored +in dynamic fields that have not reached their size limit.

O_NULLOK

Controls whether validation is applied to +blank fields. Normally, it is not; the user can leave a field blank +without invoking the usual validation check on exit. If this option is +off on a field, exit from it will invoke a validation check.

O_PASSOK

Controls whether validation occurs on every exit, or only after +the field is modified. Normally the latter is true. Setting O_PASSOK +may be useful if your field's validation function may change during +forms processing.

O_STATIC

Controls whether the field is fixed to its initial dimensions. If you +turn this off, the field becomes dynamic and will +stretch to fit entered data.

A field's options cannot be changed while the field is currently selected. +However, options may be changed on posted fields that are not current.

The option values are bit-masks and can be composed with logical-or in +the obvious way. You have seen the usage of switching off O_AUTOSKIP option. +The following example clarifies usage of some more options. Other options +are explained where appropriate.

Example 27. Field Options Usage example

#include <form.h>
 
 #define STARTX 15
 #define STARTY 4
@@ -5188,975 +6856,1476 @@ appropriate.

#define N_FIELDS 3 int main() -{ FIELD *field[N_FIELDS]; - FORM *my_form; - int ch, i; - - /* Initialize curses */ - initscr(); - cbreak(); - noecho(); - keypad(stdscr, TRUE); +{ FIELD *field[N_FIELDS]; + FORM *my_form; + int ch, i; + + /* Initialize curses */ + initscr(); + cbreak(); + noecho(); + keypad(stdscr, TRUE); - /* Initialize the fields */ - for(i = 0; i < N_FIELDS - 1; ++i) - field[i] = new_field(1, WIDTH, STARTY + i * 2, STARTX, 0, 0); - field[N_FIELDS - 1] = NULL; + /* Initialize the fields */ + for(i = 0; i < N_FIELDS - 1; ++i) + field[i] = new_field(1, WIDTH, STARTY + i * 2, STARTX, 0, 0); + field[N_FIELDS - 1] = NULL; - /* Set field options */ - set_field_back(field[1], A_UNDERLINE); /* Print a line for the option */ - - field_opts_off(field[0], O_ACTIVE); /* This field is a static label */ - field_opts_off(field[1], O_PUBLIC); /* This filed is like a password field*/ - field_opts_off(field[1], O_AUTOSKIP); /* To avoid entering the same field */ - /* after last character is entered */ - - /* Create the form and post it */ - my_form = new_form(field); - post_form(my_form); - refresh(); - - set_field_just(field[0], JUSTIFY_CENTER); /* Center Justification */ - set_field_buffer(field[0], 0, "This is a static Field"); - /* Initialize the field */ - mvprintw(STARTY, STARTX - 10, "Field 1:"); - mvprintw(STARTY + 2, STARTX - 10, "Field 2:"); - refresh(); + /* Set field options */ + set_field_back(field[1], A_UNDERLINE); /* Print a line for the option */ + + field_opts_off(field[0], O_ACTIVE); /* This field is a static label */ + field_opts_off(field[1], O_PUBLIC); /* This filed is like a password field*/ + field_opts_off(field[1], O_AUTOSKIP); /* To avoid entering the same field */ + /* after last character is entered */ + + /* Create the form and post it */ + my_form = new_form(field); + post_form(my_form); + refresh(); + + set_field_just(field[0], JUSTIFY_CENTER); /* Center Justification */ + set_field_buffer(field[0], 0, "This is a static Field"); + /* Initialize the field */ + mvprintw(STARTY, STARTX - 10, "Field 1:"); + mvprintw(STARTY + 2, STARTX - 10, "Field 2:"); + refresh(); - /* Loop through to get user requests */ - while((ch = getch()) != KEY_F(1)) - { switch(ch) - { case KEY_DOWN: - /* Go to next field */ - form_driver(my_form, REQ_NEXT_FIELD); - /* Go to the end of the present buffer */ - /* Leaves nicely at the last character */ - form_driver(my_form, REQ_END_LINE); - break; - case KEY_UP: - /* Go to previous field */ - form_driver(my_form, REQ_PREV_FIELD); - form_driver(my_form, REQ_END_LINE); - break; - default: - /* If this is a normal character, it gets */ - /* Printed */ - form_driver(my_form, ch); - break; - } - } + /* Loop through to get user requests */ + while((ch = getch()) != KEY_F(1)) + { switch(ch) + { case KEY_DOWN: + /* Go to next field */ + form_driver(my_form, REQ_NEXT_FIELD); + /* Go to the end of the present buffer */ + /* Leaves nicely at the last character */ + form_driver(my_form, REQ_END_LINE); + break; + case KEY_UP: + /* Go to previous field */ + form_driver(my_form, REQ_PREV_FIELD); + form_driver(my_form, REQ_END_LINE); + break; + default: + /* If this is a normal character, it gets */ + /* Printed */ + form_driver(my_form, ch); + break; + } + } - /* Un post form and free the memory */ - unpost_form(my_form); - free_form(my_form); - free_field(field[0]); - free_field(field[1]); + /* Un post form and free the memory */ + unpost_form(my_form); + free_form(my_form); + free_field(field[0]); + free_field(field[1]); - endwin(); - return 0; -}
-
-
-

This example, though useless, shows the usage of options. If -used properly, they can present information very effectively in a -form. The second field being not O_PUBLIC, does not show the -characters you are typing.

-
-
-
-

18.3.6. -Field Status

-

The field status specifies whether the field has got edited or -not. It is initially set to FALSE and when user enters something -and the data buffer gets modified it becomes TRUE. So a field's -status can be queried to find out whether it has been modified or -not. The following functions can assist in those operations.

- - - - -
-
-int set_field_status(FIELD *field,      /* field to alter */
+	endwin();
+	return 0;
+}

This example, though useless, shows the usage of options. If used properly, they +can present information very effectively in a form. The second field being not +O_PUBLIC, does not show the characters you are typing.


18.3.6. Field Status

The field status specifies whether the field has got edited or not. It is +initially set to FALSE and when user enters something and the data buffer gets +modified it becomes TRUE. So a field's status can be queried to find out whether +it has been modified or not. The following functions can assist in those +operations.

int set_field_status(FIELD *field,      /* field to alter */
                    int status);         /* status to set */
 
-int field_status(FIELD *field);         /* fetch status of field */
-
-

It's better to check the field's status only after after leaving -the field, as data buffer might not have been updated yet as the -validation is still due. To guarantee that right status is -returned, call field_status() either (1) in the field's exit -validation check routine, (2) from the field's or form's -initialization or termination hooks, or (3) just after a -REQ_VALIDATION request has been processed by the forms driver

-
-
-
-

18.3.7. -Field User Pointer

-

Every field structure contains one pointer that can be used by -the user for various purposes. It is not touched by forms library -and can be used for any purpose by the user. The following -functions set and fetch user pointer.

- - - - -
-
-int set_field_userptr(FIELD *field,   
+int field_status(FIELD *field);         /* fetch status of field */

It's better to check the field's status only after after leaving the field, as +data buffer might not have been updated yet as the validation is still due. To +guarantee that right status is returned, call field_status() either (1) in the +field's exit validation check routine, (2) from the field's or form's +initialization or termination hooks, or (3) just after a REQ_VALIDATION request +has been processed by the forms driver


18.3.7. Field User Pointer

Every field structure contains one pointer that can be used by the user for +various purposes. It is not touched by forms library and can be used for any +purpose by the user. The following functions set and fetch user pointer.

int set_field_userptr(FIELD *field,   
            char *userptr);      /* the user pointer you wish to associate */
                                 /* with the field    */
 
-char *field_userptr(FIELD *field);      /* fetch user pointer of the field */
-
-
-
-
-

18.3.8. Variable-Sized Fields

-

If you want a dynamically changing field with variable width, -this is the feature you want to put to full use. This will allow -the user to enter more data than the original size of the field and -let the field grow. According to the field orientation it will -scroll horizontally or vertically to incorporate the new data.

-

To make a field dynamically growable, the option O_STATIC should -be turned off. This can be done with a

- - - - -
-
-    field_opts_off(field_pointer, O_STATIC);
-
-

But it's usually not advisable to allow a field to grow -infinitely. You can set a maximum limit to the growth of the field -with

- - - - -
-
-int set_max_field(FIELD *field,    /* Field on which to operate */
-                  int max_growth); /* maximum growth allowed for the field */
-
-

The field info for a dynamically growable field can be retrieved -by

- - - - -
-
-int dynamic_field_info( FIELD *field,     /* Field on which to operate */
+char *field_userptr(FIELD *field);      /* fetch user pointer of the field */

18.3.8. Variable-Sized Fields

If you want a dynamically changing field with variable width, this is the +feature you want to put to full use. This will allow the user to enter more data +than the original size of the field and let the field grow. According to the +field orientation it will scroll horizontally or vertically to incorporate the +new data.

To make a field dynamically growable, the option O_STATIC should be turned off. +This can be done with a +

    field_opts_off(field_pointer, O_STATIC);

But it's usually not advisable to allow a field to grow infinitely. You can set +a maximum limit to the growth of the field with +

int set_max_field(FIELD *field,    /* Field on which to operate */
+                  int max_growth); /* maximum growth allowed for the field */

The field info for a dynamically growable field can be retrieved by +

int dynamic_field_info( FIELD *field,     /* Field on which to operate */
             int   *prows,     /* number of rows will be filled in this */
             int   *pcols,     /* number of columns will be filled in this*/
             int   *pmax)      /* maximum allowable growth will be filled */
-                              /* in this */
-
-Though field_info work as usual, it is advisable to use this -function to get the proper attributes of a dynamically growable -field. -

Recall the library routine new_field; a new field created with -height set to one will be defined to be a one line field. A new -field created with height greater than one will be defined to be a -multi line field.

-

A one line field with O_STATIC turned off (dynamically growable -field) will contain a single fixed row, but the number of columns -can increase if the user enters more data than the initial field -will hold. The number of columns displayed will remain fixed and -the additional data will scroll horizontally.

-

A multi line field with O_STATIC turned off (dynamically -growable field) will contain a fixed number of columns, but the -number of rows can increase if the user enters more data than the -initial field will hold. The number of rows displayed will remain -fixed and the additional data will scroll vertically.

-

The above two paragraphs pretty much describe a dynamically -growable field's behavior. The way other parts of forms library -behaves is described below:

-
    -
  1. -

    The field option O_AUTOSKIP will be ignored if the option -O_STATIC is off and there is no maximum growth specified for the -field. Currently, O_AUTOSKIP generates an automatic REQ_NEXT_FIELD -form driver request when the user types in the last character -position of a field. On a growable field with no maximum growth -specified, there is no last character position. If a maximum growth -is specified, the O_AUTOSKIP option will work as normal if the -field has grown to its maximum size.

    -
  2. -
  3. -

    The field justification will be ignored if the option O_STATIC -is off. Currently, set_field_just can be used to JUSTIFY_LEFT, -JUSTIFY_RIGHT, JUSTIFY_CENTER the contents of a one line field. A -growable one line field will, by definition, grow and scroll -horizontally and may contain more data than can be justified. The -return from field_just will be unchanged.

    -
  4. -
  5. -

    The overloaded form driver request REQ_NEW_LINE will operate the -same way regardless of the O_NL_OVERLOAD form option if the field -option O_STATIC is off and there is no maximum growth specified for -the field. Currently, if the form option O_NL_OVERLOAD is on, -REQ_NEW_LINE implicitly generates a REQ_NEXT_FIELD if called from -the last line of a field. If a field can grow without bound, there -is no last line, so REQ_NEW_LINE will never implicitly generate a -REQ_NEXT_FIELD. If a maximum growth limit is specified and the -O_NL_OVERLOAD form option is on, REQ_NEW_LINE will only implicitly -generate REQ_NEXT_FIELD if the field has grown to its maximum size -and the user is on the last line.

    -
  6. -
  7. -

    The library call dup_field will work as usual; it will duplicate -the field, including the current buffer size and contents of the -field being duplicated. Any specified maximum growth will also be -duplicated.

    -
  8. -
  9. -

    The library call link_field will work as usual; it will -duplicate all field attributes and share buffers with the field -being linked. If the O_STATIC field option is subsequently changed -by a field sharing buffers, how the system reacts to an attempt to -enter more data into the field than the buffer will currently hold -will depend on the setting of the option in the current field.

    -
  10. -
  11. -

    The library call field_info will work as usual; the variable -nrow will contain the value of the original call to new_field. The -user should use dynamic_field_info, described above, to query the -current size of the buffer.

    -
  12. -
-

Some of the above points make sense only after explaining form -driver. We will be looking into that in next few sections.

-
-
-
-
-

18.4. Form -Windows

-

The form windows concept is pretty much similar to menu windows. -Every form is associated with a main window and a sub window. The -form main window displays any title or border associated or -whatever the user wishes. Then the sub window contains all the -fields and displays them according to their position. This gives -the flexibility of manipulating fancy form displaying very -easily.

-

Since this is pretty much similar to menu windows, I am -providing an example with out much explanation. The functions are -similar and they work the same way.

-
-

Example 28. Form Windows Example

- - - - -
-
-#include <form.h>
+                              /* in this */
+Though field_info work as usual, it is advisable to use this function to get the +proper attributes of a dynamically growable field.

Recall the library routine new_field; a new field created with height set to one +will be defined to be a one line field. A new field created with height greater +than one will be defined to be a multi line field.

A one line field with O_STATIC turned off (dynamically growable field) will +contain a single fixed row, but the number of columns can increase if the user +enters more data than the initial field will hold. The number of columns +displayed will remain fixed and the additional data will scroll horizontally.

A multi line field with O_STATIC turned off (dynamically growable field) will +contain a fixed number of columns, but the number of rows can increase if the +user enters more data than the initial field will hold. The number of rows +displayed will remain fixed and the additional data will scroll vertically.

The above two paragraphs pretty much describe a dynamically growable field's +behavior. The way other parts of forms library behaves is described below:

  1. The field option O_AUTOSKIP will be ignored if the option O_STATIC is off and +there is no maximum growth specified for the field. Currently, O_AUTOSKIP +generates an automatic REQ_NEXT_FIELD form driver request when the user types in +the last character position of a field. On a growable field with no maximum +growth specified, there is no last character position. If a maximum growth is +specified, the O_AUTOSKIP option will work as normal if the field has grown to +its maximum size.

  2. The field justification will be ignored if the option O_STATIC is off. +Currently, set_field_just can be used to JUSTIFY_LEFT, JUSTIFY_RIGHT, +JUSTIFY_CENTER the contents of a one line field. A growable one line field will, +by definition, grow and scroll horizontally and may contain more data than can +be justified. The return from field_just will be unchanged.

  3. The overloaded form driver request REQ_NEW_LINE will operate the same way +regardless of the O_NL_OVERLOAD form option if the field option O_STATIC is off +and there is no maximum growth specified for the field. Currently, if the form +option O_NL_OVERLOAD is on, REQ_NEW_LINE implicitly generates a REQ_NEXT_FIELD +if called from the last line of a field. If a field can grow without bound, +there is no last line, so REQ_NEW_LINE will never implicitly generate a +REQ_NEXT_FIELD. If a maximum growth limit is specified and the O_NL_OVERLOAD +form option is on, REQ_NEW_LINE will only implicitly generate REQ_NEXT_FIELD if +the field has grown to its maximum size and the user is on the last line.

  4. The library call dup_field will work as usual; it will duplicate the field, +including the current buffer size and contents of the field being duplicated. +Any specified maximum growth will also be duplicated.

  5. The library call link_field will work as usual; it will duplicate all field +attributes and share buffers with the field being linked. If the O_STATIC field +option is subsequently changed by a field sharing buffers, how the system reacts +to an attempt to enter more data into the field than the buffer will currently +hold will depend on the setting of the option in the current field.

  6. The library call field_info will work as usual; the variable nrow will contain +the value of the original call to new_field. The user should use +dynamic_field_info, described above, to query the current size of the buffer.

Some of the above points make sense only after explaining form driver. We will +be looking into that in next few sections.


18.4. Form Windows

The form windows concept is pretty much similar to menu windows. Every form is +associated with a main window and a sub window. The form main window displays +any title or border associated or whatever the user wishes. Then the sub window +contains all the fields and displays them according to their position. This +gives the flexibility of manipulating fancy form displaying very easily.

Since this is pretty much similar to menu windows, I am providing an example +with out much explanation. The functions are similar and they work the same way.

Example 28. Form Windows Example

#include <form.h>
 
 void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
 
 int main()
 {
-        FIELD *field[3];
-        FORM  *my_form;
-        WINDOW *my_form_win;
-        int ch, rows, cols;
-        
-        /* Initialize curses */
-        initscr();
-        start_color();
-        cbreak();
-        noecho();
-        keypad(stdscr, TRUE);
+	FIELD *field[3];
+	FORM  *my_form;
+	WINDOW *my_form_win;
+	int ch, rows, cols;
+	
+	/* Initialize curses */
+	initscr();
+	start_color();
+	cbreak();
+	noecho();
+	keypad(stdscr, TRUE);
 
-        /* Initialize few color pairs */
-        init_pair(1, COLOR_RED, COLOR_BLACK);
+	/* Initialize few color pairs */
+   	init_pair(1, COLOR_RED, COLOR_BLACK);
 
-        /* Initialize the fields */
-        field[0] = new_field(1, 10, 6, 1, 0, 0);
-        field[1] = new_field(1, 10, 8, 1, 0, 0);
-        field[2] = NULL;
+	/* Initialize the fields */
+	field[0] = new_field(1, 10, 6, 1, 0, 0);
+	field[1] = new_field(1, 10, 8, 1, 0, 0);
+	field[2] = NULL;
 
-        /* Set field options */
-        set_field_back(field[0], A_UNDERLINE);
-        field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */
-                                              /* Field is filled up             */
-        set_field_back(field[1], A_UNDERLINE); 
-        field_opts_off(field[1], O_AUTOSKIP);
-        
-        /* Create the form and post it */
-        my_form = new_form(field);
-        
-        /* Calculate the area required for the form */
-        scale_form(my_form, &rows, &cols);
+	/* Set field options */
+	set_field_back(field[0], A_UNDERLINE);
+	field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */
+					      /* Field is filled up 		*/
+	set_field_back(field[1], A_UNDERLINE); 
+	field_opts_off(field[1], O_AUTOSKIP);
+	
+	/* Create the form and post it */
+	my_form = new_form(field);
+	
+	/* Calculate the area required for the form */
+	scale_form(my_form, &rows, &cols);
 
-        /* Create the window to be associated with the form */
+	/* Create the window to be associated with the form */
         my_form_win = newwin(rows + 4, cols + 4, 4, 4);
         keypad(my_form_win, TRUE);
 
-        /* Set main window and sub window */
+	/* Set main window and sub window */
         set_form_win(my_form, my_form_win);
         set_form_sub(my_form, derwin(my_form_win, rows, cols, 2, 2));
 
-        /* Print a border around the main window and print a title */
+	/* Print a border around the main window and print a title */
         box(my_form_win, 0, 0);
-        print_in_middle(my_form_win, 1, 0, cols + 4, "My Form", COLOR_PAIR(1));
-        
-        post_form(my_form);
-        wrefresh(my_form_win);
+	print_in_middle(my_form_win, 1, 0, cols + 4, "My Form", COLOR_PAIR(1));
+	
+	post_form(my_form);
+	wrefresh(my_form_win);
 
-        mvprintw(LINES - 2, 0, "Use UP, DOWN arrow keys to switch between fields");
-        refresh();
+	mvprintw(LINES - 2, 0, "Use UP, DOWN arrow keys to switch between fields");
+	refresh();
 
-        /* Loop through to get user requests */
-        while((ch = wgetch(my_form_win)) != KEY_F(1))
-        {       switch(ch)
-                {       case KEY_DOWN:
-                                /* Go to next field */
-                                form_driver(my_form, REQ_NEXT_FIELD);
-                                /* Go to the end of the present buffer */
-                                /* Leaves nicely at the last character */
-                                form_driver(my_form, REQ_END_LINE);
-                                break;
-                        case KEY_UP:
-                                /* Go to previous field */
-                                form_driver(my_form, REQ_PREV_FIELD);
-                                form_driver(my_form, REQ_END_LINE);
-                                break;
-                        default:
-                                /* If this is a normal character, it gets */
-                                /* Printed                                */    
-                                form_driver(my_form, ch);
-                                break;
-                }
-        }
+	/* Loop through to get user requests */
+	while((ch = wgetch(my_form_win)) != KEY_F(1))
+	{	switch(ch)
+		{	case KEY_DOWN:
+				/* Go to next field */
+				form_driver(my_form, REQ_NEXT_FIELD);
+				/* Go to the end of the present buffer */
+				/* Leaves nicely at the last character */
+				form_driver(my_form, REQ_END_LINE);
+				break;
+			case KEY_UP:
+				/* Go to previous field */
+				form_driver(my_form, REQ_PREV_FIELD);
+				form_driver(my_form, REQ_END_LINE);
+				break;
+			default:
+				/* If this is a normal character, it gets */
+				/* Printed				  */	
+				form_driver(my_form, ch);
+				break;
+		}
+	}
 
-        /* Un post form and free the memory */
-        unpost_form(my_form);
-        free_form(my_form);
-        free_field(field[0]);
-        free_field(field[1]); 
+	/* Un post form and free the memory */
+	unpost_form(my_form);
+	free_form(my_form);
+	free_field(field[0]);
+	free_field(field[1]); 
 
-        endwin();
-        return 0;
+	endwin();
+	return 0;
 }
 
 void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
-{       int length, x, y;
-        float temp;
+{	int length, x, y;
+	float temp;
 
-        if(win == NULL)
-                win = stdscr;
-        getyx(win, y, x);
-        if(startx != 0)
-                x = startx;
-        if(starty != 0)
-                y = starty;
-        if(width == 0)
-                width = 80;
+	if(win == NULL)
+		win = stdscr;
+	getyx(win, y, x);
+	if(startx != 0)
+		x = startx;
+	if(starty != 0)
+		y = starty;
+	if(width == 0)
+		width = 80;
 
-        length = strlen(string);
-        temp = (width - length)/ 2;
-        x = startx + (int)temp;
-        wattron(win, color);
-        mvwprintw(win, y, x, "%s", string);
-        wattroff(win, color);
-        refresh();
-}
-
-
-
-
-
-

18.5. -Field Validation

-

By default, a field will accept any data input by the user. It -is possible to attach validation to the field. Then any attempt by -the user to leave the field, while it contains data that doesn't -match the validation type will fail. Some validation types also -have a character-validity check for each time a character is -entered in the field.

-

Validation can be attached to a field with the following -function.

- - - - -
-
-int set_field_type(FIELD *field,          /* field to alter */
+	length = strlen(string);
+	temp = (width - length)/ 2;
+	x = startx + (int)temp;
+	wattron(win, color);
+	mvwprintw(win, y, x, "%s", string);
+	wattroff(win, color);
+	refresh();
+}

18.5. Field Validation

By default, a field will accept any data input by the user. It is possible to +attach validation to the field. Then any attempt by the user to leave the field, +while it contains data that doesn't match the validation type will fail. Some +validation types also have a character-validity check for each time a character +is entered in the field.

Validation can be attached to a field with the following function. +

int set_field_type(FIELD *field,          /* field to alter */
                    FIELDTYPE *ftype,      /* type to associate */
-                   ...);                  /* additional arguments*/
-
+ ...); /* additional arguments*/ Once set, the validation type for a field can be queried with - - - - -
-
-FIELDTYPE *field_type(FIELD *field);      /* field to query */
-
-

The form driver validates the data in a field only when data is -entered by the end-user. Validation does not occur when

-
    -
  • -

    the application program changes the field value by calling -set_field_buffer.

    -
  • -
  • -

    linked field values are changed indirectly -- by changing the -field to which they are linked

    -
  • -
-

The following are the pre-defined validation types. You can also -specify custom validation, though it's a bit tricky and -cumbersome.

-

TYPE_ALPHA

-

This field type accepts alphabetic data; no blanks, no digits, -no special characters (this is checked at character-entry time). It -is set up with:

- - - - -
-
-int set_field_type(FIELD *field,          /* field to alter */
+
FIELDTYPE *field_type(FIELD *field);      /* field to query */

The form driver validates the data in a field only when data is entered by the +end-user. Validation does not occur when

  • the application program changes the field value by calling set_field_buffer.

  • linked field values are changed indirectly -- by changing the field to which +they are linked

The following are the pre-defined validation types. You can also specify custom +validation, though it's a bit tricky and cumbersome.

TYPE_ALPHA

This field type accepts alphabetic data; no blanks, no digits, no special +characters (this is checked at character-entry time). It is set up with:

int set_field_type(FIELD *field,          /* field to alter */
                    TYPE_ALPHA,            /* type to associate */
-                   int width);            /* maximum width of field */
-
-

The width argument sets a minimum width of data. The user has to -enter at-least width number of characters before he can leave the -field. Typically you'll want to set this to the field width; if -it's greater than the field width, the validation check will always -fail. A minimum width of zero makes field completion optional.

-

TYPE_ALNUM

-

This field type accepts alphabetic data and digits; no blanks, -no special characters (this is checked at character-entry time). It -is set up with:

- - - - -
-
-int set_field_type(FIELD *field,          /* field to alter */
+                   int width);            /* maximum width of field */

The width argument sets a minimum width of data. The user has to enter at-least +width number of characters before he can leave the field. Typically +you'll want to set this to the field width; if it's greater than the +field width, the validation check will always fail. A minimum width +of zero makes field completion optional.

TYPE_ALNUM

This field type accepts alphabetic data and digits; no blanks, no special +characters (this is checked at character-entry time). It is set up with:

int set_field_type(FIELD *field,          /* field to alter */
                    TYPE_ALNUM,            /* type to associate */
-                   int width);            /* maximum width of field */
-
-

The width argument sets a minimum width of data. As with -TYPE_ALPHA, typically you'll want to set this to the field width; -if it's greater than the field width, the validation check will -always fail. A minimum width of zero makes field completion -optional.

-

TYPE_ENUM

-

This type allows you to restrict a field's values to be among a -specified set of string values (for example, the two-letter postal -codes for U.S. states). It is set up with:

- - - - -
-
-int set_field_type(FIELD *field,          /* field to alter */
+                   int width);            /* maximum width of field */

The width argument sets a minimum width of data. As with +TYPE_ALPHA, typically you'll want to set this to the field width; if it's +greater than the field width, the validation check will always fail. A +minimum width of zero makes field completion optional.

TYPE_ENUM

This type allows you to restrict a field's values to be among a specified +set of string values (for example, the two-letter postal codes for U.S. +states). It is set up with:

int set_field_type(FIELD *field,          /* field to alter */
                    TYPE_ENUM,             /* type to associate */
                    char **valuelist;      /* list of possible values */
                    int checkcase;         /* case-sensitive? */
-                   int checkunique);      /* must specify uniquely? */
-
-

The valuelist parameter must point at a NULL-terminated list of -valid strings. The checkcase argument, if true, makes comparison -with the string case-sensitive.

-

When the user exits a TYPE_ENUM field, the validation procedure -tries to complete the data in the buffer to a valid entry. If a -complete choice string has been entered, it is of course valid. But -it is also possible to enter a prefix of a valid string and have it -completed for you.

-

By default, if you enter such a prefix and it matches more than -one value in the string list, the prefix will be completed to the -first matching value. But the checkunique argument, if true, -requires prefix matches to be unique in order to be valid.

-

The REQ_NEXT_CHOICE and REQ_PREV_CHOICE input requests can be -particularly useful with these fields.

-

TYPE_INTEGER

-

This field type accepts an integer. It is set up as follows:

- - - - -
-
-int set_field_type(FIELD *field,          /* field to alter */
+                   int checkunique);      /* must specify uniquely? */

The valuelist parameter must point at a NULL-terminated list of +valid strings. The checkcase argument, if true, makes comparison +with the string case-sensitive.

When the user exits a TYPE_ENUM field, the validation procedure tries to +complete the data in the buffer to a valid entry. If a complete choice string +has been entered, it is of course valid. But it is also possible to enter a +prefix of a valid string and have it completed for you.

By default, if you enter such a prefix and it matches more than one value +in the string list, the prefix will be completed to the first matching +value. But the checkunique argument, if true, requires prefix +matches to be unique in order to be valid.

The REQ_NEXT_CHOICE and REQ_PREV_CHOICE input requests can be particularly +useful with these fields.

TYPE_INTEGER

This field type accepts an integer. It is set up as follows:

int set_field_type(FIELD *field,          /* field to alter */
                    TYPE_INTEGER,          /* type to associate */
                    int padding,           /* # places to zero-pad to */
-                   int vmin, int vmax);   /* valid range */
-
-

Valid characters consist of an optional leading minus and -digits. The range check is performed on exit. If the range maximum -is less than or equal to the minimum, the range is ignored.

-

If the value passes its range check, it is padded with as many -leading zero digits as necessary to meet the padding argument.

-

A TYPE_INTEGER value buffer can conveniently be interpreted with -the C library function atoi(3).

-

TYPE_NUMERIC

-

This field type accepts a decimal number. It is set up as -follows:

- - - - -
-
-int set_field_type(FIELD *field,          /* field to alter */
+                   int vmin, int vmax);   /* valid range */

Valid characters consist of an optional leading minus and digits. +The range check is performed on exit. If the range maximum is less +than or equal to the minimum, the range is ignored.

If the value passes its range check, it is padded with as many leading +zero digits as necessary to meet the padding argument.

A TYPE_INTEGER value buffer can conveniently be interpreted with the C library +function atoi(3).

TYPE_NUMERIC

This field type accepts a decimal number. It is set up as follows:

int set_field_type(FIELD *field,          /* field to alter */
                    TYPE_NUMERIC,          /* type to associate */
                    int padding,           /* # places of precision */
-                   int vmin, int vmax);   /* valid range */
-
-

Valid characters consist of an optional leading minus and -digits. possibly including a decimal point. The range check is -performed on exit. If the range maximum is less than or equal to -the minimum, the range is ignored.

-

If the value passes its range check, it is padded with as many -trailing zero digits as necessary to meet the padding argument.

-

A TYPE_NUMERIC value buffer can conveniently be interpreted with -the C library function atof(3).

-

TYPE_REGEXP

-

This field type accepts data matching a regular expression. It -is set up as follows:

- - - - -
-
-int set_field_type(FIELD *field,          /* field to alter */
+                   int vmin, int vmax);   /* valid range */

Valid characters consist of an optional leading minus and digits. possibly +including a decimal point. The range check is performed on exit. If the +range maximum is less than or equal to the minimum, the range is +ignored.

If the value passes its range check, it is padded with as many trailing +zero digits as necessary to meet the padding argument.

A TYPE_NUMERIC value buffer can conveniently be interpreted with the C library +function atof(3).

TYPE_REGEXP

This field type accepts data matching a regular expression. It is set up +as follows:

int set_field_type(FIELD *field,          /* field to alter */
                    TYPE_REGEXP,           /* type to associate */
-                   char *regexp);         /* expression to match */
-
-

The syntax for regular expressions is that of regcomp(3). The -check for regular-expression match is performed on exit.

-
-
-
-

18.6. Form -Driver: The work horse of the forms system

-

As in the menu system, form_driver() plays a very important role -in forms system. All types of requests to forms system should be -funneled through form_driver().

- - - - -
-
-int form_driver(FORM *form,     /* form on which to operate     */
-                int request)    /* form request code         */
-
-

As you have seen some of the examples above, you have to be in a -loop looking for user input and then decide whether it's a field -data or a form request. The form requests are then passed to -form_driver() to do the work.

-

The requests roughly can be divided into following categories. -Different requests and their usage is explained below:

-
-
-

18.6.1. Page -Navigation Requests

-

These requests cause page-level moves through the form, -triggering display of a new form screen. A form can be made of -multiple pages. If you have a big form with lot of fields and -logical sections, then you can divide the form into pages. The -function set_new_page() to set a new page at the field -specified.

- - - - -
-
-int set_new_page(FIELD *field,/* Field at which page break to be set or unset */
-         bool new_page_flag); /* should be TRUE to put a break */
-
-

The following requests allow you to move to different pages

-
    -
  • -

    REQ_NEXT_PAGE Move to the next form page.

    -
  • -
  • -

    REQ_PREV_PAGE Move to the previous form page.

    -
  • -
  • -

    REQ_FIRST_PAGE Move to the first form page.

    -
  • -
  • -

    REQ_LAST_PAGE Move to the last form page.

    -
  • -
-

These requests treat the list as cyclic; that is, REQ_NEXT_PAGE -from the last page goes to the first, and REQ_PREV_PAGE from the -first page goes to the last.

-
-
-
-

18.6.2. Inter-Field Navigation Requests

-

These requests handle navigation between fields on the same -page.

-
    -
  • -

    REQ_NEXT_FIELD Move to next field.

    -
  • -
  • -

    REQ_PREV_FIELD Move to previous field.

    -
  • -
  • -

    REQ_FIRST_FIELD Move to the first field.

    -
  • -
  • -

    REQ_LAST_FIELD Move to the last field.

    -
  • -
  • -

    REQ_SNEXT_FIELD Move to sorted next field.

    -
  • -
  • -

    REQ_SPREV_FIELD Move to sorted previous field.

    -
  • -
  • -

    REQ_SFIRST_FIELD Move to the sorted first field.

    -
  • -
  • -

    REQ_SLAST_FIELD Move to the sorted last field.

    -
  • -
  • -

    REQ_LEFT_FIELD Move left to field.

    -
  • -
  • -

    REQ_RIGHT_FIELD Move right to field.

    -
  • -
  • -

    REQ_UP_FIELD Move up to field.

    -
  • -
  • -

    REQ_DOWN_FIELD Move down to field.

    -
  • -
-

These requests treat the list of fields on a page as cyclic; -that is, REQ_NEXT_FIELD from the last field goes to the first, and -REQ_PREV_FIELD from the first field goes to the last. The order of -the fields for these (and the REQ_FIRST_FIELD and REQ_LAST_FIELD -requests) is simply the order of the field pointers in the form -array (as set up by new_form() or set_form_fields()

-

It is also possible to traverse the fields as if they had been -sorted in screen-position order, so the sequence goes left-to-right -and top-to-bottom. To do this, use the second group of four -sorted-movement requests.

-

Finally, it is possible to move between fields using visual -directions up, down, right, and left. To accomplish this, use the -third group of four requests. Note, however, that the position of a -form for purposes of these requests is its upper-left corner.

-

For example, suppose you have a multi-line field B, and two -single-line fields A and C on the same line with B, with A to the -left of B and C to the right of B. A REQ_MOVE_RIGHT from A will go -to B only if A, B, and C all share the same first line; otherwise -it will skip over B to C.

-
-
-
-

18.6.3. Intra-Field Navigation Requests

-

These requests drive movement of the edit cursor within the -currently selected field.

-
    -
  • -

    REQ_NEXT_CHAR Move to next character.

    -
  • -
  • -

    REQ_PREV_CHAR Move to previous character.

    -
  • -
  • -

    REQ_NEXT_LINE Move to next line.

    -
  • -
  • -

    REQ_PREV_LINE Move to previous line.

    -
  • -
  • -

    REQ_NEXT_WORD Move to next word.

    -
  • -
  • -

    REQ_PREV_WORD Move to previous word.

    -
  • -
  • -

    REQ_BEG_FIELD Move to beginning of field.

    -
  • -
  • -

    REQ_END_FIELD Move to end of field.

    -
  • -
  • -

    REQ_BEG_LINE Move to beginning of line.

    -
  • -
  • -

    REQ_END_LINE Move to end of line.

    -
  • -
  • -

    REQ_LEFT_CHAR Move left in field.

    -
  • -
  • -

    REQ_RIGHT_CHAR Move right in field.

    -
  • -
  • -

    REQ_UP_CHAR Move up in field.

    -
  • -
  • -

    REQ_DOWN_CHAR Move down in field.

    -
  • -
-

Each word is separated from the previous and next characters by -whitespace. The commands to move to beginning and end of line or -field look for the first or last non-pad character in their -ranges.

-
-
-
-

18.6.4. -Scrolling Requests

-

Fields that are dynamic and have grown and fields explicitly -created with offscreen rows are scrollable. One-line fields scroll -horizontally; multi-line fields scroll vertically. Most scrolling -is triggered by editing and intra-field movement (the library -scrolls the field to keep the cursor visible). It is possible to -explicitly request scrolling with the following requests:

-
    -
  • -

    REQ_SCR_FLINE Scroll vertically forward a line.

    -
  • -
  • -

    REQ_SCR_BLINE Scroll vertically backward a line.

    -
  • -
  • -

    REQ_SCR_FPAGE Scroll vertically forward a page.

    -
  • -
  • -

    REQ_SCR_BPAGE Scroll vertically backward a page.

    -
  • -
  • -

    REQ_SCR_FHPAGE Scroll vertically forward half a -page.

    -
  • -
  • -

    REQ_SCR_BHPAGE Scroll vertically backward half a -page.

    -
  • -
  • -

    REQ_SCR_FCHAR Scroll horizontally forward a -character.

    -
  • -
  • -

    REQ_SCR_BCHAR Scroll horizontally backward a -character.

    -
  • -
  • -

    REQ_SCR_HFLINE Scroll horizontally one field width -forward.

    -
  • -
  • -

    REQ_SCR_HBLINE Scroll horizontally one field width -backward.

    -
  • -
  • -

    REQ_SCR_HFHALF Scroll horizontally one half field width -forward.

    -
  • -
  • -

    REQ_SCR_HBHALF Scroll horizontally one half field width -backward.

    -
  • -
-

For scrolling purposes, a page of a field is the height of its -visible part.

-
-
-
-

18.6.5. Editing -Requests

-

When you pass the forms driver an ASCII character, it is treated -as a request to add the character to the field's data buffer. -Whether this is an insertion or a replacement depends on the -field's edit mode (insertion is the default.

-

The following requests support editing the field and changing -the edit mode:

-
    -
  • -

    REQ_INS_MODE Set insertion mode.

    -
  • -
  • -

    REQ_OVL_MODE Set overlay mode.

    -
  • -
  • -

    REQ_NEW_LINE New line request (see below for -explanation).

    -
  • -
  • -

    REQ_INS_CHAR Insert space at character location.

    -
  • -
  • -

    REQ_INS_LINE Insert blank line at character -location.

    -
  • -
  • -

    REQ_DEL_CHAR Delete character at cursor.

    -
  • -
  • -

    REQ_DEL_PREV Delete previous word at cursor.

    -
  • -
  • -

    REQ_DEL_LINE Delete line at cursor.

    -
  • -
  • -

    REQ_DEL_WORD Delete word at cursor.

    -
  • -
  • -

    REQ_CLR_EOL Clear to end of line.

    -
  • -
  • -

    REQ_CLR_EOF Clear to end of field.

    -
  • -
  • -

    REQ_CLR_FIELD Clear entire field.

    -
  • -
-

The behavior of the REQ_NEW_LINE and REQ_DEL_PREV requests is -complicated and partly controlled by a pair of forms options. The -special cases are triggered when the cursor is at the beginning of -a field, or on the last line of the field.

-

First, we consider REQ_NEW_LINE:

-

The normal behavior of REQ_NEW_LINE in insert mode is to break -the current line at the position of the edit cursor, inserting the -portion of the current line after the cursor as a new line -following the current and moving the cursor to the beginning of -that new line (you may think of this as inserting a newline in the -field buffer).

-

The normal behavior of REQ_NEW_LINE in overlay mode is to clear -the current line from the position of the edit cursor to end of -line. The cursor is then moved to the beginning of the next -line.

-

However, REQ_NEW_LINE at the beginning of a field, or on the -last line of a field, instead does a REQ_NEXT_FIELD. O_NL_OVERLOAD -option is off, this special action is disabled.

-

Now, let us consider REQ_DEL_PREV:

-

The normal behavior of REQ_DEL_PREV is to delete the previous -character. If insert mode is on, and the cursor is at the start of -a line, and the text on that line will fit on the previous one, it -instead appends the contents of the current line to the previous -one and deletes the current line (you may think of this as deleting -a newline from the field buffer).

-

However, REQ_DEL_PREV at the beginning of a field is instead -treated as a REQ_PREV_FIELD.

-

If the O_BS_OVERLOAD option is off, this special action is -disabled and the forms driver just returns E_REQUEST_DENIED.

-
-
-
-

18.6.6. Order -Requests

-

If the type of your field is ordered, and has associated -functions for getting the next and previous values of the type from -a given value, there are requests that can fetch that value into -the field buffer:

-
    -
  • -

    REQ_NEXT_CHOICE Place the successor value of the -current value in the buffer.

    -
  • -
  • -

    REQ_PREV_CHOICE Place the predecessor value of the -current value in the buffer.

    -
  • -
-

Of the built-in field types, only TYPE_ENUM has built-in -successor and predecessor functions. When you define a field type -of your own (see Custom Validation Types), you can associate our -own ordering functions.

-
-
-
-

18.6.7. Application Commands

-

Form requests are represented as integers above the curses value -greater than KEY_MAX and less than or equal to the constant -MAX_COMMAND. A value within this range gets ignored by -form_driver(). So this can be used for any purpose by the -application. It can be treated as an application specific action -and take corresponding action.

-
-
-
-
-
-

19. Tools and Widget -Libraries

-

Now that you have seen the capabilities of ncurses and its -sister libraries, you are rolling your sleeves up and gearing for a -project that heavily manipulates screen. But wait.. It can be -pretty difficult to write and maintain complex GUI widgets in plain -ncurses or even with the additional libraries. There are some -ready-to-use tools and widget libraries that can be used instead of -writing your own widgets. You can use some of them, get ideas from -the code, or even extend them.

-
-
-

19.1. CDK (Curses -Development Kit)

-

In the author's words

-

CDK stands for 'Curses Development Kit' and it currently -contains 21 ready to use widgets which facilitate the speedy -development of full screen curses programs.

-

The kit provides some useful widgets, which can be used in your -programs directly. It's pretty well written and the documentation -is very good. The examples in the examples directory can be a good -place to start for beginners. The CDK can be downloaded from -http://invisible-island.net/cdk/ . Follow the -instructions in README file to install it.

-
-
-

19.1.1. -Widget List

-

The following is the list of widgets provided with cdk and their -description.

- - - - -
-
-Widget Type           Quick Description
+                   char *regexp);         /* expression to match */

The syntax for regular expressions is that of regcomp(3). +The check for regular-expression match is performed on exit.


18.6. Form Driver: The work horse of the forms system

As in the menu system, form_driver() plays a very important role in forms +system. All types of requests to forms system should be funneled through +form_driver().

int form_driver(FORM *form,     /* form on which to operate     */
+                int request)    /* form request code         */

As you have seen some of the examples above, you have to be in a loop looking +for user input and then decide whether it's a field data or a form request. The +form requests are then passed to form_driver() to do the work.

The requests roughly can be divided into following categories. Different +requests and their usage is explained below:


18.6.1. Page Navigation Requests

These requests cause page-level moves through the form, triggering display of a +new form screen. A form can be made of multiple pages. If you have a big form +with lot of fields and logical sections, then you can divide the form into +pages. The function set_new_page() to set a new page at the field specified.

int set_new_page(FIELD *field,/* Field at which page break to be set or unset */
+         bool new_page_flag); /* should be TRUE to put a break */

The following requests allow you to move to different pages

  • REQ_NEXT_PAGE Move to the next form page.

  • REQ_PREV_PAGE Move to the previous +form page.

  • REQ_FIRST_PAGE Move to the first form page.

  • REQ_LAST_PAGE Move to the last form page.

These requests treat the list as cyclic; that is, REQ_NEXT_PAGE from the +last page goes to the first, and REQ_PREV_PAGE from the first page goes to +the last.


18.6.2. Inter-Field Navigation Requests

These requests handle navigation between fields on the same page.

  • REQ_NEXT_FIELD + Move to next field.

  • REQ_PREV_FIELD + Move to previous field.

  • REQ_FIRST_FIELD + Move to the first field.

  • REQ_LAST_FIELD + Move to the last field.

  • REQ_SNEXT_FIELD + Move to sorted next field.

  • REQ_SPREV_FIELD + Move to sorted previous field.

  • REQ_SFIRST_FIELD + Move to the sorted first field.

  • REQ_SLAST_FIELD + Move to the sorted last field.

  • REQ_LEFT_FIELD + Move left to field.

  • REQ_RIGHT_FIELD + Move right to field.

  • REQ_UP_FIELD + Move up to field.

  • REQ_DOWN_FIELD + Move down to field.

These requests treat the list of fields on a page as cyclic; that is, +REQ_NEXT_FIELD from the last field goes to the first, and REQ_PREV_FIELD +from the first field goes to the last. The order of the fields for these +(and the REQ_FIRST_FIELD and REQ_LAST_FIELD requests) is simply the order of +the field pointers in the form array (as set up by new_form() or +set_form_fields()

It is also possible to traverse the fields as if they had been sorted in +screen-position order, so the sequence goes left-to-right and top-to-bottom. +To do this, use the second group of four sorted-movement requests.

Finally, it is possible to move between fields using visual directions up, +down, right, and left. To accomplish this, use the third group of four +requests. Note, however, that the position of a form for purposes of these +requests is its upper-left corner.

For example, suppose you have a multi-line field B, and two single-line +fields A and C on the same line with B, with A to the left of B and C to the +right of B. A REQ_MOVE_RIGHT from A will go to B only if A, B, and C all +share the same first line; otherwise it will skip over B to C.


18.6.3. Intra-Field Navigation Requests

These requests drive movement of the edit cursor within the currently +selected field.

  • REQ_NEXT_CHAR + Move to next character.

  • REQ_PREV_CHAR + Move to previous character.

  • REQ_NEXT_LINE + Move to next line.

  • REQ_PREV_LINE + Move to previous line.

  • REQ_NEXT_WORD + Move to next word.

  • REQ_PREV_WORD + Move to previous word.

  • REQ_BEG_FIELD + Move to beginning of field.

  • REQ_END_FIELD + Move to end of field.

  • REQ_BEG_LINE + Move to beginning of line.

  • REQ_END_LINE + Move to end of line.

  • REQ_LEFT_CHAR + Move left in field.

  • REQ_RIGHT_CHAR + Move right in field.

  • REQ_UP_CHAR + Move up in field.

  • REQ_DOWN_CHAR + Move down in field.

Each word is separated from the previous and next characters by whitespace. +The commands to move to beginning and end of line or field look for the +first or last non-pad character in their ranges.


18.6.4. Scrolling Requests

Fields that are dynamic and have grown and fields explicitly created with +offscreen rows are scrollable. One-line fields scroll horizontally; +multi-line fields scroll vertically. Most scrolling is triggered by editing +and intra-field movement (the library scrolls the field to keep the cursor +visible). It is possible to explicitly request scrolling with the following +requests:

  • REQ_SCR_FLINE + Scroll vertically forward a line.

  • REQ_SCR_BLINE + Scroll vertically backward a line.

  • REQ_SCR_FPAGE + Scroll vertically forward a page.

  • REQ_SCR_BPAGE + Scroll vertically backward a page.

  • REQ_SCR_FHPAGE + Scroll vertically forward half a page.

  • REQ_SCR_BHPAGE + Scroll vertically backward half a page.

  • REQ_SCR_FCHAR + Scroll horizontally forward a character.

  • REQ_SCR_BCHAR + Scroll horizontally backward a character.

  • REQ_SCR_HFLINE + Scroll horizontally one field width forward.

  • REQ_SCR_HBLINE + Scroll horizontally one field width backward.

  • REQ_SCR_HFHALF + Scroll horizontally one half field width forward.

  • REQ_SCR_HBHALF + Scroll horizontally one half field width backward.

For scrolling purposes, a page of a field is the height of its visible part.


18.6.5. Editing Requests

When you pass the forms driver an ASCII character, it is treated as a +request to add the character to the field's data buffer. Whether this is an +insertion or a replacement depends on the field's edit mode (insertion is +the default.

The following requests support editing the field and changing the edit mode:

  • REQ_INS_MODE + Set insertion mode.

  • REQ_OVL_MODE + Set overlay mode.

  • REQ_NEW_LINE + New line request (see below for explanation).

  • REQ_INS_CHAR + Insert space at character location.

  • REQ_INS_LINE + Insert blank line at character location.

  • REQ_DEL_CHAR + Delete character at cursor.

  • REQ_DEL_PREV + Delete previous word at cursor.

  • REQ_DEL_LINE + Delete line at cursor.

  • REQ_DEL_WORD + Delete word at cursor.

  • REQ_CLR_EOL + Clear to end of line.

  • REQ_CLR_EOF + Clear to end of field.

  • REQ_CLR_FIELD + Clear entire field.

The behavior of the REQ_NEW_LINE and REQ_DEL_PREV requests is complicated +and partly controlled by a pair of forms options. The special cases are +triggered when the cursor is at the beginning of a field, or on the last +line of the field.

First, we consider REQ_NEW_LINE:

The normal behavior of REQ_NEW_LINE in insert mode is to break the current +line at the position of the edit cursor, inserting the portion of the +current line after the cursor as a new line following the current and moving +the cursor to the beginning of that new line (you may think of this as +inserting a newline in the field buffer).

The normal behavior of REQ_NEW_LINE in overlay mode is to clear the current +line from the position of the edit cursor to end of line. The cursor is then +moved to the beginning of the next line.

However, REQ_NEW_LINE at the beginning of a field, or on the last line of a +field, instead does a REQ_NEXT_FIELD. O_NL_OVERLOAD option is off, this +special action is disabled.

Now, let us consider REQ_DEL_PREV:

The normal behavior of REQ_DEL_PREV is to delete the previous character. If +insert mode is on, and the cursor is at the start of a line, and the text on +that line will fit on the previous one, it instead appends the contents of +the current line to the previous one and deletes the current line (you may +think of this as deleting a newline from the field buffer).

However, REQ_DEL_PREV at the beginning of a field is instead treated as a +REQ_PREV_FIELD.

If the O_BS_OVERLOAD option is off, this special action is disabled and the +forms driver just returns E_REQUEST_DENIED.


18.6.6. Order Requests

If the type of your field is ordered, and has associated functions for +getting the next and previous values of the type from a given value, there +are requests that can fetch that value into the field buffer:

  • REQ_NEXT_CHOICE + Place the successor value of the current value in the buffer. +

  • REQ_PREV_CHOICE + Place the predecessor value of the current value in the buffer. +

Of the built-in field types, only TYPE_ENUM has built-in successor and +predecessor functions. When you define a field type of your own (see Custom +Validation Types), you can associate our own ordering functions.


18.6.7. Application Commands

Form requests are represented as integers above the curses value greater than +KEY_MAX and less than or equal to the constant MAX_COMMAND. A value within this +range gets ignored by form_driver(). So this can be used for any purpose by the +application. It can be treated as an application specific action and take +corresponding action.


19. Tools and Widget Libraries

+Now that you have seen the capabilities of ncurses and its sister libraries, you +are rolling your sleeves up and gearing for a project that heavily manipulates +screen. But wait.. It can be pretty difficult to write and maintain complex GUI +widgets in plain ncurses or even with the additional libraries. There are some +ready-to-use tools and widget libraries that can be used instead of writing your +own widgets. You can use some of them, get ideas from the code, or even extend +them.


19.1. CDK (Curses Development Kit)

In the author's words

+CDK stands for 'Curses Development Kit' and it currently contains 21 ready +to use widgets which facilitate the speedy development of full screen +curses programs.

The kit provides some useful widgets, which can be used in your programs +directly. It's pretty well written and the documentation is very good. The +examples in the examples directory can be a good place to start for beginners. +The CDK can be downloaded from http://invisible-island.net/cdk/ +. Follow the instructions in +README file to install it.


19.1.1. Widget List

The following is the list of widgets provided with cdk and their description.

Widget Type           Quick Description
 ===========================================================================
 Alphalist             Allows a user to select from a list of words, with
                       the ability to narrow the search list by typing in a
@@ -6199,215 +8368,346 @@ Template              Creates a entry field with character sensitive
                       dates and phone numbers.
 Viewer                This is a file/information viewer. Very useful
                       when you need to display loads of information.
-===========================================================================
-
-

A few of the widgets are modified by Thomas Dickey in recent -versions.

-
-
-
-

19.1.2. Some -Attractive Features

-

Apart from making our life easier with readily usable widgets, -cdk solves one frustrating problem with printing multi colored -strings, justified strings elegantly. Special formatting tags can -be embedded in the strings which are passed to CDK functions. For -Example

-

If the string

- - - - -
-
-"</B/1>This line should have a yellow foreground and a blue
-background.<!1>"
-
-

given as a parameter to newCDKLabel(), it prints the line with -yellow foreground and blue background. There are other tags -available for justifying string, embedding special drawing -characters etc.. Please refer to the man page cdk_display(3X) for -details. The man page explains the usage with nice examples.

-
-
-
-

19.1.3. Conclusion

-

All in all, CDK is a well-written package of widgets, which if -used properly can form a strong frame work for developing complex -GUI.

-
-
-
-
-

19.2. The -dialog

-

Long long ago, in September 1994, when few people knew linux, -Jeff Tranter wrote an article on dialog in Linux Journal. He starts the -article with these words..

-

Linux is based on the Unix operating system, but also -features a number of unique and useful kernel features and -application programs that often go beyond what is available under -Unix. One little-known gem is "dialog", a utility for creating -professional-looking dialog boxes from within shell scripts. This -article presents a tutorial introduction to the dialog utility, and -shows examples of how and where it can be used

-

As he explains, dialog is a real gem in making -professional-looking dialog boxes with ease. It creates a variety -of dialog boxes, menus, check lists etc.. It is usually installed -by default. If not, you can download it from Thomas -Dickey's site.

-

The above-mentioned article gives a very good overview of its -uses and capabilites. The man page has more details. It can be used -in variety of situations. One good example is building of linux -kernel in text mode. Linux kernel uses a modified version of dialog -tailored for its needs.

-

dialog was initially designed to be used with shell scripts. If -you want to use its functionality in a c program, then you can use -libdialog. The documentation regarding this is sparse. Definitive -reference is the dialog.h header file which comes with the library. -You may need to hack here and there to get the required output. The -source is easily customizable. I have used it on a number of -occasions by modifying the code.

-
-
-
-

19.3. Perl -Curses Modules CURSES::FORM and CURSES::WIDGETS

-

The perl module Curses, Curses::Form and Curses::Widgets give -access to curses from perl. If you have curses and basic perl is -installed, you can get these modules from CPAN All Modules page. Get the three zipped modules in -the Curses category. Once installed you can use these modules from -perl scripts like any other module. For more information on perl -modules see perlmod man page. The above modules come with good -documentation and they have some demo scripts to test the -functionality. Though the widgets provided are very rudimentary, -these modules provide good access to curses library from perl.

-

Some of my code examples are converted to perl by Anuradha -Ratnaweera and they are available in the perl directory.

-

For more information see man pages Curses(3) , Curses::Form(3) -and Curses::Widgets(3). These pages are installed only when the -above modules are acquired and installed.

-
-
-
-
-

20. Just For -Fun !!!

-

This section contains few programs written by me just for fun. -They don't signify a better programming practice or the best way of -using ncurses. They are provided here so as to allow beginners to -get ideas and add more programs to this section. If you have -written a couple of nice, simple programs in curses and want them -to included here, contact me.

-
-
-

20.1. The -Game of Life

-

Game of life is a wonder of math. In Paul Callahan's words

- - - - -
-
-The Game of Life (or simply Life) is not a game in the conventional sense. There
+===========================================================================

A few of the widgets are modified by Thomas Dickey in recent versions.


19.1.2. Some Attractive Features

Apart from making our life easier with readily usable widgets, cdk solves one +frustrating problem with printing multi colored strings, justified strings +elegantly. Special formatting tags can be embedded in the strings which are +passed to CDK functions. For Example

If the string

"</B/1>This line should have a yellow foreground and a blue
+background.<!1>"

given as a parameter to newCDKLabel(), it prints the line with yellow foreground +and blue background. There are other tags available for justifying string, +embedding special drawing characters etc.. Please refer to the man page +cdk_display(3X) for details. The man page explains the usage with nice examples.


19.1.3. Conclusion

All in all, CDK is a well-written package of widgets, which if used properly can +form a strong frame work for developing complex GUI.


19.2. The dialog

Long long ago, in September 1994, when few people knew linux, Jeff Tranter wrote +an article on dialog in Linux Journal. He starts the article with these words..

Linux is based on the Unix operating system, but also features a number of +unique and useful kernel features and application programs that often go beyond +what is available under Unix. One little-known gem is "dialog", a utility for +creating professional-looking dialog boxes from within shell scripts. This +article presents a tutorial introduction to the dialog utility, and shows +examples of how and where it can be used

+As he explains, dialog is a real gem in making professional-looking dialog boxes +with ease. It creates a variety of dialog boxes, menus, check lists etc.. It is +usually installed by default. If not, you can download it from Thomas Dickey's site.

The above-mentioned article gives a very good overview of its uses and +capabilites. The man page has more details. It can be used in variety of +situations. One good example is building of linux kernel in text mode. Linux +kernel uses a modified version of dialog tailored for its needs.

dialog was initially designed to be used with shell scripts. If you want to use +its functionality in a c program, then you can use libdialog. The documentation +regarding this is sparse. Definitive reference is the dialog.h header file which +comes with the library. You may need to hack here and there to get the required +output. The source is easily customizable. I have used it on a number of +occasions by modifying the code.


19.3. Perl Curses Modules CURSES::FORM and CURSES::WIDGETS

The perl module Curses, Curses::Form and Curses::Widgets give access to curses +from perl. If you have curses and basic perl is installed, you can get these +modules from CPAN +All Modules page. Get the three zipped modules in the Curses category. +Once installed you can use these modules from perl scripts like any other +module. For more information on perl modules see perlmod man page. The above +modules come with good documentation and they have some demo scripts to test the +functionality. Though the widgets provided are very rudimentary, these modules +provide good access to curses library from perl.

Some of my code examples are converted to perl by Anuradha Ratnaweera and they +are available in the perl directory.

+For more information see man pages Curses(3) , Curses::Form(3) and +Curses::Widgets(3). These pages are installed only when the above modules are +acquired and installed.


20. Just For Fun !!!

This section contains few programs written by me just for fun. They don't +signify a better programming practice or the best way of using ncurses. They are +provided here so as to allow beginners to get ideas and add more programs to +this section. If you have written a couple of nice, simple programs in curses +and want them to included here, contact me.


20.1. The Game of Life

Game of life is a wonder of math. In +Paul Callahan's words

The Game of Life (or simply Life) is not a game in the conventional sense. There
 are no players, and no winning or losing. Once the "pieces" are placed in the
 starting position, the rules determine everything that happens later.
 Nevertheless, Life is full of surprises! In most cases, it is impossible to look
 at a starting position (or pattern) and see what will happen in the future. The
-only way to find out is to follow the rules of the game.
-
-

This program starts with a simple inverted U pattern and shows -how wonderful life works. There is a lot of room for improvement in -the program. You can let the user enter pattern of his choice or -even take input from a file. You can also change rules and play -with a lot of variations. Search on google for interesting information on game of -life.

-

File Path: JustForFun/life.c

-
-
-
-

20.2. Magic -Square

-

Magic Square, another wonder of math, is very simple to -understand but very difficult to make. In a magic square sum of the -numbers in each row, each column is equal. Even diagnol sum can be -equal. There are many variations which have special properties.

-

This program creates a simple magic square of odd order.

-

File Path: JustForFun/magic.c

-
-
-
-

20.3. Towers of -Hanoi

-

The famous towers of hanoi solver. The aim of the game is to -move the disks on the first peg to last peg, using middle peg as a -temporary stay. The catch is not to place a larger disk over a -small disk at any time.

-

File Path: JustForFun/hanoi.c

-
-
-
-

20.4. Queens -Puzzle

-

The objective of the famous N-Queen puzzle is to put N queens on -a N X N chess board without attacking each other.

-

This program solves it with a simple backtracking technique.

-

File Path: JustForFun/queens.c

-
-
-
-

20.5. -Shuffle

-

A fun game, if you have time to kill.

-

File Path: JustForFun/shuffle.c

-
-
-
-

20.6. Typing Tutor

-

A simple typing tutor, I created more out of need than for ease -of use. If you know how to put your fingers correctly on the -keyboard, but lack practice, this can be helpful.

-

File Path: JustForFun/tt.c

-
-
-
-
-

21. References

- -
-
- - +only way to find out is to follow the rules of the game.

This program starts with a simple inverted U pattern and shows how wonderful +life works. There is a lot of room for improvement in the program. You can let +the user enter pattern of his choice or even take input from a file. You can +also change rules and play with a lot of variations. Search on google for interesting information on game +of life.

File Path: JustForFun/life.c


20.2. Magic Square

Magic Square, another wonder of math, is very simple to understand but very +difficult to make. In a magic square sum of the numbers in each row, each column +is equal. Even diagnol sum can be equal. There are many variations which have +special properties.

This program creates a simple magic square of odd order.

File Path: JustForFun/magic.c


20.3. Towers of Hanoi

The famous towers of hanoi solver. The aim of the game is to move the disks on +the first peg to last peg, using middle peg as a temporary stay. The catch is +not to place a larger disk over a small disk at any time.

File Path: JustForFun/hanoi.c


20.4. Queens Puzzle

The objective of the famous N-Queen puzzle is to put N queens on a N X N chess +board without attacking each other.

This program solves it with a simple backtracking technique.

File Path: JustForFun/queens.c


20.5. Shuffle

A fun game, if you have time to kill.

File Path: JustForFun/shuffle.c


20.6. Typing Tutor

A simple typing tutor, I created more out of need than for ease of use. If you +know how to put your fingers correctly on the keyboard, but lack practice, this +can be helpful.

File Path: JustForFun/tt.c


21. References

\ No newline at end of file diff --git a/contrib/ncurses/doc/html/announce.html b/contrib/ncurses/doc/html/announce.html index 961e7571cf61..ffc115de1e66 100644 --- a/contrib/ncurses/doc/html/announce.html +++ b/contrib/ncurses/doc/html/announce.html @@ -1,6 +1,6 @@ - +