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