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