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