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