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