FIXUP: HAVE_SYS_IOCTL_H
[mirror-ossqm-ncurses.git] / configure.in
blob111927b8789e3de9f20c7be6e536581e4ef75fd8
1 dnl***************************************************************************
2 dnl Copyright (c) 1998-2009,2010 Free Software Foundation, Inc.              *
3 dnl                                                                          *
4 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
5 dnl copy of this software and associated documentation files (the            *
6 dnl "Software"), to deal in the Software without restriction, including      *
7 dnl without limitation the rights to use, copy, modify, merge, publish,      *
8 dnl distribute, distribute with modifications, sublicense, and/or sell       *
9 dnl copies of the Software, and to permit persons to whom the Software is    *
10 dnl furnished to do so, subject to the following conditions:                 *
11 dnl                                                                          *
12 dnl The above copyright notice and this permission notice shall be included  *
13 dnl in all copies or substantial portions of the Software.                   *
14 dnl                                                                          *
15 dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
16 dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
17 dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
18 dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
19 dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
20 dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
21 dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
22 dnl                                                                          *
23 dnl Except as contained in this notice, the name(s) of the above copyright   *
24 dnl holders shall not be used in advertising or otherwise to promote the     *
25 dnl sale, use or other dealings in this Software without prior written       *
26 dnl authorization.                                                           *
27 dnl***************************************************************************
28 dnl
29 dnl Author: Thomas E. Dickey 1995-on
30 dnl
31 dnl $Id: configure.in,v 1.514 2010/11/28 00:12:45 tom Exp $
32 dnl Process this file with autoconf to produce a configure script.
33 dnl
34 dnl See http://invisible-island.net/autoconf/ for additional information.
35 dnl
36 dnl ---------------------------------------------------------------------------
37 AC_PREREQ(2.13.20020210)
38 AC_REVISION($Revision: 1.514 $)
39 AC_INIT(ncurses/base/lib_initscr.c)
40 AC_CONFIG_HEADER(include/config.h)
41 AC_CANONICAL_TARGET
43 m4_include([macros.m4])
44 m4_pattern_forbid([^CF_$])
45 m4_pattern_allow([^CF_EOF$])
46 m4_pattern_allow([^CF_EOF2$])
48 CF_TOP_BUILDDIR
49 CF_SUBST_NCURSES_VERSION
51 CF_WITH_REL_VERSION(NCURSES)
52 CF_WITH_ABI_VERSION
54 AC_ARG_WITH(system-type,
55 [  --with-system-type=XXX  test: override derived host system-type],
56 [AC_MSG_WARN(overriding system type to $withval)
57  cf_cv_system_name=$withval])
59 ###     Save the given $CFLAGS to allow user-override.
60 cf_user_CFLAGS="$CFLAGS"
62 ###     Default install-location
63 CF_CFG_DEFAULTS
65 ###     Checks for programs.
66 AC_PROG_CC
67 CF_GCC_VERSION
69 AC_PROG_CPP
70 AC_PROG_GCC_TRADITIONAL
71 CF_PROG_CC_C_O(CC)
72 AC_ISC_POSIX
73 CF_ANSI_CC_REQD
74 CF_PROG_EXT
75 CF_PROG_LDCONFIG
77 dnl DEFECT in autoconf 2.12:    an attempt to set policy, this breaks the
78 dnl                             configure script by not letting us test if C++
79 dnl                             is present, making this option necessary.
80 AC_MSG_CHECKING(if you want to ensure bool is consistent with C++)
81 AC_ARG_WITH(cxx,
82         [  --without-cxx           do not adjust ncurses bool to match C++],
83         [cf_with_cxx=$withval],
84         [cf_with_cxx=yes])
85 AC_MSG_RESULT($cf_with_cxx)
86 if test "X$cf_with_cxx" = Xno ; then
87         CXX=""
88         GXX=""
89 else
90         # with autoconf 2.13, we can change the error to a warning:
91         pushdef([AC_MSG_ERROR],
92                 [AC_MSG_RESULT(no)
93                  AC_MSG_WARN([You don't have any C++ compiler, too bad])
94                 cf_with_cxx=no; CXX=""; GXX="";])dnl
95         AC_PROG_CXX
96         popdef([AC_MSG_ERROR])dnl
97         # autoconf 2.5x removed the error - by hardcoding it to g++.
98         if test "$CXX" = "g++" ; then
99                 AC_PATH_PROG(CXX,g++)
100         fi
101         if test "$CXX" = "g++" ; then
102                 AC_MSG_WARN(ignoring hardcoded g++)
103                 cf_with_cxx=no; CXX=""; GXX="";
104         fi
107 CF_GXX_VERSION
108 case $GXX_VERSION in
109 1*|2.[[0-6]]*)
110         # GXX=""; CXX=""; ac_cv_prog_gxx=no
111         # cf_cxx_library=no
112         AC_MSG_WARN(templates do not work)
113         ;;
114 esac
116 AC_MSG_CHECKING(if you want to build C++ binding and demo)
117 AC_ARG_WITH(cxx-binding,
118         [  --without-cxx-binding   do not build C++ binding and demo],
119         [cf_with_cxx_binding=$withval],
120         [cf_with_cxx_binding=$cf_with_cxx])
121 AC_MSG_RESULT($cf_with_cxx_binding)
123 AC_MSG_CHECKING(if you want to build with Ada95)
124 AC_ARG_WITH(ada,
125         [  --without-ada           suppress check for Ada95, don't build demo],
126         [cf_with_ada=$withval],
127         [cf_with_ada=yes])
128 AC_MSG_RESULT($cf_with_ada)
130 AC_MSG_CHECKING(if you want to install manpages)
131 AC_ARG_WITH(manpages,
132         [  --without-manpages      suppress install of manpages],
133         [cf_with_manpages=$withval],
134         [cf_with_manpages=yes])
135 AC_MSG_RESULT($cf_with_manpages)
137 AC_MSG_CHECKING(if you want to build programs such as tic)
138 AC_ARG_WITH(progs,
139         [  --without-progs         suppress build with programs (e.g., tic)],
140         [cf_with_progs=$withval],
141         [cf_with_progs=yes])
142 AC_MSG_RESULT($cf_with_progs)
144 AC_MSG_CHECKING(if you want to build test-programs)
145 AC_ARG_WITH(tests,
146         [  --without-tests         suppress build with test-programs],
147         [cf_with_tests=$withval],
148         [cf_with_tests=yes])
149 AC_MSG_RESULT($cf_with_tests)
151 AC_MSG_CHECKING(if you wish to install curses.h)
152 AC_ARG_WITH(curses-h,
153         [  --without-curses-h      install curses.h as ncurses.h only],
154         [with_curses_h=$withval],
155         [with_curses_h=yes])
156 AC_MSG_RESULT($with_curses_h)
158 modules_to_build="ncurses"
159 if test "X$cf_with_progs" != Xno ; then
160 modules_to_build="$modules_to_build progs tack"
162 modules_to_build="$modules_to_build panel menu form"
164 AC_ARG_PROGRAM
166 CF_PROG_AWK
167 CF_PROG_EGREP
168 CF_PROG_INSTALL
169 CF_PROG_LINT
170 CF_PROG_LN_S
172 AC_SYS_LONG_FILE_NAMES
174 # if we find pkg-config, check if we should install the ".pc" files.
175 CF_PKG_CONFIG
177 if test "$PKG_CONFIG" != no ; then
178         AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
180         # Leave this as something that can be overridden in the environment.
181         if test -z "$PKG_CONFIG_LIBDIR" ; then
182                 PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`/lib/pkgconfig
183         fi
184         PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'`
185         if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then
186                 AC_ARG_ENABLE(pc-files,
187                         [  --enable-pc-files       generate and install .pc files for pkg-config],
188                         [enable_pc_files=$enableval],
189                         [enable_pc_files=no])
190                 AC_MSG_RESULT($enable_pc_files)
191         else
192                 AC_MSG_RESULT(no)
193                 AC_MSG_WARN(did not find library $PKG_CONFIG_LIBDIR)
194                 enable_pc_files=no
195         fi
197 AC_SUBST(PKG_CONFIG_LIBDIR)
199 AC_MSG_CHECKING(if we should assume mixed-case filenames)
200 AC_ARG_ENABLE(mixed-case,
201         [  --enable-mixed-case     tic should assume mixed-case filenames],
202         [enable_mixedcase=$enableval],
203         [enable_mixedcase=auto])
204 AC_MSG_RESULT($enable_mixedcase)
205 if test "$enable_mixedcase" = "auto" ; then
206     CF_MIXEDCASE_FILENAMES
207 else
208     cf_cv_mixedcase=$enable_mixedcase
209     if test "$enable_mixedcase" = "yes" ; then
210         AC_DEFINE([MIXEDCASE_FILENAMES], [1], [Mixedcase filenames])
211     fi
214 # do this after mixed-case option (tags/TAGS is not as important as tic).
215 AC_PROG_MAKE_SET
216 CF_MAKE_TAGS
217 CF_MAKEFLAGS
219 dnl These are standard among *NIX systems, but not when cross-compiling
220 AC_CHECK_TOOL(RANLIB, ranlib, ':')
221 AC_CHECK_TOOL(LD, ld, ld)
222 AC_CHECK_TOOL(AR, ar, ar)
223 CF_AR_FLAGS
225 dnl Special option for use by system-builders: the install-prefix is used to
226 dnl adjust the location into which the actual install is done, so that an
227 dnl archive can be built without modifying the host system's configuration.
228 AC_MSG_CHECKING(if you have specified an install-prefix)
229 AC_ARG_WITH(install-prefix,
230         [  --with-install-prefix   prefixes actual install-location ($DESTDIR)],
231         [case "$withval" in #(vi
232         yes|no) #(vi
233                 ;;
234         *)      DESTDIR="$withval"
235                 ;;
236         esac])
237 AC_MSG_RESULT($DESTDIR)
238 AC_SUBST(DESTDIR)
240 ###############################################################################
241 CF_HELP_MESSAGE(Build-Tools Needed to Compile Temporary Applications for Cross-compiling:)
242 # If we're cross-compiling, allow the user to override the tools and their
243 # options.  The configure script is oriented toward identifying the host
244 # compiler, etc., but we need a build compiler to generate parts of the source.
245 CF_BUILD_CC
247 ###############################################################################
248 CF_HELP_MESSAGE(Options to Specify the Libraries Built/Used:)
250 ### Options to allow the user to specify the set of libraries which are used.
251 ### Use "--without-normal --with-shared" to allow the default model to be
252 ### shared, for example.
253 cf_list_models=""
254 AC_SUBST(cf_list_models)dnl     the complete list of models ("normal debug")
256 CF_WITH_LIBTOOL
257 if test "$with_libtool" != "no" ; then
259 cf_list_models="$cf_list_models libtool"
261 else
263 AC_MSG_CHECKING(if you want to build shared libraries)
264 AC_ARG_WITH(shared,
265         [  --with-shared           generate shared-libraries],
266         [with_shared=$withval],
267         [with_shared=no])
268 AC_MSG_RESULT($with_shared)
269 test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
271 AC_MSG_CHECKING(if you want to build static libraries)
272 AC_ARG_WITH(normal,
273         [  --with-normal           generate normal-libraries (default)],
274         [with_normal=$withval],
275         [with_normal=yes])
276 AC_MSG_RESULT($with_normal)
277 test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
279 AC_MSG_CHECKING(if you want to build debug libraries)
280 AC_ARG_WITH(debug,
281         [  --with-debug            generate debug-libraries (default)],
282         [with_debug=$withval],
283         [with_debug=yes])
284 AC_MSG_RESULT($with_debug)
285 test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
287 AC_MSG_CHECKING(if you want to build profiling libraries)
288 AC_ARG_WITH(profile,
289         [  --with-profile          generate profile-libraries],
290         [with_profile=$withval],
291         [with_profile=no])
292 AC_MSG_RESULT($with_profile)
293 test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
297 ###############################################################################
299 AC_MSG_CHECKING(for specified models)
300 test -z "$cf_list_models" && cf_list_models=normal
301 dnl If we use libtool to generate libraries, then it must be the only
302 dnl specified model.
303 test "$with_libtool" != "no" && cf_list_models=libtool
304 AC_MSG_RESULT($cf_list_models)
306 ### Use the first model as the default, and save its suffix for use in building
307 ### up test-applications.
308 AC_MSG_CHECKING(for default model)
309 DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'`
310 AC_MSG_RESULT($DFT_LWR_MODEL)
312 CF_UPPER(DFT_UPR_MODEL,$DFT_LWR_MODEL)dnl
314 AC_SUBST(DFT_LWR_MODEL)dnl      the default model ("normal")
315 AC_SUBST(DFT_UPR_MODEL)dnl      the default model ("NORMAL")
317 TICS_NAME=tic
318 AC_SUBST(TICS_NAME)
320 TINFO_NAME=tinfo
321 AC_SUBST(TINFO_NAME)
323 LIB_NAME=ncurses
324 AC_SUBST(LIB_NAME)
326 LIB_DIR=../lib
327 LIB_2ND=../../lib
329 CF_LIB_PREFIX(cf_prefix)
330 LIB_PREFIX=$cf_prefix
331 AC_SUBST(LIB_PREFIX)
333 LIB_SUFFIX=
334 AC_SUBST(LIB_SUFFIX)
336 ###############################################################################
338 AC_MSG_CHECKING(if you want to build a separate terminfo library)
339 AC_ARG_WITH(termlib,
340         [  --with-termlib          generate separate terminfo library],
341         [with_termlib=$withval],
342         [with_termlib=no])
343 AC_MSG_RESULT($with_termlib)
345 AC_MSG_CHECKING(if you want to build a separate tic library)
346 AC_ARG_WITH(ticlib,
347         [  --with-ticlib           generate separate tic library],
348         [with_ticlib=$withval],
349         [with_ticlib=no])
350 AC_MSG_RESULT($with_ticlib)
352 ### Checks for special libraries, must be done up-front.
353 SHLIB_LIST=""
354 CF_WITH_GPM
355 if test "$with_gpm" != no ; then
356         AC_MSG_CHECKING(if you want to load GPM dynamically)
357         AC_ARG_WITH(dlsym,
358                 [  --without-dlsym         do not use dlsym() to load GPM dynamically],
359                 [with_dlsym=$withval],
360                 [with_dlsym=yes])
361         AC_MSG_RESULT($with_dlsym)
362         if test "$with_dlsym" = yes ; then
363                 CF_FUNC_DLSYM
364                 if test "$with_gpm" != yes ; then
365                         CF_VERBOSE(assuming soname for gpm is $with_gpm)
366                         cf_cv_gpm_soname="$with_gpm"
367                 else
368                         CF_LIB_SONAME([#include <gpm.h>],[if (Gpm_Open(0,0)) Gpm_Close();],gpm)
369                 fi
370                 test "$cf_cv_gpm_soname" != "unknown" && AC_DEFINE_UNQUOTED(LIBGPM_SONAME,"$cf_cv_gpm_soname",[libgpm soname])
371                 SHLIB_LIST="-ldl $SHLIB_LIST"
372         else
373                 SHLIB_LIST="-lgpm $SHLIB_LIST"
374                 CF_ADD_LIB(gpm,TEST_LIBS)
375         fi
376         AC_DEFINE(HAVE_LIBGPM,[1],[Define if we have libgpm])
377         CF_CHECK_GPM_WGETCH
380 CF_WITH_SYSMOUSE
382 dnl Not all ports of gcc support the -g option
384 if test X"$CC_G_OPT" = X"" ; then
385         CC_G_OPT='-g'
386         test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT=''
388 AC_SUBST(CC_G_OPT)
390 if test X"$CXX_G_OPT" = X"" ; then
391         CXX_G_OPT='-g'
392         test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
394 AC_SUBST(CXX_G_OPT)
396 AC_MSG_CHECKING(for default loader flags)
397 case $DFT_LWR_MODEL in
398 libtool) LD_MODEL=''   ;;
399 normal)  LD_MODEL=''   ;;
400 debug)   LD_MODEL=$CC_G_OPT ;;
401 profile) LD_MODEL='-pg';;
402 shared)  LD_MODEL=''   ;;
403 esac
404 AC_SUBST(LD_MODEL)dnl           the type of link (e.g., -g or -pg)
405 AC_MSG_RESULT($LD_MODEL)
407 case $DFT_LWR_MODEL in
408 shared)
409 CF_ENABLE_RPATH
410 AC_MSG_CHECKING(if shared libraries should be relinked during install)
411 AC_ARG_ENABLE(relink,
412 [  --disable-relink        relink shared libraries during install],
413 [cf_cv_do_relink=$enableval],
414 [cf_cv_do_relink=yes])
415 AC_MSG_RESULT($cf_cv_do_relink)
416         ;;
417 esac
419 CF_SHARED_OPTS
420 if test "$CC_SHARED_OPTS" = "unknown"; then
421         for model in $cf_list_models; do
422                 if test "$model" = "shared"; then
423                         AC_MSG_ERROR(Shared libraries are not supported in this version)
424                 fi
425         done
428 ### If we're building with rpath, try to link non-standard libs that way too.
429 if test "$DFT_LWR_MODEL" = "shared"; then
430         CF_DISABLE_RPATH_HACK
433 ###############################################################################
434 CF_HELP_MESSAGE(Fine-Tuning Your Configuration:)
436 ###     use option --disable-overwrite to leave out the link to -lcurses
437 AC_MSG_CHECKING(if you wish to install ncurses overwriting curses)
438 AC_ARG_ENABLE(overwrite,
439         [  --disable-overwrite     leave out the link to -lcurses],
440         [with_overwrite=$enableval],
441         [if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi])
442 AC_MSG_RESULT($with_overwrite)
444 AC_MSG_CHECKING(if external terminfo-database is used)
445 AC_ARG_ENABLE(database,
446         [  --disable-database      do not use terminfo, only fallbacks/termcap],
447         [use_database=$enableval],
448         [use_database=yes])
449 AC_MSG_RESULT($use_database)
451 case $host_os in #(vi
452 os2*) #(vi
453         TERMINFO_SRC='${top_srcdir}/misc/emx.src'
454         ;;
455 *) #(vi
456         TERMINFO_SRC='${top_srcdir}/misc/terminfo.src'
457         ;;
458 esac
459 AC_SUBST(TERMINFO_SRC)
461 CF_PATHSEP
462 if test "$use_database" != no ; then
463         AC_DEFINE(USE_DATABASE,[1],[use_database])
465         AC_MSG_CHECKING(which terminfo source-file will be installed)
466         AC_ARG_WITH(database,
467                 [  --with-database=XXX     specify terminfo source to install],
468                 [TERMINFO_SRC=$withval])
469         AC_MSG_RESULT($TERMINFO_SRC)
471         AC_MSG_CHECKING(whether to use hashed database instead of directory/tree)
472         AC_ARG_WITH(hashed-db,
473                 [  --with-hashed-db        specify hashed-database library],,
474                 [with_hashed_db=no])
475         AC_MSG_RESULT($with_hashed_db)
476 else
477         with_hashed_db=no
480 AC_MSG_CHECKING(for list of fallback descriptions)
481 AC_ARG_WITH(fallbacks,
482         [  --with-fallbacks=XXX    specify list of fallback terminal descriptions],
483         [with_fallback=$withval],
484         [with_fallback=])
485 AC_MSG_RESULT($with_fallback)
486 FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
487 AC_SUBST(FALLBACK_LIST)
489 AC_MSG_CHECKING(if you want modern xterm or antique)
490 AC_ARG_WITH(xterm-new,
491         [  --without-xterm-new     specify if xterm terminfo should be old version],
492         [with_xterm_new=$withval],
493         [with_xterm_new=yes])
494 case $with_xterm_new in
495 no)     with_xterm_new=xterm-old;;
496 *)      with_xterm_new=xterm-new;;
497 esac
498 AC_MSG_RESULT($with_xterm_new)
499 WHICH_XTERM=$with_xterm_new
500 AC_SUBST(WHICH_XTERM)
502 MAKE_TERMINFO=
503 if test "$use_database" = no ; then
504         TERMINFO="${datadir}/terminfo"
505         MAKE_TERMINFO="#"
506 else
508 AC_MSG_CHECKING(for list of terminfo directories)
509 CF_WITH_PATHLIST(terminfo-dirs,
510         [  --with-terminfo-dirs=XXX specify list of terminfo directories],
511         TERMINFO_DIRS,
512         DATADIR/terminfo,
513         ${datadir}/terminfo)
514 AC_MSG_RESULT($TERMINFO_DIRS)
515 test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS",[terminfo dirs])
517 AC_MSG_CHECKING(for default terminfo directory)
518 CF_WITH_PATH(default-terminfo-dir,
519         [  --with-default-terminfo-dir=DIR default terminfo directory],
520         TERMINFO,
521         DATADIR/terminfo,
522         ${datadir}/terminfo)
523 AC_MSG_RESULT($TERMINFO)
524 AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO",[terminfo])
528 AC_SUBST(TERMINFO)
529 AC_SUBST(MAKE_TERMINFO)
531 ###     use option --disable-big-core to make tic run on small machines
532 ###     We need 4Mb, check if we can allocate 50% more than that.
533 AC_MSG_CHECKING(if big-core option selected)
534 AC_ARG_ENABLE(big-core,
535         [  --disable-big-core      assume machine has little memory],
536         [with_big_core=$enableval],
537         [AC_TRY_RUN([
538 #include <stdlib.h>
539 #include <string.h>
540 int main() {
541         unsigned long n = 6000000L;
542         char *s = malloc(n);
543         if (s != 0)
544                 s[0] = s[n-1] = 0;
545         ${cf_cv_main_return:-return}(s == 0);
547         [with_big_core=yes],
548         [with_big_core=no],
549         [with_big_core=no])])
550 AC_MSG_RESULT($with_big_core)
551 test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE,[],[HAVE_BIG_CORE])
553 ### ISO C only guarantees 512-char strings, we have tables which load faster
554 ### when constructed using "big" strings.  More than the C compiler, the awk
555 ### program is a limit on most vendor UNIX systems.  Check that we can build.
556 AC_MSG_CHECKING(if big-strings option selected)
557 AC_ARG_ENABLE(big-strings,
558         [  --disable-big-strings   assume compiler has only standard-size strings],
559         [with_big_strings=$enableval],
560         [CF_AWK_BIG_PRINTF(12000,with_big_strings)])
561 AC_MSG_RESULT($with_big_strings)
563 USE_BIG_STRINGS=0
564 test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1
565 AC_SUBST(USE_BIG_STRINGS)
567 ###     use option --enable-termcap to compile in the termcap fallback support
568 AC_MSG_CHECKING(if you want termcap-fallback support)
569 AC_ARG_ENABLE(termcap,
570         [  --enable-termcap        compile in termcap fallback support],
571         [with_termcap=$enableval],
572         [with_termcap=no])
573 AC_MSG_RESULT($with_termcap)
575 if test "$with_termcap" != "yes" ; then
576         if test "$use_database" = no ; then
577                 if test -z "$with_fallback" ; then
578                         AC_MSG_ERROR(You have disabled the database w/o specifying fallbacks)
579                 fi
580         fi
581         AC_DEFINE(PURE_TERMINFO,[],[PURE_TERMINFO])
582 else
584 if test "$with_ticlib" != no ; then
585         AC_MSG_ERROR(Options --with-ticlib and --enable-termcap cannot be combined)
588 AC_DEFINE(USE_TERMCAP,[1],[USE_TERMCAP])
589 AC_MSG_CHECKING(for list of termcap files)
590 CF_WITH_PATHLIST(termpath,
591         [  --with-termpath=XXX     specify list of termcap files],
592         TERMPATH,
593         /etc/termcap:/usr/share/misc/termcap)
594 AC_MSG_RESULT($TERMPATH)
595 test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH",[termpath])
597 ###     use option --enable-getcap to use a hacked getcap for reading termcaps
598 AC_MSG_CHECKING(if fast termcap-loader is needed)
599 AC_ARG_ENABLE(getcap,
600         [  --enable-getcap         fast termcap load, no xrefs to terminfo],
601         [with_getcap=$enableval],
602         [with_getcap=no])
603 AC_MSG_RESULT($with_getcap)
604 test "$with_getcap" = "yes" && AC_DEFINE(USE_GETCAP,[],[USE_GETCAP])
606 AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo)
607 AC_ARG_ENABLE(getcap-cache,
608         [  --enable-getcap-cache   cache translated termcaps in ~/.terminfo],
609         [with_getcap_cache=$enableval],
610         [with_getcap_cache=no])
611 AC_MSG_RESULT($with_getcap_cache)
612 test "$with_getcap_cache" = "yes" && AC_DEFINE(USE_GETCAP_CACHE,[],[USE_GETCAP_CACHE])
616 ###   Use option --disable-home-terminfo to completely remove ~/.terminfo
617 AC_MSG_CHECKING(if ~/.terminfo is wanted)
618 AC_ARG_ENABLE(home-terminfo,
619         [  --disable-home-terminfo drop ~/.terminfo from terminfo search-path],
620         [with_home_terminfo=$enableval],
621         [with_home_terminfo=yes])
622 AC_MSG_RESULT($with_home_terminfo)
623 test "$with_home_terminfo" = "yes" && AC_DEFINE(USE_HOME_TERMINFO,[1],[USE_HOME_TERMINFO])
625 AC_MSG_CHECKING(if you want to use restricted environment when running as root)
626 AC_ARG_ENABLE(root-environ,
627         [  --disable-root-environ  restrict environment when running as root],
628         [with_root_environ=$enableval],
629         [with_root_environ=yes])
630 AC_MSG_RESULT($with_root_environ)
631 test "$with_root_environ" = yes && AC_DEFINE(USE_ROOT_ENVIRON,[],[USE_ROOT_ENVIRON])
633 ###   Use option --enable-symlinks to make tic use symlinks, not hard links
634 ###   to reduce storage requirements for the terminfo database.
635 CF_LINK_FUNCS
637 with_links=no
638 with_symlinks=no
640 # soft links (symbolic links) are useful for some systems where hard links do
641 # not work, or to make it simpler to copy terminfo trees around.
642 if test "$ac_cv_func_symlink" = yes ; then
643     AC_MSG_CHECKING(if tic should use symbolic links)
644     AC_ARG_ENABLE(symlinks,
645         [  --enable-symlinks       make tic use symbolic links not hard links],
646         [with_symlinks=$enableval],
647         [with_symlinks=no])
648     AC_MSG_RESULT($with_symlinks)
651 # If we have hard links and did not choose to use soft links instead, there is
652 # no reason to make this choice optional - use the hard links.
653 if test "$with_symlinks" = no ; then
654     AC_MSG_CHECKING(if tic should use hard links)
655     if test "$ac_cv_func_link" = yes ; then
656         with_links=yes
657     else
658         with_links=no
659     fi
660     AC_MSG_RESULT($with_links)
663 test "$with_links" = yes && AC_DEFINE(USE_LINKS,[],[USE_LINKS])
664 test "$with_symlinks" = yes && AC_DEFINE(USE_SYMLINKS,[],[USE_SYMLINKS])
666 ###   use option --enable-broken-linker to force on use of broken-linker support
667 AC_MSG_CHECKING(if you want broken-linker support code)
668 AC_ARG_ENABLE(broken_linker,
669         [  --enable-broken_linker  compile with broken-linker support code],
670         [with_broken_linker=$enableval],
671         [with_broken_linker=${BROKEN_LINKER:-no}])
672 AC_MSG_RESULT($with_broken_linker)
674 BROKEN_LINKER=0
675 if test "$with_broken_linker" = yes ; then
676         AC_DEFINE(BROKEN_LINKER,[],[BROKEN_LINKER])
677         BROKEN_LINKER=1
678 elif test "$DFT_LWR_MODEL" = shared ; then
679         case $cf_cv_system_name in #(vi
680         cygwin*)
681                 AC_DEFINE(BROKEN_LINKER,[],[BROKEN_LINKER])
682                 BROKEN_LINKER=1
683                 CF_VERBOSE(cygwin linker is broken anyway)
684                 ;;
685         esac
687 AC_SUBST(BROKEN_LINKER)
689 ###   use option --enable-bsdpad to have tputs process BSD-style prefix padding
690 AC_MSG_CHECKING(if tputs should process BSD-style prefix padding)
691 AC_ARG_ENABLE(bsdpad,
692         [  --enable-bsdpad         recognize BSD-style prefix padding],
693         [with_bsdpad=$enableval],
694         [with_bsdpad=no])
695 AC_MSG_RESULT($with_bsdpad)
696 test "$with_bsdpad" = yes && AC_DEFINE(BSD_TPUTS,[],[bsd_tputs])
698 ###   use option --enable-widec to turn on use of wide-character support
699 NCURSES_CH_T=chtype
700 NCURSES_LIBUTF8=0
702 NEED_WCHAR_H=0
703 NCURSES_MBSTATE_T=0
704 NCURSES_WCHAR_T=0
705 NCURSES_WINT_T=0
707 # Check to define _XOPEN_SOURCE "automatically"
708 CF_XOPEN_SOURCE(500)
710 # Work around breakage on OS X
711 CF_SIGWINCH
713 # Checks for CODESET support.
714 AM_LANGINFO_CODESET
716 # use these variables to work around a defect in gcc's fixincludes.
717 NCURSES_OK_WCHAR_T=
718 NCURSES_OK_WINT_T=
720 AC_MSG_CHECKING(if you want wide-character code)
721 AC_ARG_ENABLE(widec,
722         [  --enable-widec          compile with wide-char/UTF-8 code],
723         [with_widec=$enableval],
724         [with_widec=no])
725 AC_MSG_RESULT($with_widec)
726 if test "$with_widec" = yes ; then
727         LIB_SUFFIX="w${LIB_SUFFIX}"
728         AC_DEFINE(USE_WIDEC_SUPPORT,[],[USE_WIDEC_SUPPORT])
730         case "$CFLAGS $CPPFLAGS" in #(vi
731         *-D_XOPEN_SOURCE=500) #(vi
732                 ;;
733         *)
734                 CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
735                 ;;
736         esac
738         # with_overwrite=no
739         NCURSES_CH_T=cchar_t
740         AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs)
741         if test "$ac_cv_func_putwc" != yes ; then
742                 CF_UTF8_LIB
743                 if test "$cf_cv_utf8_lib" != no ; then
744                         NCURSES_LIBUTF8=1
745                 fi
746         fi
747         CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T)
748         CF_WCHAR_TYPE(wchar_t,   NCURSES_WCHAR_T,   NCURSES_OK_WCHAR_T)
749         CF_WCHAR_TYPE(wint_t,    NCURSES_WINT_T,    NCURSES_OK_WINT_T)
751         if test "$NCURSES_MBSTATE_T" != 0; then
752                 AC_DEFINE(NEED_MBSTATE_T_DEF,[],[NEED_MBSTATE_T_DEF])
753         fi
755 AC_SUBST(NCURSES_CH_T)
756 AC_SUBST(NCURSES_LIBUTF8)
758 AC_SUBST(NEED_WCHAR_H)
759 AC_SUBST(NCURSES_MBSTATE_T)
760 AC_SUBST(NCURSES_WCHAR_T)
761 AC_SUBST(NCURSES_WINT_T)
763 AC_SUBST(NCURSES_OK_WCHAR_T)
764 AC_SUBST(NCURSES_OK_WINT_T)
766 ###   use option --disable-lp64 to allow long chtype
767 case $cf_cv_abi_version in
768 [[345]]*)
769         default_with_lp64=no
770         ;;
772         default_with_lp64=yes
773         ;;
774 esac
776 AC_MSG_CHECKING(whether to enable _LP64 definition in curses.h)
777 AC_ARG_ENABLE(lp64,
778         [  --disable-lp64          allow chtype to be long (ignore _LP64)],
779         [with_lp64=$enableval],
780         [with_lp64=$default_with_lp64])
781 AC_MSG_RESULT($with_lp64)
783 if test "$with_lp64" = yes ; then
784         cf_cv_enable_lp64=1
785 else
786         cf_cv_enable_lp64=0
788 AC_SUBST(cf_cv_enable_lp64)
790 CF_LARGEFILE
792 ###   use option --disable-tparm-varargs to make tparm() conform to X/Open
793 AC_MSG_CHECKING(if you want tparm not to use X/Open fixed-parameter list)
794 AC_ARG_ENABLE(tparm-varargs,
795         [  --disable-tparm-varargs compile tparm() without varargs interface],
796         [with_tparm_varargs=$enableval],
797         [with_tparm_varargs=yes])
798 AC_MSG_RESULT($with_tparm_varargs)
799 NCURSES_TPARM_VARARGS=0
800 test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1
801 AC_SUBST(NCURSES_TPARM_VARARGS)
803 ###   use option --disable-tic-depends to make libtic not explicitly depend on ncurses/ncursesw
804 if test "$with_ticlib" != no ; then
805 AC_MSG_CHECKING(if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library)
806 AC_ARG_ENABLE(tic-depends,
807         [  --disable-tic-depends   link tic library without explicit dependency on ncurses library],
808         [with_tic_depends=$enableval],
809         [with_tic_depends=yes])
810 AC_MSG_RESULT($with_tic_depends)
811 else
812         with_tic_depends=no
815 ###   use option --with-bool to override bool's type
816 AC_MSG_CHECKING(for type of bool)
817 AC_ARG_WITH(bool,
818         [  --with-bool=TYPE        override fallback type of bool variable],
819         [NCURSES_BOOL="$withval"],
820         [NCURSES_BOOL=auto])
821 AC_MSG_RESULT($NCURSES_BOOL)
822 AC_SUBST(NCURSES_BOOL)
824 AC_MSG_CHECKING(for alternate terminal capabilities file)
825 AC_ARG_WITH(caps,
826         [  --with-caps=alt         compile with alternate Caps file],
827         [TERMINFO_CAPS=Caps.$withval],
828         [TERMINFO_CAPS=Caps])
829 test -f "${srcdir}/include/${TERMINFO_CAPS}" || TERMINFO_CAPS=Caps
830 AC_MSG_RESULT($TERMINFO_CAPS)
831 AC_SUBST(TERMINFO_CAPS)
833 ###   use option --with-chtype to override chtype's type
834 AC_MSG_CHECKING(for type of chtype)
835 AC_ARG_WITH(chtype,
836         [  --with-chtype=TYPE      override type of chtype],
837         [NCURSES_CHTYPE="$withval"],
838         [NCURSES_CHTYPE=auto])
839 AC_MSG_RESULT($NCURSES_CHTYPE)
841 ###   use option --with-ospeed to override ospeed's type
842 AC_MSG_CHECKING(for type of ospeed)
843 AC_ARG_WITH(ospeed,
844         [  --with-ospeed=TYPE      override type of ospeed variable],
845         [NCURSES_OSPEED="$withval"],
846         [NCURSES_OSPEED=short])
847 AC_MSG_RESULT($NCURSES_OSPEED)
848 AC_SUBST(NCURSES_OSPEED)
850 ###   use option --with-mmask-t to override mmask_t's type
851 AC_MSG_CHECKING(for type of mmask_t)
852 AC_ARG_WITH(mmask-t,
853         [  --with-mmask-t=TYPE     override type of mmask_t],
854         [NCURSES_MMASK_T="$withval"],
855         [NCURSES_MMASK_T=auto])
856 AC_MSG_RESULT($NCURSES_MMASK_T)
858 ###   use option --with-ccharw-max to override CCHARW_MAX size
859 AC_MSG_CHECKING(for size CCHARW_MAX)
860 AC_ARG_WITH(ccharw-max,
861         [  --with-ccharw-max=XXX   override size CCHARW_MAX],
862         [NCURSES_CCHARW_MAX="$withval"],
863         [NCURSES_CCHARW_MAX=5])
864 AC_MSG_RESULT($NCURSES_CCHARW_MAX)
865 AC_SUBST(NCURSES_CCHARW_MAX)
867 ### Enable compiling-in rcs id's
868 AC_MSG_CHECKING(if RCS identifiers should be compiled-in)
869 AC_ARG_WITH(rcs-ids,
870         [  --with-rcs-ids          compile-in RCS identifiers],
871         [with_rcs_ids=$withval],
872         [with_rcs_ids=no])
873 AC_MSG_RESULT($with_rcs_ids)
874 test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS,[1],[USE_RCS_IDS])
876 ###############################################################################
877 CF_MAN_PAGES([ captoinfo clear infocmp infotocap tabs tic toe tput tset ])
879 ###############################################################################
880 CF_HELP_MESSAGE(Extensions:)
882 ### Note that some functions (such as const) are normally disabled anyway.
883 AC_MSG_CHECKING(if you want to build with function extensions)
884 AC_ARG_ENABLE(ext-funcs,
885         [  --disable-ext-funcs     disable function-extensions],
886         [with_ext_funcs=$enableval],
887         [with_ext_funcs=yes])
888 AC_MSG_RESULT($with_ext_funcs)
889 if test "$with_ext_funcs" = yes ; then
890         NCURSES_EXT_FUNCS=1
891         AC_DEFINE(HAVE_CURSES_VERSION,          [1], [HAVE_CURSES_VERSION])
892         AC_DEFINE(HAVE_HAS_KEY,                 [1], [HAVE_HAS_KEY])
893         AC_DEFINE(HAVE_RESIZETERM,              [1], [HAVE_RESIZETERM])
894         AC_DEFINE(HAVE_RESIZE_TERM,             [1], [HAVE_RESIZE_TERM])
895         AC_DEFINE(HAVE_TERM_ENTRY_H,            [1], [HAVE_TERM_ENTRY_H])
896         AC_DEFINE(HAVE_USE_DEFAULT_COLORS,      [1], [HAVE_USE_DEFAULT_COLORS])
897         AC_DEFINE(HAVE_WRESIZE,                 [1], [HAVE_WRESIZE])
898         AC_DEFINE(NCURSES_EXT_FUNCS,            [1], [NCURSES_EXT_FUNCS])
899         GENERATED_EXT_FUNCS=generated
900 else
901         NCURSES_EXT_FUNCS=0
902         GENERATED_EXT_FUNCS=
904 AC_SUBST(NCURSES_EXT_FUNCS)
905 AC_SUBST(GENERATED_EXT_FUNCS)
907 AC_MSG_CHECKING(if you want to build with experimental SCREEN extensions)
908 AC_ARG_ENABLE(sp-funcs,
909         [  --enable-sp-funcs       enable experimental SCREEN-extensions],
910         [with_sp_funcs=$enableval],
911         [with_sp_funcs=no])
912 AC_MSG_RESULT($with_sp_funcs)
913 if test "$with_sp_funcs" = yes ; then
914         NCURSES_SP_FUNCS=1
915         AC_DEFINE(NCURSES_SP_FUNCS)
916         GENERATED_SP_FUNCS=generated
917 else
918         NCURSES_SP_FUNCS=0
919         GENERATED_SP_FUNCS=
921 AC_SUBST(NCURSES_SP_FUNCS)
922 AC_SUBST(GENERATED_SP_FUNCS)
924 AC_MSG_CHECKING(if you want to build with experimental terminal-driver)
925 AC_ARG_ENABLE(term-driver,
926         [  --enable-term-driver    enable experimental terminal-driver],
927         [with_term_driver=$enableval],
928         [with_term_driver=no])
929 AC_MSG_RESULT($with_term_driver)
930 if test "$with_term_driver" = yes ; then
931         AC_DEFINE(USE_TERM_DRIVER)
932         if test "$with_sp_funcs" != yes ; then
933                 AC_MSG_ERROR(The term-driver option relies upon sp-funcs)
934         fi
937 ###   use option --enable-const to turn on use of const beyond that in XSI.
938 AC_MSG_CHECKING(for extended use of const keyword)
939 AC_ARG_ENABLE(const,
940         [  --enable-const          compile with extra/non-standard const],
941         [with_ext_const=$enableval],
942         [with_ext_const=no])
943 AC_MSG_RESULT($with_ext_const)
944 NCURSES_CONST='/*nothing*/'
945 if test "$with_ext_const" = yes ; then
946         NCURSES_CONST=const
948 AC_SUBST(NCURSES_CONST)
950 ###   use option --enable-ext-colors to turn on use of colors beyond 16.
951 AC_MSG_CHECKING(if you want to use extended colors)
952 AC_ARG_ENABLE(ext-colors,
953         [  --enable-ext-colors     compile for 256-color support],
954         [with_ext_colors=$enableval],
955         [with_ext_colors=no])
956 AC_MSG_RESULT($with_ext_colors)
957 NCURSES_EXT_COLORS=0
958 if test "$with_ext_colors" = yes ; then
959         if test "$with_widec" != yes ; then
960                 AC_MSG_ERROR(This option applies only to wide-character library)
961         else
962                 # cannot be ABI 5 since it changes sizeof(cchar_t)
963                 CF_NCURSES_ABI_6
964         fi
965         NCURSES_EXT_COLORS=1
966         AC_DEFINE(NCURSES_EXT_COLORS,[],[Define if you want extended colors])
968 AC_SUBST(NCURSES_EXT_COLORS)
970 ###   use option --enable-ext-mouse to modify coding to support 5-button mice
971 AC_MSG_CHECKING(if you want to use extended mouse encoding)
972 AC_ARG_ENABLE(ext-mouse,
973         [  --enable-ext-mouse      compile for extended mouse-encoding],
974         [with_ext_mouse=$enableval],
975         [with_ext_mouse=no])
976 AC_MSG_RESULT($with_ext_mouse)
977 NCURSES_MOUSE_VERSION=1
978 if test "$with_ext_mouse" = yes ; then
979         NCURSES_MOUSE_VERSION=2
980         CF_NCURSES_ABI_6
982 AC_SUBST(NCURSES_MOUSE_VERSION)
984 AC_MSG_CHECKING(if you want \$NCURSES_NO_PADDING code)
985 AC_ARG_ENABLE(no-padding,
986         [  --enable-no-padding     compile with $NCURSES_NO_PADDING code],
987         [with_no_padding=$enableval],
988         [with_no_padding=$with_ext_funcs])
989 AC_MSG_RESULT($with_no_padding)
990 test "$with_no_padding" = yes && AC_DEFINE(NCURSES_NO_PADDING,[],[NCURSES_NO_PADDING])
992 AC_CHECK_SIZEOF([signed char], 0)
993 if test "$ac_cv_sizeof_signed_char" = 1 ; then
994         NCURSES_SBOOL="signed char"
995 else
996         NCURSES_SBOOL="char"
998 AC_MSG_CHECKING(if you want to use signed Boolean array in term.h)
999 AC_ARG_ENABLE(signed-char,
1000         [  --enable-signed-char    compile using signed Boolean's in term.h],
1001         [with_signed_char=$enableval],
1002         [with_signed_char=no])
1003 AC_MSG_RESULT($with_signed_char)
1004 test "$with_signed_char" != yes && NCURSES_SBOOL="char"
1005 AC_SUBST(NCURSES_SBOOL)
1007 ###   use option --enable-sigwinch to turn on use of SIGWINCH logic
1008 AC_MSG_CHECKING(if you want SIGWINCH handler)
1009 AC_ARG_ENABLE(sigwinch,
1010         [  --enable-sigwinch       compile with SIGWINCH handler],
1011         [with_sigwinch=$enableval],
1012         [with_sigwinch=$with_ext_funcs])
1013 AC_MSG_RESULT($with_sigwinch)
1014 test "$with_sigwinch" = yes && AC_DEFINE(USE_SIGWINCH,[1],[USE_SIGWINCH])
1016 ###   use option --enable-tcap-names to allow user to define new capabilities
1017 AC_MSG_CHECKING(if you want user-definable terminal capabilities like termcap)
1018 AC_ARG_ENABLE(tcap-names,
1019         [  --enable-tcap-names     compile with user-definable terminal capabilities],
1020         [with_tcap_names=$enableval],
1021         [with_tcap_names=$with_ext_funcs])
1022 AC_MSG_RESULT($with_tcap_names)
1023 NCURSES_XNAMES=0
1024 test "$with_tcap_names" = yes && NCURSES_XNAMES=1
1025 AC_SUBST(NCURSES_XNAMES)
1027 ###############################################################################
1028 # These options are relatively safe to experiment with.
1029 CF_HELP_MESSAGE(Development Code:)
1030 AC_MSG_CHECKING(if you want all development code)
1031 AC_ARG_WITH(develop,
1032         [  --without-develop       disable development options],
1033         [with_develop=$withval],
1034         [with_develop=no])
1035 AC_MSG_RESULT($with_develop)
1037 ###   use option --enable-hard-tabs to turn on use of hard-tabs optimize
1038 AC_MSG_CHECKING(if you want hard-tabs code)
1039 AC_ARG_ENABLE(hard-tabs,
1040         [  --enable-hard-tabs      compile with hard-tabs code],,
1041         [enable_hard_tabs=$with_develop])
1042 AC_MSG_RESULT($enable_hard_tabs)
1043 test "$enable_hard_tabs" = yes && AC_DEFINE(USE_HARD_TABS,[],[USE_HARD_TABS])
1045 ###   use option --enable-xmc-glitch to turn on use of magic-cookie optimize
1046 AC_MSG_CHECKING(if you want limited support for xmc)
1047 AC_ARG_ENABLE(xmc-glitch,
1048         [  --enable-xmc-glitch     compile with support for xmc (magic-cookie)],,
1049         [enable_xmc_glitch=$with_develop])
1050 AC_MSG_RESULT($enable_xmc_glitch)
1051 test "$enable_xmc_glitch" = yes && AC_DEFINE(USE_XMC_SUPPORT,[],[USE_XMC_SUPPORT])
1053 ###############################################################################
1054 # These are just experimental, probably should not be in a package:
1055 CF_HELP_MESSAGE(Experimental Code:)
1057 AC_MSG_CHECKING(if you do not want to assume colors are white-on-black)
1058 AC_ARG_ENABLE(assumed-color,
1059         [  --disable-assumed-color do not assume anything about default-colors],
1060         [with_assumed_color=$enableval],
1061         [with_assumed_color=yes])
1062 AC_MSG_RESULT($with_assumed_color)
1063 test "$with_assumed_color" = yes && AC_DEFINE(USE_ASSUMED_COLOR,[],[USE_ASSUMED_COLOR])
1065 ###   use option --enable-hashmap to turn on use of hashmap scrolling logic
1066 AC_MSG_CHECKING(if you want hashmap scrolling-optimization code)
1067 AC_ARG_ENABLE(hashmap,
1068         [  --disable-hashmap       compile without hashmap scrolling-optimization],
1069         [with_hashmap=$enableval],
1070         [with_hashmap=yes])
1071 AC_MSG_RESULT($with_hashmap)
1072 test "$with_hashmap" = yes && AC_DEFINE(USE_HASHMAP,[],[USE_HASHMAP])
1074 ###   use option --enable-colorfgbg to turn on use of $COLORFGBG environment
1075 AC_MSG_CHECKING(if you want colorfgbg code)
1076 AC_ARG_ENABLE(colorfgbg,
1077         [  --enable-colorfgbg      compile-in experimental $COLORFGBG code],
1078         [with_colorfgbg=$enableval],
1079         [with_colorfgbg=no])
1080 AC_MSG_RESULT($with_colorfgbg)
1081 test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG,[],[USE_COLORFGBG])
1083 ###   use option --enable-interop to turn on use of bindings used for interop
1084 AC_MSG_CHECKING(if you want interop bindings)
1085 AC_ARG_ENABLE(interop,
1086         [  --enable-interop        compile-in experimental interop bindings],
1087         [with_exp_interop=$enableval],
1088         [with_exp_interop=no])
1089 AC_MSG_RESULT($with_exp_interop)
1091 NCURSES_INTEROP_FUNCS=0
1092 test "$with_exp_interop" = yes && NCURSES_INTEROP_FUNCS=1
1093 AC_SUBST(NCURSES_INTEROP_FUNCS)
1095 # This is still experimental (20080329), but should ultimately be moved to
1096 # the script-block --with-normal, etc.
1097 CF_WITH_PTHREAD
1099 if test "x$with_pthread" != xno; then
1100         AC_CHECK_FUNC(pthread_kill,[
1101                 AC_MSG_CHECKING(if you want to allow EINTR in wgetch with pthreads)
1102                 AC_ARG_ENABLE(pthreads-eintr,
1103                         [  --enable-pthreads-eintr enable EINTR in wgetch with pthreads],
1104                         [use_pthreads_eintr=$enableval],
1105                         [use_pthreads_eintr=no])
1106                 AC_MSG_RESULT($use_pthreads_eintr)
1107                 if test $use_pthreads_eintr = yes ; then
1108                         AC_DEFINE(USE_PTHREADS_EINTR)
1109                 fi])
1111         AC_MSG_CHECKING(if you want to use weak-symbols for pthreads)
1112         AC_ARG_ENABLE(weak-symbols,
1113                 [  --enable-weak-symbols   enable weak-symbols for pthreads],
1114                 [use_weak_symbols=$enableval],
1115                 [use_weak_symbols=no])
1116         AC_MSG_RESULT($use_weak_symbols)
1117         if test "$use_weak_symbols" = yes ; then
1118                 CF_WEAK_SYMBOLS
1119         else
1120                 cf_cv_weak_symbols=no
1121         fi
1123         if test $cf_cv_weak_symbols = yes ; then
1124                 AC_DEFINE(USE_WEAK_SYMBOLS,[1],[Define if you want to use weak-symbols for pthreads])
1125         fi
1128 PTHREAD=
1129 if test "$with_pthread" = "yes" ; then
1130     AC_DEFINE(USE_PTHREADS,[],[Define to use posix threads])
1131     enable_reentrant=yes
1132     if test $cf_cv_weak_symbols = yes ; then
1133         PTHREAD=-lpthread
1134     fi
1136 AC_SUBST(PTHREAD)
1138 # Reentrant code has to be opaque; there's little advantage to making ncurses
1139 # opaque outside of that, so there is no --enable-opaque option.  We can use
1140 # this option without --with-pthreads, but this will be always set for
1141 # pthreads.
1142 AC_MSG_CHECKING(if you want experimental reentrant code)
1143 AC_ARG_ENABLE(reentrant,
1144         [  --enable-reentrant      compile with experimental reentrant code],
1145         [with_reentrant=$enableval],
1146         [with_reentrant=no])
1147 AC_MSG_RESULT($with_reentrant)
1148 if test "$with_reentrant" = yes ; then
1149         cf_cv_enable_reentrant=1
1150         cf_cv_enable_opaque="NCURSES_INTERNALS"
1151         NCURSES_OPAQUE=1
1152         NCURSES_SIZE_T=int
1153         if test $cf_cv_weak_symbols = yes ; then
1154                 CF_REMOVE_LIB(LIBS,$LIBS,pthread)
1155                 CF_ADD_LIB(pthread,TEST_LIBS)
1156                 CF_ADD_LIB(pthread,TEST_LIBS2)
1157         else
1158                 LIB_SUFFIX="t${LIB_SUFFIX}"
1159         fi
1160         AC_DEFINE(USE_REENTRANT,[],[Define to compile with experimental reentrant code])
1161         CF_NCURSES_ABI_6
1162 else
1163         cf_cv_enable_reentrant=0
1164         cf_cv_enable_opaque="NCURSES_OPAQUE"
1165         NCURSES_OPAQUE=0
1166         NCURSES_SIZE_T=short
1168 AC_SUBST(cf_cv_enable_reentrant)
1169 AC_SUBST(cf_cv_enable_opaque)
1170 AC_SUBST(NCURSES_OPAQUE)
1171 AC_SUBST(NCURSES_SIZE_T)
1173 ### Allow using a different wrap-prefix
1174 if test "$cf_cv_enable_reentrant" != 0 || test "$BROKEN_LINKER" = 1 ; then
1175         AC_MSG_CHECKING(for prefix used to wrap public variables)
1176         AC_ARG_WITH(wrap-prefix,
1177                 [  --with-wrap-prefix=XXX  override prefix used for public variables],
1178                 [NCURSES_WRAP_PREFIX=$withval],
1179                 [NCURSES_WRAP_PREFIX=_nc_])
1180         AC_MSG_RESULT($NCURSES_WRAP_PREFIX)
1181 else
1182         NCURSES_WRAP_PREFIX=_nc_
1184 AC_SUBST(NCURSES_WRAP_PREFIX)
1185 AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX")
1187 AC_MSG_CHECKING(if you want experimental safe-sprintf code)
1188 AC_ARG_ENABLE(safe-sprintf,
1189         [  --enable-safe-sprintf   compile with experimental safe-sprintf code],
1190         [with_safe_sprintf=$enableval],
1191         [with_safe_sprintf=no])
1192 AC_MSG_RESULT($with_safe_sprintf)
1193 test "$with_safe_sprintf" = yes && AC_DEFINE(USE_SAFE_SPRINTF,[],[USE_SAFE_SPRINTF])
1195 ###   use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
1196 # when hashmap is used scroll hints are useless
1197 if test "$with_hashmap" = no ; then
1198 AC_MSG_CHECKING(if you want to experiment without scrolling-hints code)
1199 AC_ARG_ENABLE(scroll-hints,
1200         [  --disable-scroll-hints  compile without scroll-hints code],
1201         [with_scroll_hints=$enableval],
1202         [with_scroll_hints=yes])
1203 AC_MSG_RESULT($with_scroll_hints)
1204 test "$with_scroll_hints" = yes && AC_DEFINE(USE_SCROLL_HINTS,[],[USE_SCROLL_HINTS])
1207 AC_MSG_CHECKING(if you want experimental wgetch-events code)
1208 AC_ARG_ENABLE(wgetch-events,
1209         [  --enable-wgetch-events  compile with experimental wgetch-events code],
1210         [with_wgetch_events=$enableval],
1211         [with_wgetch_events=no])
1212 AC_MSG_RESULT($with_wgetch_events)
1213 test "$with_wgetch_events" = yes && AC_DEFINE(NCURSES_WGETCH_EVENTS,[],[NCURSES_WGETCH_EVENTS])
1215 ###############################################################################
1216 CF_HELP_MESSAGE(Testing/development Options:)
1218 ###     use option --disable-echo to suppress full display compiling commands
1219 AC_MSG_CHECKING(if you want to display full commands during build)
1220 AC_ARG_ENABLE(echo,
1221         [  --enable-echo           build: display "compiling" commands (default)],
1222         [with_echo=$enableval],
1223         [with_echo=yes])
1224 if test "$with_echo" = yes; then
1225         ECHO_LINK=
1226 else
1227         ECHO_LINK='@ echo linking $@ ... ;'
1228         test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
1229         test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent"
1231 AC_MSG_RESULT($with_echo)
1232 AC_SUBST(ECHO_LINK)
1234 ###     use option --enable-warnings to turn on all gcc warnings
1235 AC_MSG_CHECKING(if you want to see compiler warnings)
1236 AC_ARG_ENABLE(warnings,
1237         [  --enable-warnings       build: turn on GCC compiler warnings],
1238         [with_warnings=$enableval])
1239 AC_MSG_RESULT($with_warnings)
1241 if test "x$with_warnings" = "xyes"; then
1242         CF_ADD_ADAFLAGS(-gnatg)
1243         CF_GCC_WARNINGS(Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum)
1244         if test "$cf_with_cxx" = yes ; then
1245                 CF_GXX_WARNINGS(Wno-unused)
1246         fi
1248 CF_GCC_ATTRIBUTES
1250 ###     use option --enable-assertions to turn on generation of assertion code
1251 AC_MSG_CHECKING(if you want to enable runtime assertions)
1252 AC_ARG_ENABLE(assertions,
1253         [  --enable-assertions     test: turn on generation of assertion code],
1254         [with_assertions=$enableval],
1255         [with_assertions=no])
1256 AC_MSG_RESULT($with_assertions)
1257 if test -n "$GCC"
1258 then
1259         if test "$with_assertions" = no
1260         then
1261                 AC_DEFINE(NDEBUG,[],[NDEBUG])
1262 #               CPPFLAGS="$CPPFLAGS -DNDEBUG"
1263         else
1264                 CF_ADD_ADAFLAGS(-gnata)
1265         fi
1268 ###     use option --disable-leaks to suppress "permanent" leaks, for testing
1269 CF_DISABLE_LEAKS
1270 AC_DEFINE(HAVE_NC_ALLOC_H,[1],[HAVE_NC_ALLOC_H])
1272 ###     use option --enable-expanded to generate certain macros as functions
1273 AC_ARG_ENABLE(expanded,
1274         [  --enable-expanded       test: generate functions for certain macros],
1275         [test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED,[],[NCURSES_EXPANDED])])
1277 ###     use option --disable-macros to suppress macros in favor of functions
1278 AC_ARG_ENABLE(macros,
1279         [  --disable-macros        test: use functions rather than macros],
1280         [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS,[],[NCURSES_NOMACROS])])
1282 # Normally we only add trace() to the debug-library.  Allow this to be
1283 # extended to all models of the ncurses library:
1284 cf_all_traces=no
1285 case "$CFLAGS $CPPFLAGS" in
1286 *-DTRACE*)
1287         cf_all_traces=yes
1288         ;;
1289 esac
1291 AC_MSG_CHECKING(whether to add trace feature to all models)
1292 AC_ARG_WITH(trace,
1293 [  --with-trace            test: add trace() function to all models of ncurses],
1294 [cf_with_trace=$withval],
1295 [cf_with_trace=$cf_all_traces])
1296 AC_MSG_RESULT($cf_with_trace)
1298 if test "$cf_with_trace" = yes ; then
1299         LIB_TRACING=all
1300         ADA_TRACE=TRUE
1301         CF_ADD_CFLAGS(-DTRACE)
1302 else
1303         LIB_TRACING=DEBUG
1304         ADA_TRACE=FALSE
1307 AC_SUBST(ADA_TRACE)
1309 ###     Checks for libraries.
1310 case $cf_cv_system_name in #(vi
1311 *mingw32*) #(vi
1312         ;;
1314 AC_CHECK_FUNC(gettimeofday,
1315         AC_DEFINE(HAVE_GETTIMEOFDAY,[],[HAVE_GETTIMEOFDAY]),[
1317 AC_CHECK_LIB(bsd, gettimeofday,
1318         AC_DEFINE(HAVE_GETTIMEOFDAY,[],[HAVE_GETTIMEOFDAY])
1319         CF_ADD_LIB(bsd))])dnl CLIX: bzero, select, gettimeofday
1320         ;;
1321 esac
1323 CF_MATH_LIB(MATH_LIB,sin(x))
1324 AC_SUBST(MATH_LIB)
1326 ###     Checks for header files.
1327 AC_STDC_HEADERS
1328 AC_HEADER_DIRENT
1329 AC_HEADER_TIME
1330 CF_REGEX
1332 dnl These are some other potentially nonportable headers.
1333 AC_CHECK_HEADERS( \
1334 fcntl.h \
1335 getopt.h \
1336 limits.h \
1337 locale.h \
1338 poll.h \
1339 sys/bsdtypes.h \
1340 sys/ioctl.h \
1341 sys/param.h \
1342 sys/poll.h \
1343 sys/select.h \
1344 sys/time.h \
1345 sys/times.h \
1346 ttyent.h \
1347 unistd.h \
1348 wctype.h \
1351 # check for ISC (this may also define _POSIX_SOURCE)
1352 # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
1353 if test "$ISC" = yes ; then
1354         AC_CHECK_LIB(cposix,main)
1355         AC_CHECK_LIB(inet,bzero,CF_ADD_LIB(inet))dnl also 'select()'
1358 CF_SYS_TIME_SELECT
1360 ###     checks for compiler characteristics
1361 AC_LANG_C
1362 AC_C_CONST
1363 CF_C_INLINE(NCURSES_INLINE,1200)
1364 CF_SIG_ATOMIC_T
1366 if test $NCURSES_CHTYPE = auto ; then
1367         CF_TYPEOF_CHTYPE
1368 else
1369         cf_cv_typeof_chtype=$NCURSES_CHTYPE
1371 test "$cf_cv_typeof_chtype" = unsigned && cf_cv_typeof_chtype=""
1372 AC_SUBST(cf_cv_typeof_chtype)
1374 CF_UNSIGNED_LITERALS
1375 cf_cv_1UL="1"
1376 test ".$cf_cv_unsigned_literals" = .yes && cf_cv_1UL="${cf_cv_1UL}U"
1377 test ".$cf_cv_typeof_chtype"    = .long && cf_cv_1UL="${cf_cv_1UL}L"
1378 AC_SUBST(cf_cv_1UL)
1380 if test $NCURSES_MMASK_T = auto ; then
1381         cf_cv_typeof_mmask_t=long
1382 else
1383         cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
1385 test "$cf_cv_typeof_mmask_t" = unsigned && cf_cv_typeof_mmask_t=""
1386 AC_SUBST(cf_cv_typeof_mmask_t)
1388 ###     Checks for external-data
1389 CF_ERRNO
1390 CF_LINK_DATAONLY
1392 ###     Checks for library functions.
1393 AC_CHECK_FUNCS( \
1394 getcwd \
1395 getegid \
1396 geteuid \
1397 getttynam \
1398 issetugid \
1399 poll \
1400 remove \
1401 select \
1402 setbuf \
1403 setbuffer \
1404 setvbuf \
1405 sigaction \
1406 sigvec \
1407 strdup \
1408 strstr \
1409 tcgetpgrp \
1410 times \
1411 vsnprintf \
1413 if test "$with_getcap" = "yes" ; then
1414         CF_CGETENT
1417 CF_ISASCII
1418 CF_STRUCT_SIGACTION
1419 CF_FUNC_NANOSLEEP
1420 CF_FUNC_TERMIOS
1421 CF_FUNC_VSSCANF
1422 CF_MKSTEMP
1424 AC_SUBST(cross_compiling)
1426 # setup for prototype of fallback for vsscanf()
1427 CF_SUBST_IF(["$cf_cv_func_vsscanf" = vsscanf], HAVE_VSSCANF, 1, 0)
1429 dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS
1430 if test "$cross_compiling" = yes ; then
1431         AC_MSG_WARN(cross compiling: assume setvbuf params not reversed)
1432 else
1433         AC_FUNC_SETVBUF_REVERSED
1435 AC_TYPE_SIGNAL
1436 CF_TYPE_SIGACTION
1437 CF_SIZECHANGE
1438 CF_FUNC_MEMMOVE
1439 CF_FUNC_POLL
1440 CF_VA_COPY
1441 AC_FUNC_VFORK
1443 # special check for test/ditto.c
1444 CF_FUNC_OPENPTY
1445 if test "$cf_cv_func_openpty" != no ; then
1446     AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>,[USE_OPENPTY_HEADER])
1447     AC_DEFINE(USE_XTERM_PTY,[],[USE_XTERM_PTY])
1448     if test "$cf_cv_lib_util" = yes ; then
1449         CF_ADD_LIB(util,TEST_LIBS)
1450     fi
1452 AC_SUBST(TEST_LIBS)
1453 AC_SUBST(TEST_LIBS2)
1455 if test "$with_hashed_db" != no ; then
1456         AC_DEFINE(USE_HASHED_DB,[],[USE_HASHED_DB])
1457         CF_HASHED_DB($with_hashed_db)
1460 dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS
1461 if test -z "$cf_user_CFLAGS" && test "$with_no_leaks" = no ; then
1462         CF_STRIP_G_OPT(CFLAGS)
1463         CF_STRIP_G_OPT(CXXFLAGS)
1466 # Just in case, check if the C compiler has a bool type.
1467 CF_BOOL_DECL(cf_cv_cc_bool_type)
1469 # Check for C++ compiler characteristics (and ensure that it's there!)
1470 if test -n "$CXX" ; then
1471         AC_LANG_CPLUSPLUS
1472         CF_STDCPP_LIBRARY
1473         CF_PROG_CC_C_O(CXX)
1475         case $GXX_VERSION in
1476         1*|2.[0-6]*)
1477                 cf_cxx_library=yes
1478                 ;;
1479         *-2.7*|2.7*)
1480                 CF_GPP_LIBRARY
1481                 ;;
1482         *)
1483                 cf_cxx_library=no
1484                 ;;
1485         esac
1487         AC_CHECK_HEADERS(iostream typeinfo)
1489     if test x"$ac_cv_header_iostream" = xyes ; then
1490         AC_MSG_CHECKING(if iostream uses std-namespace)
1491         AC_TRY_COMPILE([
1492 #include <iostream>
1493 using std::endl;
1494 using std::cerr;],[
1495 cerr << "testing" << endl;
1496 ],[cf_iostream_namespace=yes],[cf_iostream_namespace=no])
1497         AC_MSG_RESULT($cf_iostream_namespace)
1498         if test "$cf_iostream_namespace" = yes ; then
1499             AC_DEFINE(IOSTREAM_NAMESPACE,[],[Define if iostream uses std-namespace])
1500         fi
1501     fi
1503         CF_BOOL_DECL
1504         CF_BOOL_SIZE
1505         CF_ETIP_DEFINES
1506         CF_CPP_PARAM_INIT
1507         CF_CPP_STATIC_CAST
1509         CXX_AR='$(AR)'
1510         CXX_ARFLAGS='$(ARFLAGS)'
1511         case $cf_cv_system_name in #(vi
1512         irix*) #(vi
1513             if test "$GXX" != yes ; then
1514                 CXX_AR='$(CXX)'
1515                 CXX_ARFLAGS='-ar -o'
1516             fi
1517             ;;
1518         sco3.2v5*) #(vi
1519             CXXLDFLAGS="-u main"
1520             ;;
1521         solaris2*)
1522             if test "$GXX" != yes ; then
1523                 CXX_AR='$(CXX)'
1524                 CXX_ARFLAGS='-xar -o'
1525             fi
1526             ;;
1527         esac
1528         AC_SUBST(CXXLDFLAGS)
1529         AC_SUBST(CXX_AR)
1530         AC_SUBST(CXX_ARFLAGS)
1531 else
1532         cf_cxx_library=no
1533         cf_cv_builtin_bool=1
1535         # Just because we are not configuring against C++ right now does not
1536         # mean that a user will not want to use C++.  Some distributors disable
1537         # the C++ portion of this configuration as a shortcut (or just to avoid
1538         # compiling the demo in the c++ directory).  So we need a reasonable
1539         # default for the 'bool' type.
1540         #
1541         # Caveat: since the storage of the bool type is not standardized, it
1542         # may change.
1544         if test "$NCURSES_BOOL" != auto ; then
1545                 cf_cv_type_of_bool=$NCURSES_BOOL
1546                 cf_cv_header_stdbool_h=0
1547         else
1548                 if test "$cf_cv_header_stdbool_h" = 1 ; then
1549                         CF_BOOL_SIZE
1550                 else
1551                         AC_MSG_CHECKING(for fallback type of bool)
1552                         case "$host_cpu" in #(vi
1553                         i?86)   cf_cv_type_of_bool=char ;; #(vi
1554                         *)      cf_cv_type_of_bool=int  ;;
1555                         esac
1556                         AC_MSG_RESULT($cf_cv_type_of_bool)
1557                 fi
1558         fi
1560 AC_SUBST(CXXLIBS)
1562 # If the C compiler did not declare bool, and we did not determine that the C++
1563 # compiler does not declare bool, turn on an ifdef in curses.h that makes the
1564 # ncurses library use the same type as C++ bool.  Note that this allows one to
1565 # specify the type of bool in a configure-script option and postpone
1566 # integration with the C++ compiler provided that the types are compatible.
1567 USE_CXX_BOOL=1
1568 if test $cf_cv_cc_bool_type = 1
1569 then
1570         # oops: C has a bool.  Unlikely, but C++ could differ.
1571         USE_CXX_BOOL=0
1572 elif test $cf_cv_builtin_bool = 0
1573 then
1574         # C++ has no bool
1575         USE_CXX_BOOL=0
1576 else
1577         # this is the normal case
1578         USE_CXX_BOOL='defined(__cplusplus)'
1580 AC_SUBST(USE_CXX_BOOL)
1582 CF_HELP_MESSAGE(Ada95 Binding Options:)
1584 dnl If the Ada95 source-tree is present, add that to the build unless it will
1585 dnl not work, or was not requested.
1586 if test -f "${srcdir}/Ada95/Makefile.in" ; then
1588 dnl libtool does not know anything about GNAT, though a change made in 1998
1589 dnl provided for it "someday".  Disable the ada subtree if we are using
1590 dnl libtool -TD 20070714
1591         if test "$cf_with_ada" != "no" ; then
1592                 if test "$with_libtool" != "no"; then
1593                         AC_MSG_WARN(libtool does not support Ada - disabling feature)
1594                         cf_with_ada=no
1595                 fi
1596         fi
1598 dnl Check for availability of GNU Ada Translator (GNAT).
1599 dnl At the moment we support no other Ada95 compiler.
1600         if test "$cf_with_ada" != "no" ; then
1601                 CF_PROG_GNAT
1602                 if test "$cf_cv_prog_gnat_correct" = yes; then
1603                         CF_ADD_ADAFLAGS(-O3 -gnatpn)
1605                         CF_GNAT_PRAGMA_UNREF
1607                         CF_WITH_ADA_COMPILER
1609                         cf_ada_package=terminal_interface
1610                         AC_SUBST(cf_ada_package)
1612                         CF_WITH_ADA_INCLUDE
1613                         CF_WITH_ADA_OBJECTS
1614                         CF_WITH_ADA_SHAREDLIB
1615                 fi
1616         fi
1617 else
1618         cf_with_ada=no
1621 ### Construct the ncurses library-subsets, if any, from this set of keywords:
1622 ###     none, base, ext_funcs, ext_tinfo, ticlib, termlib, widechar
1624 ### ticlib modules may be a separate library, otherwise contained in termlib.
1625 ### termlib modules may be a separate library, otherwise contained in ncurses.
1627 ### The of "+" or " " between the tokens controls the way the script
1628 ### chooses to split module lists into libraries.
1630 ### (see CF_LIB_RULES).
1631 AC_MSG_CHECKING(for library subsets)
1632 LIB_SUBSETS=
1634 if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then
1635         LIB_SUBSETS="${LIB_SUBSETS}ticlib"
1636         if test "$with_ticlib" != no ; then
1637                 LIB_SUBSETS="${LIB_SUBSETS} "
1638         else
1639                 LIB_SUBSETS="${LIB_SUBSETS}+"
1640         fi
1643 LIB_SUBSETS="${LIB_SUBSETS}termlib"
1644 test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
1646 if test "$with_termlib" != no ; then
1647         LIB_SUBSETS="${LIB_SUBSETS} "
1648 else
1649         LIB_SUBSETS="${LIB_SUBSETS}+"
1652 LIB_SUBSETS="${LIB_SUBSETS}base"
1654 # Most term-driver calls are to tinfo, but some like init_pair are to the
1655 # base library (so it resides in base).
1656 if test "$with_term_driver" != no ; then
1657         LIB_SUBSETS="${LIB_SUBSETS}+port_drivers"
1658         case $cf_cv_system_name in #(vi
1659         *mingw32*) #(vi
1660                 LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo+port_win32con"
1661                 ;;
1662         *) #(vi
1663                 LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo"
1664                 ;;
1665         esac
1668 test "$with_widec"     = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
1669 test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
1671 AC_MSG_RESULT($LIB_SUBSETS)
1673 ### Construct the list of include-directories to be generated
1674 CF_INCLUDE_DIRS
1675 CF_ADA_INCLUDE_DIRS
1677 ### Build up pieces for makefile rules
1678 AC_MSG_CHECKING(default library suffix)
1679 CF_LIB_TYPE($DFT_LWR_MODEL,DFT_ARG_SUFFIX)dnl
1680 AC_SUBST(DFT_ARG_SUFFIX)dnl the string to append to "-lncurses" ("")
1681 AC_MSG_RESULT($DFT_ARG_SUFFIX)
1683 AC_MSG_CHECKING(default library-dependency suffix)
1684 CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_LIB_SUFFIX,DFT_DEP_SUFFIX)dnl
1685 AC_SUBST(DFT_DEP_SUFFIX)dnl the corresponding library-suffix (".a")
1686 AC_MSG_RESULT($DFT_DEP_SUFFIX)
1688 AC_MSG_CHECKING(default object directory)
1689 CF_OBJ_SUBDIR($DFT_LWR_MODEL,DFT_OBJ_SUBDIR)dnl
1690 AC_SUBST(DFT_OBJ_SUBDIR)dnl the default object-directory ("obj")
1691 AC_MSG_RESULT($DFT_OBJ_SUBDIR)
1693 # libtool thinks it can make c++ shared libraries (perhaps only g++)
1694 if test "$cf_with_cxx" = yes ; then
1695 AC_MSG_CHECKING(c++ library-dependency suffix)
1696 if test "$with_libtool" != "no"; then
1697         CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
1698 else
1699         CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX,CXX_DEP_SUFFIX)dnl we normally make a static library
1701 AC_MSG_RESULT($CXX_LIB_SUFFIX)
1702 AC_SUBST(CXX_LIB_SUFFIX)
1705 # do not want -ldl in build except as needed for -lncurses dependency
1706 if test "$with_dlsym" = yes ; then
1707 if test $DFT_LWR_MODEL = shared || \
1708    test $DFT_LWR_MODEL = libtool ; then
1709         CF_REMOVE_LIB(LIBS,$LIBS,dl)
1712 ### Set up low-level terminfo dependencies for makefiles.
1714 # TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but
1715 # do not need libdl
1716 TICS_LIST=
1717 if test "$with_dlsym" = yes ; then
1718         CF_REMOVE_LIB(TINFO_LIST,$SHLIB_LIST,dl)
1721 if test "$with_ticlib" != no ; then
1723         if test "$with_ticlib" != yes ; then
1724                 TICS_NAME=$with_ticlib
1725                 TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
1726                 TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
1727                 TICS_LIB_SUFFIX="${with_ticlib}"
1728         else
1729                 TICS_ARG_SUFFIX="${TICS_NAME}${DFT_ARG_SUFFIX}"
1730                 TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}"
1731                 TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}"
1732         fi
1733         TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}"
1734 else
1735         TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
1737 AC_SUBST(TICS_ARG_SUFFIX)
1738 AC_SUBST(TICS_DEP_SUFFIX)
1739 AC_SUBST(TICS_LIB_SUFFIX)
1740 AC_SUBST(TICS_ARGS)
1742 if test "$with_termlib" != no ; then
1744         if test "$with_termlib" != yes ; then
1745                 TINFO_NAME=$with_termlib
1746                 TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
1747                 TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
1748                 TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
1749                 TINFO_LIB_SUFFIX="${with_termlib}"
1750         else
1751                 TINFO_SUFFIX=${DFT_LIB_SUFFIX}
1752                 TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}"
1753                 TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
1754                 TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}"
1755         fi
1757         TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
1758         TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
1759         if test "$DFT_LWR_MODEL" = "libtool"; then
1760                 TEST_ARGS="${TEST_DEPS}"
1761                 TEST_ARG2="${TEST_DEP2}"
1762                 TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
1763                 TICS_LIST="$SHLIB_LIST $TEST_ARGS"
1764                 SHLIB_LIST="${SHLIB_LIST} $TEST_ARGS"
1765         else
1766                 TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
1767                 TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
1768                 TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
1769                 TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
1770                 SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
1771         fi
1772 else
1773         # the next lines are needed for linking libtic over libncurses
1774         TINFO_NAME=${LIB_NAME}
1775         TINFO_SUFFIX=${DFT_LIB_SUFFIX}
1776         TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX}
1777         if test "$with_tic_depends" = yes ; then
1778                 TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
1779         else
1780                 TICS_LIST="$SHLIB_LIST"
1781         fi
1783         TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
1786 if test "$DFT_LWR_MODEL" = shared ; then
1787         case $cf_cv_system_name in #(vi
1788         cygwin*)
1789                 # "lib" files have ".dll.a" suffix, "cyg" files have ".dll"
1790                 TINFO_SUFFIX=.dll
1791                 ;;
1792         esac
1795 AC_SUBST(TINFO_ARG_SUFFIX)
1796 AC_SUBST(TINFO_DEP_SUFFIX)
1797 AC_SUBST(TINFO_LIB_SUFFIX)
1798 AC_SUBST(TINFO_ARGS)
1800 if test "$with_dlsym" = yes ; then
1801         CF_REMOVE_LIB(TICS_LIST,$TICS_LIST,dl)
1804 if test "$DFT_LWR_MODEL" = "libtool"; then
1805     OBJEXT=lo
1808 # needed for Ada95
1809 TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
1810 AC_SUBST(TINFO_ARGS2)
1812 case $DFT_LWR_MODEL in
1813 normal|debug|profile)
1814         CF_LDFLAGS_STATIC
1815         ;;
1816 esac
1818 AC_MSG_CHECKING(where we will install curses.h)
1819 test "$with_overwrite" = no && \
1820 test "x$includedir" = 'x${prefix}/include' && \
1821         includedir='${prefix}/include/ncurses'${LIB_SUFFIX}
1822 AC_MSG_RESULT($includedir)
1824 ### Resolve a conflict between normal and wide-curses by forcing applications
1825 ### that will need libutf8 to add it to their configure script.
1826 if test "$with_overwrite" != no ; then
1827 if test "$NCURSES_LIBUTF8" = 1 ; then
1828         NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)'
1829         AC_MSG_WARN(Wide-character applications must define HAVE_LIBUTF8_H to include curses.h)
1832 WITH_OVERWRITE=$with_overwrite
1834 AC_SUBST(WITH_OVERWRITE)
1835 AC_SUBST(TICS_LIST)
1836 AC_SUBST(TINFO_LIST)
1837 AC_SUBST(SHLIB_LIST)
1839 # used to separate tack out of the tree
1840 NCURSES_TREE=
1841 AC_SUBST(NCURSES_TREE)
1843 ### predefined stuff for the test programs
1844 AC_DEFINE(HAVE_SLK_COLOR,[],[HAVE_SLK_COLOR])
1846 ### Construct the list of subdirectories for which we'll customize makefiles
1847 ### with the appropriate compile-rules.
1849 CF_SRC_MODULES($modules_to_build)
1851 if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then
1852    SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses${DFT_ARG_SUFFIX}-config:Ada95/gen/adacurses-config.in"
1853    SUB_MAKEFILES="$SUB_MAKEFILES man/adacurses${DFT_ARG_SUFFIX}-config.1:man/MKada_config.in"
1856 CF_DIRS_TO_MAKE
1858 # symbols that differ when compiling Ada95 by itself.
1859 NCURSES_SHLIB2='sh $(top_srcdir)/misc/shlib'
1860 AC_SUBST(NCURSES_SHLIB2)
1862 # values to use as strings
1863 AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR',[path separator])
1865 AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}",[ncurses version string])
1867 ### Now that we're done running tests, add the compiler-warnings, if any
1868 CF_ADD_CFLAGS($EXTRA_CFLAGS)
1870 ### Define substitutions for header files to avoid name-pollution
1871 CF_SUBST_IF(["$cf_cv_have_tcgetattr" = yes], HAVE_TCGETATTR, 1, 0)
1872 CF_SUBST_IF(["$ac_cv_header_termio_h" = yes], HAVE_TERMIO_H, 1, 0)
1873 CF_SUBST_IF(["$ac_cv_header_termios_h" = yes], HAVE_TERMIOS_H, 1, 0)
1875 ################################################################################
1876 test "$use_database" = yes && \
1877 SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
1879 SUB_MAKEFILES="$SUB_MAKEFILES misc/ncurses-config:misc/ncurses-config.in"
1880 SUB_MAKEFILES="$SUB_MAKEFILES man/ncurses${DFT_ARG_SUFFIX}${cf_cv_abi_version}-config.1:man/MKncu_config.in"
1882 if test x"$enable_pc_files" = xyes ; then \
1883 SUB_MAKEFILES="$SUB_MAKEFILES misc/gen-pkgconfig:misc/gen-pkgconfig.in"
1884 MAKE_PC_FILES=
1885 else
1886 MAKE_PC_FILES="#"
1888 AC_SUBST(MAKE_PC_FILES)
1889 AC_SUBST(cross_compiling)
1891 AC_PATH_PROG(TIC_PATH,tic,unknown,$PATH:/usr/local/ncurses/bin)
1892 if test -n "$FALLBACK_LIST"
1893 then
1894         if test "$TIC_PATH" = unknown
1895         then
1896                 AC_MSG_WARN(no tic program found for fallbacks)
1897         fi
1899 AC_SUBST(TIC_PATH)
1901 if test "x$cf_with_tests" != xno ; then
1902         MAKE_TESTS=
1903 else
1904         MAKE_TESTS="#"
1906 AC_SUBST(MAKE_TESTS)
1908 SUB_SCRIPTS=
1909 case $cf_cv_system_name in #(vi
1910 *mingw32*) #(vi
1911         SUB_SCRIPTS="mk-dlls.sh"
1912         ;;
1913 esac
1915 AC_OUTPUT( \
1916         include/ncurses_cfg.h \
1917         include/MKterm.h.awk \
1918         include/curses.head:include/curses.h.in \
1919         include/ncurses_dll.h \
1920         include/termcap.h \
1921         include/unctrl.h \
1922         $SUB_SCRIPTS \
1923         $SUB_MAKEFILES \
1924         libncurses.pc \
1925         libpanel.pc \
1926         libmenu.pc \
1927         libform.pc \
1928         Makefile,[
1929 if test "x$cf_with_tests" != xno ; then
1930         CF_PRG_RULES([$srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LINK"], test)
1932 CF_LIB_RULES($SRC_SUBDIRS)
1934 if test "x$cf_with_ada" != xno ; then
1935 if test -z "$USE_OLD_MAKERULES" ; then
1936         $AWK -f $srcdir/Ada95/mk-1st.awk <$srcdir/Ada95/src/modules >>Ada95/src/Makefile
1940 ### Special initialization commands, used to pass information from the
1941 ### configuration-run into config.status
1943 AWK="$AWK"
1944 DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
1945 DFT_LWR_MODEL="$DFT_LWR_MODEL"
1946 ECHO_LINK="$ECHO_LINK"
1947 LDCONFIG="$LDCONFIG"
1948 LIBTOOL_VERSION="$LIBTOOL_VERSION"
1949 LIB_NAME="$LIB_NAME"
1950 LIB_SUBSETS="$LIB_SUBSETS"
1951 LIB_SUFFIX="$LIB_SUFFIX"
1952 LIB_TRACING="$LIB_TRACING"
1953 LN_S="$LN_S"
1954 MAKE_TERMINFO="$MAKE_TERMINFO"
1955 NCURSES_MAJOR="$NCURSES_MAJOR"
1956 NCURSES_MINOR="$NCURSES_MINOR"
1957 NCURSES_OSPEED="$NCURSES_OSPEED"
1958 NCURSES_PATCH="$NCURSES_PATCH"
1959 SRC_SUBDIRS="$SRC_SUBDIRS"
1960 TERMINFO="$TERMINFO"
1961 TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX"
1962 TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX"
1963 TICS_NAME="$TICS_NAME"
1964 TIC_PATH="$TIC_PATH"
1965 TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
1966 TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
1967 TINFO_NAME="$TINFO_NAME"
1968 TINFO_SUFFIX="$TINFO_SUFFIX"
1969 USE_OLD_MAKERULES="$USE_OLD_MAKERULES"
1970 WITH_CURSES_H="$with_curses_h"
1971 WITH_ECHO="$with_echo"
1972 WITH_OVERWRITE="$with_overwrite"
1973 cf_LIST_MODELS="$cf_list_models"
1974 cf_cv_abi_version="$cf_cv_abi_version"
1975 cf_cv_do_relink="$cf_cv_do_relink"
1976 cf_cv_do_symlinks="$cf_cv_do_symlinks"
1977 cf_cv_enable_lp64="$cf_cv_enable_lp64"
1978 cf_cv_enable_opaque="$cf_cv_enable_opaque"
1979 cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
1980 cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
1981 cf_cv_rel_version="$cf_cv_rel_version"
1982 cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
1983 cf_cv_shared_soname='$cf_cv_shared_soname'
1984 cf_cv_shlib_version="$cf_cv_shlib_version"
1985 cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix"
1986 cf_cv_system_name="$cf_cv_system_name"
1987 cf_with_ada="$cf_with_ada"
1988 cf_with_cxx_binding="$cf_with_cxx_binding"
1989 cf_with_manpages="$cf_with_manpages"
1990 cf_with_tests="$cf_with_tests"
1991 host="$host"
1992 target="$target"
1994 ],cat)dnl
1995 ${MAKE:-make} preinstall