xref: /freebsd/contrib/ncurses/configure.in (revision 282a3889ebf826db9839be296ff1dd903f6d6d6e)
1dnl***************************************************************************
2dnl Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
3dnl                                                                          *
4dnl Permission is hereby granted, free of charge, to any person obtaining a  *
5dnl copy of this software and associated documentation files (the            *
6dnl "Software"), to deal in the Software without restriction, including      *
7dnl without limitation the rights to use, copy, modify, merge, publish,      *
8dnl distribute, distribute with modifications, sublicense, and/or sell       *
9dnl copies of the Software, and to permit persons to whom the Software is    *
10dnl furnished to do so, subject to the following conditions:                 *
11dnl                                                                          *
12dnl The above copyright notice and this permission notice shall be included  *
13dnl in all copies or substantial portions of the Software.                   *
14dnl                                                                          *
15dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
16dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
17dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
18dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
19dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
20dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
21dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
22dnl                                                                          *
23dnl Except as contained in this notice, the name(s) of the above copyright   *
24dnl holders shall not be used in advertising or otherwise to promote the     *
25dnl sale, use or other dealings in this Software without prior written       *
26dnl authorization.                                                           *
27dnl***************************************************************************
28dnl
29dnl Author: Thomas E. Dickey 1995-on
30dnl
31dnl $Id: configure.in,v 1.383 2006/12/17 01:26:06 tom Exp $
32dnl Process this file with autoconf to produce a configure script.
33dnl
34dnl See http://invisible-island.net/autoconf/ for additional information.
35dnl
36dnl ---------------------------------------------------------------------------
37AC_PREREQ(2.13.20020210)
38AC_REVISION($Revision: 1.383 $)
39AC_INIT(ncurses/base/lib_initscr.c)
40AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
41
42CF_TOP_BUILDDIR
43CF_SUBST_NCURSES_VERSION
44
45CF_WITH_REL_VERSION(NCURSES)
46CF_WITH_ABI_VERSION
47
48CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
49AC_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.
55cf_user_CFLAGS="$CFLAGS"
56
57###	Default install-location
58CF_CFG_DEFAULTS
59
60###	Checks for programs.
61AC_PROG_CC
62CF_GCC_VERSION
63
64AC_PROG_CPP
65AC_PROG_GCC_TRADITIONAL
66CF_PROG_CC_C_O(CC)
67AC_ISC_POSIX
68CF_ANSI_CC_REQD
69CF_PROG_EXT
70CF_PROG_LDCONFIG
71
72dnl DEFECT in autoconf 2.12:	an attempt to set policy, this breaks the
73dnl				configure script by not letting us test if C++
74dnl				is present, making this option necessary.
75AC_MSG_CHECKING(if you want to ensure bool is consistent with C++)
76AC_ARG_WITH(cxx,
77	[  --without-cxx           do not adjust ncurses bool to match C++],
78	[cf_with_cxx=$withval],
79	[cf_with_cxx=yes])
80AC_MSG_RESULT($cf_with_cxx)
81if test "X$cf_with_cxx" = Xno ; then
82	CXX=""
83	GXX=""
84else
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
100fi
101
102CF_GXX_VERSION
103case $GXX_VERSION in
1041*|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	;;
109esac
110
111AC_MSG_CHECKING(if you want to build C++ binding and demo)
112AC_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])
116AC_MSG_RESULT($cf_with_cxx_binding)
117
118AC_MSG_CHECKING(if you want to build with Ada95)
119AC_ARG_WITH(ada,
120	[  --without-ada           suppress check for Ada95, don't build demo],
121	[cf_with_ada=$withval],
122	[cf_with_ada=yes])
123AC_MSG_RESULT($cf_with_ada)
124
125AC_MSG_CHECKING(if you want to build programs such as tic)
126AC_ARG_WITH(progs,
127	[  --without-progs         suppress build with programs (e.g., tic)],
128	[cf_with_progs=$withval],
129	[cf_with_progs=yes])
130AC_MSG_RESULT($cf_with_progs)
131
132AC_MSG_CHECKING(if you wish to install curses.h)
133AC_ARG_WITH(curses-h,
134	[  --without-curses-h      install curses.h as ncurses.h only],
135	[with_curses_h=$withval],
136	[with_curses_h=yes])
137AC_MSG_RESULT($with_curses_h)
138
139modules_to_build="ncurses"
140if test "X$cf_with_progs" != Xno ; then
141modules_to_build="$modules_to_build progs tack"
142fi
143modules_to_build="$modules_to_build panel menu form"
144
145AC_ARG_PROGRAM
146
147CF_PROG_AWK
148CF_PROG_EGREP
149CF_PROG_INSTALL
150CF_PROG_LINT
151AC_PROG_LN_S
152
153AC_PROG_MAKE_SET
154CF_MAKE_TAGS
155CF_MAKEFLAGS
156
157AC_SYS_LONG_FILE_NAMES
158CF_MIXEDCASE_FILENAMES
159
160dnl These are standard among *NIX systems, but not when cross-compiling
161AC_CHECK_TOOL(RANLIB, ranlib, ':')
162AC_CHECK_TOOL(LD, ld, ld)
163AC_CHECK_TOOL(AR, ar, ar)
164CF_SUBST(archiver options,AR_OPTS,rv)
165
166dnl Special option for use by system-builders: the install-prefix is used to
167dnl adjust the location into which the actual install is done, so that an
168dnl archive can be built without modifying the host system's configuration.
169AC_MSG_CHECKING(if you have specified an install-prefix)
170AC_ARG_WITH(install-prefix,
171	[  --with-install-prefix   prefixes actual install-location ($DESTDIR)],
172	[case "$withval" in #(vi
173	yes|no) #(vi
174		;;
175	*)	DESTDIR="$withval"
176		;;
177	esac])
178AC_MSG_RESULT($DESTDIR)
179AC_SUBST(DESTDIR)
180
181###############################################################################
182CF_HELP_MESSAGE(Build-Tools Needed to Compile Temporary Applications for Cross-compiling:)
183# If we're cross-compiling, allow the user to override the tools and their
184# options.  The configure script is oriented toward identifying the host
185# compiler, etc., but we need a build compiler to generate parts of the source.
186CF_BUILD_CC
187
188###############################################################################
189CF_HELP_MESSAGE(Options to Specify the Libraries Built/Used:)
190
191### Options to allow the user to specify the set of libraries which are used.
192### Use "--without-normal --with-shared" to allow the default model to be
193### shared, for example.
194cf_list_models=""
195AC_SUBST(cf_list_models)dnl	the complete list of models ("normal debug")
196
197CF_WITH_LIBTOOL
198if test "$with_libtool" != "no" ; then
199
200cf_list_models="$cf_list_models libtool"
201
202else
203
204AC_MSG_CHECKING(if you want to build shared libraries)
205AC_ARG_WITH(shared,
206	[  --with-shared           generate shared-libraries],
207	[with_shared=$withval],
208	[with_shared=no])
209AC_MSG_RESULT($with_shared)
210test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
211
212AC_MSG_CHECKING(if you want to build static libraries)
213AC_ARG_WITH(normal,
214	[  --with-normal           generate normal-libraries (default)],
215	[with_normal=$withval],
216	[with_normal=yes])
217AC_MSG_RESULT($with_normal)
218test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
219
220AC_MSG_CHECKING(if you want to build debug libraries)
221AC_ARG_WITH(debug,
222	[  --with-debug            generate debug-libraries (default)],
223	[with_debug=$withval],
224	[with_debug=yes])
225AC_MSG_RESULT($with_debug)
226test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
227
228AC_MSG_CHECKING(if you want to build profiling libraries)
229AC_ARG_WITH(profile,
230	[  --with-profile          generate profile-libraries],
231	[with_profile=$withval],
232	[with_profile=no])
233AC_MSG_RESULT($with_profile)
234test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
235
236fi
237
238###############################################################################
239
240AC_MSG_CHECKING(for specified models)
241test -z "$cf_list_models" && cf_list_models=normal
242dnl If we use libtool to generate libraries, then it must be the only
243dnl specified model.
244test "$with_libtool" != "no" && cf_list_models=libtool
245AC_MSG_RESULT($cf_list_models)
246
247### Use the first model as the default, and save its suffix for use in building
248### up test-applications.
249AC_MSG_CHECKING(for default model)
250DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'`
251AC_MSG_RESULT($DFT_LWR_MODEL)
252
253CF_UPPER(DFT_UPR_MODEL,$DFT_LWR_MODEL)dnl
254
255AC_SUBST(DFT_LWR_MODEL)dnl	the default model ("normal")
256AC_SUBST(DFT_UPR_MODEL)dnl	the default model ("NORMAL")
257
258TINFO_NAME=tinfo
259AC_SUBST(TINFO_NAME)
260
261LIB_NAME=ncurses
262AC_SUBST(LIB_NAME)
263
264LIB_DIR=../lib
265LIB_2ND=../../lib
266
267CF_LIB_PREFIX(cf_prefix)
268LIB_PREFIX=$cf_prefix
269AC_SUBST(LIB_PREFIX)
270
271LIB_SUFFIX=
272AC_SUBST(LIB_SUFFIX)
273
274###############################################################################
275
276AC_MSG_CHECKING(if you want to build a separate terminfo library)
277AC_ARG_WITH(termlib,
278	[  --with-termlib          generate separate terminfo library],
279	[with_termlib=$withval],
280	[with_termlib=no])
281AC_MSG_RESULT($with_termlib)
282
283### Checks for special libraries, must be done up-front.
284SHLIB_LIST=""
285CF_WITH_GPM
286if test "$with_gpm" != no ; then
287	AC_MSG_CHECKING(if you want to load GPM dynamically)
288	AC_ARG_WITH(dlsym,
289		[  --without-dlsym         do not use dlsym() to load GPM dynamically],
290		[with_dlsym=$withval],
291		[with_dlsym=yes])
292	AC_MSG_RESULT($with_dlsym)
293	if test "$with_dlsym" = yes ; then
294		CF_FUNC_DLSYM
295		if test "$with_gpm" != yes ; then
296			CF_VERBOSE(assuming soname for gpm is $with_gpm)
297			cf_cv_gpm_soname="$with_gpm"
298		else
299			CF_LIB_SONAME([#include <gpm.h>],[if (Gpm_Open(0,0)) Gpm_Close();],gpm)
300		fi
301		test "$cf_cv_gpm_soname" != "unknown" && AC_DEFINE_UNQUOTED(LIBGPM_SONAME,"$cf_cv_gpm_soname")
302		SHLIB_LIST="-ldl $SHLIB_LIST"
303	else
304		SHLIB_LIST="-lgpm $SHLIB_LIST"
305	fi
306	AC_DEFINE(HAVE_LIBGPM)
307	AC_CHECK_LIB(gpm,Gpm_Wgetch,[
308		AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
309	])
310fi
311
312CF_WITH_SYSMOUSE
313
314dnl Not all ports of gcc support the -g option
315
316if test X"$CC_G_OPT" = X"" ; then
317	CC_G_OPT='-g'
318	test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT=''
319fi
320AC_SUBST(CC_G_OPT)
321
322if test X"$CXX_G_OPT" = X"" ; then
323	CXX_G_OPT='-g'
324	test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
325fi
326AC_SUBST(CXX_G_OPT)
327
328AC_MSG_CHECKING(for default loader flags)
329case $DFT_LWR_MODEL in
330libtool) LD_MODEL=''   ;;
331normal)  LD_MODEL=''   ;;
332debug)   LD_MODEL=$CC_G_OPT ;;
333profile) LD_MODEL='-pg';;
334shared)  LD_MODEL=''   ;;
335esac
336AC_SUBST(LD_MODEL)dnl		the type of link (e.g., -g or -pg)
337AC_MSG_RESULT($LD_MODEL)
338
339AC_MSG_CHECKING(if rpath option should be used)
340AC_ARG_ENABLE(rpath,
341[  --enable-rpath          use rpath option when generating shared libraries],
342[cf_cv_ld_rpath=$enableval],
343[cf_cv_ld_rpath=no])
344AC_MSG_RESULT($cf_cv_ld_rpath)
345
346CF_SHARED_OPTS
347if test "$CC_SHARED_OPTS" = "unknown"; then
348	for model in $cf_list_models; do
349		if test "$model" = "shared"; then
350			AC_ERROR(Shared libraries are not supported in this version)
351		fi
352	done
353fi
354
355###############################################################################
356CF_HELP_MESSAGE(Fine-Tuning Your Configuration:)
357
358###	use option --disable-overwrite to leave out the link to -lcurses
359AC_MSG_CHECKING(if you wish to install ncurses overwriting curses)
360AC_ARG_ENABLE(overwrite,
361	[  --disable-overwrite     leave out the link to -lcurses],
362	[with_overwrite=$enableval],
363	[if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi])
364AC_MSG_RESULT($with_overwrite)
365
366AC_MSG_CHECKING(if external terminfo-database is used)
367AC_ARG_ENABLE(database,
368	[  --disable-database      do not use terminfo, only fallbacks/termcap],
369	[use_database=$enableval],
370	[use_database=yes])
371AC_MSG_RESULT($use_database)
372
373case $host_os in #(vi
374os2*) #(vi
375	TERMINFO_SRC='${top_srcdir}/misc/emx.src'
376	;;
377*) #(vi
378	TERMINFO_SRC='${top_srcdir}/misc/terminfo.src'
379	;;
380esac
381AC_SUBST(TERMINFO_SRC)
382
383CF_PATHSEP
384if test "$use_database" != no ; then
385	AC_DEFINE(USE_DATABASE)
386
387	AC_MSG_CHECKING(which terminfo source-file will be installed)
388	AC_ARG_ENABLE(database,
389		[  --with-database=XXX     specify terminfo source to install],
390		[TERMINFO_SRC=$withval])
391	AC_MSG_RESULT($TERMINFO_SRC)
392
393	AC_MSG_CHECKING(whether to use hashed database instead of directory/tree)
394	AC_ARG_WITH(hashed-db,
395		[  --with-hashed-db        specify hashed-database library],,
396		[with_hashed_db=no])
397	AC_MSG_RESULT($with_hashed_db)
398fi
399
400AC_MSG_CHECKING(for list of fallback descriptions)
401AC_ARG_WITH(fallbacks,
402	[  --with-fallbacks=XXX    specify list of fallback terminal descriptions],
403	[with_fallback=$withval],
404	[with_fallback=])
405AC_MSG_RESULT($with_fallback)
406FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
407AC_SUBST(FALLBACK_LIST)
408
409AC_MSG_CHECKING(if you want modern xterm or antique)
410AC_ARG_WITH(xterm-new,
411	[  --without-xterm-new     specify if xterm terminfo should be old version],
412	[with_xterm_new=$withval],
413	[with_xterm_new=yes])
414case $with_xterm_new in
415no)	with_xterm_new=xterm-old;;
416*)	with_xterm_new=xterm-new;;
417esac
418AC_MSG_RESULT($with_xterm_new)
419WHICH_XTERM=$with_xterm_new
420AC_SUBST(WHICH_XTERM)
421
422MAKE_TERMINFO=
423if test "$use_database" = no ; then
424	TERMINFO="${datadir}/terminfo"
425	MAKE_TERMINFO="#"
426else
427
428AC_MSG_CHECKING(for list of terminfo directories)
429CF_WITH_PATHLIST(terminfo-dirs,
430	[  --with-terminfo-dirs=XXX specify list of terminfo directories],
431	TERMINFO_DIRS,
432	DATADIR/terminfo,
433	${datadir}/terminfo)
434AC_MSG_RESULT($TERMINFO_DIRS)
435test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS")
436
437AC_MSG_CHECKING(for default terminfo directory)
438CF_WITH_PATH(default-terminfo-dir,
439	[  --with-default-terminfo-dir=DIR default terminfo directory],
440	TERMINFO,
441	DATADIR/terminfo,
442	${datadir}/terminfo)
443AC_MSG_RESULT($TERMINFO)
444AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO")
445
446fi
447
448AC_SUBST(TERMINFO)
449AC_SUBST(MAKE_TERMINFO)
450
451###	use option --disable-big-core to make tic run on small machines
452###	We need 4Mb, check if we can allocate 50% more than that.
453AC_MSG_CHECKING(if big-core option selected)
454AC_ARG_ENABLE(big-core,
455	[  --disable-big-core      assume machine has little memory],
456	[with_big_core=$enableval],
457	[AC_TRY_RUN([
458#include <stdlib.h>
459#include <string.h>
460int main() {
461	unsigned long n = 6000000L;
462	char *s = malloc(n);
463	if (s != 0)
464		s[0] = s[n-1] = 0;
465	${cf_cv_main_return:-return}(s == 0);
466}],
467	[with_big_core=yes],
468	[with_big_core=no],
469	[with_big_core=no])])
470AC_MSG_RESULT($with_big_core)
471test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE)
472
473###	use option --enable-termcap to compile in the termcap fallback support
474AC_MSG_CHECKING(if you want termcap-fallback support)
475AC_ARG_ENABLE(termcap,
476	[  --enable-termcap        compile in termcap fallback support],
477	[with_termcap=$enableval],
478	[with_termcap=no])
479AC_MSG_RESULT($with_termcap)
480
481if test "$with_termcap" != "yes" ; then
482	if test "$use_database" = no ; then
483		if test -z "$with_fallback" ; then
484			AC_ERROR(You have disabled the database w/o specifying fallbacks)
485		fi
486	fi
487	AC_DEFINE(PURE_TERMINFO)
488else
489
490AC_DEFINE(USE_TERMCAP)
491AC_MSG_CHECKING(for list of termcap files)
492CF_WITH_PATHLIST(termpath,
493	[  --with-termpath=XXX     specify list of termcap files],
494	TERMPATH,
495	/etc/termcap:/usr/share/misc/termcap)
496AC_MSG_RESULT($TERMPATH)
497test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH")
498
499###	use option --enable-getcap to use a hacked getcap for reading termcaps
500AC_MSG_CHECKING(if fast termcap-loader is needed)
501AC_ARG_ENABLE(getcap,
502	[  --enable-getcap         fast termcap load, no xrefs to terminfo],
503	[with_getcap=$enableval],
504	[with_getcap=no])
505AC_MSG_RESULT($with_getcap)
506test "$with_getcap" = "yes" && AC_DEFINE(USE_GETCAP)
507
508AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo)
509AC_ARG_ENABLE(getcap-cache,
510	[  --enable-getcap-cache   cache translated termcaps in ~/.terminfo],
511	[with_getcap_cache=$enableval],
512	[with_getcap_cache=no])
513AC_MSG_RESULT($with_getcap_cache)
514test "$with_getcap_cache" = "yes" && AC_DEFINE(USE_GETCAP_CACHE)
515
516fi
517
518###   Use option --disable-home-terminfo to completely remove ~/.terminfo
519AC_MSG_CHECKING(if ~/.terminfo is wanted)
520AC_ARG_ENABLE(home-terminfo,
521	[  --disable-home-terminfo drop ~/.terminfo from terminfo search-path],
522	[with_home_terminfo=$enableval],
523	[with_home_terminfo=yes])
524AC_MSG_RESULT($with_home_terminfo)
525test "$with_home_terminfo" = "yes" && AC_DEFINE(USE_HOME_TERMINFO)
526
527AC_MSG_CHECKING(if you want to use restricted environment when running as root)
528AC_ARG_ENABLE(root-environ,
529	[  --disable-root-environ  restrict environment when running as root],
530	[with_root_environ=$enableval],
531	[with_root_environ=yes])
532AC_MSG_RESULT($with_root_environ)
533test "$with_root_environ" = yes && AC_DEFINE(USE_ROOT_ENVIRON)
534
535###   Use option --enable-symlinks to make tic use symlinks, not hard links
536###   to reduce storage requirements for the terminfo database.
537CF_LINK_FUNCS
538
539with_links=no
540with_symlinks=no
541
542# soft links (symbolic links) are useful for some systems where hard links do
543# not work, or to make it simpler to copy terminfo trees around.
544if test "$ac_cv_func_symlink" = yes ; then
545    AC_MSG_CHECKING(if tic should use symbolic links)
546    AC_ARG_ENABLE(symlinks,
547	[  --enable-symlinks       make tic use symbolic links not hard links],
548	[with_symlinks=$enableval],
549	[with_symlinks=no])
550    AC_MSG_RESULT($with_symlinks)
551fi
552
553# If we have hard links and did not choose to use soft links instead, there is
554# no reason to make this choice optional - use the hard links.
555if test "$with_symlinks" = no ; then
556    AC_MSG_CHECKING(if tic should use hard links)
557    if test "$ac_cv_func_link" = yes ; then
558	with_links=yes
559    else
560	with_links=no
561    fi
562    AC_MSG_RESULT($with_links)
563fi
564
565test "$with_links" = yes && AC_DEFINE(USE_LINKS)
566test "$with_symlinks" = yes && AC_DEFINE(USE_SYMLINKS)
567
568###   use option --enable-broken-linker to force on use of broken-linker support
569AC_MSG_CHECKING(if you want broken-linker support code)
570AC_ARG_ENABLE(broken_linker,
571	[  --enable-broken_linker  compile with broken-linker support code],
572	[with_broken_linker=$enableval],
573	[with_broken_linker=${BROKEN_LINKER-no}])
574AC_MSG_RESULT($with_broken_linker)
575
576BROKEN_LINKER=0
577if test "$with_broken_linker" = yes ; then
578	AC_DEFINE(BROKEN_LINKER)
579	BROKEN_LINKER=1
580elif test "$DFT_LWR_MODEL" = shared ; then
581	case $cf_cv_system_name in #(vi
582	cygwin*)
583		AC_DEFINE(BROKEN_LINKER)
584		BROKEN_LINKER=1
585		CF_VERBOSE(cygwin linker is broken anyway)
586		;;
587	esac
588fi
589AC_SUBST(BROKEN_LINKER)
590
591###   use option --enable-bsdpad to have tputs process BSD-style prefix padding
592AC_MSG_CHECKING(if tputs should process BSD-style prefix padding)
593AC_ARG_ENABLE(bsdpad,
594	[  --enable-bsdpad         recognize BSD-style prefix padding],
595	[with_bsdpad=$enableval],
596	[with_bsdpad=no])
597AC_MSG_RESULT($with_bsdpad)
598test "$with_bsdpad" = yes && AC_DEFINE(BSD_TPUTS)
599
600###   use option --enable-widec to turn on use of wide-character support
601NCURSES_CH_T=chtype
602NCURSES_LIBUTF8=0
603
604NEED_WCHAR_H=0
605NCURSES_MBSTATE_T=0
606NCURSES_WCHAR_T=0
607NCURSES_WINT_T=0
608
609# Check to define _XOPEN_SOURCE "automatically"
610CF_XOPEN_SOURCE
611
612# Work around breakage on OS X
613CF_SIGWINCH
614
615# Checks for CODESET support.
616AM_LANGINFO_CODESET
617
618# use these variables to work around a defect in gcc's fixincludes.
619NCURSES_OK_WCHAR_T=
620NCURSES_OK_WINT_T=
621
622AC_MSG_CHECKING(if you want wide-character code)
623AC_ARG_ENABLE(widec,
624	[  --enable-widec          compile with wide-char/UTF-8 code],
625	[with_widec=$enableval],
626	[with_widec=no])
627AC_MSG_RESULT($with_widec)
628if test "$with_widec" = yes ; then
629	LIB_SUFFIX="w${LIB_SUFFIX}"
630	AC_DEFINE(USE_WIDEC_SUPPORT)
631	CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
632	# with_overwrite=no
633	NCURSES_CH_T=cchar_t
634	AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc)
635	if test "$ac_cv_func_putwc" != yes ; then
636		CF_LIBUTF8
637		if test "$cf_cv_libutf8" = yes ; then
638			NCURSES_LIBUTF8=1
639		fi
640	fi
641	CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T)
642	CF_WCHAR_TYPE(wchar_t,   NCURSES_WCHAR_T,   NCURSES_OK_WCHAR_T)
643	CF_WCHAR_TYPE(wint_t,    NCURSES_WINT_T,    NCURSES_OK_WINT_T)
644
645	if test "$NCURSES_MBSTATE_T" != 0; then
646		AC_DEFINE(NEED_MBSTATE_T_DEF)
647	fi
648fi
649AC_SUBST(NCURSES_CH_T)
650AC_SUBST(NCURSES_LIBUTF8)
651
652AC_SUBST(NEED_WCHAR_H)
653AC_SUBST(NCURSES_MBSTATE_T)
654AC_SUBST(NCURSES_WCHAR_T)
655AC_SUBST(NCURSES_WINT_T)
656
657AC_SUBST(NCURSES_OK_WCHAR_T)
658AC_SUBST(NCURSES_OK_WINT_T)
659
660###   use option --disable-lp64 to allow long chtype
661case $cf_cv_abi_version in
662[[345]]*)
663	default_with_lp64=no
664	;;
665*)
666	default_with_lp64=yes
667	;;
668esac
669
670AC_MSG_CHECKING(whether to enable _LP64 definition in curses.h)
671AC_ARG_ENABLE(lp64,
672	[  --disable-lp64          allow chtype to be long (ignore _LP64)],
673	[with_lp64=$enableval],
674	[with_lp64=$default_with_lp64])
675AC_MSG_RESULT($with_lp64)
676
677if test "$with_lp64" = yes ; then
678	cf_cv_enable_lp64=1
679else
680	cf_cv_enable_lp64=0
681fi
682AC_SUBST(cf_cv_enable_lp64)
683
684CF_LARGEFILE
685
686###   use option --disable-tparm-varargs to make tparm() conform to X/Open
687AC_MSG_CHECKING(if you want tparm not to use X/Open fixed-parameter list)
688AC_ARG_ENABLE(tparm-varargs,
689	[  --disable-tparm-varargs compile tparm() without varargs interface],
690	[with_tparm_varargs=$enableval],
691	[with_tparm_varargs=yes])
692AC_MSG_RESULT($with_tparm_varargs)
693NCURSES_TPARM_VARARGS=0
694test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1
695AC_SUBST(NCURSES_TPARM_VARARGS)
696
697###   use option --with-bool to override bool's type
698AC_MSG_CHECKING(for type of bool)
699AC_ARG_WITH(bool,
700	[  --with-bool=TYPE        override fallback type of bool variable],
701	[NCURSES_BOOL="$withval"],
702	[NCURSES_BOOL=auto])
703AC_MSG_RESULT($NCURSES_BOOL)
704AC_SUBST(NCURSES_BOOL)
705
706AC_MSG_CHECKING(for alternate terminal capabilities file)
707AC_ARG_WITH(caps,
708	[  --with-caps=alt         compile with alternate Caps file],
709	[TERMINFO_CAPS=Caps.$withval],
710	[TERMINFO_CAPS=Caps])
711test -f "${srcdir}/include/${TERMINFO_CAPS}" || TERMINFO_CAPS=Caps
712AC_MSG_RESULT($TERMINFO_CAPS)
713AC_SUBST(TERMINFO_CAPS)
714
715###   use option --with-chtype to override chtype's type
716AC_MSG_CHECKING(for type of chtype)
717AC_ARG_WITH(chtype,
718	[  --with-chtype=TYPE      override type of chtype],
719	[NCURSES_CHTYPE="$withval"],
720	[NCURSES_CHTYPE=auto])
721AC_MSG_RESULT($NCURSES_CHTYPE)
722
723###   use option --with-ospeed to override ospeed's type
724AC_MSG_CHECKING(for type of ospeed)
725AC_ARG_WITH(ospeed,
726	[  --with-ospeed=TYPE      override type of ospeed variable],
727	[NCURSES_OSPEED="$withval"],
728	[NCURSES_OSPEED=short])
729AC_MSG_RESULT($NCURSES_OSPEED)
730AC_SUBST(NCURSES_OSPEED)
731
732###   use option --with-mmask-t to override mmask_t's type
733AC_MSG_CHECKING(for type of mmask_t)
734AC_ARG_WITH(mmask-t,
735	[  --with-mmask-t=TYPE     override type of mmask_t],
736	[NCURSES_MMASK_T="$withval"],
737	[NCURSES_MMASK_T=auto])
738AC_MSG_RESULT($NCURSES_MMASK_T)
739
740### Enable compiling-in rcs id's
741AC_MSG_CHECKING(if RCS identifiers should be compiled-in)
742AC_ARG_WITH(rcs-ids,
743	[  --with-rcs-ids          compile-in RCS identifiers],
744	[with_rcs_ids=$withval],
745	[with_rcs_ids=no])
746AC_MSG_RESULT($with_rcs_ids)
747test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS)
748
749###############################################################################
750CF_MAN_PAGES([ captoinfo clear infocmp infotocap tic toe tput ])
751
752###############################################################################
753CF_HELP_MESSAGE(Extensions:)
754
755### Note that some functions (such as const) are normally disabled anyway.
756AC_MSG_CHECKING(if you want to build with function extensions)
757AC_ARG_ENABLE(ext-funcs,
758	[  --disable-ext-funcs     disable function-extensions],
759	[with_ext_funcs=$enableval],
760	[with_ext_funcs=yes])
761AC_MSG_RESULT($with_ext_funcs)
762if test "$with_ext_funcs" = yes ; then
763	NCURSES_EXT_FUNCS=1
764	AC_DEFINE(HAVE_CURSES_VERSION)
765	AC_DEFINE(HAVE_HAS_KEY)
766	AC_DEFINE(HAVE_RESIZETERM)
767	AC_DEFINE(HAVE_RESIZE_TERM)
768	AC_DEFINE(HAVE_USE_DEFAULT_COLORS)
769	AC_DEFINE(HAVE_WRESIZE)
770	AC_DEFINE(NCURSES_EXT_FUNCS)
771else
772	NCURSES_EXT_FUNCS=0
773fi
774AC_SUBST(NCURSES_EXT_FUNCS)
775
776###   use option --enable-const to turn on use of const beyond that in XSI.
777AC_MSG_CHECKING(for extended use of const keyword)
778AC_ARG_ENABLE(const,
779	[  --enable-const          compile with extra/non-standard const],
780	[with_ext_const=$enableval],
781	[with_ext_const=no])
782AC_MSG_RESULT($with_ext_const)
783NCURSES_CONST='/*nothing*/'
784if test "$with_ext_const" = yes ; then
785	NCURSES_CONST=const
786fi
787AC_SUBST(NCURSES_CONST)
788
789AC_MSG_CHECKING(if you want \$NCURSES_NO_PADDING code)
790AC_ARG_ENABLE(no-padding,
791	[  --enable-no-padding     compile with $NCURSES_NO_PADDING code],
792	[with_no_padding=$enableval],
793	[with_no_padding=$with_ext_funcs])
794AC_MSG_RESULT($with_no_padding)
795test "$with_no_padding" = yes && AC_DEFINE(NCURSES_NO_PADDING)
796
797AC_CHECK_SIZEOF([signed char], 0)
798if test "$ac_cv_sizeof_signed_char" = 1 ; then
799	NCURSES_SBOOL="signed char"
800else
801	NCURSES_SBOOL="char"
802fi
803AC_MSG_CHECKING(if you want to use signed Boolean array in term.h)
804AC_ARG_ENABLE(signed-char,
805	[  --enable-signed-char    compile with SIGWINCH handler],
806	[with_signed_char=$enableval],
807	[with_signed_char=no])
808AC_MSG_RESULT($with_signed_char)
809test "$with_signed_char" != yes && NCURSES_SBOOL="char"
810AC_SUBST(NCURSES_SBOOL)
811
812###   use option --enable-sigwinch to turn on use of SIGWINCH logic
813AC_MSG_CHECKING(if you want SIGWINCH handler)
814AC_ARG_ENABLE(sigwinch,
815	[  --enable-sigwinch       compile with SIGWINCH handler],
816	[with_sigwinch=$enableval],
817	[with_sigwinch=$with_ext_funcs])
818AC_MSG_RESULT($with_sigwinch)
819test "$with_sigwinch" = yes && AC_DEFINE(USE_SIGWINCH)
820
821###   use option --enable-tcap-names to allow user to define new capabilities
822AC_MSG_CHECKING(if you want user-definable terminal capabilities like termcap)
823AC_ARG_ENABLE(tcap-names,
824	[  --enable-tcap-names     compile with user-definable terminal capabilities],
825	[with_tcap_names=$enableval],
826	[with_tcap_names=$with_ext_funcs])
827AC_MSG_RESULT($with_tcap_names)
828NCURSES_XNAMES=0
829test "$with_tcap_names" = yes && NCURSES_XNAMES=1
830AC_SUBST(NCURSES_XNAMES)
831
832###############################################################################
833# These options are relatively safe to experiment with.
834CF_HELP_MESSAGE(Development Code:)
835AC_MSG_CHECKING(if you want all development code)
836AC_ARG_WITH(develop,
837	[  --without-develop       disable development options],
838	[with_develop=$withval],
839	[with_develop=no])
840AC_MSG_RESULT($with_develop)
841
842###   use option --enable-hard-tabs to turn on use of hard-tabs optimize
843AC_MSG_CHECKING(if you want hard-tabs code)
844AC_ARG_ENABLE(hard-tabs,
845	[  --enable-hard-tabs      compile with hard-tabs code],,
846	[enable_hard_tabs=$with_develop])
847AC_MSG_RESULT($enable_hard_tabs)
848test "$enable_hard_tabs" = yes && AC_DEFINE(USE_HARD_TABS)
849
850###   use option --enable-xmc-glitch to turn on use of magic-cookie optimize
851AC_MSG_CHECKING(if you want limited support for xmc)
852AC_ARG_ENABLE(xmc-glitch,
853	[  --enable-xmc-glitch     compile with support for xmc (magic-cookie)],,
854	[enable_xmc_glitch=$with_develop])
855AC_MSG_RESULT($enable_xmc_glitch)
856test "$enable_xmc_glitch" = yes && AC_DEFINE(USE_XMC_SUPPORT)
857
858###############################################################################
859# These are just experimental, probably should not be in a package:
860CF_HELP_MESSAGE(Experimental Code:)
861
862AC_MSG_CHECKING(if you do not want to assume colors are white-on-black)
863AC_ARG_ENABLE(assumed-color,
864	[  --disable-assumed-color do not assume anything about default-colors],
865	[with_assumed_color=$enableval],
866	[with_assumed_color=yes])
867AC_MSG_RESULT($with_assumed_color)
868test "$with_assumed_color" = yes && AC_DEFINE(USE_ASSUMED_COLOR)
869
870###   use option --enable-hashmap to turn on use of hashmap scrolling logic
871AC_MSG_CHECKING(if you want hashmap scrolling-optimization code)
872AC_ARG_ENABLE(hashmap,
873	[  --disable-hashmap       compile without hashmap scrolling-optimization],
874	[with_hashmap=$enableval],
875	[with_hashmap=yes])
876AC_MSG_RESULT($with_hashmap)
877test "$with_hashmap" = yes && AC_DEFINE(USE_HASHMAP)
878
879###   use option --enable-colorfgbg to turn on use of $COLORFGBG environment
880AC_MSG_CHECKING(if you want colorfgbg code)
881AC_ARG_ENABLE(colorfgbg,
882	[  --enable-colorfgbg      compile with $COLORFGBG code],
883	[with_colorfgbg=$enableval],
884	[with_colorfgbg=no])
885AC_MSG_RESULT($with_colorfgbg)
886test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG)
887
888###   use option --enable-ext-colors to turn on use of colors beyond 16.
889AC_MSG_CHECKING(if you want to use experimental extended colors)
890AC_ARG_ENABLE(ext-colors,
891	[  --enable-ext-colors     compile for experimental 256-color support],
892	[with_ext_colors=$enableval],
893	[with_ext_colors=no])
894AC_MSG_RESULT($with_ext_colors)
895NCURSES_EXT_COLORS=0
896if test "$with_ext_colors" = yes ; then
897	if test "$with_widec" != yes ; then
898		AC_MSG_WARN(This option applies only to wide-character library)
899	else
900		# cannot be ABI 5 since it changes sizeof(cchar_t)
901		CF_NCURSES_ABI_6
902	fi
903	NCURSES_EXT_COLORS=1
904	AC_DEFINE(NCURSES_EXT_COLORS)
905fi
906AC_SUBST(NCURSES_EXT_COLORS)
907
908###   use option --enable-ext-mouse to modify coding to support 5-button mice
909AC_MSG_CHECKING(if you want to use experimental extended mouse encoding)
910AC_ARG_ENABLE(ext-mouse,
911	[  --enable-ext-mouse      compile for experimental mouse-encoding],
912	[with_ext_mouse=$enableval],
913	[with_ext_mouse=no])
914AC_MSG_RESULT($with_ext_mouse)
915NCURSES_MOUSE_VERSION=1
916if test "$with_ext_mouse" = yes ; then
917	NCURSES_MOUSE_VERSION=2
918	CF_NCURSES_ABI_6
919fi
920AC_SUBST(NCURSES_MOUSE_VERSION)
921
922AC_MSG_CHECKING(if you want experimental safe-sprintf code)
923AC_ARG_ENABLE(safe-sprintf,
924	[  --enable-safe-sprintf   compile with experimental safe-sprintf code],
925	[with_safe_sprintf=$enableval],
926	[with_safe_sprintf=no])
927AC_MSG_RESULT($with_safe_sprintf)
928test "$with_safe_sprintf" = yes && AC_DEFINE(USE_SAFE_SPRINTF)
929
930###   use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
931# when hashmap is used scroll hints are useless
932if test "$with_hashmap" = no ; then
933AC_MSG_CHECKING(if you want to experiment without scrolling-hints code)
934AC_ARG_ENABLE(scroll-hints,
935	[  --disable-scroll-hints  compile without scroll-hints code],
936	[with_scroll_hints=$enableval],
937	[with_scroll_hints=yes])
938AC_MSG_RESULT($with_scroll_hints)
939test "$with_scroll_hints" = yes && AC_DEFINE(USE_SCROLL_HINTS)
940fi
941
942AC_MSG_CHECKING(if you want experimental wgetch-events code)
943AC_ARG_ENABLE(wgetch-events,
944	[  --enable-wgetch-events  compile with experimental wgetch-events code],
945	[with_wgetch_events=$enableval],
946	[with_wgetch_events=no])
947AC_MSG_RESULT($with_wgetch_events)
948test "$with_wgetch_events" = yes && AC_DEFINE(NCURSES_WGETCH_EVENTS)
949
950###############################################################################
951CF_HELP_MESSAGE(Testing/development Options:)
952
953###	use option --disable-echo to suppress full display compiling commands
954AC_MSG_CHECKING(if you want to display full commands during build)
955AC_ARG_ENABLE(echo,
956	[  --enable-echo           build: display "compiling" commands (default)],
957	[with_echo=$enableval],
958	[with_echo=yes])
959if test "$with_echo" = yes; then
960	ECHO_LINK=
961else
962	ECHO_LINK='@ echo linking $@ ... ;'
963	test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
964fi
965AC_MSG_RESULT($with_echo)
966AC_SUBST(ECHO_LINK)
967
968###	use option --enable-warnings to turn on all gcc warnings
969AC_MSG_CHECKING(if you want to see compiler warnings)
970AC_ARG_ENABLE(warnings,
971	[  --enable-warnings       build: turn on GCC compiler warnings],
972	[with_warnings=$enableval])
973AC_MSG_RESULT($with_warnings)
974
975if test -n "$with_warnings"; then
976 	ADAFLAGS="$ADAFLAGS -gnatg"
977	CF_GCC_WARNINGS
978	if test "$cf_with_cxx" = yes ; then
979		CF_GXX_WARNINGS(Wno-unused)
980	fi
981fi
982CF_GCC_ATTRIBUTES
983
984###	use option --enable-assertions to turn on generation of assertion code
985AC_MSG_CHECKING(if you want to enable runtime assertions)
986AC_ARG_ENABLE(assertions,
987	[  --enable-assertions     test: turn on generation of assertion code],
988	[with_assertions=$enableval],
989	[with_assertions=no])
990AC_MSG_RESULT($with_assertions)
991if test -n "$GCC"
992then
993	if test "$with_assertions" = no
994	then
995		AC_DEFINE(NDEBUG)
996		CPPFLAGS="$CPPFLAGS -DNDEBUG"
997	else
998		ADAFLAGS="$ADAFLAGS -gnata"
999	fi
1000fi
1001
1002###	use option --disable-leaks to suppress "permanent" leaks, for testing
1003CF_DISABLE_LEAKS
1004AC_DEFINE(HAVE_NC_ALLOC_H)
1005
1006###	use option --enable-expanded to generate certain macros as functions
1007AC_ARG_ENABLE(expanded,
1008	[  --enable-expanded       test: generate functions for certain macros],
1009	[test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED)])
1010
1011###	use option --disable-macros to suppress macros in favor of functions
1012AC_ARG_ENABLE(macros,
1013	[  --disable-macros        test: use functions rather than macros],
1014	[test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS)])
1015
1016# Normally we only add trace() to the debug-library.  Allow this to be
1017# extended to all models of the ncurses library:
1018cf_all_traces=no
1019case "$CFLAGS $CPPFLAGS" in
1020*-DTRACE*)
1021	cf_all_traces=yes
1022	;;
1023esac
1024
1025AC_MSG_CHECKING(whether to add trace feature to all models)
1026AC_ARG_WITH(trace,
1027[  --with-trace            test: add trace() function to all models of ncurses],
1028[cf_with_trace=$withval],
1029[cf_with_trace=$cf_all_traces])
1030AC_MSG_RESULT($cf_with_trace)
1031
1032if test "$cf_with_trace" = yes ; then
1033	LIB_TRACING=all
1034	ADA_TRACE=TRUE
1035	CF_ADD_CFLAGS(-DTRACE)
1036else
1037	LIB_TRACING=DEBUG
1038	ADA_TRACE=FALSE
1039fi
1040
1041AC_SUBST(ADA_TRACE)
1042
1043###	Checks for libraries.
1044AC_CHECK_FUNC(gettimeofday,
1045	AC_DEFINE(HAVE_GETTIMEOFDAY),[
1046
1047AC_CHECK_LIB(bsd, gettimeofday,
1048	AC_DEFINE(HAVE_GETTIMEOFDAY)
1049	LIBS="$LIBS -lbsd")])dnl CLIX: bzero, select, gettimeofday
1050
1051CF_MATH_LIB(MATH_LIB,sin(x))
1052AC_SUBST(MATH_LIB)
1053
1054###	Checks for header files.
1055AC_STDC_HEADERS
1056AC_HEADER_DIRENT
1057AC_HEADER_TIME
1058CF_REGEX
1059
1060dnl These are some other potentially nonportable headers.
1061AC_CHECK_HEADERS( \
1062fcntl.h \
1063getopt.h \
1064limits.h \
1065locale.h \
1066poll.h \
1067sys/bsdtypes.h \
1068sys/ioctl.h \
1069sys/param.h \
1070sys/poll.h \
1071sys/select.h \
1072sys/time.h \
1073sys/times.h \
1074ttyent.h \
1075unistd.h \
1076wctype.h \
1077)
1078
1079# check for ISC (this may also define _POSIX_SOURCE)
1080# Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
1081if test "$ISC" = yes ; then
1082	AC_CHECK_LIB(cposix,main)
1083	AC_CHECK_LIB(inet,bzero,LIBS="$LIBS -linet")dnl also 'select()'
1084fi
1085
1086CF_SYS_TIME_SELECT
1087
1088###	checks for compiler characteristics
1089AC_LANG_C
1090AC_C_CONST
1091AC_C_INLINE
1092
1093NCURSES_INLINE=
1094if test "$ac_cv_c_inline" != no ; then
1095	AC_DEFINE(CC_HAS_INLINE_FUNCS)
1096	NCURSES_INLINE=inline
1097fi
1098AC_SUBST(NCURSES_INLINE)
1099
1100if test $NCURSES_CHTYPE = auto ; then
1101	CF_TYPEOF_CHTYPE
1102else
1103	cf_cv_typeof_chtype=$NCURSES_CHTYPE
1104fi
1105AC_SUBST(cf_cv_typeof_chtype)
1106
1107CF_UNSIGNED_LITERALS
1108cf_cv_1UL="1"
1109test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
1110test "$cf_cv_typeof_chtype"    = long && cf_cv_1UL="${cf_cv_1UL}L"
1111AC_SUBST(cf_cv_1UL)
1112
1113if test $NCURSES_MMASK_T = auto ; then
1114	cf_cv_typeof_mmask_t=long
1115else
1116	cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
1117fi
1118AC_SUBST(cf_cv_typeof_mmask_t)
1119
1120###	Checks for external-data
1121CF_ERRNO
1122CF_LINK_DATAONLY
1123
1124###	Checks for library functions.
1125AC_CHECK_FUNCS( \
1126getcwd \
1127getegid \
1128geteuid \
1129getttynam \
1130issetugid \
1131poll \
1132remove \
1133select \
1134setbuf \
1135setbuffer \
1136setvbuf \
1137sigaction \
1138sigvec \
1139strdup \
1140strstr \
1141tcgetpgrp \
1142times \
1143vsnprintf \
1144)
1145if test "$with_getcap" = "yes" ; then
1146	CF_CGETENT
1147fi
1148
1149CF_ISASCII
1150CF_STRUCT_SIGACTION
1151CF_FUNC_NANOSLEEP
1152CF_FUNC_TERMIOS
1153CF_FUNC_VSSCANF
1154CF_MKSTEMP
1155
1156# setup for prototype of fallback for vsscanf()
1157CF_SUBST_IF(["$cf_cv_func_vsscanf" = vsscanf], HAVE_VSSCANF, 1, 0)
1158
1159dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS
1160if test "$cross_compiling" = yes ; then
1161	AC_MSG_WARN(cross compiling: assume setvbuf params not reversed)
1162else
1163	AC_FUNC_SETVBUF_REVERSED
1164fi
1165AC_TYPE_SIGNAL
1166CF_TYPE_SIGACTION
1167CF_SIZECHANGE
1168CF_FUNC_MEMMOVE
1169CF_FUNC_POLL
1170
1171if test "$with_hashed_db" != no ; then
1172	AC_DEFINE(USE_HASHED_DB)
1173	CF_HASHED_DB
1174fi
1175
1176dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS
1177if test -z "$cf_user_CFLAGS" && test "$with_no_leaks" = no ; then
1178	CF_STRIP_G_OPT(CFLAGS)
1179	CF_STRIP_G_OPT(CXXFLAGS)
1180fi
1181
1182# Just in case, check if the C compiler has a bool type.
1183CF_BOOL_DECL(cf_cv_cc_bool_type)
1184
1185# Check for C++ compiler characteristics (and ensure that it's there!)
1186if test -n "$CXX" ; then
1187	AC_LANG_CPLUSPLUS
1188	CF_STDCPP_LIBRARY
1189	CF_PROG_CC_C_O(CXX)
1190
1191	case $GXX_VERSION in
1192	1*|2.[0-6]*)
1193		cf_cxx_library=yes
1194		;;
1195	*-2.7*|2.7*)
1196		CF_GPP_LIBRARY
1197		;;
1198	*)
1199		cf_cxx_library=no
1200		;;
1201	esac
1202
1203	AC_CHECK_HEADERS(typeinfo)
1204
1205	CF_BOOL_DECL
1206	CF_BOOL_SIZE
1207	CF_ETIP_DEFINES
1208	CF_CPP_PARAM_INIT
1209	CF_CPP_STATIC_CAST
1210	CF_CPP_VSCAN_FUNC
1211
1212	CXX_AR='$(AR)'
1213	CXX_AR_OPTS='$(AR_OPTS)'
1214	case $cf_cv_system_name in #(vi
1215	irix*) #(vi
1216	    if test "$GXX" != yes ; then
1217		CXX_AR='$(CXX)'
1218		CXX_AR_OPTS='-ar -o'
1219	    fi
1220	    ;;
1221	sco3.2v5*) #(vi
1222	    CXXLDFLAGS="-u main"
1223	    ;;
1224	solaris2*)
1225	    if test "$GXX" != yes ; then
1226		CXX_AR='$(CXX)'
1227		CXX_AR_OPTS='-xar -o'
1228	    fi
1229	    ;;
1230	esac
1231	AC_SUBST(CXXLDFLAGS)
1232	AC_SUBST(CXX_AR)
1233	AC_SUBST(CXX_AR_OPTS)
1234else
1235	cf_cxx_library=no
1236	cf_cv_builtin_bool=1
1237
1238	# Just because we are not configuring against C++ right now does not
1239	# mean that a user will not want to use C++.  Some distributors disable
1240	# the C++ portion of this configuration as a shortcut (or just to avoid
1241	# compiling the demo in the c++ directory).  So we need a reasonable
1242	# default for the 'bool' type.
1243	#
1244	# Caveat: since the storage of the bool type is not standardized, it
1245	# may change.
1246
1247	if test "$NCURSES_BOOL" != auto ; then
1248		cf_cv_type_of_bool=$NCURSES_BOOL
1249		cf_cv_header_stdbool_h=0
1250	else
1251		if test "$cf_cv_header_stdbool_h" = 1 ; then
1252			CF_BOOL_SIZE
1253		else
1254			AC_MSG_CHECKING(for fallback type of bool)
1255			case "$host_cpu" in #(vi
1256			i?86)	cf_cv_type_of_bool=char	;; #(vi
1257			*)	cf_cv_type_of_bool=int	;;
1258			esac
1259			AC_MSG_RESULT($cf_cv_type_of_bool)
1260		fi
1261	fi
1262fi
1263AC_SUBST(CXXLIBS)
1264
1265# If the C compiler did not declare bool, and we did not determine that the C++
1266# compiler does not declare bool, turn on an ifdef in curses.h that makes the
1267# ncurses library use the same type as C++ bool.  Note that this allows one to
1268# specify the type of bool in a configure-script option and postpone
1269# integration with the C++ compiler provided that the types are compatible.
1270USE_CXX_BOOL=1
1271if test $cf_cv_cc_bool_type = 1
1272then
1273	# oops: C has a bool.  Unlikely, but C++ could differ.
1274	USE_CXX_BOOL=0
1275elif test $cf_cv_builtin_bool = 0
1276then
1277	# C++ has no bool
1278	USE_CXX_BOOL=0
1279else
1280	# this is the normal case
1281	USE_CXX_BOOL='defined(__cplusplus)'
1282fi
1283AC_SUBST(USE_CXX_BOOL)
1284
1285CF_HELP_MESSAGE(Ada95 Binding Options:)
1286
1287dnl Check for availability of GNU Ada Translator (GNAT).
1288dnl At the moment we support no other Ada95 compiler.
1289if test -f "${srcdir}/Ada95/Makefile.in" ; then
1290if test "$cf_with_ada" != "no" ; then
1291cf_ada_make=gnatmake
1292AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
1293if test "$ac_cv_prog_gnat_exists" = no; then
1294   cf_ada_make=
1295else
1296   CF_GNAT_VERSION
1297   AC_CHECK_PROG(M4_exists, m4, yes, no)
1298   if test "$ac_cv_prog_M4_exists" = no; then
1299      cf_cv_prog_gnat_correct=no
1300      echo Ada95 binding required program m4 not found. Ada95 binding disabled.
1301   fi
1302   if test "$cf_cv_prog_gnat_correct" = yes; then
1303      AC_MSG_CHECKING(if GNAT works)
1304      CF_GNAT_TRY_RUN([procedure conftest;],
1305[with Text_IO;
1306with GNAT.OS_Lib;
1307procedure conftest is
1308begin
1309   Text_IO.Put ("Hello World");
1310   Text_IO.New_Line;
1311   GNAT.OS_Lib.OS_Exit (0);
1312end conftest;],[cf_cv_prog_gnat_correct=yes],[cf_cv_prog_gnat_correct=no])
1313      AC_MSG_RESULT($cf_cv_prog_gnat_correct)
1314   fi
1315fi
1316if test	"$cf_cv_prog_gnat_correct" = yes; then
1317   ADAFLAGS="-O3 -gnatpn $ADAFLAGS"
1318
1319   AC_MSG_CHECKING(if GNAT pragma Unreferenced works)
1320   CF_GNAT_TRY_LINK([procedure conftest;],
1321[with Text_IO;
1322with GNAT.OS_Lib;
1323procedure conftest is
1324   test : Integer;
1325   pragma Unreferenced (test);
1326begin
1327   test := 1;
1328   Text_IO.Put ("Hello World");
1329   Text_IO.New_Line;
1330   GNAT.OS_Lib.OS_Exit (0);
1331end conftest;],[cf_cv_pragma_unreferenced=yes],[cf_cv_pragma_unreferenced=no])
1332   AC_MSG_RESULT($cf_cv_pragma_unreferenced)
1333
1334   # if the pragma is supported, use it (needed in the Trace code).
1335   if test $cf_cv_pragma_unreferenced = yes ; then
1336      PRAGMA_UNREF=TRUE
1337   else
1338      PRAGMA_UNREF=FALSE
1339   fi
1340
1341   AC_ARG_WITH(ada-compiler,
1342	[  --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
1343	[cf_ada_compiler=$withval],
1344	[cf_ada_compiler=gnatmake])
1345
1346   cf_ada_package=terminal_interface
1347
1348   AC_SUBST(cf_ada_make)
1349   AC_SUBST(cf_ada_compiler)
1350   AC_SUBST(cf_ada_package)
1351   AC_SUBST(ADAFLAGS)
1352   AC_SUBST(cf_compile_generics)
1353   AC_SUBST(cf_generic_objects)
1354   AC_SUBST(PRAGMA_UNREF)
1355
1356   CF_WITH_PATH(ada-include,
1357       [  --with-ada-include=DIR  Ada includes are in DIR],
1358       ADA_INCLUDE,
1359       PREFIX/lib/ada/adainclude,
1360       [$]prefix/lib/ada/adainclude)
1361   AC_SUBST(ADA_INCLUDE)
1362
1363   CF_WITH_PATH(ada-objects,
1364       [  --with-ada-objects=DIR  Ada objects are in DIR],
1365       ADA_OBJECTS,
1366       PREFIX/lib/ada/adalib,
1367       [$]prefix/lib/ada/adalib)
1368   AC_SUBST(ADA_OBJECTS)
1369
1370fi
1371fi
1372fi
1373
1374### Construct the library-subsets, if any, from this set of keywords:
1375### none, base, ext_funcs, ext_tinfo, termlib, widechar (see CF_LIB_RULES).
1376AC_MSG_CHECKING(for library subsets)
1377if test "$with_termlib" != no ; then
1378	LIB_SUBSETS="termlib"
1379	test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
1380	LIB_SUBSETS="${LIB_SUBSETS} "
1381else
1382	LIB_SUBSETS="termlib+"
1383	test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}ext_tinfo+"
1384fi
1385LIB_SUBSETS="${LIB_SUBSETS}base"
1386test "$with_widec"     = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
1387test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
1388AC_MSG_RESULT($LIB_SUBSETS)
1389
1390### Construct the list of include-directories to be generated
1391CF_INCLUDE_DIRS
1392CF_ADA_INCLUDE_DIRS
1393
1394### Build up pieces for makefile rules
1395AC_MSG_CHECKING(default library suffix)
1396CF_LIB_TYPE($DFT_LWR_MODEL,DFT_ARG_SUFFIX)dnl
1397AC_SUBST(DFT_ARG_SUFFIX)dnl the string to append to "-lncurses" ("")
1398AC_MSG_RESULT($DFT_ARG_SUFFIX)
1399
1400AC_MSG_CHECKING(default library-dependency suffix)
1401CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_DEP_SUFFIX)dnl
1402if test $DFT_LWR_MODEL = shared ; then
1403	case $cf_cv_system_name in #(vi
1404	cygwin*)
1405		DFT_DEP_SUFFIX=".dll.a"
1406		;;
1407	esac
1408fi
1409AC_SUBST(DFT_DEP_SUFFIX)dnl the corresponding library-suffix (".a")
1410AC_MSG_RESULT($DFT_DEP_SUFFIX)
1411
1412AC_MSG_CHECKING(default object directory)
1413CF_OBJ_SUBDIR($DFT_LWR_MODEL,DFT_OBJ_SUBDIR)dnl
1414AC_SUBST(DFT_OBJ_SUBDIR)dnl the default object-directory ("obj")
1415AC_MSG_RESULT($DFT_OBJ_SUBDIR)
1416
1417# libtool thinks it can make c++ shared libraries (perhaps only g++)
1418if test "$cf_with_cxx" = yes ; then
1419AC_MSG_CHECKING(c++ library-dependency suffix)
1420if test "$with_libtool" != "no"; then
1421	CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
1422else
1423	CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX)dnl we normally make a static library
1424fi
1425AC_MSG_RESULT($CXX_LIB_SUFFIX)
1426AC_SUBST(CXX_LIB_SUFFIX)
1427fi
1428
1429### Set up low-level terminfo dependencies for makefiles.
1430TINFO_LIST="$SHLIB_LIST"
1431if test "$with_termlib" != no ; then
1432
1433	if test "$with_termlib" != yes ; then
1434		TINFO_NAME=$with_termlib
1435		TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
1436		TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
1437		TINFO_LIB_SUFFIX="${with_termlib}"
1438	else
1439		TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}"
1440		TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
1441		TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}"
1442	fi
1443
1444	TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
1445	TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
1446	if test "$DFT_LWR_MODEL" = "libtool"; then
1447		TEST_ARGS="${TEST_DEPS}"
1448		TEST_ARG2="${TEST_DEP2}"
1449		TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
1450	else
1451		TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
1452		TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
1453		TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
1454		SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
1455	fi
1456else
1457	TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
1458fi
1459AC_SUBST(TINFO_ARG_SUFFIX)
1460AC_SUBST(TINFO_DEP_SUFFIX)
1461AC_SUBST(TINFO_LIB_SUFFIX)
1462AC_SUBST(TINFO_ARGS)
1463
1464# needed for Ada95
1465TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
1466AC_SUBST(TINFO_ARGS2)
1467
1468AC_MSG_CHECKING(where we will install curses.h)
1469test "$with_overwrite" = no && \
1470test "x$includedir" = 'x${prefix}/include' && \
1471	includedir='${prefix}/include/ncurses'${LIB_SUFFIX}
1472AC_MSG_RESULT($includedir)
1473
1474### Resolve a conflict between normal and wide-curses by forcing applications
1475### that will need libutf8 to add it to their configure script.
1476if test "$with_overwrite" != no ; then
1477if test "$NCURSES_LIBUTF8" = 1 ; then
1478	NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)'
1479	AC_MSG_WARN(Wide-character applications must define HAVE_LIBUTF8_H to include curses.h)
1480fi
1481fi
1482
1483AC_SUBST(WITH_OVERWRITE)
1484AC_SUBST(TINFO_LIST)
1485AC_SUBST(SHLIB_LIST)
1486
1487### predefined stuff for the test programs
1488AC_DEFINE(HAVE_SLK_COLOR)
1489
1490### Construct the list of subdirectories for which we'll customize makefiles
1491### with the appropriate compile-rules.
1492
1493CF_SRC_MODULES($modules_to_build)
1494CF_DIRS_TO_MAKE
1495
1496AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATHSEP')
1497
1498AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}")
1499
1500### Now that we're done running tests, add the compiler-warnings, if any
1501CF_ADD_CFLAGS($EXTRA_CFLAGS)
1502
1503### Define substitutions for header files to avoid name-pollution
1504CF_SUBST_IF(["$cf_cv_have_tcgetattr" = yes], HAVE_TCGETATTR, 1, 0)
1505CF_SUBST_IF(["$ac_cv_header_termio_h" = yes], HAVE_TERMIO_H, 1, 0)
1506CF_SUBST_IF(["$ac_cv_header_termios_h" = yes], HAVE_TERMIOS_H, 1, 0)
1507
1508################################################################################
1509test "$use_database" = yes && SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
1510SUB_MAKEFILES="$SUB_MAKEFILES misc/ncurses-config:misc/ncurses-config.in"
1511AC_OUTPUT( \
1512	include/MKterm.h.awk \
1513	include/curses.head:include/curses.h.in \
1514	include/termcap.h \
1515	include/unctrl.h \
1516	$SUB_MAKEFILES \
1517	Makefile,[
1518CF_PRG_RULES([$srcdir/test/mk-test.awk ECHO_LINK="$ECHO_LINK"], test)
1519CF_LIB_RULES($SRC_SUBDIRS)
1520],[
1521### Special initialization commands, used to pass information from the
1522### configuration-run into config.status
1523
1524AWK="$AWK"
1525DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
1526DFT_LWR_MODEL="$DFT_LWR_MODEL"
1527ECHO_LINK="$ECHO_LINK"
1528LDCONFIG="$LDCONFIG"
1529LIB_NAME="$LIB_NAME"
1530LIB_SUBSETS="$LIB_SUBSETS"
1531LIB_SUFFIX="$LIB_SUFFIX"
1532LIB_TRACING="$LIB_TRACING"
1533MAKE_TERMINFO="$MAKE_TERMINFO"
1534NCURSES_MAJOR="$NCURSES_MAJOR"
1535NCURSES_MINOR="$NCURSES_MINOR"
1536NCURSES_OSPEED="$NCURSES_OSPEED"
1537NCURSES_PATCH="$NCURSES_PATCH"
1538SRC_SUBDIRS="$SRC_SUBDIRS"
1539TERMINFO="$TERMINFO"
1540TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
1541TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
1542TINFO_NAME="$TINFO_NAME"
1543WITH_CURSES_H="$with_curses_h"
1544WITH_ECHO="$with_echo"
1545WITH_OVERWRITE="$with_overwrite"
1546cf_LIST_MODELS="$cf_list_models"
1547cf_cv_abi_version="$cf_cv_abi_version"
1548cf_cv_do_symlinks="$cf_cv_do_symlinks"
1549cf_cv_enable_lp64="$cf_cv_enable_lp64"
1550cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
1551cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
1552cf_cv_rel_version="$cf_cv_rel_version"
1553cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
1554cf_cv_shlib_version="$cf_cv_shlib_version"
1555cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix"
1556cf_cv_system_name="$cf_cv_system_name"
1557cf_with_cxx_binding="$cf_with_cxx_binding"
1558host="$host"
1559target="$target"
1560
1561],cat)dnl
1562${MAKE-make} preinstall
1563