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