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