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