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