blob: de1f704cde0641e1fdc90c93e00be5ddfe1a6f2e [file] [log] [blame]
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301dnl***************************************************************************
Steve Kondikae271bc2015-11-15 02:50:53 +01002dnl Copyright (c) 1998-2014,2015 Free Software Foundation, Inc. *
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303dnl *
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
Steve Kondikae271bc2015-11-15 02:50:53 +010031dnl $Id: aclocal.m4,v 1.761 2015/08/06 00:46:34 tom Exp $
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053032dnl Macros used in NCURSES auto-configuration script.
33dnl
34dnl These macros are maintained separately from NCURSES. The copyright on
35dnl this file applies to the aggregation of macros and does not affect use of
36dnl these macros in other applications.
37dnl
38dnl See http://invisible-island.net/autoconf/ for additional information.
39dnl
40dnl ---------------------------------------------------------------------------
41dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +010042dnl AM_LANGINFO_CODESET version: 4 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053043dnl -------------------
44dnl Inserted as requested by gettext 0.10.40
45dnl File from /usr/share/aclocal
46dnl codeset.m4
47dnl ====================
48dnl serial AM1
49dnl
50dnl From Bruno Haible.
51AC_DEFUN([AM_LANGINFO_CODESET],
52[
Steve Kondikae271bc2015-11-15 02:50:53 +010053AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
54 [AC_TRY_LINK([#include <langinfo.h>],
55 [char* cs = nl_langinfo(CODESET);],
56 am_cv_langinfo_codeset=yes,
57 am_cv_langinfo_codeset=no)
58 ])
59 if test $am_cv_langinfo_codeset = yes; then
60 AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
61 [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
62 fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053063])dnl
64dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +010065dnl CF_ABI_DEFAULTS version: 2 updated: 2015/06/06 13:49:58
66dnl ---------------
67dnl Provide configure-script defaults for different ncurses ABIs.
68AC_DEFUN([CF_ABI_DEFAULTS],[
69AC_REQUIRE([CF_NCURSES_WITH_ABI_VERSION])
70case x$cf_cv_abi_version in
71(x[[6789]])
72 cf_dft_ext_colors=yes
73 cf_dft_ext_const=yes
74 cf_dft_ext_mouse=yes
75 cf_dft_ext_putwin=yes
76 cf_dft_ext_spfuncs=yes
77 cf_dft_filter_syms=yes
78 cf_dft_chtype=uint32_t
79 cf_dft_mmask_t=uint32_t
80 cf_dft_interop=yes
81 cf_dft_tparm_arg=intptr_t
82 cf_dft_with_lp64=yes
83 ;;
84(*)
85 cf_dft_ext_colors=no
86 cf_dft_ext_const=no
87 cf_dft_ext_mouse=no
88 cf_dft_ext_putwin=no
89 cf_dft_ext_spfuncs=no
90 cf_dft_filter_syms=no
91 cf_dft_chtype=auto
92 cf_dft_mmask_t=auto
93 cf_dft_interop=no
94 cf_dft_tparm_arg=long
95 cf_dft_with_lp64=no
96 ;;
97esac
98])dnl
99dnl ---------------------------------------------------------------------------
100dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
101dnl ------------------
102dnl Conditionally generate script according to whether we're using a given autoconf.
103dnl
104dnl $1 = version to compare against
105dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
106dnl $3 = code to use if AC_ACVERSION is older than $1.
107define([CF_ACVERSION_CHECK],
108[
109ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
110ifdef([m4_version_compare],
111[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
112[CF_ACVERSION_COMPARE(
113AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
114AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
115dnl ---------------------------------------------------------------------------
116dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
117dnl --------------------
118dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
119dnl MAJOR2, MINOR2, TERNARY2,
120dnl PRINTABLE2, not FOUND, FOUND)
121define([CF_ACVERSION_COMPARE],
122[ifelse(builtin([eval], [$2 < $5]), 1,
123[ifelse([$8], , ,[$8])],
124[ifelse([$9], , ,[$9])])])dnl
125dnl ---------------------------------------------------------------------------
126dnl CF_ADA_INCLUDE_DIRS version: 8 updated: 2013/10/14 04:24:07
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530127dnl -------------------
128dnl Construct the list of include-options for the C programs in the Ada95
129dnl binding.
130AC_DEFUN([CF_ADA_INCLUDE_DIRS],
131[
Steve Kondikae271bc2015-11-15 02:50:53 +0100132ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530133if test "$srcdir" != "."; then
134 ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
135fi
136if test "$GCC" != yes; then
137 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
138elif test "$includedir" != "/usr/include"; then
139 if test "$includedir" = '${prefix}/include' ; then
Steve Kondikae271bc2015-11-15 02:50:53 +0100140 if test x$prefix != x/usr ; then
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530141 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
142 fi
143 else
144 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
145 fi
146fi
147AC_SUBST(ACPPFLAGS)
148])dnl
149dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +0100150dnl CF_ADD_ADAFLAGS version: 1 updated: 2010/06/19 15:22:18
151dnl ---------------
152dnl Add to $ADAFLAGS, which is substituted into makefile and scripts.
153AC_DEFUN([CF_ADD_ADAFLAGS],[
154 ADAFLAGS="$ADAFLAGS $1"
155 AC_SUBST(ADAFLAGS)
156])dnl
157dnl ---------------------------------------------------------------------------
158dnl CF_ADD_CFLAGS version: 12 updated: 2015/04/12 15:39:00
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530159dnl -------------
160dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
161dnl The second parameter if given makes this macro verbose.
162dnl
163dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
164dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
165dnl confused by the quotes (which require backslashes to keep them usable).
166AC_DEFUN([CF_ADD_CFLAGS],
167[
168cf_fix_cppflags=no
169cf_new_cflags=
170cf_new_cppflags=
171cf_new_extra_cppflags=
172
173for cf_add_cflags in $1
174do
175case $cf_fix_cppflags in
Steve Kondikae271bc2015-11-15 02:50:53 +0100176(no)
177 case $cf_add_cflags in
178 (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530179 case $cf_add_cflags in
Steve Kondikae271bc2015-11-15 02:50:53 +0100180 (-D*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530181 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
182
Steve Kondikae271bc2015-11-15 02:50:53 +0100183 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
184 && test -z "${cf_tst_cflags}" \
185 && cf_fix_cppflags=yes
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530186
187 if test $cf_fix_cppflags = yes ; then
188 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
189 continue
190 elif test "${cf_tst_cflags}" = "\"'" ; then
191 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
192 continue
193 fi
194 ;;
195 esac
196 case "$CPPFLAGS" in
Steve Kondikae271bc2015-11-15 02:50:53 +0100197 (*$cf_add_cflags)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530198 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +0100199 (*)
200 case $cf_add_cflags in
201 (-D*)
202 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
203 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
204 ;;
205 esac
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530206 cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
207 ;;
208 esac
209 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +0100210 (*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530211 cf_new_cflags="$cf_new_cflags $cf_add_cflags"
212 ;;
213 esac
214 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +0100215(yes)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530216 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
217
218 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
219
Steve Kondikae271bc2015-11-15 02:50:53 +0100220 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
221 && test -z "${cf_tst_cflags}" \
222 && cf_fix_cppflags=no
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530223 ;;
224esac
225done
226
227if test -n "$cf_new_cflags" ; then
Steve Kondikae271bc2015-11-15 02:50:53 +0100228 ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530229 CFLAGS="$CFLAGS $cf_new_cflags"
230fi
231
232if test -n "$cf_new_cppflags" ; then
Steve Kondikae271bc2015-11-15 02:50:53 +0100233 ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
234 CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530235fi
236
237if test -n "$cf_new_extra_cppflags" ; then
Steve Kondikae271bc2015-11-15 02:50:53 +0100238 ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530239 EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
240fi
241
242AC_SUBST(EXTRA_CPPFLAGS)
243
244])dnl
245dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +0100246dnl CF_ADD_INCDIR version: 14 updated: 2015/05/25 20:53:04
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530247dnl -------------
248dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
249dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
250dnl but old versions (and some misinstalled ones) need that. To make things
251dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
252dnl the include-path).
253AC_DEFUN([CF_ADD_INCDIR],
254[
255if test -n "$1" ; then
256 for cf_add_incdir in $1
257 do
258 while test $cf_add_incdir != /usr/include
259 do
260 if test -d $cf_add_incdir
261 then
262 cf_have_incdir=no
263 if test -n "$CFLAGS$CPPFLAGS" ; then
264 # a loop is needed to ensure we can add subdirs of existing dirs
265 for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
266 if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
267 cf_have_incdir=yes; break
268 fi
269 done
270 fi
271
272 if test "$cf_have_incdir" = no ; then
Steve Kondikae271bc2015-11-15 02:50:53 +0100273 if test "$cf_add_incdir" = /usr/local/include ; then
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530274 if test "$GCC" = yes
275 then
276 cf_save_CPPFLAGS=$CPPFLAGS
277 CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
278 AC_TRY_COMPILE([#include <stdio.h>],
279 [printf("Hello")],
280 [],
281 [cf_have_incdir=yes])
282 CPPFLAGS=$cf_save_CPPFLAGS
283 fi
284 fi
285 fi
286
287 if test "$cf_have_incdir" = no ; then
288 CF_VERBOSE(adding $cf_add_incdir to include-path)
Steve Kondikae271bc2015-11-15 02:50:53 +0100289 ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530290
Steve Kondikae271bc2015-11-15 02:50:53 +0100291 cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
292 test "$cf_top_incdir" = "$cf_add_incdir" && break
293 cf_add_incdir="$cf_top_incdir"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530294 else
295 break
296 fi
Steve Kondikae271bc2015-11-15 02:50:53 +0100297 else
298 break
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530299 fi
300 done
301 done
302fi
303])dnl
304dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +0100305dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
306dnl ----------
307dnl Add a library, used to enforce consistency.
308dnl
309dnl $1 = library to add, without the "-l"
310dnl $2 = variable to update (default $LIBS)
311AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
312dnl ---------------------------------------------------------------------------
313dnl CF_ADD_LIBDIR version: 10 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530314dnl -------------
315dnl Adds to the library-path
316dnl
317dnl Some machines have trouble with multiple -L options.
318dnl
319dnl $1 is the (list of) directory(s) to add
320dnl $2 is the optional name of the variable to update (default LDFLAGS)
321dnl
322AC_DEFUN([CF_ADD_LIBDIR],
323[
324if test -n "$1" ; then
Steve Kondikae271bc2015-11-15 02:50:53 +0100325 for cf_add_libdir in $1
326 do
327 if test $cf_add_libdir = /usr/lib ; then
328 :
329 elif test -d $cf_add_libdir
330 then
331 cf_have_libdir=no
332 if test -n "$LDFLAGS$LIBS" ; then
333 # a loop is needed to ensure we can add subdirs of existing dirs
334 for cf_test_libdir in $LDFLAGS $LIBS ; do
335 if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
336 cf_have_libdir=yes; break
337 fi
338 done
339 fi
340 if test "$cf_have_libdir" = no ; then
341 CF_VERBOSE(adding $cf_add_libdir to library-path)
342 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
343 fi
344 fi
345 done
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530346fi
347])dnl
348dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +0100349dnl CF_ADD_LIBS version: 2 updated: 2014/07/13 14:33:27
350dnl -----------
351dnl Add one or more libraries, used to enforce consistency. Libraries are
352dnl prepended to an existing list, since their dependencies are assumed to
353dnl already exist in the list.
354dnl
355dnl $1 = libraries to add, with the "-l", etc.
356dnl $2 = variable to update (default $LIBS)
357AC_DEFUN([CF_ADD_LIBS],[
358cf_add_libs="$1"
359# Filter out duplicates - this happens with badly-designed ".pc" files...
360for cf_add_1lib in [$]ifelse($2,,LIBS,[$2])
361do
362 for cf_add_2lib in $cf_add_libs
363 do
364 if test "x$cf_add_1lib" = "x$cf_add_2lib"
365 then
366 cf_add_1lib=
367 break
368 fi
369 done
370 test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
371done
372ifelse($2,,LIBS,[$2])="$cf_add_libs"
373])dnl
374dnl ---------------------------------------------------------------------------
375dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530376dnl ------------------
377dnl Append to a search-list for a nonstandard header/lib-file
378dnl $1 = the variable to return as result
379dnl $2 = the package name
380dnl $3 = the subdirectory, e.g., bin, include or lib
381dnl $4 = the directory under which we will test for subdirectories
382dnl $5 = a directory that we do not want $4 to match
383AC_DEFUN([CF_ADD_SUBDIR_PATH],
384[
Steve Kondikae271bc2015-11-15 02:50:53 +0100385test "x$4" != "x$5" && \
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530386test -d "$4" && \
Steve Kondikae271bc2015-11-15 02:50:53 +0100387ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) {
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530388 test -n "$verbose" && echo " ... testing for $3-directories under $4"
389 test -d $4/$3 && $1="[$]$1 $4/$3"
390 test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
391 test -d $4/$3/$2/$3 && $1="[$]$1 $4/$3/$2/$3"
392 test -d $4/$2/$3 && $1="[$]$1 $4/$2/$3"
393 test -d $4/$2/$3/$2 && $1="[$]$1 $4/$2/$3/$2"
394}
395])dnl
396dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +0100397dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
398dnl --------------
399dnl Allow user to disable a normally-on option.
400AC_DEFUN([CF_ARG_DISABLE],
401[CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
402dnl ---------------------------------------------------------------------------
403dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
404dnl -------------
405dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
406dnl values.
407dnl
408dnl Parameters:
409dnl $1 = option name
410dnl $2 = help-string
411dnl $3 = action to perform if option is not default
412dnl $4 = action if perform if option is default
413dnl $5 = default option value (either 'yes' or 'no')
414AC_DEFUN([CF_ARG_OPTION],
415[AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
416 if test "$enableval" != "$5" ; then
417ifelse([$3],,[ :]dnl
418,[ $3]) ifelse([$4],,,[
419 else
420 $4])
421 fi],[enableval=$5 ifelse([$4],,,[
422 $4
423])dnl
424])])dnl
425dnl ---------------------------------------------------------------------------
426dnl CF_AR_FLAGS version: 5 updated: 2010/05/20 20:24:29
427dnl -----------
428dnl Check for suitable "ar" (archiver) options for updating an archive.
429AC_DEFUN([CF_AR_FLAGS],[
430AC_REQUIRE([CF_PROG_AR])
431
432AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
433 cf_cv_ar_flags=unknown
434 for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv
435 do
436
437 # check if $ARFLAGS already contains this choice
438 if test "x$ARFLAGS" != "x" ; then
439 cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
440 if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
441 cf_cv_ar_flags=
442 break
443 fi
444 fi
445
446 rm -f conftest.$ac_cv_objext
447 rm -f conftest.a
448
449 cat >conftest.$ac_ext <<EOF
450#line __oline__ "configure"
451int testdata[[3]] = { 123, 456, 789 };
452EOF
453 if AC_TRY_EVAL(ac_compile) ; then
454 echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
455 $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
456 if test -f conftest.a ; then
457 cf_cv_ar_flags=$cf_ar_flags
458 break
459 fi
460 else
461 CF_VERBOSE(cannot compile test-program)
462 break
463 fi
464 done
465 rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530466])
467
Steve Kondikae271bc2015-11-15 02:50:53 +0100468if test -n "$ARFLAGS" ; then
469 if test -n "$cf_cv_ar_flags" ; then
470 ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
471 fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530472else
Steve Kondikae271bc2015-11-15 02:50:53 +0100473 ARFLAGS=$cf_cv_ar_flags
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530474fi
Steve Kondikae271bc2015-11-15 02:50:53 +0100475
476AC_SUBST(ARFLAGS)
477])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530478dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +0100479dnl CF_AWK_BIG_PRINTF version: 5 updated: 2015/04/17 21:13:04
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530480dnl -----------------
481dnl Check if awk can handle big strings using printf. Some older versions of
482dnl awk choke on large strings passed via "%s".
483dnl
484dnl $1 = desired string size
485dnl $2 = variable to set with result
486AC_DEFUN([CF_AWK_BIG_PRINTF],
487[
Steve Kondikae271bc2015-11-15 02:50:53 +0100488 case x$AWK in
489 (x)
490 eval $2=no
491 ;;
492 (*)
493 if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \
494 | $AWK '{ printf "%d\n", length([$]0); }' 2>/dev/null | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
495 eval $2=yes
496 else
497 eval $2=no
498 fi
499 ;;
500 esac
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530501])dnl
502dnl ---------------------------------------------------------------------------
503dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
504dnl ------------
505dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some
506dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
507dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
508dnl
509dnl Treat the configuration-variable specially here, since we're directly
510dnl substituting its value (i.e., 1/0).
511dnl
512dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
513AC_DEFUN([CF_BOOL_DECL],
514[
515AC_MSG_CHECKING(if we should include stdbool.h)
516
517AC_CACHE_VAL(cf_cv_header_stdbool_h,[
518 AC_TRY_COMPILE([],[bool foo = false],
519 [cf_cv_header_stdbool_h=0],
520 [AC_TRY_COMPILE([
521#ifndef __BEOS__
522#include <stdbool.h>
523#endif
524],[bool foo = false],
525 [cf_cv_header_stdbool_h=1],
526 [cf_cv_header_stdbool_h=0])])])
527
528if test "$cf_cv_header_stdbool_h" = 1
529then AC_MSG_RESULT(yes)
530else AC_MSG_RESULT(no)
531fi
532
533AC_MSG_CHECKING([for builtin bool type])
534
535AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
536 AC_TRY_COMPILE([
537#include <stdio.h>
538#include <sys/types.h>
539],[bool x = false],
540 [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
541 [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
542 ])
543
544if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
545then AC_MSG_RESULT(yes)
546else AC_MSG_RESULT(no)
547fi
548])dnl
549dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +0100550dnl CF_BOOL_SIZE version: 14 updated: 2015/04/17 21:13:04
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530551dnl ------------
552dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
553dnl Don't bother looking for bool.h, since it's been deprecated.
554dnl
555dnl If the current compiler is C rather than C++, we get the bool definition
556dnl from <stdbool.h>.
557AC_DEFUN([CF_BOOL_SIZE],
558[
559AC_MSG_CHECKING([for size of bool])
560AC_CACHE_VAL(cf_cv_type_of_bool,[
561 rm -f cf_test.out
562 AC_TRY_RUN([
563#include <stdlib.h>
564#include <stdio.h>
565
566#if defined(__cplusplus)
567
568#ifdef HAVE_GXX_BUILTIN_H
569#include <g++/builtin.h>
570#elif HAVE_GPP_BUILTIN_H
571#include <gpp/builtin.h>
572#elif HAVE_BUILTIN_H
573#include <builtin.h>
574#endif
575
576#else
577
578#if $cf_cv_header_stdbool_h
579#include <stdbool.h>
580#endif
581
582#endif
583
Steve Kondikae271bc2015-11-15 02:50:53 +0100584int main()
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530585{
586 FILE *fp = fopen("cf_test.out", "w");
587 if (fp != 0) {
588 bool x = true;
589 if ((bool)(-x) >= 0)
590 fputs("unsigned ", fp);
591 if (sizeof(x) == sizeof(int)) fputs("int", fp);
592 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
593 else if (sizeof(x) == sizeof(short))fputs("short",fp);
594 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
595 fclose(fp);
596 }
597 ${cf_cv_main_return:-return}(0);
598}
599 ],
600 [cf_cv_type_of_bool=`cat cf_test.out`
601 if test -z "$cf_cv_type_of_bool"; then
602 cf_cv_type_of_bool=unknown
603 fi],
604 [cf_cv_type_of_bool=unknown],
605 [cf_cv_type_of_bool=unknown])
606 ])
607 rm -f cf_test.out
608AC_MSG_RESULT($cf_cv_type_of_bool)
609if test "$cf_cv_type_of_bool" = unknown ; then
Steve Kondikae271bc2015-11-15 02:50:53 +0100610 case .$NCURSES_BOOL in
611 (.auto|.) NCURSES_BOOL=unsigned;;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530612 esac
613 AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
614 cf_cv_type_of_bool=$NCURSES_BOOL
615fi
616])dnl
617dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +0100618dnl CF_BUILD_CC version: 7 updated: 2012/10/06 15:31:55
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530619dnl -----------
620dnl If we're cross-compiling, allow the user to override the tools and their
621dnl options. The configure script is oriented toward identifying the host
622dnl compiler, etc., but we need a build compiler to generate parts of the
623dnl source.
624dnl
625dnl $1 = default for $CPPFLAGS
626dnl $2 = default for $LIBS
627AC_DEFUN([CF_BUILD_CC],[
Steve Kondikae271bc2015-11-15 02:50:53 +0100628CF_ACVERSION_CHECK(2.52,,
629 [AC_REQUIRE([CF_PROG_EXT])])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530630if test "$cross_compiling" = yes ; then
631
632 # defaults that we might want to override
633 : ${BUILD_CFLAGS:=''}
634 : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
635 : ${BUILD_LDFLAGS:=''}
636 : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
637 : ${BUILD_EXEEXT:='$x'}
638 : ${BUILD_OBJEXT:='o'}
639
640 AC_ARG_WITH(build-cc,
641 [ --with-build-cc=XXX the build C compiler ($BUILD_CC)],
642 [BUILD_CC="$withval"],
643 [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
644 AC_MSG_CHECKING(for native build C compiler)
645 AC_MSG_RESULT($BUILD_CC)
646
647 AC_MSG_CHECKING(for native build C preprocessor)
648 AC_ARG_WITH(build-cpp,
649 [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)],
650 [BUILD_CPP="$withval"],
651 [BUILD_CPP='${BUILD_CC} -E'])
652 AC_MSG_RESULT($BUILD_CPP)
653
654 AC_MSG_CHECKING(for native build C flags)
655 AC_ARG_WITH(build-cflags,
656 [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
657 [BUILD_CFLAGS="$withval"])
658 AC_MSG_RESULT($BUILD_CFLAGS)
659
660 AC_MSG_CHECKING(for native build C preprocessor-flags)
661 AC_ARG_WITH(build-cppflags,
662 [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
663 [BUILD_CPPFLAGS="$withval"])
664 AC_MSG_RESULT($BUILD_CPPFLAGS)
665
666 AC_MSG_CHECKING(for native build linker-flags)
667 AC_ARG_WITH(build-ldflags,
668 [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
669 [BUILD_LDFLAGS="$withval"])
670 AC_MSG_RESULT($BUILD_LDFLAGS)
671
672 AC_MSG_CHECKING(for native build linker-libraries)
673 AC_ARG_WITH(build-libs,
674 [ --with-build-libs=XXX the build libraries (${BUILD_LIBS})],
675 [BUILD_LIBS="$withval"])
676 AC_MSG_RESULT($BUILD_LIBS)
677
678 # this assumes we're on Unix.
679 BUILD_EXEEXT=
680 BUILD_OBJEXT=o
681
682 : ${BUILD_CC:='${CC}'}
683
684 if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
685 AC_MSG_ERROR([Cross-build requires two compilers.
686Use --with-build-cc to specify the native compiler.])
687 fi
688
689else
690 : ${BUILD_CC:='${CC}'}
691 : ${BUILD_CPP:='${CPP}'}
692 : ${BUILD_CFLAGS:='${CFLAGS}'}
693 : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
694 : ${BUILD_LDFLAGS:='${LDFLAGS}'}
695 : ${BUILD_LIBS:='${LIBS}'}
696 : ${BUILD_EXEEXT:='$x'}
697 : ${BUILD_OBJEXT:='o'}
698fi
699
700AC_SUBST(BUILD_CC)
701AC_SUBST(BUILD_CPP)
702AC_SUBST(BUILD_CFLAGS)
703AC_SUBST(BUILD_CPPFLAGS)
704AC_SUBST(BUILD_LDFLAGS)
705AC_SUBST(BUILD_LIBS)
706AC_SUBST(BUILD_EXEEXT)
707AC_SUBST(BUILD_OBJEXT)
708])dnl
709dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +0100710dnl CF_CC_ENV_FLAGS version: 2 updated: 2015/04/12 15:39:00
711dnl ---------------
712dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
713dnl into CC. This will not help with broken scripts that wrap the compiler with
714dnl options, but eliminates a more common category of user confusion.
715AC_DEFUN([CF_CC_ENV_FLAGS],
716[
717# This should have been defined by AC_PROG_CC
718: ${CC:=cc}
719
720AC_MSG_CHECKING(\$CC variable)
721case "$CC" in
722(*[[\ \ ]]-[[IUD]]*)
723 AC_MSG_RESULT(broken)
724 AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
725 # humor him...
726 cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'`
727 CC=`echo "$CC" | sed -e 's/[[ ]].*//'`
728 CF_ADD_CFLAGS($cf_flags)
729 ;;
730(*)
731 AC_MSG_RESULT(ok)
732 ;;
733esac
734])dnl
735dnl ---------------------------------------------------------------------------
736dnl CF_CFG_DEFAULTS version: 11 updated: 2015/04/17 21:13:04
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530737dnl ---------------
738dnl Determine the default configuration into which we'll install ncurses. This
739dnl can be overridden by the user's command-line options. There's two items to
740dnl look for:
741dnl 1. the prefix (e.g., /usr)
742dnl 2. the header files (e.g., /usr/include/ncurses)
743dnl We'll look for a previous installation of ncurses and use the same defaults.
744dnl
745dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
746dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
747dnl programs from a vendor's.
748AC_DEFUN([CF_CFG_DEFAULTS],
749[
750AC_MSG_CHECKING(for prefix)
751if test "x$prefix" = "xNONE" ; then
752 case "$cf_cv_system_name" in
753 # non-vendor systems don't have a conflict
Steve Kondikae271bc2015-11-15 02:50:53 +0100754 (openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530755 prefix=/usr
756 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +0100757 (*) prefix=$ac_default_prefix
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530758 ;;
759 esac
760fi
761AC_MSG_RESULT($prefix)
762
763if test "x$prefix" = "xNONE" ; then
764AC_MSG_CHECKING(for default include-directory)
765test -n "$verbose" && echo 1>&AC_FD_MSG
766for cf_symbol in \
767 $includedir \
768 $includedir/ncurses \
769 $prefix/include \
770 $prefix/include/ncurses \
771 /usr/local/include \
772 /usr/local/include/ncurses \
773 /usr/include \
774 /usr/include/ncurses
775do
776 cf_dir=`eval echo $cf_symbol`
777 if test -f $cf_dir/curses.h ; then
778 if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
779 includedir="$cf_symbol"
780 test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG
781 break
782 fi
783 fi
784 test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
785done
786AC_MSG_RESULT($includedir)
787fi
788])dnl
789dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +0100790dnl CF_CGETENT version: 5 updated: 2012/10/06 17:56:13
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530791dnl ----------
792dnl Check if the terminal-capability database functions are available. If not,
793dnl ncurses has a much-reduced version.
794AC_DEFUN([CF_CGETENT],[
Steve Kondikae271bc2015-11-15 02:50:53 +0100795AC_CACHE_CHECK(for terminal-capability database functions,cf_cv_cgetent,[
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530796AC_TRY_LINK([
797#include <stdlib.h>],[
798 char temp[128];
799 char *buf = temp;
800 char *db_array = temp;
Steve Kondikae271bc2015-11-15 02:50:53 +0100801 cgetent(&buf, &db_array, "vt100");
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530802 cgetcap(buf, "tc", '=');
803 cgetmatch(buf, "tc");
804 ],
805 [cf_cv_cgetent=yes],
806 [cf_cv_cgetent=no])
807])
Steve Kondikae271bc2015-11-15 02:50:53 +0100808
809if test "$cf_cv_cgetent" = yes
810then
811 AC_DEFINE(HAVE_BSD_CGETENT,1,[Define to 1 if we have BSD cgetent])
812AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[
813AC_TRY_LINK([
814#include <stdlib.h>],[
815 char temp[128];
816 char *buf = temp;
817#ifndef _NETBSD_SOURCE /* given, since April 2004 in stdlib.h */
818 const char *db_array = temp;
819 cgetent(&buf, &db_array, "vt100");
820#endif
821 cgetcap(buf, "tc", '=');
822 cgetmatch(buf, "tc");
823 ],
824 [cf_cv_cgetent_const=yes],
825 [cf_cv_cgetent_const=no])
826])
827 if test "$cf_cv_cgetent_const" = yes
828 then
829 AC_DEFINE_UNQUOTED(CGETENT_CONST,const,[Define to const if needed for some BSD cgetent variations])
830 fi
831fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530832])dnl
833dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +0100834dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530835dnl --------------
836dnl Check if we're accidentally using a cache from a different machine.
837dnl Derive the system name, as a check for reusing the autoconf cache.
838dnl
839dnl If we've packaged config.guess and config.sub, run that (since it does a
840dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
841dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
842dnl which is useful in cross-compiles.
843dnl
844dnl Note: we would use $ac_config_sub, but that is one of the places where
845dnl autoconf 2.5x broke compatibility with autoconf 2.13
846AC_DEFUN([CF_CHECK_CACHE],
847[
848if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
849 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
850 system_name="$host_os"
851else
852 system_name="`(uname -s -r) 2>/dev/null`"
853 if test -z "$system_name" ; then
854 system_name="`(hostname) 2>/dev/null`"
855 fi
856fi
Steve Kondikae271bc2015-11-15 02:50:53 +0100857test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530858AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
859
860test -z "$system_name" && system_name="$cf_cv_system_name"
861test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
862
863if test ".$system_name" != ".$cf_cv_system_name" ; then
864 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
865 AC_MSG_ERROR("Please remove config.cache and try again.")
866fi
867])dnl
868dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +0100869dnl CF_CHECK_ERRNO version: 12 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530870dnl --------------
871dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
872dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it
873dnl ourselves.
874dnl
875dnl $1 = the name to check
876dnl $2 = the assumed type
877AC_DEFUN([CF_CHECK_ERRNO],
878[
879AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
Steve Kondikae271bc2015-11-15 02:50:53 +0100880 AC_TRY_COMPILE([
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530881#ifdef HAVE_STDLIB_H
882#include <stdlib.h>
883#endif
884#include <stdio.h>
885#include <sys/types.h>
886#include <errno.h> ],
Steve Kondikae271bc2015-11-15 02:50:53 +0100887 ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1,
888 [cf_cv_dcl_$1=yes],
889 [cf_cv_dcl_$1=no])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530890])
891
892if test "$cf_cv_dcl_$1" = no ; then
Steve Kondikae271bc2015-11-15 02:50:53 +0100893 CF_UPPER(cf_result,decl_$1)
894 AC_DEFINE_UNQUOTED($cf_result)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530895fi
896
897# It's possible (for near-UNIX clones) that the data doesn't exist
Steve Kondikae271bc2015-11-15 02:50:53 +0100898CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530899])dnl
900dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +0100901dnl CF_CHECK_EXTERN_DATA version: 4 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530902dnl --------------------
903dnl Check for existence of external data in the current set of libraries. If
904dnl we can modify it, it's real enough.
905dnl $1 = the name to check
906dnl $2 = its type
907AC_DEFUN([CF_CHECK_EXTERN_DATA],
908[
909AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
Steve Kondikae271bc2015-11-15 02:50:53 +0100910 AC_TRY_LINK([
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530911#undef $1
912extern $2 $1;
913],
Steve Kondikae271bc2015-11-15 02:50:53 +0100914 [$1 = 2],
915 [cf_cv_have_$1=yes],
916 [cf_cv_have_$1=no])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530917])
918
919if test "$cf_cv_have_$1" = yes ; then
Steve Kondikae271bc2015-11-15 02:50:53 +0100920 CF_UPPER(cf_result,have_$1)
921 AC_DEFINE_UNQUOTED($cf_result)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530922fi
923
924])dnl
925dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +0100926dnl CF_CHECK_GPM_WGETCH version: 2 updated: 2010/08/14 18:25:37
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530927dnl -------------------
928dnl Check if GPM is already linked with curses. If so - and if the linkage
929dnl is not "weak" - warn about this because it can create problems linking
930dnl applications with ncurses.
931AC_DEFUN([CF_CHECK_GPM_WGETCH],[
932AC_CHECK_LIB(gpm,Gpm_Wgetch,[
933
934AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
935cf_cv_check_gpm_wgetch=unknown
936if test "$cross_compiling" != yes ; then
937
938cat >conftest.$ac_ext <<CF_EOF
939#include <gpm.h>
940int main()
941{
942 Gpm_Wgetch();
943 ${cf_cv_main_return:-return}(0);
944}
945CF_EOF
946
947 cf_save_LIBS="$LIBS"
948 # This only works if we can look at the symbol table. If a shared
949 # library is stripped for install, we cannot use that. So we're forced
950 # to rely on the static library, noting that some packagers may not
951 # include it.
952 LIBS="-static -lgpm -dynamic $LIBS"
953 if AC_TRY_EVAL(ac_compile) ; then
954 if AC_TRY_EVAL(ac_link) ; then
955 cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
956 test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
957 test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
958 fi
959 fi
Steve Kondikae271bc2015-11-15 02:50:53 +0100960 rm -rf conftest*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530961 LIBS="$cf_save_LIBS"
962fi
963])
964
965if test "$cf_cv_check_gpm_wgetch" != yes ; then
966 AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
967fi
968])])dnl
969dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +0100970dnl CF_CHECK_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
971dnl ------------------------
972dnl Show the version of libtool
973dnl
974dnl Save the version in a cache variable - this is not entirely a good thing,
975dnl but the version string from libtool is very ugly, and for bug reports it
976dnl might be useful to have the original string.
977AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[
978if test -n "$LIBTOOL" && test "$LIBTOOL" != none
979then
980 AC_MSG_CHECKING(version of $LIBTOOL)
981 CF_LIBTOOL_VERSION
982 AC_MSG_RESULT($cf_cv_libtool_version)
983 if test -z "$cf_cv_libtool_version" ; then
984 AC_MSG_ERROR(This is not GNU libtool)
985 fi
986else
987 AC_MSG_ERROR(GNU libtool has not been found)
988fi
989])dnl
990dnl ---------------------------------------------------------------------------
991dnl CF_CHECK_WCHAR_H version: 1 updated: 2011/10/29 15:01:05
992dnl ----------------
993dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED
994AC_DEFUN([CF_CHECK_WCHAR_H],[
995AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[
996AC_TRY_COMPILE(
997[
998#include <stdlib.h>
999#include <wchar.h>
1000],[
1001 wint_t foo = 0;
1002 int bar = iswpunct(foo)],
1003 [cf_cv_wchar_h_okay=yes],
1004 [cf_cv_wchar_h_okay=no])])
1005
1006if test $cf_cv_wchar_h_okay = no
1007then
1008 CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
1009fi
1010])dnl
1011dnl ---------------------------------------------------------------------------
1012dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
1013dnl -----------------
1014dnl Check if the given compiler is really clang. clang's C driver defines
1015dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
1016dnl not ignore some gcc options.
1017dnl
1018dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1019dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
1020dnl the wrappers for gcc and g++ warnings.
1021dnl
1022dnl $1 = GCC (default) or GXX
1023dnl $2 = CLANG_COMPILER (default)
1024dnl $3 = CFLAGS (default) or CXXFLAGS
1025AC_DEFUN([CF_CLANG_COMPILER],[
1026ifelse([$2],,CLANG_COMPILER,[$2])=no
1027
1028if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1029 AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
1030 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1031 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
1032 AC_TRY_COMPILE([],[
1033#ifdef __clang__
1034#else
1035make an error
1036#endif
1037],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
1038cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
1039],[])
1040 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1041 AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
1042fi
1043])
1044dnl ---------------------------------------------------------------------------
1045dnl CF_CPP_PARAM_INIT version: 6 updated: 2012/10/06 17:56:13
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301046dnl -----------------
1047dnl Check if the C++ compiler accepts duplicate parameter initialization. This
1048dnl is a late feature for the standard and is not in some recent compilers
1049dnl (1999/9/11).
1050AC_DEFUN([CF_CPP_PARAM_INIT],
1051[
1052if test -n "$CXX"; then
1053AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
1054 AC_LANG_SAVE
1055 AC_LANG_CPLUSPLUS
1056 AC_TRY_RUN([
1057class TEST {
1058private:
1059 int value;
1060public:
1061 TEST(int x = 1);
1062 ~TEST();
1063};
1064
1065TEST::TEST(int x = 1) // some compilers do not like second initializer
1066{
1067 value = x;
1068}
Steve Kondikae271bc2015-11-15 02:50:53 +01001069int main() { }
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301070],
1071 [cf_cv_cpp_param_init=yes],
1072 [cf_cv_cpp_param_init=no],
1073 [cf_cv_cpp_param_init=unknown])
1074 AC_LANG_RESTORE
1075])
1076fi
Steve Kondikae271bc2015-11-15 02:50:53 +01001077test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT,1,[Define to 1 if C++ has parameter initialization])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301078])dnl
1079dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01001080dnl CF_CPP_STATIC_CAST version: 3 updated: 2013/04/13 18:03:21
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301081dnl ------------------
1082dnl Check if the C++ compiler accepts static_cast in generics. This appears to
1083dnl not be supported in g++ before 3.0
1084AC_DEFUN([CF_CPP_STATIC_CAST],
1085[
1086if test -n "$CXX"; then
1087
1088AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
1089 AC_LANG_SAVE
1090 AC_LANG_CPLUSPLUS
1091
1092 AC_TRY_COMPILE([
1093class NCursesPanel
1094{
1095public:
1096 NCursesPanel(int nlines,
1097 int ncols,
1098 int begin_y = 0,
1099 int begin_x = 0)
1100 {
1101 }
Steve Kondikae271bc2015-11-15 02:50:53 +01001102 NCursesPanel();
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301103 ~NCursesPanel();
1104};
1105
1106template<class T> class NCursesUserPanel : public NCursesPanel
1107{
1108public:
1109 NCursesUserPanel (int nlines,
1110 int ncols,
1111 int begin_y = 0,
1112 int begin_x = 0,
1113 const T* p_UserData = static_cast<T*>(0))
1114 : NCursesPanel (nlines, ncols, begin_y, begin_x)
1115 {
1116 };
1117 NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
1118 {
1119 };
1120
1121 virtual ~NCursesUserPanel() {};
1122};
1123],[
1124 const char* p_UserData = static_cast<char*>(0)],
1125 [cf_cv_cpp_static_cast=yes],
1126 [cf_cv_cpp_static_cast=no])
1127
1128 AC_LANG_RESTORE
1129])
1130
1131fi
1132
Steve Kondikae271bc2015-11-15 02:50:53 +01001133test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST,1,[Define to 1 if C++ has static_cast])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301134])dnl
1135dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01001136dnl CF_CXX_AR_FLAGS version: 2 updated: 2015/04/17 21:13:04
1137dnl ---------------
1138dnl Setup special archiver flags for given compilers.
1139AC_DEFUN([CF_CXX_AR_FLAGS],[
1140 CXX_AR='$(AR)'
1141 CXX_ARFLAGS='$(ARFLAGS)'
1142 case $cf_cv_system_name in
1143 (irix*)
1144 if test "$GXX" != yes ; then
1145 CXX_AR='$(CXX)'
1146 CXX_ARFLAGS='-ar -o'
1147 fi
1148 ;;
1149 (sco3.2v5*)
1150 CXXLDFLAGS="-u main"
1151 ;;
1152 (solaris2*)
1153 if test "$GXX" != yes ; then
1154 CXX_AR='$(CXX)'
1155 CXX_ARFLAGS='-xar -o'
1156 fi
1157 ;;
1158 esac
1159 AC_SUBST(CXXLDFLAGS)
1160 AC_SUBST(CXX_AR)
1161 AC_SUBST(CXX_ARFLAGS)
1162])dnl
1163dnl ---------------------------------------------------------------------------
1164dnl CF_CXX_IOSTREAM_NAMESPACE version: 2 updated: 2012/10/06 17:56:13
1165dnl -------------------------
1166dnl For c++, check if iostream uses "std::" namespace.
1167AC_DEFUN([CF_CXX_IOSTREAM_NAMESPACE],[
1168AC_CHECK_HEADERS(iostream)
1169if test x"$ac_cv_header_iostream" = xyes ; then
1170 AC_MSG_CHECKING(if iostream uses std-namespace)
1171 AC_TRY_COMPILE([
1172#include <iostream>
1173using std::endl;
1174using std::cerr;],[
1175cerr << "testing" << endl;
1176],[cf_iostream_namespace=yes],[cf_iostream_namespace=no])
1177 AC_MSG_RESULT($cf_iostream_namespace)
1178 if test "$cf_iostream_namespace" = yes ; then
1179 AC_DEFINE(IOSTREAM_NAMESPACE,1,[Define to 1 if C++ has namespace iostream])
1180 fi
1181fi
1182])dnl
1183dnl ---------------------------------------------------------------------------
1184dnl CF_C_INLINE version: 5 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301185dnl -----------
1186dnl Check if the C compiler supports "inline".
1187dnl $1 is the name of a shell variable to set if inline is supported
1188dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
1189AC_DEFUN([CF_C_INLINE],[
1190AC_C_INLINE
1191$1=
1192if test "$ac_cv_c_inline" != no ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01001193 $1=inline
1194 if test "$INTEL_COMPILER" = yes
1195 then
1196 :
1197 elif test "$CLANG_COMPILER" = yes
1198 then
1199 :
1200 elif test "$GCC" = yes
1201 then
1202 AC_CACHE_CHECK(if $CC supports options to tune inlining,cf_cv_gcc_inline,[
1203 cf_save_CFLAGS=$CFLAGS
1204 CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
1205 AC_TRY_COMPILE([inline int foo(void) { return 1; }],
1206 [${cf_cv_main_return:-return} foo()],
1207 [cf_cv_gcc_inline=yes],
1208 [cf_cv_gcc_inline=no])
1209 CFLAGS=$cf_save_CFLAGS
1210 ])
1211 if test "$cf_cv_gcc_inline" = yes ; then
1212 CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
1213 fi
1214 fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301215fi
1216AC_SUBST($1)
1217])dnl
1218dnl ---------------------------------------------------------------------------
1219dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
1220dnl ----------
1221dnl "dirname" is not portable, so we fake it with a shell script.
1222AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
1223dnl ---------------------------------------------------------------------------
1224dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31
1225dnl ---------------
1226AC_DEFUN([CF_DIRS_TO_MAKE],
1227[
1228DIRS_TO_MAKE="lib"
1229for cf_item in $cf_list_models
1230do
1231 CF_OBJ_SUBDIR($cf_item,cf_subdir)
1232 for cf_item2 in $DIRS_TO_MAKE
1233 do
1234 test $cf_item2 = $cf_subdir && break
1235 done
1236 test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
1237done
1238for cf_dir in $DIRS_TO_MAKE
1239do
1240 test ! -d $cf_dir && mkdir $cf_dir
1241done
1242AC_SUBST(DIRS_TO_MAKE)
1243])dnl
1244dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01001245dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
1246dnl ---------------
1247dnl You can always use "make -n" to see the actual options, but it's hard to
1248dnl pick out/analyze warning messages when the compile-line is long.
1249dnl
1250dnl Sets:
1251dnl ECHO_LT - symbol to control if libtool is verbose
1252dnl ECHO_LD - symbol to prefix "cc -o" lines
1253dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1254dnl SHOW_CC - symbol to put before explicit "cc -c" lines
1255dnl ECHO_CC - symbol to put before any "cc" line
1256dnl
1257AC_DEFUN([CF_DISABLE_ECHO],[
1258AC_MSG_CHECKING(if you want to see long compiling messages)
1259CF_ARG_DISABLE(echo,
1260 [ --disable-echo do not display "compiling" commands],
1261 [
1262 ECHO_LT='--silent'
1263 ECHO_LD='@echo linking [$]@;'
1264 RULE_CC='@echo compiling [$]<'
1265 SHOW_CC='@echo compiling [$]@'
1266 ECHO_CC='@'
1267],[
1268 ECHO_LT=''
1269 ECHO_LD=''
1270 RULE_CC=''
1271 SHOW_CC=''
1272 ECHO_CC=''
1273])
1274AC_MSG_RESULT($enableval)
1275AC_SUBST(ECHO_LT)
1276AC_SUBST(ECHO_LD)
1277AC_SUBST(RULE_CC)
1278AC_SUBST(SHOW_CC)
1279AC_SUBST(ECHO_CC)
1280])dnl
1281dnl ---------------------------------------------------------------------------
1282dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00
1283dnl ------------------------
1284AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[
1285AC_MSG_CHECKING(if we want to use GNAT projects)
1286CF_ARG_DISABLE(gnat-projects,
1287 [ --disable-gnat-projects test: disable GNAT projects even if usable],
1288 [enable_gnat_projects=no],
1289 [enable_gnat_projects=yes])
1290AC_MSG_RESULT($enable_gnat_projects)
1291])dnl
1292dnl ---------------------------------------------------------------------------
1293dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301294dnl ----------------
1295dnl Combine no-leak checks with the libraries or tools that are used for the
1296dnl checks.
1297AC_DEFUN([CF_DISABLE_LEAKS],[
1298
1299AC_REQUIRE([CF_WITH_DMALLOC])
1300AC_REQUIRE([CF_WITH_DBMALLOC])
1301AC_REQUIRE([CF_WITH_VALGRIND])
1302
1303AC_MSG_CHECKING(if you want to perform memory-leak testing)
1304AC_ARG_ENABLE(leaks,
1305 [ --disable-leaks test: free permanent memory, analyze leaks],
Steve Kondikae271bc2015-11-15 02:50:53 +01001306 [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi],
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301307 : ${with_no_leaks:=no})
1308AC_MSG_RESULT($with_no_leaks)
1309
1310if test "$with_no_leaks" = yes ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01001311 AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1312 AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301313fi
1314])dnl
1315dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01001316dnl CF_DISABLE_LIBTOOL_VERSION version: 3 updated: 2015/04/17 21:13:04
1317dnl --------------------------
1318dnl Check if we should use the libtool 1.5 feature "-version-number" instead of
1319dnl the older "-version-info" feature. The newer feature allows us to use
1320dnl version numbering on shared libraries which make them compatible with
1321dnl various systems.
1322AC_DEFUN([CF_DISABLE_LIBTOOL_VERSION],
1323[
1324AC_MSG_CHECKING(if libtool -version-number should be used)
1325CF_ARG_DISABLE(libtool-version,
1326 [ --disable-libtool-version enable to use libtool's incompatible naming scheme],
1327 [cf_libtool_version=no],
1328 [cf_libtool_version=yes])
1329AC_MSG_RESULT($cf_libtool_version)
1330
1331if test "$cf_libtool_version" = yes ; then
1332 LIBTOOL_VERSION="-version-number"
1333else
1334 LIBTOOL_VERSION="-version-info"
1335 case "x$VERSION" in
1336 (x)
1337 AC_MSG_WARN(VERSION was not set)
1338 ;;
1339 (x*.*.*)
1340 ABI_VERSION="$VERSION"
1341 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
1342 ;;
1343 (x*:*:*)
1344 ABI_VERSION=`echo "$VERSION" | sed -e 's/:/./g'`
1345 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
1346 ;;
1347 (*)
1348 AC_MSG_WARN(unexpected VERSION value: $VERSION)
1349 ;;
1350 esac
1351fi
1352
1353AC_SUBST(ABI_VERSION)
1354AC_SUBST(LIBTOOL_VERSION)
1355])dnl
1356dnl ---------------------------------------------------------------------------
1357dnl CF_DISABLE_RPATH_HACK version: 2 updated: 2011/02/13 13:31:33
1358dnl ---------------------
1359dnl The rpath-hack makes it simpler to build programs, particularly with the
1360dnl *BSD ports which may have essential libraries in unusual places. But it
1361dnl can interfere with building an executable for the base system. Use this
1362dnl option in that case.
1363AC_DEFUN([CF_DISABLE_RPATH_HACK],
1364[
1365AC_MSG_CHECKING(if rpath-hack should be disabled)
1366CF_ARG_DISABLE(rpath-hack,
1367 [ --disable-rpath-hack don't add rpath options for additional libraries],
1368 [cf_disable_rpath_hack=yes],
1369 [cf_disable_rpath_hack=no])
1370AC_MSG_RESULT($cf_disable_rpath_hack)
1371if test "$cf_disable_rpath_hack" = no ; then
1372 CF_RPATH_HACK
1373fi
1374])
1375dnl ---------------------------------------------------------------------------
1376dnl CF_ENABLE_PC_FILES version: 12 updated: 2015/04/17 21:13:04
1377dnl ------------------
1378dnl This is the "--enable-pc-files" option, which is available if there is a
1379dnl pkg-config configuration on the local machine.
1380AC_DEFUN([CF_ENABLE_PC_FILES],[
1381AC_REQUIRE([CF_PKG_CONFIG])
1382AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR])
1383
1384if test "x$PKG_CONFIG" != xnone
1385then
1386 AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
1387else
1388 AC_MSG_CHECKING(if we should install .pc files)
1389fi
1390
1391AC_ARG_ENABLE(pc-files,
1392 [ --enable-pc-files generate and install .pc files for pkg-config],
1393 [enable_pc_files=$enableval],
1394 [enable_pc_files=no])
1395AC_MSG_RESULT($enable_pc_files)
1396
1397if test "x$enable_pc_files" != xno
1398then
1399 case "x$PKG_CONFIG_LIBDIR" in
1400 (xno|xyes)
1401 AC_MSG_WARN(no PKG_CONFIG_LIBDIR was found)
1402 MAKE_PC_FILES="#"
1403 ;;
1404 (*)
1405 CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR)
1406 MAKE_PC_FILES=
1407 ;;
1408 esac
1409else
1410 MAKE_PC_FILES="#"
1411fi
1412AC_SUBST(MAKE_PC_FILES)
1413])dnl
1414dnl ---------------------------------------------------------------------------
1415dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301416dnl ---------------
1417dnl Check if the rpath option should be used, setting cache variable
Steve Kondikae271bc2015-11-15 02:50:53 +01001418dnl cf_cv_enable_rpath if so.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301419AC_DEFUN([CF_ENABLE_RPATH],
1420[
1421AC_MSG_CHECKING(if rpath option should be used)
1422AC_ARG_ENABLE(rpath,
1423[ --enable-rpath use rpath option when generating shared libraries],
Steve Kondikae271bc2015-11-15 02:50:53 +01001424[cf_cv_enable_rpath=$enableval],
1425[cf_cv_enable_rpath=no])
1426AC_MSG_RESULT($cf_cv_enable_rpath)
1427])dnl
1428dnl ---------------------------------------------------------------------------
1429dnl CF_ENABLE_STRING_HACKS version: 3 updated: 2013/01/26 16:26:12
1430dnl ----------------------
1431dnl On a few platforms, the compiler and/or loader nags with untruthful
1432dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
1433dnl and implying that most uses of the recommended alternatives are correct.
1434dnl
1435dnl Factually speaking, no one has actually counted the number of uses of these
1436dnl functions versus the total of incorrect uses. Samples of a few thousand
1437dnl instances are meaningless compared to the hundreds of millions of lines of
1438dnl existing C code.
1439dnl
1440dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
1441dnl platforms, in implementations of varying quality. Likewise, snprintf is
1442dnl standard - but evolved through phases, and older implementations are likely
1443dnl to yield surprising results, as documented in manpages on various systems.
1444AC_DEFUN([CF_ENABLE_STRING_HACKS],
1445[
1446AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
1447AC_ARG_ENABLE(string-hacks,
1448 [ --enable-string-hacks work around bogus compiler/loader warnings],
1449 [with_string_hacks=$enableval],
1450 [with_string_hacks=no])
1451AC_MSG_RESULT($with_string_hacks)
1452
1453if test "x$with_string_hacks" = "xyes"; then
1454 AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
1455 AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
1456 AC_CHECK_FUNCS( strlcat strlcpy snprintf )
1457fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301458])dnl
1459dnl ---------------------------------------------------------------------------
1460dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
1461dnl --------
1462dnl Check if 'errno' is declared in <errno.h>
1463AC_DEFUN([CF_ERRNO],
1464[
1465CF_CHECK_ERRNO(errno)
1466])dnl
1467dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01001468dnl CF_ETIP_DEFINES version: 5 updated: 2012/02/18 17:51:07
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301469dnl ---------------
1470dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
1471dnl math.h and builtin.h, only for ncurses
1472AC_DEFUN([CF_ETIP_DEFINES],
1473[
1474AC_MSG_CHECKING(for special defines needed for etip.h)
1475cf_save_CXXFLAGS="$CXXFLAGS"
1476cf_result="none"
Steve Kondikae271bc2015-11-15 02:50:53 +01001477
1478# etip.h includes ncurses.h which includes ncurses_dll.h
1479# But ncurses_dll.h is generated - fix here.
1480test -d include || mkdir include
1481test -f include/ncurses_dll.h || sed -e 's/@NCURSES_WRAP_PREFIX@/'$NCURSES_WRAP_PREFIX'/g' ${srcdir}/include/ncurses_dll.h.in >include/ncurses_dll.h
1482
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301483for cf_math in "" MATH_H
1484do
1485for cf_excp in "" MATH_EXCEPTION
1486do
Steve Kondikae271bc2015-11-15 02:50:53 +01001487 CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301488 test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
1489 test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
1490AC_TRY_COMPILE([
1491#include <etip.h.in>
1492],[],[
1493 test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
1494 test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
1495 cf_result="$cf_math $cf_excp"
Steve Kondikae271bc2015-11-15 02:50:53 +01001496 break 2
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301497],[])
1498done
1499done
1500AC_MSG_RESULT($cf_result)
1501CXXFLAGS="$cf_save_CXXFLAGS"
1502])
1503dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01001504dnl CF_FIND_LINKAGE version: 20 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301505dnl ---------------
1506dnl Find a library (specifically the linkage used in the code fragment),
1507dnl searching for it if it is not already in the library path.
1508dnl See also CF_ADD_SEARCHPATH.
1509dnl
1510dnl Parameters (4-on are optional):
1511dnl $1 = headers for library entrypoint
1512dnl $2 = code fragment for library entrypoint
1513dnl $3 = the library name without the "-l" option or ".so" suffix.
1514dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
1515dnl $5 = action to perform if not successful
1516dnl $6 = module name, if not the same as the library name
1517dnl $7 = extra libraries
1518dnl
1519dnl Sets these variables:
1520dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1521dnl $cf_cv_header_path_$3 - include-directory if needed
1522dnl $cf_cv_library_path_$3 - library-directory if needed
1523dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1524AC_DEFUN([CF_FIND_LINKAGE],[
1525
1526# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1527# will be set on completion of the AC_TRY_LINK below.
1528cf_cv_header_path_$3=
1529cf_cv_library_path_$3=
1530
1531CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1532
Steve Kondikae271bc2015-11-15 02:50:53 +01001533cf_save_LIBS="$LIBS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301534
Steve Kondikae271bc2015-11-15 02:50:53 +01001535AC_TRY_LINK([$1],[$2],[
1536 cf_cv_find_linkage_$3=yes
1537 cf_cv_header_path_$3=/usr/include
1538 cf_cv_library_path_$3=/usr/lib
1539],[
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301540
Steve Kondikae271bc2015-11-15 02:50:53 +01001541LIBS="-l$3 $7 $cf_save_LIBS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301542
Steve Kondikae271bc2015-11-15 02:50:53 +01001543AC_TRY_LINK([$1],[$2],[
1544 cf_cv_find_linkage_$3=yes
1545 cf_cv_header_path_$3=/usr/include
1546 cf_cv_library_path_$3=/usr/lib
1547 cf_cv_library_file_$3="-l$3"
1548],[
1549 cf_cv_find_linkage_$3=no
1550 LIBS="$cf_save_LIBS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301551
Steve Kondikae271bc2015-11-15 02:50:53 +01001552 CF_VERBOSE(find linkage for $3 library)
1553 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301554
Steve Kondikae271bc2015-11-15 02:50:53 +01001555 cf_save_CPPFLAGS="$CPPFLAGS"
1556 cf_test_CPPFLAGS="$CPPFLAGS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301557
Steve Kondikae271bc2015-11-15 02:50:53 +01001558 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1559 for cf_cv_header_path_$3 in $cf_search
1560 do
1561 if test -d $cf_cv_header_path_$3 ; then
1562 CF_VERBOSE(... testing $cf_cv_header_path_$3)
1563 CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1564 AC_TRY_COMPILE([$1],[$2],[
1565 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1566 cf_cv_find_linkage_$3=maybe
1567 cf_test_CPPFLAGS="$CPPFLAGS"
1568 break],[
1569 CPPFLAGS="$cf_save_CPPFLAGS"
1570 ])
1571 fi
1572 done
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301573
Steve Kondikae271bc2015-11-15 02:50:53 +01001574 if test "$cf_cv_find_linkage_$3" = maybe ; then
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301575
Steve Kondikae271bc2015-11-15 02:50:53 +01001576 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301577
Steve Kondikae271bc2015-11-15 02:50:53 +01001578 cf_save_LIBS="$LIBS"
1579 cf_save_LDFLAGS="$LDFLAGS"
1580
1581 ifelse([$6],,,[
1582 CPPFLAGS="$cf_test_CPPFLAGS"
1583 LIBS="-l$3 $7 $cf_save_LIBS"
1584 AC_TRY_LINK([$1],[$2],[
1585 CF_VERBOSE(... found $3 library in system)
1586 cf_cv_find_linkage_$3=yes])
1587 CPPFLAGS="$cf_save_CPPFLAGS"
1588 LIBS="$cf_save_LIBS"
1589 ])
1590
1591 if test "$cf_cv_find_linkage_$3" != yes ; then
1592 CF_LIBRARY_PATH(cf_search,$3)
1593 for cf_cv_library_path_$3 in $cf_search
1594 do
1595 if test -d $cf_cv_library_path_$3 ; then
1596 CF_VERBOSE(... testing $cf_cv_library_path_$3)
1597 CPPFLAGS="$cf_test_CPPFLAGS"
1598 LIBS="-l$3 $7 $cf_save_LIBS"
1599 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1600 AC_TRY_LINK([$1],[$2],[
1601 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1602 cf_cv_find_linkage_$3=yes
1603 cf_cv_library_file_$3="-l$3"
1604 break],[
1605 CPPFLAGS="$cf_save_CPPFLAGS"
1606 LIBS="$cf_save_LIBS"
1607 LDFLAGS="$cf_save_LDFLAGS"
1608 ])
1609 fi
1610 done
1611 CPPFLAGS="$cf_save_CPPFLAGS"
1612 LDFLAGS="$cf_save_LDFLAGS"
1613 fi
1614
1615 else
1616 cf_cv_find_linkage_$3=no
1617 fi
1618 ],$7)
1619])
1620
1621LIBS="$cf_save_LIBS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301622
1623if test "$cf_cv_find_linkage_$3" = yes ; then
1624ifelse([$4],,[
Steve Kondikae271bc2015-11-15 02:50:53 +01001625 CF_ADD_INCDIR($cf_cv_header_path_$3)
1626 CF_ADD_LIBDIR($cf_cv_library_path_$3)
1627 CF_ADD_LIB($3)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301628],[$4])
1629else
1630ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1631fi
1632])dnl
1633dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01001634dnl CF_FIND_SUB_INCDIR version: 2 updated: 2015/04/17 21:13:04
1635dnl ------------------
1636dnl Find an include-directory with the given leaf-name. This is useful for
1637dnl example with FreeBSD ports, which use this convention to distinguish
1638dnl different versions of the same port.
1639AC_DEFUN([CF_FIND_SUB_INCDIR],[
1640 CF_SUBDIR_PATH(cf_search,$1,include)
1641 for cf_item in $cf_search
1642 do
1643 case $cf_item in
1644 (*/$1)
1645 CF_ADD_INCDIR($cf_item)
1646 ;;
1647 esac
1648 done
1649])dnl
1650dnl ---------------------------------------------------------------------------
1651dnl CF_FIND_SUB_LIBDIR version: 2 updated: 2015/04/17 21:13:04
1652dnl ------------------
1653dnl Find a library-directory with the given leaf-name. This is useful for
1654dnl example with FreeBSD ports, which use this convention to distinguish
1655dnl different versions of the same port.
1656AC_DEFUN([CF_FIND_SUB_LIBDIR],[
1657 CF_SUBDIR_PATH(cf_search,$1,lib)
1658 for cf_item in $cf_search
1659 do
1660 case $cf_item in
1661 (*/$1)
1662 CF_ADD_LIBDIR($cf_item)
1663 ;;
1664 esac
1665 done
1666])dnl
1667dnl ---------------------------------------------------------------------------
1668dnl CF_FIXUP_ADAFLAGS version: 2 updated: 2015/04/17 21:13:04
1669dnl -----------------
1670dnl make ADAFLAGS consistent with CFLAGS
1671AC_DEFUN([CF_FIXUP_ADAFLAGS],[
1672 AC_MSG_CHECKING(optimization options for ADAFLAGS)
1673 case "$CFLAGS" in
1674 (*-g*)
1675 CF_ADD_ADAFLAGS(-g)
1676 ;;
1677 esac
1678 case "$CFLAGS" in
1679 (*-O*)
1680 cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[ ]].*//'`
1681 CF_ADD_ADAFLAGS($cf_O_flag)
1682 ;;
1683 esac
1684 AC_MSG_RESULT($ADAFLAGS)
1685])dnl
1686dnl ---------------------------------------------------------------------------
1687dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09
1688dnl --------------
1689dnl Forget that we saw the given tool.
1690AC_DEFUN([CF_FORGET_TOOL],[
1691unset ac_cv_prog_ac_ct_$1
1692unset ac_ct_$1
1693unset $1
1694])dnl
1695dnl ---------------------------------------------------------------------------
1696dnl CF_FUNC_DLSYM version: 3 updated: 2012/10/06 11:17:15
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301697dnl -------------
1698dnl Test for dlsym() and related functions, as well as libdl.
1699dnl
1700dnl Sets
1701dnl $cf_have_dlsym
1702dnl $cf_have_libdl
1703AC_DEFUN([CF_FUNC_DLSYM],[
1704cf_have_dlsym=no
1705AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
1706
1707cf_have_libdl=no
1708AC_CHECK_LIB(dl,dlsym,[
1709 cf_have_dlsym=yes
1710 cf_have_libdl=yes])])
1711
1712if test "$cf_have_dlsym" = yes ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01001713 test "$cf_have_libdl" = yes && CF_ADD_LIB(dl)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301714
1715 AC_MSG_CHECKING(whether able to link to dl*() functions)
1716 AC_TRY_LINK([#include <dlfcn.h>],[
1717 void *obj;
1718 if ((obj = dlopen("filename", 0)) != 0) {
1719 if (dlsym(obj, "symbolname") == 0) {
1720 dlclose(obj);
1721 }
1722 }],[
Steve Kondikae271bc2015-11-15 02:50:53 +01001723 AC_DEFINE(HAVE_LIBDL,1,[Define to 1 if we have dl library])],[
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301724 AC_MSG_ERROR(Cannot link test program for libdl)])
1725 AC_MSG_RESULT(ok)
1726else
1727 AC_MSG_ERROR(Cannot find dlsym function)
1728fi
1729])
1730dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01001731dnl CF_FUNC_MEMMOVE version: 8 updated: 2012/10/04 20:12:20
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301732dnl ---------------
1733dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
1734dnl is found, add our own version of memmove to the list of objects.
1735AC_DEFUN([CF_FUNC_MEMMOVE],
1736[
1737AC_CHECK_FUNC(memmove,,[
1738AC_CHECK_FUNC(bcopy,[
1739 AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
1740 AC_TRY_RUN([
1741int main() {
1742 static char data[] = "abcdefghijklmnopqrstuwwxyz";
1743 char temp[40];
1744 bcopy(data, temp, sizeof(data));
1745 bcopy(temp+10, temp, 15);
1746 bcopy(temp+5, temp+15, 10);
1747 ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
1748}
1749 ],
1750 [cf_cv_good_bcopy=yes],
1751 [cf_cv_good_bcopy=no],
1752 [cf_cv_good_bcopy=unknown])
1753 ])
1754 ],[cf_cv_good_bcopy=no])
1755 if test "$cf_cv_good_bcopy" = yes ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01001756 AC_DEFINE(USE_OK_BCOPY,1,[Define to 1 to use bcopy when memmove is unavailable])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301757 else
Steve Kondikae271bc2015-11-15 02:50:53 +01001758 AC_DEFINE(USE_MY_MEMMOVE,1,[Define to 1 to use replacement function when memmove is unavailable])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301759 fi
1760])])dnl
1761dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01001762dnl CF_FUNC_NANOSLEEP version: 4 updated: 2012/10/06 17:56:13
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301763dnl -----------------
1764dnl Check for existence of workable nanosleep() function. Some systems, e.g.,
1765dnl AIX 4.x, provide a non-working version.
1766AC_DEFUN([CF_FUNC_NANOSLEEP],[
1767AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
1768AC_TRY_RUN([
1769#include <stdio.h>
1770#include <errno.h>
1771#include <time.h>
1772
1773#ifdef HAVE_SYS_TIME_H
1774#include <sys/time.h>
1775#endif
1776
1777int main() {
1778 struct timespec ts1, ts2;
1779 int code;
1780 ts1.tv_sec = 0;
1781 ts1.tv_nsec = 750000000;
1782 ts2.tv_sec = 0;
1783 ts2.tv_nsec = 0;
1784 errno = 0;
1785 code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
1786 ${cf_cv_main_return:-return}(code != 0);
1787}
1788],
1789 [cf_cv_func_nanosleep=yes],
1790 [cf_cv_func_nanosleep=no],
1791 [cf_cv_func_nanosleep=unknown])])
1792
Steve Kondikae271bc2015-11-15 02:50:53 +01001793test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301794])
1795dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01001796dnl CF_FUNC_OPENPTY version: 4 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301797dnl ---------------
1798dnl Check for openpty() function, along with <pty.h> header. It may need the
1799dnl "util" library as well.
1800AC_DEFUN([CF_FUNC_OPENPTY],
1801[
1802AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1803AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
Steve Kondikae271bc2015-11-15 02:50:53 +01001804 cf_save_LIBS="$LIBS"
1805 test $cf_cv_lib_util = yes && CF_ADD_LIB(util)
1806 for cf_header in pty.h libutil.h util.h
1807 do
1808 AC_TRY_LINK([
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301809#include <$cf_header>
1810],[
Steve Kondikae271bc2015-11-15 02:50:53 +01001811 int x = openpty((int *)0, (int *)0, (char *)0,
1812 (struct termios *)0, (struct winsize *)0);
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301813],[
Steve Kondikae271bc2015-11-15 02:50:53 +01001814 cf_cv_func_openpty=$cf_header
1815 break
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301816],[
Steve Kondikae271bc2015-11-15 02:50:53 +01001817 cf_cv_func_openpty=no
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301818])
Steve Kondikae271bc2015-11-15 02:50:53 +01001819 done
1820 LIBS="$cf_save_LIBS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301821])
1822])dnl
1823dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01001824dnl CF_FUNC_POLL version: 8 updated: 2012/10/04 05:24:07
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301825dnl ------------
1826dnl See if the poll function really works. Some platforms have poll(), but
1827dnl it does not work for terminals or files.
1828AC_DEFUN([CF_FUNC_POLL],[
1829AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
1830AC_TRY_RUN([
Steve Kondikae271bc2015-11-15 02:50:53 +01001831#include <stdlib.h>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301832#include <stdio.h>
Steve Kondikae271bc2015-11-15 02:50:53 +01001833#include <unistd.h>
1834#include <fcntl.h>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301835#ifdef HAVE_POLL_H
1836#include <poll.h>
1837#else
1838#include <sys/poll.h>
1839#endif
1840int main() {
1841 struct pollfd myfds;
1842 int ret;
1843
Steve Kondikae271bc2015-11-15 02:50:53 +01001844 /* check for Darwin bug with respect to "devices" */
1845 myfds.fd = open("/dev/null", 1); /* O_WRONLY */
1846 if (myfds.fd < 0)
1847 myfds.fd = 0;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301848 myfds.events = POLLIN;
Steve Kondikae271bc2015-11-15 02:50:53 +01001849 myfds.revents = 0;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301850
1851 ret = poll(&myfds, 1, 100);
Steve Kondikae271bc2015-11-15 02:50:53 +01001852
1853 if (ret < 0 || (myfds.revents & POLLNVAL)) {
1854 ret = -1;
1855 } else {
1856 int fd = 0;
1857 if (!isatty(fd)) {
1858 fd = open("/dev/tty", 2); /* O_RDWR */
1859 }
1860
1861 if (fd >= 0) {
1862 /* also check with standard input */
1863 myfds.fd = fd;
1864 myfds.events = POLLIN;
1865 myfds.revents = 0;
1866 ret = poll(&myfds, 1, 100);
1867 } else {
1868 ret = -1;
1869 }
1870 }
1871 ${cf_cv_main_return:-return}(ret < 0);
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301872}],
1873 [cf_cv_working_poll=yes],
1874 [cf_cv_working_poll=no],
1875 [cf_cv_working_poll=unknown])])
Steve Kondikae271bc2015-11-15 02:50:53 +01001876test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL,1,[Define to 1 if the poll function seems to work])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301877])dnl
1878dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01001879dnl CF_FUNC_TERMIOS version: 3 updated: 2012/10/06 17:56:13
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301880dnl ---------------
1881dnl Some old/broken variations define tcgetattr() only as a macro in
1882dnl termio(s).h
1883AC_DEFUN([CF_FUNC_TERMIOS],[
1884AC_REQUIRE([CF_STRUCT_TERMIOS])
1885AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
1886AC_TRY_LINK([
1887#include <sys/types.h>
1888#ifdef HAVE_UNISTD_H
1889#include <unistd.h>
1890#endif
1891#ifdef HAVE_TERMIOS_H
1892#include <termios.h>
1893#define TTY struct termios
1894#else
1895#ifdef HAVE_TERMIO_H
1896#include <termio.h>
1897#define TTY struct termio
1898#endif
1899#endif
1900],[
1901TTY foo;
1902tcgetattr(1, &foo);],
1903[cf_cv_have_tcgetattr=yes],
1904[cf_cv_have_tcgetattr=no])])
Steve Kondikae271bc2015-11-15 02:50:53 +01001905test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR,1,[Define to 1 if we have tcgetattr])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301906])dnl
1907dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01001908dnl CF_FUNC_VSSCANF version: 6 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301909dnl ---------------
1910dnl Check for vsscanf() function, which is in c9x but generally not in earlier
1911dnl versions of C. It is in the GNU C library, and can often be simulated by
1912dnl other functions.
1913AC_DEFUN([CF_FUNC_VSSCANF],
1914[
1915AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
1916AC_TRY_LINK([
1917#include <stdarg.h>
1918#include <stdio.h>],[
1919 va_list ap;
1920 vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
1921AC_TRY_LINK([
1922#include <stdarg.h>
1923#include <stdio.h>],[
Steve Kondikae271bc2015-11-15 02:50:53 +01001924 FILE strbuf;
1925 char *str = "from";
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301926
Steve Kondikae271bc2015-11-15 02:50:53 +01001927 strbuf._flag = _IOREAD;
1928 strbuf._ptr = strbuf._base = (unsigned char *) str;
1929 strbuf._cnt = strlen(str);
1930 strbuf._file = _NFILE;
1931 return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301932AC_TRY_LINK([
1933#include <stdarg.h>
1934#include <stdio.h>],[
Steve Kondikae271bc2015-11-15 02:50:53 +01001935 FILE strbuf;
1936 char *str = "from";
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301937
Steve Kondikae271bc2015-11-15 02:50:53 +01001938 strbuf._flag = _IOREAD;
1939 strbuf._ptr = strbuf._base = (unsigned char *) str;
1940 strbuf._cnt = strlen(str);
1941 strbuf._file = _NFILE;
1942 return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301943cf_cv_func_vsscanf=no])])])])
1944
Steve Kondikae271bc2015-11-15 02:50:53 +01001945case $cf_cv_func_vsscanf in
1946(vsscanf) AC_DEFINE(HAVE_VSSCANF,1,[Define to 1 if we have vsscanf]);;
1947(vfscanf) AC_DEFINE(HAVE_VFSCANF,1,[Define to 1 if we have vfscanf]);;
1948(_doscan) AC_DEFINE(HAVE__DOSCAN,1,[Define to 1 if we have _doscan]);;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301949esac
1950
1951])dnl
1952dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01001953dnl CF_GCC_ATTRIBUTES version: 17 updated: 2015/04/12 15:39:00
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301954dnl -----------------
1955dnl Test for availability of useful gcc __attribute__ directives to quiet
1956dnl compiler warnings. Though useful, not all are supported -- and contrary
1957dnl to documentation, unrecognized directives cause older compilers to barf.
1958AC_DEFUN([CF_GCC_ATTRIBUTES],
1959[
1960if test "$GCC" = yes
1961then
1962cat > conftest.i <<EOF
1963#ifndef GCC_PRINTF
1964#define GCC_PRINTF 0
1965#endif
1966#ifndef GCC_SCANF
1967#define GCC_SCANF 0
1968#endif
1969#ifndef GCC_NORETURN
1970#define GCC_NORETURN /* nothing */
1971#endif
1972#ifndef GCC_UNUSED
1973#define GCC_UNUSED /* nothing */
1974#endif
1975EOF
1976if test "$GCC" = yes
1977then
1978 AC_CHECKING([for $CC __attribute__ directives])
1979cat > conftest.$ac_ext <<EOF
Steve Kondikae271bc2015-11-15 02:50:53 +01001980#line __oline__ "${as_me:-configure}"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301981#include "confdefs.h"
1982#include "conftest.h"
1983#include "conftest.i"
1984#if GCC_PRINTF
1985#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1986#else
1987#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1988#endif
1989#if GCC_SCANF
1990#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1991#else
1992#define GCC_SCANFLIKE(fmt,var) /*nothing*/
1993#endif
1994extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1995extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1996extern void foo(void) GCC_NORETURN;
1997int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1998EOF
Steve Kondikae271bc2015-11-15 02:50:53 +01001999 cf_printf_attribute=no
2000 cf_scanf_attribute=no
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302001 for cf_attribute in scanf printf unused noreturn
2002 do
2003 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
2004 cf_directive="__attribute__(($cf_attribute))"
2005 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
Steve Kondikae271bc2015-11-15 02:50:53 +01002006
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302007 case $cf_attribute in
Steve Kondikae271bc2015-11-15 02:50:53 +01002008 (printf)
2009 cf_printf_attribute=yes
2010 cat >conftest.h <<EOF
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302011#define GCC_$cf_ATTRIBUTE 1
2012EOF
2013 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01002014 (scanf)
2015 cf_scanf_attribute=yes
2016 cat >conftest.h <<EOF
2017#define GCC_$cf_ATTRIBUTE 1
2018EOF
2019 ;;
2020 (*)
2021 cat >conftest.h <<EOF
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302022#define GCC_$cf_ATTRIBUTE $cf_directive
2023EOF
2024 ;;
2025 esac
Steve Kondikae271bc2015-11-15 02:50:53 +01002026
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302027 if AC_TRY_EVAL(ac_compile); then
2028 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
2029 cat conftest.h >>confdefs.h
Steve Kondikae271bc2015-11-15 02:50:53 +01002030 case $cf_attribute in
2031 (noreturn)
2032 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
2033 ;;
2034 (printf)
2035 cf_value='/* nothing */'
2036 if test "$cf_printf_attribute" != no ; then
2037 cf_value='__attribute__((format(printf,fmt,var)))'
2038 AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
2039 fi
2040 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
2041 ;;
2042 (scanf)
2043 cf_value='/* nothing */'
2044 if test "$cf_scanf_attribute" != no ; then
2045 cf_value='__attribute__((format(scanf,fmt,var)))'
2046 AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
2047 fi
2048 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
2049 ;;
2050 (unused)
2051 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
2052 ;;
2053 esac
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302054 fi
2055 done
2056else
2057 fgrep define conftest.i >>confdefs.h
2058fi
2059rm -rf conftest*
2060fi
2061])dnl
2062dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002063dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302064dnl --------------
2065dnl Find version of gcc
2066AC_DEFUN([CF_GCC_VERSION],[
2067AC_REQUIRE([AC_PROG_CC])
2068GCC_VERSION=none
2069if test "$GCC" = yes ; then
2070 AC_MSG_CHECKING(version of $CC)
Steve Kondikae271bc2015-11-15 02:50:53 +01002071 GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302072 test -z "$GCC_VERSION" && GCC_VERSION=unknown
2073 AC_MSG_RESULT($GCC_VERSION)
2074fi
2075])dnl
2076dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002077dnl CF_GCC_WARNINGS version: 32 updated: 2015/04/12 15:39:00
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302078dnl ---------------
2079dnl Check if the compiler supports useful warning options. There's a few that
2080dnl we don't use, simply because they're too noisy:
2081dnl
2082dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
2083dnl -Wredundant-decls (system headers make this too noisy)
2084dnl -Wtraditional (combines too many unrelated messages, only a few useful)
2085dnl -Wwrite-strings (too noisy, but should review occasionally). This
2086dnl is enabled for ncurses using "--enable-const".
2087dnl -pedantic
2088dnl
2089dnl Parameter:
2090dnl $1 is an optional list of gcc warning flags that a particular
2091dnl application might want to use, e.g., "no-unused" for
2092dnl -Wno-unused
2093dnl Special:
2094dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
2095dnl
2096AC_DEFUN([CF_GCC_WARNINGS],
2097[
2098AC_REQUIRE([CF_GCC_VERSION])
2099CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
Steve Kondikae271bc2015-11-15 02:50:53 +01002100CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302101
2102cat > conftest.$ac_ext <<EOF
Steve Kondikae271bc2015-11-15 02:50:53 +01002103#line __oline__ "${as_me:-configure}"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302104int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
2105EOF
2106
2107if test "$INTEL_COMPILER" = yes
2108then
2109# The "-wdXXX" options suppress warnings:
2110# remark #1419: external declaration in primary source file
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302111# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
2112# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
2113# remark #193: zero used for undefined preprocessing identifier
2114# remark #593: variable "curs_sb_left_arrow" was set but never used
2115# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
2116# remark #869: parameter "tw" was never referenced
2117# remark #981: operands are evaluated in unspecified order
Steve Kondikae271bc2015-11-15 02:50:53 +01002118# warning #279: controlling expression is constant
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302119
2120 AC_CHECKING([for $CC warning options])
2121 cf_save_CFLAGS="$CFLAGS"
2122 EXTRA_CFLAGS="-Wall"
2123 for cf_opt in \
2124 wd1419 \
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302125 wd1683 \
2126 wd1684 \
2127 wd193 \
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302128 wd593 \
Steve Kondikae271bc2015-11-15 02:50:53 +01002129 wd279 \
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302130 wd810 \
2131 wd869 \
2132 wd981
2133 do
2134 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
2135 if AC_TRY_EVAL(ac_compile); then
2136 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2137 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
2138 fi
2139 done
2140 CFLAGS="$cf_save_CFLAGS"
2141
2142elif test "$GCC" = yes
2143then
2144 AC_CHECKING([for $CC warning options])
2145 cf_save_CFLAGS="$CFLAGS"
Steve Kondikae271bc2015-11-15 02:50:53 +01002146 EXTRA_CFLAGS=
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302147 cf_warn_CONST=""
2148 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
Steve Kondikae271bc2015-11-15 02:50:53 +01002149 cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
2150 test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
2151 for cf_opt in W Wall \
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302152 Wbad-function-cast \
2153 Wcast-align \
2154 Wcast-qual \
Steve Kondikae271bc2015-11-15 02:50:53 +01002155 Wdeclaration-after-statement \
2156 Wextra \
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302157 Winline \
2158 Wmissing-declarations \
2159 Wmissing-prototypes \
2160 Wnested-externs \
2161 Wpointer-arith \
2162 Wshadow \
2163 Wstrict-prototypes \
Steve Kondikae271bc2015-11-15 02:50:53 +01002164 Wundef $cf_gcc_warnings $cf_warn_CONST $1
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302165 do
2166 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
2167 if AC_TRY_EVAL(ac_compile); then
2168 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
Steve Kondikae271bc2015-11-15 02:50:53 +01002169 case $cf_opt in
2170 (Wcast-qual)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302171 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
2172 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01002173 (Winline)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302174 case $GCC_VERSION in
Steve Kondikae271bc2015-11-15 02:50:53 +01002175 ([[34]].*)
2176 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
2177 continue;;
2178 esac
2179 ;;
2180 (Wpointer-arith)
2181 case $GCC_VERSION in
2182 ([[12]].*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302183 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
2184 continue;;
2185 esac
2186 ;;
2187 esac
2188 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
2189 fi
2190 done
2191 CFLAGS="$cf_save_CFLAGS"
2192fi
Steve Kondikae271bc2015-11-15 02:50:53 +01002193rm -rf conftest*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302194
2195AC_SUBST(EXTRA_CFLAGS)
2196])dnl
2197dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002198dnl CF_GETOPT_HEADER version: 6 updated: 2014/07/22 14:45:54
2199dnl ----------------
2200dnl Check for getopt's variables which are commonly defined in stdlib.h,
2201dnl unistd.h or (nonstandard) in getopt.h
2202AC_DEFUN([CF_GETOPT_HEADER],
2203[
2204AC_HAVE_HEADERS(unistd.h getopt.h)
2205AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
2206cf_cv_getopt_header=none
2207for cf_header in stdio.h stdlib.h unistd.h getopt.h
2208do
2209AC_TRY_COMPILE([
2210#include <$cf_header>],
2211[int x = optind; char *y = optarg],
2212[cf_cv_getopt_header=$cf_header
2213 break])
2214done
2215])
2216if test $cf_cv_getopt_header != none ; then
2217 AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
2218fi
2219if test $cf_cv_getopt_header = getopt.h ; then
2220 AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
2221fi
2222])dnl
2223dnl ---------------------------------------------------------------------------
2224dnl CF_GNATPREP_OPT_T version: 1 updated: 2014/08/02 18:37:25
2225dnl -----------------
2226AC_DEFUN([CF_GNATPREP_OPT_T],[
2227AC_CACHE_CHECK(if GNATPREP supports -T option,cf_cv_gnatprep_opt_t,[
2228cf_cv_gnatprep_opt_t=no
2229gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
2230])
2231test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
2232AC_SUBST(GNATPREP_OPTS)
2233])dnl
2234dnl ---------------------------------------------------------------------------
2235dnl CF_GNAT_GENERICS version: 3 updated: 2015/04/17 21:13:04
2236dnl ----------------
2237AC_DEFUN([CF_GNAT_GENERICS],
2238[
2239AC_REQUIRE([CF_GNAT_VERSION])
2240
2241AC_MSG_CHECKING(if GNAT supports generics)
2242case $cf_gnat_version in
2243(3.[[1-9]]*|[[4-9]].*)
2244 cf_gnat_generics=yes
2245 ;;
2246(*)
2247 cf_gnat_generics=no
2248 ;;
2249esac
2250AC_MSG_RESULT($cf_gnat_generics)
2251
2252if test "$cf_gnat_generics" = yes
2253then
2254 cf_compile_generics=generics
2255 cf_generic_objects="\${GENOBJS}"
2256else
2257 cf_compile_generics=
2258 cf_generic_objects=
2259fi
2260
2261AC_SUBST(cf_compile_generics)
2262AC_SUBST(cf_generic_objects)
2263])dnl
2264dnl ---------------------------------------------------------------------------
2265dnl CF_GNAT_PROJECTS version: 8 updated: 2015/04/17 21:13:04
2266dnl ----------------
2267dnl GNAT projects are configured with ".gpr" project files.
2268dnl GNAT libraries are a further development, using the project feature.
2269AC_DEFUN([CF_GNAT_PROJECTS],
2270[
2271AC_REQUIRE([CF_GNAT_VERSION])
2272AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS])
2273
2274cf_gnat_libraries=no
2275cf_gnat_projects=no
2276
2277if test "$enable_gnat_projects" != no ; then
2278AC_MSG_CHECKING(if GNAT supports project files)
2279case $cf_gnat_version in
2280(3.[[0-9]]*)
2281 ;;
2282(*)
2283 case $cf_cv_system_name in
2284 (cygwin*|msys*)
2285 ;;
2286 (*)
2287 mkdir conftest.src conftest.bin conftest.lib
2288 cd conftest.src
2289 rm -rf conftest* *~conftest*
2290 cat >>library.gpr <<CF_EOF
2291project Library is
2292 Kind := External ("LIB_KIND");
2293 for Library_Name use "ConfTest";
2294 for Object_Dir use ".";
2295 for Library_ALI_Dir use External("LIBRARY_DIR");
2296 for Library_Version use External ("SONAME");
2297 for Library_Kind use Kind;
2298 for Library_Dir use External("BUILD_DIR");
2299 Source_Dir := External ("SOURCE_DIR");
2300 for Source_Dirs use (Source_Dir);
2301end Library;
2302CF_EOF
2303 cat >>confpackage.ads <<CF_EOF
2304package ConfPackage is
2305 procedure conftest;
2306end ConfPackage;
2307CF_EOF
2308 cat >>confpackage.adb <<CF_EOF
2309with Text_IO;
2310package body ConfPackage is
2311 procedure conftest is
2312 begin
2313 Text_IO.Put ("Hello World");
2314 Text_IO.New_Line;
2315 end conftest;
2316end ConfPackage;
2317CF_EOF
2318 if ( $cf_ada_make $ADAFLAGS \
2319 -Plibrary.gpr \
2320 -XBUILD_DIR=`cd ../conftest.bin;pwd` \
2321 -XLIBRARY_DIR=`cd ../conftest.lib;pwd` \
2322 -XSOURCE_DIR=`pwd` \
2323 -XSONAME=libConfTest.so.1 \
2324 -XLIB_KIND=static 1>&AC_FD_CC 2>&1 ) ; then
2325 cf_gnat_projects=yes
2326 fi
2327 cd ..
2328 if test -f conftest.lib/confpackage.ali
2329 then
2330 cf_gnat_libraries=yes
2331 fi
2332 rm -rf conftest* *~conftest*
2333 ;;
2334 esac
2335 ;;
2336esac
2337AC_MSG_RESULT($cf_gnat_projects)
2338fi # enable_gnat_projects
2339
2340if test $cf_gnat_projects = yes
2341then
2342 AC_MSG_CHECKING(if GNAT supports libraries)
2343 AC_MSG_RESULT($cf_gnat_libraries)
2344fi
2345
2346if test "$cf_gnat_projects" = yes
2347then
2348 USE_OLD_MAKERULES="#"
2349 USE_GNAT_PROJECTS=""
2350else
2351 USE_OLD_MAKERULES=""
2352 USE_GNAT_PROJECTS="#"
2353fi
2354
2355if test "$cf_gnat_libraries" = yes
2356then
2357 USE_GNAT_LIBRARIES=""
2358else
2359 USE_GNAT_LIBRARIES="#"
2360fi
2361
2362AC_SUBST(USE_OLD_MAKERULES)
2363AC_SUBST(USE_GNAT_PROJECTS)
2364AC_SUBST(USE_GNAT_LIBRARIES)
2365])dnl
2366dnl ---------------------------------------------------------------------------
2367dnl CF_GNAT_SIGINT version: 1 updated: 2011/03/27 20:07:59
2368dnl --------------
2369dnl Check if gnat supports SIGINT, and presumably tasking. For the latter, it
2370dnl is noted that gnat may compile a tasking unit even for configurations which
2371dnl fail at runtime.
2372AC_DEFUN([CF_GNAT_SIGINT],[
2373AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
2374CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
2375
2376package ConfTest is
2377
2378 pragma Warnings (Off); -- the next pragma exists since 3.11p
2379 pragma Unreserve_All_Interrupts;
2380 pragma Warnings (On);
2381
2382 protected Process is
2383 procedure Stop;
2384 function Continue return Boolean;
2385 pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
2386 private
2387 Done : Boolean := False;
2388 end Process;
2389
2390end ConfTest;],
2391[package body ConfTest is
2392 protected body Process is
2393 procedure Stop is
2394 begin
2395 Done := True;
2396 end Stop;
2397 function Continue return Boolean is
2398 begin
2399 return not Done;
2400 end Continue;
2401 end Process;
2402end ConfTest;],
2403 [cf_cv_gnat_sigint=yes],
2404 [cf_cv_gnat_sigint=no])])
2405
2406if test $cf_cv_gnat_sigint = yes ; then
2407 USE_GNAT_SIGINT=""
2408else
2409 USE_GNAT_SIGINT="#"
2410fi
2411AC_SUBST(USE_GNAT_SIGINT)
2412])dnl
2413dnl ---------------------------------------------------------------------------
2414dnl CF_GNAT_TRY_LINK version: 3 updated: 2011/03/19 14:47:45
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302415dnl ----------------
2416dnl Verify that a test program compiles/links with GNAT.
2417dnl $cf_ada_make is set to the program that compiles/links
2418dnl $ADAFLAGS may be set to the GNAT flags.
2419dnl
2420dnl $1 is the text of the spec
2421dnl $2 is the text of the body
2422dnl $3 is the shell command to execute if successful
2423dnl $4 is the shell command to execute if not successful
2424AC_DEFUN([CF_GNAT_TRY_LINK],
2425[
Steve Kondikae271bc2015-11-15 02:50:53 +01002426rm -rf conftest* *~conftest*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302427cat >>conftest.ads <<CF_EOF
2428$1
2429CF_EOF
2430cat >>conftest.adb <<CF_EOF
2431$2
2432CF_EOF
2433if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
2434ifelse($3,, :,[ $3])
2435ifelse($4,,,[else
2436 $4])
2437fi
Steve Kondikae271bc2015-11-15 02:50:53 +01002438rm -rf conftest* *~conftest*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302439])dnl
2440dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002441dnl CF_GNAT_TRY_RUN version: 5 updated: 2011/03/19 14:47:45
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302442dnl ---------------
2443dnl Verify that a test program compiles and runs with GNAT
2444dnl $cf_ada_make is set to the program that compiles/links
2445dnl $ADAFLAGS may be set to the GNAT flags.
2446dnl
2447dnl $1 is the text of the spec
2448dnl $2 is the text of the body
2449dnl $3 is the shell command to execute if successful
2450dnl $4 is the shell command to execute if not successful
2451AC_DEFUN([CF_GNAT_TRY_RUN],
2452[
Steve Kondikae271bc2015-11-15 02:50:53 +01002453rm -rf conftest* *~conftest*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302454cat >>conftest.ads <<CF_EOF
2455$1
2456CF_EOF
2457cat >>conftest.adb <<CF_EOF
2458$2
2459CF_EOF
2460if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
2461 if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
2462ifelse($3,, :,[ $3])
2463ifelse($4,,,[ else
2464 $4])
2465 fi
2466ifelse($4,,,[else
2467 $4])
2468fi
Steve Kondikae271bc2015-11-15 02:50:53 +01002469rm -rf conftest* *~conftest*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302470])dnl
2471dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002472dnl CF_GNAT_VERSION version: 20 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302473dnl ---------------
2474dnl Verify version of GNAT.
2475AC_DEFUN([CF_GNAT_VERSION],
2476[
2477AC_MSG_CHECKING(for gnat version)
Steve Kondikae271bc2015-11-15 02:50:53 +01002478cf_gnat_version=`${cf_ada_make:-gnatmake} -v 2>&1 | \
2479 grep '[[0-9]].[[0-9]][[0-9]]*' |\
2480 sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302481AC_MSG_RESULT($cf_gnat_version)
2482
2483case $cf_gnat_version in
Steve Kondikae271bc2015-11-15 02:50:53 +01002484(3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]])
2485 cf_cv_prog_gnat_correct=yes
2486 ;;
2487(*)
2488 AC_MSG_WARN(Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding.)
2489 cf_cv_prog_gnat_correct=no
2490 ;;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302491esac
2492])
2493dnl ---------------------------------------------------------------------------
2494dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
2495dnl -------------
2496dnl Check if we must define _GNU_SOURCE to get a reasonable value for
2497dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
2498dnl (or misfeature) of glibc2, which breaks portability of many applications,
2499dnl since it is interwoven with GNU extensions.
2500dnl
2501dnl Well, yes we could work around it...
2502AC_DEFUN([CF_GNU_SOURCE],
2503[
2504AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
2505AC_TRY_COMPILE([#include <sys/types.h>],[
2506#ifndef _XOPEN_SOURCE
2507make an error
2508#endif],
2509 [cf_cv_gnu_source=no],
2510 [cf_save="$CPPFLAGS"
2511 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
2512 AC_TRY_COMPILE([#include <sys/types.h>],[
2513#ifdef _XOPEN_SOURCE
2514make an error
2515#endif],
2516 [cf_cv_gnu_source=no],
2517 [cf_cv_gnu_source=yes])
2518 CPPFLAGS="$cf_save"
2519 ])
2520])
2521test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
2522])dnl
2523dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002524dnl CF_GPP_LIBRARY version: 12 updated: 2015/04/17 21:13:04
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302525dnl --------------
2526dnl If we're trying to use g++, test if libg++ is installed (a rather common
2527dnl problem :-). If we have the compiler but no library, we'll be able to
2528dnl configure, but won't be able to build the c++ demo program.
2529AC_DEFUN([CF_GPP_LIBRARY],
2530[
2531cf_cxx_library=unknown
Steve Kondikae271bc2015-11-15 02:50:53 +01002532case $cf_cv_system_name in
2533(os2*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302534 cf_gpp_libname=gpp
2535 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01002536(*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302537 cf_gpp_libname=g++
2538 ;;
2539esac
2540if test "$GXX" = yes; then
2541 AC_MSG_CHECKING([for lib$cf_gpp_libname])
2542 cf_save="$LIBS"
Steve Kondikae271bc2015-11-15 02:50:53 +01002543 CF_ADD_LIB($cf_gpp_libname)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302544 AC_TRY_LINK([
2545#include <$cf_gpp_libname/builtin.h>
2546 ],
2547 [two_arg_error_handler_t foo2 = lib_error_handler],
2548 [cf_cxx_library=yes
Steve Kondikae271bc2015-11-15 02:50:53 +01002549 CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302550 if test "$cf_gpp_libname" = cpp ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01002551 AC_DEFINE(HAVE_GPP_BUILTIN_H,1,[Define to 1 if we have gpp builtin.h])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302552 else
Steve Kondikae271bc2015-11-15 02:50:53 +01002553 AC_DEFINE(HAVE_GXX_BUILTIN_H,1,[Define to 1 if we have g++ builtin.h])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302554 fi],
2555 [AC_TRY_LINK([
2556#include <builtin.h>
2557 ],
2558 [two_arg_error_handler_t foo2 = lib_error_handler],
2559 [cf_cxx_library=yes
Steve Kondikae271bc2015-11-15 02:50:53 +01002560 CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
2561 AC_DEFINE(HAVE_BUILTIN_H,1,[Define to 1 if we have builtin.h])],
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302562 [cf_cxx_library=no])])
2563 LIBS="$cf_save"
2564 AC_MSG_RESULT($cf_cxx_library)
2565fi
2566])dnl
2567dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002568dnl CF_GXX_VERSION version: 7 updated: 2012/06/16 14:55:39
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302569dnl --------------
2570dnl Check for version of g++
2571AC_DEFUN([CF_GXX_VERSION],[
2572AC_REQUIRE([AC_PROG_CPP])
2573GXX_VERSION=none
2574if test "$GXX" = yes; then
Steve Kondikae271bc2015-11-15 02:50:53 +01002575 AC_MSG_CHECKING(version of ${CXX:-g++})
2576 GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302577 test -z "$GXX_VERSION" && GXX_VERSION=unknown
2578 AC_MSG_RESULT($GXX_VERSION)
2579fi
2580])dnl
2581dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002582dnl CF_GXX_WARNINGS version: 9 updated: 2015/04/17 21:13:04
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302583dnl ---------------
2584dnl Check if the compiler supports useful warning options.
2585dnl
2586dnl Most of gcc's options apply to g++, except:
2587dnl -Wbad-function-cast
2588dnl -Wmissing-declarations
2589dnl -Wnested-externs
2590dnl
2591dnl Omit a few (for now):
2592dnl -Winline
2593dnl
2594dnl Parameter:
2595dnl $1 is an optional list of g++ warning flags that a particular
2596dnl application might want to use, e.g., "no-unused" for
2597dnl -Wno-unused
2598dnl Special:
2599dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
2600dnl
2601AC_DEFUN([CF_GXX_WARNINGS],
2602[
2603
2604CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
Steve Kondikae271bc2015-11-15 02:50:53 +01002605CF_CLANG_COMPILER(GXX,CLANG_CPLUSPLUS,CXXFLAGS)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302606
2607AC_REQUIRE([CF_GXX_VERSION])
2608
2609AC_LANG_SAVE
2610AC_LANG_CPLUSPLUS
2611
2612cat > conftest.$ac_ext <<EOF
2613#line __oline__ "configure"
2614int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
2615EOF
2616
2617if test "$INTEL_CPLUSPLUS" = yes
2618then
2619# The "-wdXXX" options suppress warnings:
2620# remark #1419: external declaration in primary source file
2621# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
2622# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
2623# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
2624# remark #193: zero used for undefined preprocessing identifier
2625# remark #593: variable "curs_sb_left_arrow" was set but never used
2626# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
2627# remark #869: parameter "tw" was never referenced
2628# remark #981: operands are evaluated in unspecified order
2629# warning #269: invalid format string conversion
2630
2631 AC_CHECKING([for $CC warning options])
2632 cf_save_CXXFLAGS="$CXXFLAGS"
2633 EXTRA_CXXFLAGS="-Wall"
2634 for cf_opt in \
2635 wd1419 \
2636 wd1682 \
2637 wd1683 \
2638 wd1684 \
2639 wd193 \
2640 wd279 \
2641 wd593 \
2642 wd810 \
2643 wd869 \
2644 wd981
2645 do
2646 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
2647 if AC_TRY_EVAL(ac_compile); then
2648 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2649 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
2650 fi
2651 done
2652 CXXFLAGS="$cf_save_CXXFLAGS"
2653
2654elif test "$GXX" = yes
2655then
2656 AC_CHECKING([for $CXX warning options])
2657 cf_save_CXXFLAGS="$CXXFLAGS"
2658 EXTRA_CXXFLAGS="-W -Wall"
2659 cf_gxx_extra_warnings=""
2660 test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
2661 case "$GCC_VERSION" in
Steve Kondikae271bc2015-11-15 02:50:53 +01002662 ([[1-2]].*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302663 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01002664 (*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302665 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
2666 ;;
2667 esac
2668 for cf_opt in \
2669 Wabi \
2670 fabi-version=0 \
Steve Kondikae271bc2015-11-15 02:50:53 +01002671 Wextra \
2672 Wignored-qualifiers \
2673 Wlogical-op \
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302674 Woverloaded-virtual \
2675 Wsign-promo \
2676 Wsynth \
2677 Wold-style-cast \
2678 Wcast-align \
2679 Wcast-qual \
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302680 Wpointer-arith \
2681 Wshadow \
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302682 Wundef $cf_gxx_extra_warnings $1
2683 do
2684 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
2685 if AC_TRY_EVAL(ac_compile); then
2686 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2687 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
2688 else
2689 test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
2690 fi
2691 done
2692 CXXFLAGS="$cf_save_CXXFLAGS"
2693fi
2694
Steve Kondikae271bc2015-11-15 02:50:53 +01002695rm -rf conftest*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302696AC_LANG_RESTORE
2697AC_SUBST(EXTRA_CXXFLAGS)
2698])dnl
2699dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002700dnl CF_HASHED_DB version: 7 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302701dnl ------------
2702dnl Look for an instance of the Berkeley hashed database.
2703dnl
2704dnl $1 = optional parameter, to specify install-prefix for the database.
2705AC_DEFUN([CF_HASHED_DB],
2706[
2707ifelse([$1],,,[
Steve Kondikae271bc2015-11-15 02:50:53 +01002708case $1 in
2709(yes|*able*)
2710 ;;
2711(*)
2712 if test -d "$1" ; then
2713 CF_ADD_INCDIR($1/include)
2714 CF_ADD_LIBDIR($1/lib)
2715 else
2716 case "$1" in
2717 (./*|../*|/*)
2718 AC_MSG_WARN(no such directory $1)
2719 ;;
2720 (*)
2721 CF_FIND_SUB_INCDIR($1)
2722 CF_FIND_SUB_LIBDIR($1)
2723 ;;
2724 esac
2725 fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302726esac
2727])
2728AC_CHECK_HEADER(db.h,[
2729CF_HASHED_DB_VERSION
2730if test "$cf_cv_hashed_db_version" = unknown ; then
2731 AC_MSG_ERROR(Cannot determine version of db)
2732else
2733 CF_HASHED_DB_LIBS
2734 if test "$cf_cv_hashed_db_libs" = unknown ; then
2735 AC_MSG_ERROR(Cannot determine library for db)
2736 elif test "$cf_cv_hashed_db_libs" != default ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01002737 CF_ADD_LIB($cf_cv_hashed_db_libs)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302738 fi
2739fi
2740],[
2741 AC_MSG_ERROR(Cannot find db.h)
2742])
2743])dnl
2744dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002745dnl CF_HASHED_DB_LIBS version: 9 updated: 2010/05/29 16:31:02
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302746dnl -----------------
2747dnl Given that we have the header and version for hashed database, find the
2748dnl library information.
2749AC_DEFUN([CF_HASHED_DB_LIBS],
2750[
2751AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
2752cf_cv_hashed_db_libs=unknown
2753for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
2754do
2755 cf_save_libs="$LIBS"
2756 if test -n "$cf_db_libs"; then
Steve Kondikae271bc2015-11-15 02:50:53 +01002757 CF_ADD_LIB($cf_db_libs)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302758 fi
2759 CF_MSG_LOG(checking for library "$cf_db_libs")
2760 AC_TRY_LINK([
2761$ac_includes_default
2762#include <db.h>
2763],[
2764 char *path = "/tmp/foo";
2765#ifdef DB_VERSION_MAJOR
2766#if DB_VERSION_MAJOR >= 4
2767 DB *result = 0;
2768 db_create(&result, NULL, 0);
2769 result->open(result,
2770 NULL,
2771 path,
2772 path,
2773 DB_HASH,
2774 DB_CREATE,
2775 0644);
2776#elif DB_VERSION_MAJOR >= 3
2777 DB *result = 0;
2778 db_create(&result, NULL, 0);
2779 result->open(result,
2780 path,
2781 path,
2782 DB_HASH,
2783 DB_CREATE,
2784 0644);
2785#elif DB_VERSION_MAJOR >= 2
2786 DB *result = 0;
2787 db_open(path,
2788 DB_HASH,
2789 DB_CREATE,
2790 0644,
2791 (DB_ENV *) 0,
2792 (DB_INFO *) 0,
2793 &result);
2794#endif /* DB_VERSION_MAJOR */
2795#else
2796 DB *result = dbopen(path,
2797 2,
2798 0644,
2799 DB_HASH,
2800 0);
2801#endif
2802 ${cf_cv_main_return:-return}(result != 0)
2803],[
2804 if test -n "$cf_db_libs" ; then
2805 cf_cv_hashed_db_libs=$cf_db_libs
2806 else
2807 cf_cv_hashed_db_libs=default
2808 fi
2809 LIBS="$cf_save_libs"
2810 break
2811])
2812 LIBS="$cf_save_libs"
2813done
2814])
2815])dnl
2816dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002817dnl CF_HASHED_DB_VERSION version: 4 updated: 2014/04/12 16:47:01
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302818dnl --------------------
2819dnl Given that we have the header file for hashed database, find the version
2820dnl information.
2821AC_DEFUN([CF_HASHED_DB_VERSION],
2822[
2823AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
2824cf_cv_hashed_db_version=unknown
2825
Steve Kondikae271bc2015-11-15 02:50:53 +01002826for cf_db_version in 1 2 3 4 5 6
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302827do
2828 CF_MSG_LOG(checking for db version $cf_db_version)
2829 AC_TRY_COMPILE([
2830$ac_includes_default
2831#include <db.h>
2832
2833#ifdef DB_VERSION_MAJOR
2834 /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
2835#if $cf_db_version == DB_VERSION_MAJOR
2836 /* ok */
2837#else
2838 make an error
2839#endif
2840#else
2841#if $cf_db_version == 1
2842 /* ok: assuming this is DB 1.8.5 */
2843#else
2844 make an error
2845#endif
2846#endif
2847],[DBT *foo = 0],[
2848 cf_cv_hashed_db_version=$cf_db_version
2849 break
2850 ])
2851done
2852])
2853])dnl
2854dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002855dnl CF_HEADER_PATH version: 13 updated: 2015/04/15 19:08:48
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302856dnl --------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002857dnl Construct a search-list of directories for a nonstandard header-file
2858dnl
2859dnl Parameters
2860dnl $1 = the variable to return as result
2861dnl $2 = the package name
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302862AC_DEFUN([CF_HEADER_PATH],
Steve Kondikae271bc2015-11-15 02:50:53 +01002863[
2864$1=
2865
2866# collect the current set of include-directories from compiler flags
2867cf_header_path_list=""
2868if test -n "${CFLAGS}${CPPFLAGS}" ; then
2869 for cf_header_path in $CPPFLAGS $CFLAGS
2870 do
2871 case $cf_header_path in
2872 (-I*)
2873 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
2874 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
2875 cf_header_path_list="$cf_header_path_list [$]$1"
2876 ;;
2877 esac
2878 done
2879fi
2880
2881# add the variations for the package we are looking for
2882CF_SUBDIR_PATH($1,$2,include)
2883
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302884test "$includedir" != NONE && \
2885test "$includedir" != "/usr/include" && \
2886test -d "$includedir" && {
2887 test -d $includedir && $1="[$]$1 $includedir"
2888 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
2889}
2890
2891test "$oldincludedir" != NONE && \
2892test "$oldincludedir" != "/usr/include" && \
2893test -d "$oldincludedir" && {
2894 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
2895 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
2896}
2897
Steve Kondikae271bc2015-11-15 02:50:53 +01002898$1="[$]$1 $cf_header_path_list"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302899])dnl
2900dnl ---------------------------------------------------------------------------
2901dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
2902dnl ---------------
2903dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
2904AC_DEFUN([CF_HELP_MESSAGE],
2905[AC_DIVERT_HELP([$1])dnl
2906])dnl
2907dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002908dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302909dnl ---------------
2910dnl Construct the list of include-options according to whether we're building
Steve Kondikae271bc2015-11-15 02:50:53 +01002911dnl in the source directory or using '--srcdir=DIR' option.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302912AC_DEFUN([CF_INCLUDE_DIRS],
2913[
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302914if test "$srcdir" != "."; then
2915 CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
2916fi
Steve Kondikae271bc2015-11-15 02:50:53 +01002917CPPFLAGS="-I../include $CPPFLAGS"
2918if test "$srcdir" != "."; then
2919 CPPFLAGS="-I\${srcdir} $CPPFLAGS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302920fi
Steve Kondikae271bc2015-11-15 02:50:53 +01002921CPPFLAGS="-I. $CPPFLAGS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302922AC_SUBST(CPPFLAGS)
2923])dnl
2924dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002925dnl CF_INTEL_COMPILER version: 7 updated: 2015/04/12 15:39:00
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302926dnl -----------------
2927dnl Check if the given compiler is really the Intel compiler for Linux. It
2928dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2929dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2930dnl
2931dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2932dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
2933dnl the wrappers for gcc and g++ warnings.
2934dnl
2935dnl $1 = GCC (default) or GXX
2936dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2937dnl $3 = CFLAGS (default) or CXXFLAGS
2938AC_DEFUN([CF_INTEL_COMPILER],[
Steve Kondikae271bc2015-11-15 02:50:53 +01002939AC_REQUIRE([AC_CANONICAL_HOST])
2940ifelse([$2],,INTEL_COMPILER,[$2])=no
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302941
Steve Kondikae271bc2015-11-15 02:50:53 +01002942if test "$ifelse([$1],,[$1],GCC)" = yes ; then
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302943 case $host_os in
Steve Kondikae271bc2015-11-15 02:50:53 +01002944 (linux*|gnu*)
2945 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
2946 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
2947 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302948 AC_TRY_COMPILE([],[
2949#ifdef __INTEL_COMPILER
2950#else
2951make an error
2952#endif
Steve Kondikae271bc2015-11-15 02:50:53 +01002953],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
2954cf_save_CFLAGS="$cf_save_CFLAGS -we147"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302955],[])
Steve Kondikae271bc2015-11-15 02:50:53 +01002956 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
2957 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302958 ;;
2959 esac
2960fi
2961])dnl
2962dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002963dnl CF_ISASCII version: 4 updated: 2012/10/06 17:56:13
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302964dnl ----------
2965dnl Check if we have either a function or macro for 'isascii()'.
2966AC_DEFUN([CF_ISASCII],
2967[
2968AC_MSG_CHECKING(for isascii)
2969AC_CACHE_VAL(cf_cv_have_isascii,[
2970 AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
2971 [cf_cv_have_isascii=yes],
2972 [cf_cv_have_isascii=no])
2973])dnl
2974AC_MSG_RESULT($cf_cv_have_isascii)
Steve Kondikae271bc2015-11-15 02:50:53 +01002975test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302976])dnl
2977dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01002978dnl CF_LARGEFILE version: 9 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302979dnl ------------
2980dnl Add checks for large file support.
2981AC_DEFUN([CF_LARGEFILE],[
2982ifdef([AC_FUNC_FSEEKO],[
Steve Kondikae271bc2015-11-15 02:50:53 +01002983 AC_SYS_LARGEFILE
2984 if test "$enable_largefile" != no ; then
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302985 AC_FUNC_FSEEKO
2986
2987 # Normally we would collect these definitions in the config.h,
2988 # but (like _XOPEN_SOURCE), some environments rely on having these
2989 # defined before any of the system headers are included. Another
2990 # case comes up with C++, e.g., on AIX the compiler compiles the
2991 # header files by themselves before looking at the body files it is
2992 # told to compile. For ncurses, those header files do not include
2993 # the config.h
2994 test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
2995 test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
2996 test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
2997
2998 AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
2999 AC_TRY_COMPILE([
3000#include <sys/types.h>
3001#include <dirent.h>
3002 ],[
3003 /* if transitional largefile support is setup, this is true */
3004 extern struct dirent64 * readdir(DIR *);
3005 struct dirent64 *x = readdir((DIR *)0);
3006 struct dirent *y = readdir((DIR *)0);
3007 int z = x - y;
3008 ],
3009 [cf_cv_struct_dirent64=yes],
3010 [cf_cv_struct_dirent64=no])
3011 ])
Steve Kondikae271bc2015-11-15 02:50:53 +01003012 test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
3013 fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303014])
3015])
3016dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01003017dnl CF_LDFLAGS_STATIC version: 12 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303018dnl -----------------
3019dnl Check for compiler/linker flags used to temporarily force usage of static
3020dnl libraries. This depends on the compiler and platform. Use this to help
3021dnl ensure that the linker picks up a given library based on its position in
3022dnl the list of linker options and libraries.
3023AC_DEFUN([CF_LDFLAGS_STATIC],[
3024
3025if test "$GCC" = yes ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01003026 case $cf_cv_system_name in
3027 (OS/2*|os2*|aix[[4]]*|solaris2.1[[0-9]]|darwin*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303028 LDFLAGS_STATIC=
3029 LDFLAGS_SHARED=
3030 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003031 (*) # normally, except when broken
3032 LDFLAGS_STATIC=-static
3033 LDFLAGS_SHARED=-dynamic
3034 ;;
3035 esac
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303036else
Steve Kondikae271bc2015-11-15 02:50:53 +01003037 case $cf_cv_system_name in
3038 (aix[[4-7]]*) # from ld manpage
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303039 LDFLAGS_STATIC=-bstatic
3040 LDFLAGS_SHARED=-bdynamic
3041 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003042 (hpux*) # from ld manpage for hpux10.20, hpux11.11
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303043 # We could also use just "archive" and "shared".
3044 LDFLAGS_STATIC=-Wl,-a,archive_shared
3045 LDFLAGS_SHARED=-Wl,-a,shared_archive
3046 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003047 (irix*) # from ld manpage IRIX64
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303048 LDFLAGS_STATIC=-Bstatic
3049 LDFLAGS_SHARED=-Bdynamic
3050 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003051 (osf[[45]]*) # from ld manpage osf4.0d, osf5.1
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303052 # alternative "-oldstyle_liblookup" (not in cc manpage)
Steve Kondikae271bc2015-11-15 02:50:53 +01003053 LDFLAGS_STATIC=-noso
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303054 LDFLAGS_SHARED=-so_archive
3055 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003056 (solaris2*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303057 LDFLAGS_STATIC=-Bstatic
3058 LDFLAGS_SHARED=-Bdynamic
3059 ;;
3060 esac
3061fi
3062
Steve Kondikae271bc2015-11-15 02:50:53 +01003063if test -n "$LDFLAGS_STATIC" && test -n "$LDFLAGS_SHARED"
3064then
3065 AC_MSG_CHECKING(if linker supports switching between static/dynamic)
3066
3067 rm -f libconftest.a
3068 cat >conftest.$ac_ext <<EOF
3069#line __oline__ "configure"
3070#include <stdio.h>
3071int cf_ldflags_static(FILE *fp) { return fflush(fp); }
3072EOF
3073 if AC_TRY_EVAL(ac_compile) ; then
3074 ( $AR $ARFLAGS libconftest.a conftest.o ) 2>&AC_FD_CC 1>/dev/null
3075 ( eval $RANLIB libconftest.a ) 2>&AC_FD_CC >/dev/null
3076 fi
3077 rm -f conftest.*
3078
3079 cf_save_LIBS="$LIBS"
3080
3081 LIBS="$LDFLAGS_STATIC -L`pwd` -lconftest $LDFLAGS_DYNAMIC $LIBS"
3082 AC_TRY_LINK([
3083#line __oline__ "configure"
3084#include <stdio.h>
3085int cf_ldflags_static(FILE *fp);
3086],[
3087 return cf_ldflags_static(stdin);
3088],[
3089 # some linkers simply ignore the -dynamic
3090 case x`file conftest$ac_exeext 2>/dev/null` in
3091 (*static*)
3092 cf_ldflags_static=no
3093 ;;
3094 (*)
3095 cf_ldflags_static=yes
3096 ;;
3097 esac
3098],[cf_ldflags_static=no])
3099
3100 rm -f libconftest.*
3101 LIBS="$cf_save_LIBS"
3102
3103 AC_MSG_RESULT($cf_ldflags_static)
3104
3105 if test $cf_ldflags_static != yes
3106 then
3107 LDFLAGS_STATIC=
3108 LDFLAGS_SHARED=
3109 fi
3110else
3111 LDFLAGS_STATIC=
3112 LDFLAGS_SHARED=
3113fi
3114
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303115AC_SUBST(LDFLAGS_STATIC)
3116AC_SUBST(LDFLAGS_SHARED)
3117])
3118dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01003119dnl CF_LD_RPATH_OPT version: 6 updated: 2015/04/12 15:39:00
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303120dnl ---------------
Steve Kondikae271bc2015-11-15 02:50:53 +01003121dnl For the given system and compiler, find the compiler flags to pass to the
3122dnl loader to use the "rpath" feature.
3123AC_DEFUN([CF_LD_RPATH_OPT],
3124[
3125AC_REQUIRE([CF_CHECK_CACHE])
3126
3127LD_RPATH_OPT=
3128AC_MSG_CHECKING(for an rpath option)
3129case $cf_cv_system_name in
3130(irix*)
3131 if test "$GCC" = yes; then
3132 LD_RPATH_OPT="-Wl,-rpath,"
3133 else
3134 LD_RPATH_OPT="-rpath "
3135 fi
3136 ;;
3137(linux*|gnu*|k*bsd*-gnu)
3138 LD_RPATH_OPT="-Wl,-rpath,"
3139 ;;
3140(openbsd[[2-9]].*|mirbsd*)
3141 LD_RPATH_OPT="-Wl,-rpath,"
3142 ;;
3143(dragonfly*|freebsd*)
3144 LD_RPATH_OPT="-rpath "
3145 ;;
3146(netbsd*)
3147 LD_RPATH_OPT="-Wl,-rpath,"
3148 ;;
3149(osf*|mls+*)
3150 LD_RPATH_OPT="-rpath "
3151 ;;
3152(solaris2*)
3153 LD_RPATH_OPT="-R"
3154 ;;
3155(*)
3156 ;;
3157esac
3158AC_MSG_RESULT($LD_RPATH_OPT)
3159
3160case "x$LD_RPATH_OPT" in
3161(x-R*)
3162 AC_MSG_CHECKING(if we need a space after rpath option)
3163 cf_save_LIBS="$LIBS"
3164 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
3165 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
3166 LIBS="$cf_save_LIBS"
3167 AC_MSG_RESULT($cf_rpath_space)
3168 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
3169 ;;
3170esac
3171])dnl
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303172dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01003173dnl CF_LIBRARY_PATH version: 10 updated: 2015/04/15 19:08:48
3174dnl ---------------
3175dnl Construct a search-list of directories for a nonstandard library-file
3176dnl
3177dnl Parameters
3178dnl $1 = the variable to return as result
3179dnl $2 = the package name
3180AC_DEFUN([CF_LIBRARY_PATH],
3181[
3182$1=
3183cf_library_path_list=""
3184if test -n "${LDFLAGS}${LIBS}" ; then
3185 for cf_library_path in $LDFLAGS $LIBS
3186 do
3187 case $cf_library_path in
3188 (-L*)
3189 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
3190 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
3191 cf_library_path_list="$cf_library_path_list [$]$1"
3192 ;;
3193 esac
3194 done
3195fi
3196
3197CF_SUBDIR_PATH($1,$2,lib)
3198
3199$1="$cf_library_path_list [$]$1"
3200])dnl
3201dnl ---------------------------------------------------------------------------
3202dnl CF_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
3203dnl ------------------
3204AC_DEFUN([CF_LIBTOOL_VERSION],[
3205if test -n "$LIBTOOL" && test "$LIBTOOL" != none
3206then
3207 cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
3208else
3209 cf_cv_libtool_version=
3210fi
3211test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
3212])dnl
3213dnl ---------------------------------------------------------------------------
3214dnl CF_LIB_PREFIX version: 11 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303215dnl -------------
3216dnl Compute the library-prefix for the given host system
3217dnl $1 = variable to set
Steve Kondikae271bc2015-11-15 02:50:53 +01003218define([CF_LIB_PREFIX],
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303219[
Steve Kondikae271bc2015-11-15 02:50:53 +01003220 case $cf_cv_system_name in
3221 (OS/2*|os2*)
3222 LIB_PREFIX=''
3223 ;;
3224 (*) LIB_PREFIX='lib'
3225 ;;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303226 esac
3227ifelse($1,,,[$1=$LIB_PREFIX])
3228 AC_SUBST(LIB_PREFIX)
3229])dnl
3230dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01003231dnl CF_LIB_RULES version: 83 updated: 2015/08/05 20:44:28
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303232dnl ------------
3233dnl Append definitions and rules for the given models to the subdirectory
3234dnl Makefiles, and the recursion rule for the top-level Makefile. If the
Steve Kondikae271bc2015-11-15 02:50:53 +01003235dnl subdirectory is a library-source directory, modify the Libs_To_Make list in
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303236dnl the corresponding makefile to list the models that we'll generate.
3237dnl
3238dnl For shared libraries, make a list of symbolic links to construct when
3239dnl generating each library. The convention used for Linux is the simplest
3240dnl one:
3241dnl lib<name>.so ->
3242dnl lib<name>.so.<major> ->
3243dnl lib<name>.so.<maj>.<minor>
Steve Kondikae271bc2015-11-15 02:50:53 +01003244dnl
3245dnl Note: Libs_To_Make is mixed case, since it is not a pure autoconf variable.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303246AC_DEFUN([CF_LIB_RULES],
3247[
Steve Kondikae271bc2015-11-15 02:50:53 +01003248cf_prefix=$LIB_PREFIX
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303249AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
3250
Steve Kondikae271bc2015-11-15 02:50:53 +01003251case $cf_cv_shlib_version in
3252(cygdll|msysdll|mingw)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303253 TINFO_NAME=$TINFO_ARG_SUFFIX
3254 TINFO_SUFFIX=.dll
Steve Kondikae271bc2015-11-15 02:50:53 +01003255 ;;
3256esac
3257
3258if test -n "$TINFO_SUFFIX" ; then
3259 case $TINFO_SUFFIX in
3260 (tw*)
3261 TINFO_NAME="${TINFO_NAME}tw${EXTRA_SUFFIX}"
3262 TINFO_SUFFIX=`echo $TINFO_SUFFIX | sed 's/^tw'$EXTRA_SUFFIX'//'`
3263 ;;
3264 (t*)
3265 TINFO_NAME="${TINFO_NAME}t${EXTRA_SUFFIX}"
3266 TINFO_SUFFIX=`echo $TINFO_SUFFIX | sed 's/^t'$EXTRA_SUFFIX'//'`
3267 ;;
3268 (w*)
3269 TINFO_NAME="${TINFO_NAME}w${EXTRA_SUFFIX}"
3270 TINFO_SUFFIX=`echo $TINFO_SUFFIX | sed 's/^w'$EXTRA_SUFFIX'//'`
3271 ;;
3272 esac
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303273fi
3274
3275for cf_dir in $SRC_SUBDIRS
3276do
3277 if test ! -d $srcdir/$cf_dir ; then
3278 continue
3279 elif test -f $srcdir/$cf_dir/modules; then
3280
3281 SHARED_LIB=
Steve Kondikae271bc2015-11-15 02:50:53 +01003282 Libs_To_Make=
3283
3284 cf_sed_options=
3285 if test -n "${cf_cv_abi_version}" && test "x${cf_cv_abi_version}" != "x5"
3286 then
3287 cf_sed_options="$cf_sed_options -e \"s/NCURSES\\([[WT]]\\+\\)\?_/NCURSES\\1${cf_cv_abi_version}_/g\""
3288 cf_sed_options="$cf_sed_options -e \"/deprecated in ABI${cf_cv_abi_version}/d\""
3289 fi
3290
3291 if test "x$WILDCARD_SYMS" = xno
3292 then
3293 cf_sed_options="$cf_sed_options -e \"s/_\*;//g\""
3294 fi
3295
3296 if test "x$cf_sed_options" != "x"
3297 then
3298 cat >>$cf_dir/Makefile <<CF_EOF
3299
3300# Generated by CF_LIB_RULES
3301resulting.map: $UNALTERED_SYMS
3302 sed $cf_sed_options < $UNALTERED_SYMS >\[$]@
3303
3304clean::
3305 rm -f resulting.map
3306CF_EOF
3307 fi
3308
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303309 for cf_item in $cf_LIST_MODELS
3310 do
3311 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
Steve Kondikae271bc2015-11-15 02:50:53 +01003312 cf_libname=$cf_dir
3313 test "$cf_dir" = c++ && cf_libname=ncurses++
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303314 if test $cf_item = shared ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01003315 if test -n "${LIB_SUFFIX}"
3316 then
3317 cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${USE_LIB_SUFFIX}"'//'`
3318 else
3319 cf_shared_suffix="$cf_suffix"
3320 fi
3321 if test "$cf_cv_do_symlinks" = yes ; then
3322 cf_version_name=
3323
3324 case "$cf_cv_shlib_version" in
3325 (rel)
3326 cf_version_name=REL_VERSION
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303327 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003328 (abi)
3329 cf_version_name=ABI_VERSION
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303330 ;;
3331 esac
Steve Kondikae271bc2015-11-15 02:50:53 +01003332
3333 if test -n "$cf_version_name"
3334 then
3335 case "$cf_cv_system_name" in
3336 (darwin*)
3337 # "w", etc?
3338 cf_suffix="${USE_LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix"
3339 ;;
3340 (*)
3341 cf_suffix="$cf_suffix"'.${'$cf_version_name'}'
3342 ;;
3343 esac
3344 fi
3345 if test -n "${USE_LIB_SUFFIX}"
3346 then
3347 cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${USE_LIB_SUFFIX}"'//'`
3348 else
3349 cf_shared_suffix="$cf_suffix"
3350 fi
3351 fi
3352 # cygwin needs import library, and has unique naming convention
3353 # use autodetected ${cf_prefix} for import lib and static lib, but
3354 # use 'cyg' prefix for shared lib.
3355 case $cf_cv_shlib_version in
3356 (cygdll)
3357 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
3358 cf_add_lib="../lib/cyg${cf_libname}${cf_cygsuf}"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303359 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003360 (msysdll)
3361 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
3362 cf_add_lib="../lib/msys-${cf_libname}${cf_cygsuf}"
3363 ;;
3364 (mingw)
3365 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
3366 cf_add_lib="../lib/lib${cf_libname}${cf_cygsuf}"
3367 ;;
3368 (*)
3369 cf_add_lib=
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303370 ;;
3371 esac
Steve Kondikae271bc2015-11-15 02:50:53 +01003372 if test -n "$cf_add_lib"
3373 then
3374 Libs_To_Make="$Libs_To_Make $cf_add_lib"
3375 continue
3376 fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303377 fi
Steve Kondikae271bc2015-11-15 02:50:53 +01003378 cf_add_lib="../lib/${cf_prefix}${cf_libname}${cf_suffix}"
3379 Libs_To_Make="$Libs_To_Make $cf_add_lib"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303380 done
3381
3382 if test $cf_dir = ncurses ; then
3383 cf_subsets="$LIB_SUBSETS"
3384 cf_r_parts="$cf_subsets"
Steve Kondikae271bc2015-11-15 02:50:53 +01003385 cf_liblist="$Libs_To_Make"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303386
3387 while test -n "$cf_r_parts"
3388 do
3389 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
3390 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
3391 if test "$cf_l_parts" != "$cf_r_parts" ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01003392 cf_add_lib=
3393 case $cf_l_parts in
3394 (*termlib*)
3395 cf_add_lib=`echo $cf_liblist |sed -e s%${LIB_NAME}${USE_LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303396 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003397 (*ticlib*)
3398 cf_add_lib=`echo $cf_liblist |sed -e s%${LIB_NAME}${USE_LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303399 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003400 (*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303401 break
3402 ;;
3403 esac
Steve Kondikae271bc2015-11-15 02:50:53 +01003404 if test -n "$cf_add_lib"; then
3405 Libs_To_Make="$cf_add_lib $Libs_To_Make"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303406 fi
3407 else
3408 break
3409 fi
3410 done
3411 else
3412 cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
3413 fi
3414
Steve Kondikae271bc2015-11-15 02:50:53 +01003415 if test $cf_dir = c++; then
3416 if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then
3417 cf_list=
3418 for cf_item in $Libs_To_Make
3419 do
3420 case $cf_item in
3421 (*.a)
3422 ;;
3423 (*)
3424 cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"`
3425 ;;
3426 esac
3427 for cf_test in $cf_list
3428 do
3429 if test "$cf_test" = "$cf_item"
3430 then
3431 cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'`
3432 cf_item=
3433 break
3434 fi
3435 done
3436 test -n "$cf_item" && cf_list="$cf_list $cf_item"
3437 done
3438 Libs_To_Make="$cf_list"
3439 fi
3440 fi
3441
3442 sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303443 -e "s%@SHARED_LIB@%$SHARED_LIB%" \
3444 $cf_dir/Makefile >$cf_dir/Makefile.out
3445 mv $cf_dir/Makefile.out $cf_dir/Makefile
3446
3447 $AWK -f $srcdir/mk-0th.awk \
Steve Kondikae271bc2015-11-15 02:50:53 +01003448 libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303449 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
3450
3451 for cf_subset in $cf_subsets
3452 do
3453 cf_subdirs=
3454 for cf_item in $cf_LIST_MODELS
3455 do
Steve Kondikae271bc2015-11-15 02:50:53 +01003456
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303457 echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
3458 CF_UPPER(cf_ITEM,$cf_item)
Steve Kondikae271bc2015-11-15 02:50:53 +01003459
3460 CXX_MODEL=$cf_ITEM
3461 if test "$CXX_MODEL" = SHARED; then
3462 case $cf_cv_shlib_version in
3463 (cygdll|msysdll|mingw)
3464 test "x$with_shared_cxx" = xno && CF_VERBOSE(overriding CXX_MODEL to SHARED)
3465 with_shared_cxx=yes
3466 ;;
3467 (*)
3468 test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL
3469 ;;
3470 esac
3471 fi
3472
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303473 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
3474 CF_OBJ_SUBDIR($cf_item,cf_subdir)
3475
3476 # Test for case where we build libtinfo with a different name.
3477 cf_libname=$cf_dir
3478 if test $cf_dir = ncurses ; then
3479 case $cf_subset in
Steve Kondikae271bc2015-11-15 02:50:53 +01003480 (*base*)
3481 cf_libname=${cf_libname}$USE_LIB_SUFFIX
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303482 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003483 (*termlib*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303484 cf_libname=$TINFO_LIB_SUFFIX
3485 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003486 (ticlib*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303487 cf_libname=$TICS_LIB_SUFFIX
3488 ;;
3489 esac
Steve Kondikae271bc2015-11-15 02:50:53 +01003490 elif test $cf_dir = c++ ; then
3491 cf_libname=ncurses++$USE_LIB_SUFFIX
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303492 else
Steve Kondikae271bc2015-11-15 02:50:53 +01003493 cf_libname=${cf_libname}$USE_LIB_SUFFIX
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303494 fi
Steve Kondikae271bc2015-11-15 02:50:53 +01003495 if test -n "${USE_ARG_SUFFIX}" ; then
3496 # undo $USE_LIB_SUFFIX add-on in CF_LIB_SUFFIX
3497 cf_suffix=`echo $cf_suffix |sed -e "s%^${USE_LIB_SUFFIX}%%"`
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303498 fi
3499
3500 # These dependencies really are for development, not
3501 # builds, but they are useful in porting, too.
3502 cf_depend="../include/ncurses_cfg.h"
3503 if test "$srcdir" = "."; then
3504 cf_reldir="."
3505 else
3506 cf_reldir="\${srcdir}"
3507 fi
3508
3509 if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
3510 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
3511 elif test -f $srcdir/$cf_dir/curses.priv.h; then
3512 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
3513 fi
3514
3515 cf_dir_suffix=
3516 old_cf_suffix="$cf_suffix"
3517 if test "$cf_cv_shlib_version_infix" = yes ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01003518 if test -n "$USE_LIB_SUFFIX" ; then
3519 case $USE_LIB_SUFFIX in
3520 (tw*)
3521 cf_libname=`echo $cf_libname | sed 's/tw'$EXTRA_SUFFIX'$//'`
3522 cf_suffix=`echo $cf_suffix | sed 's/^tw'$EXTRA_SUFFIX'//'`
3523 cf_dir_suffix=tw$EXTRA_SUFFIX
3524 ;;
3525 (t*)
3526 cf_libname=`echo $cf_libname | sed 's/t'$EXTRA_SUFFIX'$//'`
3527 cf_suffix=`echo $cf_suffix | sed 's/^t'$EXTRA_SUFFIX'//'`
3528 cf_dir_suffix=t$EXTRA_SUFFIX
3529 ;;
3530 (w*)
3531 cf_libname=`echo $cf_libname | sed 's/w'$EXTRA_SUFFIX'$//'`
3532 cf_suffix=`echo $cf_suffix | sed 's/^w'$EXTRA_SUFFIX'//'`
3533 cf_dir_suffix=w$EXTRA_SUFFIX
3534 ;;
3535 (*)
3536 cf_libname=`echo $cf_libname | sed 's/'$EXTRA_SUFFIX'$//'`
3537 cf_suffix=`echo $cf_suffix | sed 's/^'$EXTRA_SUFFIX'//'`
3538 cf_dir_suffix=$EXTRA_SUFFIX
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303539 ;;
3540 esac
3541 fi
3542 fi
3543
3544 $AWK -f $srcdir/mk-1st.awk \
3545 name=${cf_libname}${cf_dir_suffix} \
3546 traces=$LIB_TRACING \
3547 MODEL=$cf_ITEM \
Steve Kondikae271bc2015-11-15 02:50:53 +01003548 CXX_MODEL=$CXX_MODEL \
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303549 model=$cf_subdir \
3550 prefix=$cf_prefix \
3551 suffix=$cf_suffix \
3552 subset=$cf_subset \
Steve Kondikae271bc2015-11-15 02:50:53 +01003553 driver=$cf_cv_term_driver \
3554 SymLink="$LN_S" \
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303555 TermlibRoot=$TINFO_NAME \
3556 TermlibSuffix=$TINFO_SUFFIX \
3557 ShlibVer=$cf_cv_shlib_version \
3558 ShlibVerInfix=$cf_cv_shlib_version_infix \
Steve Kondikae271bc2015-11-15 02:50:53 +01003559 ReLink=${cf_cv_do_relink:-no} \
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303560 DoLinks=$cf_cv_do_symlinks \
3561 rmSoLocs=$cf_cv_rm_so_locs \
3562 ldconfig="$LDCONFIG" \
3563 overwrite=$WITH_OVERWRITE \
3564 depend="$cf_depend" \
3565 host="$host" \
Steve Kondikae271bc2015-11-15 02:50:53 +01003566 libtool_version="$LIBTOOL_VERSION" \
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303567 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
3568
3569 cf_suffix="$old_cf_suffix"
3570
3571 for cf_subdir2 in $cf_subdirs lib
3572 do
3573 test $cf_subdir = $cf_subdir2 && break
3574 done
3575 test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
3576 $AWK -f $srcdir/mk-2nd.awk \
3577 name=$cf_dir \
3578 traces=$LIB_TRACING \
3579 MODEL=$cf_ITEM \
3580 model=$cf_subdir \
3581 subset=$cf_subset \
3582 srcdir=$srcdir \
3583 echo=$WITH_ECHO \
3584 crenames=$cf_cv_prog_CC_c_o \
3585 cxxrenames=$cf_cv_prog_CXX_c_o \
3586 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
3587 cf_subdirs="$cf_subdirs $cf_subdir"
3588 done
3589 done
3590 fi
3591
Steve Kondikae271bc2015-11-15 02:50:53 +01003592 echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@' >>Makefile
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303593done
3594
3595for cf_dir in $SRC_SUBDIRS
3596do
3597 if test ! -d $srcdir/$cf_dir ; then
3598 continue
3599 fi
3600
3601 if test -f $cf_dir/Makefile ; then
3602 case "$cf_dir" in
Steve Kondikae271bc2015-11-15 02:50:53 +01003603 (Ada95)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303604 echo 'libs \' >> Makefile
3605 echo 'install.libs \' >> Makefile
3606 echo 'uninstall.libs ::' >> Makefile
Steve Kondikae271bc2015-11-15 02:50:53 +01003607 echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@' >> Makefile
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303608 ;;
3609 esac
3610 fi
3611
3612 if test -f $srcdir/$cf_dir/modules; then
3613 echo >> Makefile
3614 if test -f $srcdir/$cf_dir/headers; then
3615cat >> Makefile <<CF_EOF
3616install.includes \\
3617uninstall.includes \\
3618CF_EOF
3619 fi
3620if test "$cf_dir" != "c++" ; then
3621echo 'lint \' >> Makefile
3622fi
3623cat >> Makefile <<CF_EOF
3624libs \\
3625lintlib \\
3626install.libs \\
3627uninstall.libs \\
3628install.$cf_dir \\
3629uninstall.$cf_dir ::
Steve Kondikae271bc2015-11-15 02:50:53 +01003630 cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \[$]@
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303631CF_EOF
3632 elif test -f $srcdir/$cf_dir/headers; then
3633cat >> Makefile <<CF_EOF
3634
3635libs \\
3636install.libs \\
3637uninstall.libs \\
3638install.includes \\
3639uninstall.includes ::
Steve Kondikae271bc2015-11-15 02:50:53 +01003640 cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \[$]@
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303641CF_EOF
3642fi
3643done
3644
Steve Kondikae271bc2015-11-15 02:50:53 +01003645if test "x$cf_with_db_install" = xyes; then
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303646cat >> Makefile <<CF_EOF
3647
3648install.libs uninstall.libs \\
3649install.data uninstall.data ::
Steve Kondikae271bc2015-11-15 02:50:53 +01003650$MAKE_TERMINFO cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@
3651CF_EOF
3652else
3653cat >> Makefile <<CF_EOF
3654
3655install.libs uninstall.libs ::
3656 cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@
3657CF_EOF
3658fi
3659
3660if test "x$cf_with_manpages" = xyes; then
3661cat >> Makefile <<CF_EOF
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303662
3663install.man \\
3664uninstall.man ::
Steve Kondikae271bc2015-11-15 02:50:53 +01003665 cd man && \${MAKE} \${TOP_MFLAGS} \[$]@
3666CF_EOF
3667fi
3668
3669cat >> Makefile <<CF_EOF
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303670
3671distclean ::
3672 rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
3673 rm -f headers.sh headers.sed mk_shared_lib.sh
Steve Kondikae271bc2015-11-15 02:50:53 +01003674 rm -f edit_man.* man_alias.*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303675 rm -rf \${DIRS_TO_MAKE}
3676CF_EOF
3677
3678# Special case: tack's manpage lives in its own directory.
Steve Kondikae271bc2015-11-15 02:50:53 +01003679if test "x$cf_with_manpages" = xyes; then
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303680if test -d tack ; then
3681if test -f $srcdir/$tack.h; then
3682cat >> Makefile <<CF_EOF
3683
3684install.man \\
3685uninstall.man ::
Steve Kondikae271bc2015-11-15 02:50:53 +01003686 cd tack && \${MAKE} \${TOP_MFLAGS} \[$]@
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303687CF_EOF
3688fi
3689fi
Steve Kondikae271bc2015-11-15 02:50:53 +01003690fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303691
3692dnl If we're installing into a subdirectory of /usr/include, etc., we should
3693dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
3694dnl anything, and will make it more standardized. It's awkward to decide this
3695dnl at configuration because of quoting, so we'll simply make all headers
3696dnl installed via a script that can do the right thing.
3697
3698rm -f headers.sed headers.sh
3699
3700dnl ( generating this script makes the makefiles a little tidier :-)
3701echo creating headers.sh
3702cat >headers.sh <<CF_EOF
Steve Kondikae271bc2015-11-15 02:50:53 +01003703#! $SHELL
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303704# This shell script is generated by the 'configure' script. It is invoked in a
3705# subdirectory of the build tree. It generates a sed-script in the parent
3706# directory that is used to adjust includes for header files that reside in a
3707# subdirectory of /usr/include, etc.
3708PRG=""
3709while test \[$]# != 3
3710do
3711PRG="\$PRG \[$]1"; shift
3712done
3713DST=\[$]1
3714REF=\[$]2
3715SRC=\[$]3
Steve Kondikae271bc2015-11-15 02:50:53 +01003716TMPSRC=\${TMPDIR:-/tmp}/\`basename \$SRC\`\$\$
3717TMPSED=\${TMPDIR:-/tmp}/headers.sed\$\$
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303718echo installing \$SRC in \$DST
3719CF_EOF
3720
3721if test $WITH_CURSES_H = yes; then
3722 cat >>headers.sh <<CF_EOF
3723case \$DST in
Steve Kondikae271bc2015-11-15 02:50:53 +01003724(/*/include/*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303725 END=\`basename \$DST\`
3726 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
3727 do
3728 NAME=\`basename \$i\`
3729 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
3730 done
3731 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003732(*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303733 echo "" >> \$TMPSED
3734 ;;
3735esac
3736CF_EOF
3737
3738else
3739 cat >>headers.sh <<CF_EOF
3740case \$DST in
Steve Kondikae271bc2015-11-15 02:50:53 +01003741(/*/include/*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303742 END=\`basename \$DST\`
3743 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
3744 do
3745 NAME=\`basename \$i\`
3746 if test "\$NAME" = "curses.h"
3747 then
3748 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
3749 NAME=ncurses.h
3750 fi
3751 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
3752 done
3753 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003754(*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303755 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
3756 ;;
3757esac
3758CF_EOF
3759fi
3760cat >>headers.sh <<CF_EOF
3761rm -f \$TMPSRC
3762sed -f \$TMPSED \$SRC > \$TMPSRC
3763NAME=\`basename \$SRC\`
3764CF_EOF
3765if test $WITH_CURSES_H != yes; then
3766 cat >>headers.sh <<CF_EOF
3767test "\$NAME" = "curses.h" && NAME=ncurses.h
3768CF_EOF
3769fi
3770cat >>headers.sh <<CF_EOF
3771# Just in case someone gzip'd manpages, remove the conflicting copy.
3772test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
3773
3774eval \$PRG \$TMPSRC \$DST/\$NAME
3775rm -f \$TMPSRC \$TMPSED
3776CF_EOF
3777
3778chmod 0755 headers.sh
3779
3780for cf_dir in $SRC_SUBDIRS
3781do
3782 if test ! -d $srcdir/$cf_dir ; then
3783 continue
3784 fi
3785
3786 if test -f $srcdir/$cf_dir/headers; then
3787 $AWK -f $srcdir/mk-hdr.awk \
3788 subset="$LIB_SUBSETS" \
3789 compat="$WITH_CURSES_H" \
3790 $srcdir/$cf_dir/headers >>$cf_dir/Makefile
3791 fi
3792
3793 if test -f $srcdir/$cf_dir/modules; then
3794 if test "$cf_dir" != "c++" ; then
3795 cat >>$cf_dir/Makefile <<"CF_EOF"
3796depend : ${AUTO_SRC}
3797 makedepend -- ${CPPFLAGS} -- ${C_SRC}
3798
3799# DO NOT DELETE THIS LINE -- make depend depends on it.
3800CF_EOF
3801 fi
3802 fi
3803done
Steve Kondikae271bc2015-11-15 02:50:53 +01003804AC_SUBST(Libs_To_Make)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303805])dnl
3806dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01003807dnl CF_LIB_SONAME version: 5 updated: 2010/08/14 18:25:37
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303808dnl -------------
3809dnl Find the and soname for the given shared library. Set the cache variable
3810dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
3811dnl variable to "unknown".
3812dnl
3813dnl $1 = headers
3814dnl $2 = code
3815dnl $3 = library name
3816AC_DEFUN([CF_LIB_SONAME],
3817[
3818AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
3819
3820cf_cv_$3_soname=unknown
3821if test "$cross_compiling" != yes ; then
3822cat >conftest.$ac_ext <<CF_EOF
3823$1
3824int main()
3825{
3826$2
3827 ${cf_cv_main_return:-return}(0);
3828}
3829CF_EOF
3830cf_save_LIBS="$LIBS"
Steve Kondikae271bc2015-11-15 02:50:53 +01003831 CF_ADD_LIB($3)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303832 if AC_TRY_EVAL(ac_compile) ; then
3833 if AC_TRY_EVAL(ac_link) ; then
3834 cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
3835 test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
3836 fi
3837 fi
Steve Kondikae271bc2015-11-15 02:50:53 +01003838rm -rf conftest*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303839LIBS="$cf_save_LIBS"
3840fi
3841])
3842])
3843dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01003844dnl CF_LIB_SUFFIX version: 25 updated: 2015/04/17 21:13:04
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303845dnl -------------
3846dnl Compute the library file-suffix from the given model name
3847dnl $1 = model name
3848dnl $2 = variable to set (the nominal library suffix)
3849dnl $3 = dependency variable to set (actual filename)
3850dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
3851AC_DEFUN([CF_LIB_SUFFIX],
3852[
Steve Kondikae271bc2015-11-15 02:50:53 +01003853 case X$1 in
3854 (Xlibtool)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303855 $2='.la'
3856 $3=[$]$2
3857 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003858 (Xdebug)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303859 $2='_g.a'
3860 $3=[$]$2
3861 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003862 (Xprofile)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303863 $2='_p.a'
3864 $3=[$]$2
3865 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003866 (Xshared)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303867 case $cf_cv_system_name in
Steve Kondikae271bc2015-11-15 02:50:53 +01003868 (aix[[5-7]]*)
3869 $2='.so'
3870 $3=[$]$2
3871 ;;
3872 (cygwin*|msys*|mingw*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303873 $2='.dll'
3874 $3='.dll.a'
3875 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003876 (darwin*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303877 $2='.dylib'
3878 $3=[$]$2
3879 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003880 (hpux*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303881 case $target in
Steve Kondikae271bc2015-11-15 02:50:53 +01003882 (ia64*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303883 $2='.so'
3884 $3=[$]$2
3885 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003886 (*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303887 $2='.sl'
3888 $3=[$]$2
3889 ;;
3890 esac
3891 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01003892 (*)
3893 $2='.so'
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303894 $3=[$]$2
3895 ;;
3896 esac
Steve Kondikae271bc2015-11-15 02:50:53 +01003897 ;;
3898 (*)
3899 $2='.a'
3900 $3=[$]$2
3901 ;;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303902 esac
Steve Kondikae271bc2015-11-15 02:50:53 +01003903 if test -n "${LIB_SUFFIX}${EXTRA_SUFFIX}"
3904 then
3905 $2="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$2}"
3906 $3="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$3}"
3907 fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303908])dnl
3909dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01003910dnl CF_LIB_TYPE version: 5 updated: 2015/04/17 21:13:04
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303911dnl -----------
3912dnl Compute the string to append to -library from the given model name
3913dnl $1 = model name
3914dnl $2 = variable to set
3915dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
3916AC_DEFUN([CF_LIB_TYPE],
3917[
3918 case $1 in
Steve Kondikae271bc2015-11-15 02:50:53 +01003919 (libtool) $2='' ;;
3920 (normal) $2='' ;;
3921 (debug) $2='_g' ;;
3922 (profile) $2='_p' ;;
3923 (shared) $2='' ;;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303924 esac
3925 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
3926])dnl
3927dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01003928dnl CF_LINK_DATAONLY version: 10 updated: 2012/10/06 17:41:51
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303929dnl ----------------
3930dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
3931dnl only data (i.e., no functions), for example NeXT. On those systems we'll
3932dnl have to provide wrappers for global tables to ensure they're linked
3933dnl properly.
3934AC_DEFUN([CF_LINK_DATAONLY],
3935[
3936AC_MSG_CHECKING([if data-only library module links])
3937AC_CACHE_VAL(cf_cv_link_dataonly,[
3938 rm -f conftest.a
3939 cat >conftest.$ac_ext <<EOF
3940#line __oline__ "configure"
3941int testdata[[3]] = { 123, 456, 789 };
3942EOF
3943 if AC_TRY_EVAL(ac_compile) ; then
3944 mv conftest.o data.o && \
Steve Kondikae271bc2015-11-15 02:50:53 +01003945 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303946 fi
3947 rm -f conftest.$ac_ext data.o
3948 cat >conftest.$ac_ext <<EOF
3949#line __oline__ "configure"
3950int testfunc()
3951{
3952#if defined(NeXT)
3953 ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
3954#else
3955 extern int testdata[[3]];
3956 return testdata[[0]] == 123
3957 && testdata[[1]] == 456
3958 && testdata[[2]] == 789;
3959#endif
3960}
3961EOF
3962 if AC_TRY_EVAL(ac_compile); then
3963 mv conftest.o func.o && \
Steve Kondikae271bc2015-11-15 02:50:53 +01003964 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303965 fi
3966 rm -f conftest.$ac_ext func.o
3967 ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
3968 cf_saveLIBS="$LIBS"
3969 LIBS="conftest.a $LIBS"
3970 AC_TRY_RUN([
3971 int main()
3972 {
3973 extern int testfunc();
3974 ${cf_cv_main_return:-return} (!testfunc());
3975 }
3976 ],
3977 [cf_cv_link_dataonly=yes],
3978 [cf_cv_link_dataonly=no],
3979 [cf_cv_link_dataonly=unknown])
3980 LIBS="$cf_saveLIBS"
3981 ])
3982AC_MSG_RESULT($cf_cv_link_dataonly)
3983
3984if test "$cf_cv_link_dataonly" = no ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01003985 AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303986 BROKEN_LINKER=1
3987fi
3988
3989])dnl
3990dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01003991dnl CF_LINK_FUNCS version: 8 updated: 2012/10/06 17:56:13
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05303992dnl -------------
3993dnl Most Unix systems have both link and symlink, a few don't have symlink.
3994dnl A few non-Unix systems implement symlink, but not link.
3995dnl A few non-systems implement neither (or have nonfunctional versions).
3996AC_DEFUN([CF_LINK_FUNCS],
3997[
3998AC_CHECK_FUNCS( \
3999 remove \
4000 unlink )
4001
4002if test "$cross_compiling" = yes ; then
4003 AC_CHECK_FUNCS( \
4004 link \
4005 symlink )
4006else
4007 AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
4008 cf_cv_link_funcs=
4009 for cf_func in link symlink ; do
4010 AC_TRY_RUN([
4011#include <sys/types.h>
4012#include <sys/stat.h>
4013#ifdef HAVE_UNISTD_H
4014#include <unistd.h>
4015#endif
4016int main()
4017{
4018 int fail = 0;
4019 char *src = "config.log";
4020 char *dst = "conftest.chk";
4021 struct stat src_sb;
4022 struct stat dst_sb;
4023
4024 stat(src, &src_sb);
4025 fail = ($cf_func("config.log", "conftest.chk") < 0)
4026 || (stat(dst, &dst_sb) < 0)
4027 || (dst_sb.st_mtime != src_sb.st_mtime);
4028#ifdef HAVE_UNLINK
4029 unlink(dst);
4030#else
4031 remove(dst);
4032#endif
4033 ${cf_cv_main_return:-return} (fail);
4034}
4035 ],[
4036 cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
4037 eval 'ac_cv_func_'$cf_func'=yes'],[
4038 eval 'ac_cv_func_'$cf_func'=no'],[
4039 eval 'ac_cv_func_'$cf_func'=error'])
4040 done
4041 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
4042 ])
Steve Kondikae271bc2015-11-15 02:50:53 +01004043 test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK,1,[Define to 1 if we have link() function])
4044 test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK,1,[Define to 1 if we have symlink() function])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304045fi
4046])dnl
4047dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004048dnl CF_MAKEFLAGS version: 17 updated: 2015/08/05 20:44:28
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304049dnl ------------
4050dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
4051dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
4052dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
4053dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
4054AC_DEFUN([CF_MAKEFLAGS],
4055[
4056AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
4057 cf_cv_makeflags=''
4058 for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
4059 do
4060 cat >cf_makeflags.tmp <<CF_EOF
Steve Kondikae271bc2015-11-15 02:50:53 +01004061SHELL = $SHELL
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304062all :
4063 @ echo '.$cf_option'
4064CF_EOF
Steve Kondikae271bc2015-11-15 02:50:53 +01004065 cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | fgrep -v "ing directory" | sed -e 's,[[ ]]*$,,'`
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304066 case "$cf_result" in
Steve Kondikae271bc2015-11-15 02:50:53 +01004067 (.*k|.*kw)
4068 cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304069 case "$cf_result" in
Steve Kondikae271bc2015-11-15 02:50:53 +01004070 (.*CC=*) cf_cv_makeflags=
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304071 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01004072 (*) cf_cv_makeflags=$cf_option
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304073 ;;
4074 esac
4075 break
4076 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01004077 (.-) ;;
4078 (*) echo "given option \"$cf_option\", no match \"$cf_result\""
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304079 ;;
4080 esac
4081 done
4082 rm -f cf_makeflags.tmp
4083])
4084
4085AC_SUBST(cf_cv_makeflags)
4086])dnl
4087dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004088dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304089dnl ------------
4090dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
4091dnl a monocase filesystem.
4092AC_DEFUN([CF_MAKE_TAGS],[
4093AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
Steve Kondikae271bc2015-11-15 02:50:53 +01004094
4095AC_CHECK_PROGS(CTAGS, exctags ctags)
4096AC_CHECK_PROGS(ETAGS, exetags etags)
4097
4098AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304099
4100if test "$cf_cv_mixedcase" = yes ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01004101 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304102else
4103 MAKE_UPPER_TAGS=no
4104fi
4105
4106if test "$MAKE_UPPER_TAGS" = yes ; then
4107 MAKE_UPPER_TAGS=
4108else
4109 MAKE_UPPER_TAGS="#"
4110fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304111
4112if test "$MAKE_LOWER_TAGS" = yes ; then
4113 MAKE_LOWER_TAGS=
4114else
4115 MAKE_LOWER_TAGS="#"
4116fi
Steve Kondikae271bc2015-11-15 02:50:53 +01004117
4118AC_SUBST(CTAGS)
4119AC_SUBST(ETAGS)
4120
4121AC_SUBST(MAKE_UPPER_TAGS)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304122AC_SUBST(MAKE_LOWER_TAGS)
4123])dnl
4124dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004125dnl CF_MANPAGE_FORMAT version: 11 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304126dnl -----------------
4127dnl Option to allow user to override automatic configuration of manpage format.
4128dnl There are several special cases:
4129dnl
4130dnl gzip - man checks for, can display gzip'd files
4131dnl compress - man checks for, can display compressed files
4132dnl BSDI - files in the cat-directories are suffixed ".0"
4133dnl formatted - installer should format (put files in cat-directory)
4134dnl catonly - installer should only format, e.g., for a turnkey system.
4135dnl
4136dnl There are other configurations which this macro does not test, e.g., HPUX's
4137dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
4138dnl convention would not match our use).
4139AC_DEFUN([CF_MANPAGE_FORMAT],
4140[
4141AC_REQUIRE([CF_PATHSEP])
4142AC_MSG_CHECKING(format of man-pages)
4143
4144AC_ARG_WITH(manpage-format,
4145 [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
4146 optionally formatted/catonly, e.g., gzip,formatted],
4147 [MANPAGE_FORMAT=$withval],
4148 [MANPAGE_FORMAT=unknown])
4149
4150test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
4151MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
4152
4153cf_unknown=
4154
4155case $MANPAGE_FORMAT in
Steve Kondikae271bc2015-11-15 02:50:53 +01004156(unknown)
4157 if test -z "$MANPATH" ; then
4158 MANPATH="/usr/man:/usr/share/man"
4159 fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304160
Steve Kondikae271bc2015-11-15 02:50:53 +01004161 # look for the 'date' man-page (it's most likely to be installed!)
4162 MANPAGE_FORMAT=
4163 cf_preform=no
4164 cf_catonly=yes
4165 cf_example=date
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304166
Steve Kondikae271bc2015-11-15 02:50:53 +01004167 IFS="${IFS:- }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
4168 for cf_dir in $MANPATH; do
4169 test -z "$cf_dir" && cf_dir=/usr/man
4170 for cf_name in $cf_dir/man*/$cf_example.[[01]]* $cf_dir/cat*/$cf_example.[[01]]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example
4171 do
4172 cf_test=`echo $cf_name | sed -e 's/*//'`
4173 if test "x$cf_test" = "x$cf_name" ; then
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304174
Steve Kondikae271bc2015-11-15 02:50:53 +01004175 case "$cf_name" in
4176 (*.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
4177 (*.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
4178 (*.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
4179 (*) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
4180 esac
4181
4182 case "$cf_name" in
4183 ($cf_dir/man*)
4184 cf_catonly=no
4185 ;;
4186 ($cf_dir/cat*)
4187 cf_preform=yes
4188 ;;
4189 esac
4190 break
4191 fi
4192
4193 # if we found a match in either man* or cat*, stop looking
4194 if test -n "$MANPAGE_FORMAT" ; then
4195 cf_found=no
4196 test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
4197 test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
4198 case "$cf_name" in
4199 ($cf_dir/cat*)
4200 cf_found=yes
4201 ;;
4202 esac
4203 test $cf_found=yes && break
4204 fi
4205 done
4206 # only check the first directory in $MANPATH where we find manpages
4207 if test -n "$MANPAGE_FORMAT" ; then
4208 break
4209 fi
4210 done
4211 # if we did not find the example, just assume it is normal
4212 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
4213 IFS="$ac_save_ifs"
4214 ;;
4215(*)
4216 for cf_option in $MANPAGE_FORMAT; do
4217 case $cf_option in
4218 (gzip|compress|BSDI|normal|formatted|catonly)
4219 ;;
4220 (*)
4221 cf_unknown="$cf_unknown $cf_option"
4222 ;;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304223 esac
Steve Kondikae271bc2015-11-15 02:50:53 +01004224 done
4225 ;;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304226esac
4227
4228AC_MSG_RESULT($MANPAGE_FORMAT)
4229if test -n "$cf_unknown" ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01004230 AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304231fi
4232])dnl
4233dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004234dnl CF_MANPAGE_RENAMES version: 10 updated: 2015/08/05 20:44:28
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304235dnl ------------------
4236dnl The Debian people have their own naming convention for manpages. This
4237dnl option lets us override the name of the file containing renaming, or
4238dnl disable it altogether.
4239AC_DEFUN([CF_MANPAGE_RENAMES],
4240[
4241AC_MSG_CHECKING(for manpage renaming)
4242
4243AC_ARG_WITH(manpage-renames,
4244 [ --with-manpage-renames specify manpage-renaming],
4245 [MANPAGE_RENAMES=$withval],
4246 [MANPAGE_RENAMES=yes])
4247
Steve Kondikae271bc2015-11-15 02:50:53 +01004248case ".$MANPAGE_RENAMES" in
4249(.no)
4250 ;;
4251(.|.yes)
4252 # Debian 'man' program?
4253 if test -f /etc/debian_version ; then
4254 MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
4255 else
4256 MANPAGE_RENAMES=no
4257 fi
4258 ;;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304259esac
4260
4261if test "$MANPAGE_RENAMES" != no ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01004262 if test -f $srcdir/man/$MANPAGE_RENAMES ; then
4263 MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
4264 elif test ! -f $MANPAGE_RENAMES ; then
4265 AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
4266 fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304267
Steve Kondikae271bc2015-11-15 02:50:53 +01004268 test ! -d man && mkdir man
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304269
Steve Kondikae271bc2015-11-15 02:50:53 +01004270 # Construct a sed-script to perform renaming within man-pages
4271 if test -n "$MANPAGE_RENAMES" ; then
4272 test ! -d man && mkdir man
4273 $SHELL $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
4274 fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304275fi
4276
4277AC_MSG_RESULT($MANPAGE_RENAMES)
4278AC_SUBST(MANPAGE_RENAMES)
4279])dnl
4280dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004281dnl CF_MANPAGE_SYMLINKS version: 6 updated: 2015/04/17 21:13:04
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304282dnl -------------------
4283dnl Some people expect each tool to make all aliases for manpages in the
4284dnl man-directory. This accommodates the older, less-capable implementations
4285dnl of 'man', and is optional.
4286AC_DEFUN([CF_MANPAGE_SYMLINKS],
4287[
4288AC_MSG_CHECKING(if manpage aliases will be installed)
4289
4290AC_ARG_WITH(manpage-aliases,
4291 [ --with-manpage-aliases specify manpage-aliases using .so],
4292 [MANPAGE_ALIASES=$withval],
4293 [MANPAGE_ALIASES=yes])
4294
4295AC_MSG_RESULT($MANPAGE_ALIASES)
4296
Steve Kondikae271bc2015-11-15 02:50:53 +01004297case "x$LN_S" in
4298(xln*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304299 cf_use_symlinks=yes
Steve Kondikae271bc2015-11-15 02:50:53 +01004300 ;;
4301(*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304302 cf_use_symlinks=no
Steve Kondikae271bc2015-11-15 02:50:53 +01004303 ;;
4304esac
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304305
4306MANPAGE_SYMLINKS=no
4307if test "$MANPAGE_ALIASES" = yes ; then
4308AC_MSG_CHECKING(if manpage symlinks should be used)
4309
4310AC_ARG_WITH(manpage-symlinks,
4311 [ --with-manpage-symlinks specify manpage-aliases using symlinks],
4312 [MANPAGE_SYMLINKS=$withval],
4313 [MANPAGE_SYMLINKS=$cf_use_symlinks])
4314
4315if test "$$cf_use_symlinks" = no; then
4316if test "$MANPAGE_SYMLINKS" = yes ; then
4317 AC_MSG_WARN(cannot make symlinks, will use .so files)
4318 MANPAGE_SYMLINKS=no
4319fi
4320fi
4321
4322AC_MSG_RESULT($MANPAGE_SYMLINKS)
4323fi
4324
4325])dnl
4326dnl ---------------------------------------------------------------------------
4327dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
4328dnl --------------
4329dnl This option causes manpages to be run through tbl(1) to generate tables
4330dnl correctly.
4331AC_DEFUN([CF_MANPAGE_TBL],
4332[
4333AC_MSG_CHECKING(for manpage tbl)
4334
4335AC_ARG_WITH(manpage-tbl,
4336 [ --with-manpage-tbl specify manpage processing with tbl],
4337 [MANPAGE_TBL=$withval],
4338 [MANPAGE_TBL=no])
4339
4340AC_MSG_RESULT($MANPAGE_TBL)
4341])dnl
4342dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004343dnl CF_MAN_PAGES version: 46 updated: 2015/08/05 20:44:28
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304344dnl ------------
4345dnl Try to determine if the man-pages on the system are compressed, and if
4346dnl so, what format is used. Use this information to construct a script that
4347dnl will install man-pages.
4348AC_DEFUN([CF_MAN_PAGES],
4349[
4350CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
4351CF_MANPAGE_FORMAT
4352CF_MANPAGE_RENAMES
4353CF_MANPAGE_SYMLINKS
4354CF_MANPAGE_TBL
4355
Steve Kondikae271bc2015-11-15 02:50:53 +01004356if test "$prefix" = "NONE" ; then
4357 cf_prefix="$ac_default_prefix"
4358else
4359 cf_prefix="$prefix"
4360fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304361
Steve Kondikae271bc2015-11-15 02:50:53 +01004362case "$MANPAGE_FORMAT" in
4363(*catonly*)
4364 cf_format=yes
4365 cf_inboth=no
4366 ;;
4367(*formatted*)
4368 cf_format=yes
4369 cf_inboth=yes
4370 ;;
4371(*)
4372 cf_format=no
4373 cf_inboth=no
4374 ;;
4375esac
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304376
4377test ! -d man && mkdir man
4378
4379cf_so_strip=
4380cf_compress=
Steve Kondikae271bc2015-11-15 02:50:53 +01004381case "$MANPAGE_FORMAT" in
4382(*compress*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304383 cf_so_strip="Z"
4384 cf_compress=compress
Steve Kondikae271bc2015-11-15 02:50:53 +01004385 ;;
4386(*gzip*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304387 cf_so_strip="gz"
4388 cf_compress=gzip
Steve Kondikae271bc2015-11-15 02:50:53 +01004389 ;;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304390esac
4391
4392cf_edit_man=./edit_man.sh
4393cf_man_alias=`pwd`/man_alias.sed
4394
4395cat >$cf_edit_man <<CF_EOF
Steve Kondikae271bc2015-11-15 02:50:53 +01004396#! $SHELL
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304397# this script is generated by the configure-script CF_MAN_PAGES macro.
4398
4399prefix="$cf_prefix"
Steve Kondikae271bc2015-11-15 02:50:53 +01004400datarootdir="$datarootdir"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304401datadir="$datadir"
4402
4403NCURSES_MAJOR="$NCURSES_MAJOR"
4404NCURSES_MINOR="$NCURSES_MINOR"
4405NCURSES_PATCH="$NCURSES_PATCH"
4406
4407NCURSES_OSPEED="$NCURSES_OSPEED"
4408TERMINFO="$TERMINFO"
4409
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304410INSTALL="$INSTALL"
4411INSTALL_DATA="$INSTALL_DATA"
4412
4413transform="$program_transform_name"
4414
Steve Kondikae271bc2015-11-15 02:50:53 +01004415TMP=\${TMPDIR:=/tmp}/man\$\$
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304416trap "rm -f \$TMP" 0 1 2 5 15
4417
4418form=\[$]1
4419shift || exit 1
4420
4421verb=\[$]1
4422shift || exit 1
4423
4424mandir=\[$]1
4425shift || exit 1
4426
4427srcdir=\[$]1
4428top_srcdir=\[$]srcdir/..
4429shift || exit 1
4430
4431if test "\$form" = normal ; then
4432 if test "$cf_format" = yes ; then
4433 if test "$cf_inboth" = no ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01004434 $SHELL \[$]0 format \$verb \$mandir \$srcdir \[$]*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304435 exit $?
4436 fi
4437 fi
4438 cf_subdir=\$mandir/man
4439 cf_tables=$MANPAGE_TBL
4440else
4441 cf_subdir=\$mandir/cat
4442 cf_tables=yes
4443fi
4444
4445# process the list of source-files
4446for i in \[$]* ; do
Steve Kondikae271bc2015-11-15 02:50:53 +01004447case \$i in
4448(*.orig|*.rej) ;;
4449(*.[[0-9]]*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304450 section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
4451 if test \$verb = installing ; then
4452 if test ! -d \$cf_subdir\${section} ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01004453 mkdir -p \$cf_subdir\$section
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304454 fi
4455 fi
4456
4457 # replace variables in man page
4458 if test ! -f $cf_man_alias ; then
4459cat >>$cf_man_alias <<-CF_EOF2
4460 s,@DATADIR@,\$datadir,g
Steve Kondikae271bc2015-11-15 02:50:53 +01004461 s,@TERMINFO@,\${TERMINFO:="no default value"},g
4462 s,@TERMINFO_DIRS@,\${TERMINFO_DIRS:="no default value"},g
4463 s,@NCURSES_MAJOR@,\${NCURSES_MAJOR:="no default value"},g
4464 s,@NCURSES_MINOR@,\${NCURSES_MINOR:="no default value"},g
4465 s,@NCURSES_PATCH@,\${NCURSES_PATCH:="no default value"},g
4466 s,@NCURSES_OSPEED@,\${NCURSES_OSPEED:="no default value"},g
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304467CF_EOF
4468 ifelse($1,,,[
4469 for cf_name in $1
4470 do
4471 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
4472 cf_name=`echo $cf_name|sed "$program_transform_name"`
4473cat >>$cf_edit_man <<-CF_EOF
Steve Kondikae271bc2015-11-15 02:50:53 +01004474 s,@$cf_NAME@,$cf_name,g
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304475CF_EOF
4476 done
4477 ])
4478cat >>$cf_edit_man <<CF_EOF
4479CF_EOF2
4480 echo "...made $cf_man_alias"
4481 fi
4482
4483 aliases=
4484 cf_source=\`basename \$i\`
4485 inalias=\$cf_source
4486 test ! -f \$inalias && inalias="\$srcdir/\$inalias"
4487 if test ! -f \$inalias ; then
4488 echo .. skipped \$cf_source
4489 continue
4490 fi
4491CF_EOF
4492
4493if test "$MANPAGE_ALIASES" != no ; then
4494cat >>$cf_edit_man <<CF_EOF
Steve Kondikae271bc2015-11-15 02:50:53 +01004495 nCurses=ignore.3x
4496 test $with_curses_h = yes && nCurses=ncurses.3x
4497 aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u; test \$inalias = \$nCurses && echo curses\`
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304498CF_EOF
4499fi
4500
4501if test "$MANPAGE_RENAMES" = no ; then
4502cat >>$cf_edit_man <<CF_EOF
4503 # perform program transformations for section 1 man pages
4504 if test \$section = 1 ; then
4505 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
4506 else
4507 cf_target=\$cf_subdir\${section}/\$cf_source
4508 fi
4509CF_EOF
4510else
4511cat >>$cf_edit_man <<CF_EOF
4512 cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
4513 if test -z "\$cf_target" ; then
4514 echo '? missing rename for '\$cf_source
4515 cf_target="\$cf_source"
4516 fi
4517 cf_target="\$cf_subdir\${section}/\${cf_target}"
4518
4519CF_EOF
4520fi
4521
4522cat >>$cf_edit_man <<CF_EOF
4523 sed -f $cf_man_alias \\
4524CF_EOF
4525
4526if test -f $MANPAGE_RENAMES ; then
4527cat >>$cf_edit_man <<CF_EOF
4528 < \$i | sed -f `pwd`/edit_man.sed >\$TMP
4529CF_EOF
4530else
4531cat >>$cf_edit_man <<CF_EOF
4532 < \$i >\$TMP
4533CF_EOF
4534fi
4535
4536cat >>$cf_edit_man <<CF_EOF
4537if test \$cf_tables = yes ; then
4538 tbl \$TMP >\$TMP.out
4539 mv \$TMP.out \$TMP
4540fi
4541CF_EOF
4542
Steve Kondikae271bc2015-11-15 02:50:53 +01004543if test $with_overwrite != yes ; then
4544cat >>$cf_edit_man <<CF_EOF
4545 sed -e "/\#[ ]*include/s,<curses.h,<ncurses$LIB_SUFFIX/curses.h," < \$TMP >\$TMP.out
4546 mv \$TMP.out \$TMP
4547CF_EOF
4548fi
4549
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304550if test $with_curses_h != yes ; then
4551cat >>$cf_edit_man <<CF_EOF
4552 sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
4553 mv \$TMP.out \$TMP
4554CF_EOF
4555fi
4556
4557cat >>$cf_edit_man <<CF_EOF
4558 if test \$form = format ; then
4559 nroff -man \$TMP >\$TMP.out
4560 mv \$TMP.out \$TMP
4561 fi
4562CF_EOF
4563
4564if test -n "$cf_compress" ; then
4565cat >>$cf_edit_man <<CF_EOF
4566 if test \$verb = installing ; then
4567 if ( $cf_compress -f \$TMP )
4568 then
4569 mv \$TMP.$cf_so_strip \$TMP
4570 fi
4571 fi
4572 cf_target="\$cf_target.$cf_so_strip"
4573CF_EOF
4574fi
4575
Steve Kondikae271bc2015-11-15 02:50:53 +01004576case "$MANPAGE_FORMAT" in
4577(*BSDI*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304578cat >>$cf_edit_man <<CF_EOF
4579 if test \$form = format ; then
4580 # BSDI installs only .0 suffixes in the cat directories
4581 cf_target="\`echo \$cf_target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
4582 fi
4583CF_EOF
4584 ;;
4585esac
4586
4587cat >>$cf_edit_man <<CF_EOF
4588 suffix=\`basename \$cf_target | sed -e 's%^[[^.]]*%%'\`
4589 if test \$verb = installing ; then
4590 echo \$verb \$cf_target
4591 \$INSTALL_DATA \$TMP \$cf_target
4592 test -d \$cf_subdir\${section} &&
4593 test -n "\$aliases" && (
4594 cd \$cf_subdir\${section} && (
4595 cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
4596 test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
4597 cf_target=\`basename \$cf_target\`
4598 for cf_alias in \$aliases
4599 do
4600 if test \$section = 1 ; then
4601 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
4602 fi
4603
4604 if test "$MANPAGE_SYMLINKS" = yes ; then
4605 if test -f \$cf_alias\${suffix} ; then
4606 if ( cmp -s \$cf_target \$cf_alias\${suffix} )
4607 then
4608 continue
4609 fi
4610 fi
4611 echo .. \$verb alias \$cf_alias\${suffix}
Steve Kondikae271bc2015-11-15 02:50:53 +01004612CF_EOF
4613case "x$LN_S" in
4614(*-f)
4615cat >>$cf_edit_man <<CF_EOF
4616 $LN_S \$cf_target \$cf_alias\${suffix}
4617CF_EOF
4618 ;;
4619(*)
4620cat >>$cf_edit_man <<CF_EOF
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304621 rm -f \$cf_alias\${suffix}
4622 $LN_S \$cf_target \$cf_alias\${suffix}
Steve Kondikae271bc2015-11-15 02:50:53 +01004623CF_EOF
4624 ;;
4625esac
4626cat >>$cf_edit_man <<CF_EOF
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304627 elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
4628 echo ".so \$cf_source" >\$TMP
4629CF_EOF
4630if test -n "$cf_compress" ; then
4631cat >>$cf_edit_man <<CF_EOF
4632 if test -n "$cf_so_strip" ; then
4633 $cf_compress -f \$TMP
4634 mv \$TMP.$cf_so_strip \$TMP
4635 fi
4636CF_EOF
4637fi
4638cat >>$cf_edit_man <<CF_EOF
4639 echo .. \$verb alias \$cf_alias\${suffix}
4640 rm -f \$cf_alias\${suffix}
4641 \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
4642 fi
4643 done
4644 )
4645 )
4646 elif test \$verb = removing ; then
4647 test -f \$cf_target && (
4648 echo \$verb \$cf_target
4649 rm -f \$cf_target
4650 )
4651 test -d \$cf_subdir\${section} &&
4652 test -n "\$aliases" && (
4653 cd \$cf_subdir\${section} && (
4654 for cf_alias in \$aliases
4655 do
4656 if test \$section = 1 ; then
4657 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
4658 fi
4659
4660 echo .. \$verb alias \$cf_alias\${suffix}
4661 rm -f \$cf_alias\${suffix}
4662 done
4663 )
4664 )
4665 else
4666# echo ".hy 0"
4667 cat \$TMP
4668 fi
4669 ;;
4670esac
4671done
4672
4673if test $cf_inboth = yes ; then
4674if test \$form != format ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01004675 $SHELL \[$]0 format \$verb \$mandir \$srcdir \[$]*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304676fi
4677fi
4678
4679exit 0
4680CF_EOF
4681chmod 755 $cf_edit_man
4682
4683])dnl
4684dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004685dnl CF_MATH_LIB version: 8 updated: 2010/05/29 16:31:02
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304686dnl -----------
4687dnl Checks for libraries. At least one UNIX system, Apple Macintosh
4688dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
4689dnl AC_CHECK_LIB(m,sin), because that fails for C++.
4690AC_DEFUN([CF_MATH_LIB],
4691[
4692AC_CACHE_CHECK(if -lm needed for math functions,
4693 cf_cv_need_libm,[
4694 AC_TRY_LINK([
4695 #include <stdio.h>
4696 #include <math.h>
4697 ],
Steve Kondikae271bc2015-11-15 02:50:53 +01004698 [double x = rand(); printf("result = %g\n", ]ifelse([$2],,sin(x),$2)[)],
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304699 [cf_cv_need_libm=no],
4700 [cf_cv_need_libm=yes])])
4701if test "$cf_cv_need_libm" = yes
4702then
4703ifelse($1,,[
Steve Kondikae271bc2015-11-15 02:50:53 +01004704 CF_ADD_LIB(m)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304705],[$1=-lm])
4706fi
4707])
4708dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004709dnl CF_MIXEDCASE_FILENAMES version: 7 updated: 2015/04/12 15:39:00
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304710dnl ----------------------
4711dnl Check if the file-system supports mixed-case filenames. If we're able to
4712dnl create a lowercase name and see it as uppercase, it doesn't support that.
4713AC_DEFUN([CF_MIXEDCASE_FILENAMES],
4714[
4715AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
4716if test "$cross_compiling" = yes ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01004717 case $target_alias in
4718 (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304719 cf_cv_mixedcase=no
4720 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01004721 (*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304722 cf_cv_mixedcase=yes
4723 ;;
4724 esac
4725else
4726 rm -f conftest CONFTEST
4727 echo test >conftest
4728 if test -f CONFTEST ; then
4729 cf_cv_mixedcase=no
4730 else
4731 cf_cv_mixedcase=yes
4732 fi
4733 rm -f conftest CONFTEST
4734fi
4735])
Steve Kondikae271bc2015-11-15 02:50:53 +01004736test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304737])dnl
4738dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004739dnl CF_MKSTEMP version: 9 updated: 2012/10/03 04:34:49
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304740dnl ----------
4741dnl Check for a working mkstemp. This creates two files, checks that they are
4742dnl successfully created and distinct (AmigaOS apparently fails on the last).
4743AC_DEFUN([CF_MKSTEMP],[
4744AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
Steve Kondikae271bc2015-11-15 02:50:53 +01004745rm -rf conftest*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304746AC_TRY_RUN([
4747#include <sys/types.h>
4748#include <stdlib.h>
4749#include <stdio.h>
4750#include <string.h>
4751#include <sys/stat.h>
4752int main()
4753{
4754 char *tmpl = "conftestXXXXXX";
4755 char name[2][80];
4756 int n;
4757 int result = 0;
4758 int fd;
4759 struct stat sb;
4760
4761 umask(077);
4762 for (n = 0; n < 2; ++n) {
4763 strcpy(name[n], tmpl);
4764 if ((fd = mkstemp(name[n])) >= 0) {
4765 if (!strcmp(name[n], tmpl)
4766 || stat(name[n], &sb) != 0
4767 || (sb.st_mode & S_IFMT) != S_IFREG
4768 || (sb.st_mode & 077) != 0) {
4769 result = 1;
4770 }
4771 close(fd);
4772 }
4773 }
4774 if (result == 0
4775 && !strcmp(name[0], name[1]))
4776 result = 1;
4777 ${cf_cv_main_return:-return}(result);
4778}
4779],[cf_cv_func_mkstemp=yes
4780],[cf_cv_func_mkstemp=no
Steve Kondikae271bc2015-11-15 02:50:53 +01004781],[cf_cv_func_mkstemp=maybe])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304782])
Steve Kondikae271bc2015-11-15 02:50:53 +01004783if test "x$cf_cv_func_mkstemp" = xmaybe ; then
4784 AC_CHECK_FUNC(mkstemp)
4785fi
4786if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
4787 AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304788fi
4789])dnl
4790dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004791dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304792dnl ----------
4793dnl Write a debug message to config.log, along with the line number in the
4794dnl configure script.
4795AC_DEFUN([CF_MSG_LOG],[
Steve Kondikae271bc2015-11-15 02:50:53 +01004796echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304797])dnl
4798dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004799dnl CF_NCURSES_ABI_6 version: 3 updated: 2015/06/06 16:10:11
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304800dnl ----------------
4801dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
4802dnl warn about this.
4803AC_DEFUN([CF_NCURSES_ABI_6],[
4804if test "${with_abi_version+set}" != set; then
4805 case $cf_cv_rel_version in
Steve Kondikae271bc2015-11-15 02:50:53 +01004806 (5.*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304807 cf_cv_rel_version=6.0
4808 cf_cv_abi_version=6
Steve Kondikae271bc2015-11-15 02:50:53 +01004809 AC_MSG_WARN(overriding ABI version to $cf_cv_abi_version)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304810 ;;
4811 esac
4812fi
4813])dnl
4814dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004815dnl CF_NO_LEAKS_OPTION version: 6 updated: 2015/04/12 15:39:00
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304816dnl ------------------
4817dnl see CF_WITH_NO_LEAKS
4818AC_DEFUN([CF_NO_LEAKS_OPTION],[
4819AC_MSG_CHECKING(if you want to use $1 for testing)
4820AC_ARG_WITH($1,
4821 [$2],
Steve Kondikae271bc2015-11-15 02:50:53 +01004822 [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304823 $4
4824])
4825 : ${with_cflags:=-g}
4826 : ${with_no_leaks:=yes}
4827 with_$1=yes],
4828 [with_$1=])
4829AC_MSG_RESULT(${with_$1:-no})
4830
Steve Kondikae271bc2015-11-15 02:50:53 +01004831case .$with_cflags in
4832(.*-g*)
4833 case .$CFLAGS in
4834 (.*-g*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304835 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01004836 (*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304837 CF_ADD_CFLAGS([-g])
4838 ;;
4839 esac
4840 ;;
4841esac
4842])dnl
4843dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004844dnl CF_NUMBER_SYNTAX version: 2 updated: 2015/04/17 21:13:04
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304845dnl ----------------
4846dnl Check if the given variable is a number. If not, report an error.
4847dnl $1 is the variable
4848dnl $2 is the message
4849AC_DEFUN([CF_NUMBER_SYNTAX],[
4850if test -n "$1" ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01004851 case $1 in
4852 ([[0-9]]*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304853 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01004854 (*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304855 AC_MSG_ERROR($2 is not a number: $1)
4856 ;;
4857 esac
4858else
4859 AC_MSG_ERROR($2 value is empty)
4860fi
4861])dnl
4862dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004863dnl CF_OBJ_SUBDIR version: 7 updated: 2015/04/17 21:13:04
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304864dnl -------------
4865dnl Compute the object-directory name from the given model name
4866AC_DEFUN([CF_OBJ_SUBDIR],
4867[
4868 case $1 in
Steve Kondikae271bc2015-11-15 02:50:53 +01004869 (libtool) $2='obj_lo' ;;
4870 (normal) $2='objects' ;;
4871 (debug) $2='obj_g' ;;
4872 (profile) $2='obj_p' ;;
4873 (shared)
4874 case $cf_cv_system_name in
4875 (cygwin|msys)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304876 $2='objects' ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01004877 (*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304878 $2='obj_s' ;;
4879 esac
4880 esac
4881])dnl
4882dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004883dnl CF_PATHSEP version: 7 updated: 2015/04/12 15:39:00
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304884dnl ----------
Steve Kondikae271bc2015-11-15 02:50:53 +01004885dnl Provide a value for the $PATH and similar separator (or amend the value
4886dnl as provided in autoconf 2.5x).
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304887AC_DEFUN([CF_PATHSEP],
4888[
Steve Kondikae271bc2015-11-15 02:50:53 +01004889 AC_MSG_CHECKING(for PATH separator)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304890 case $cf_cv_system_name in
Steve Kondikae271bc2015-11-15 02:50:53 +01004891 (os2*) PATH_SEPARATOR=';' ;;
4892 (*) ${PATH_SEPARATOR:=':'} ;;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304893 esac
Steve Kondikae271bc2015-11-15 02:50:53 +01004894ifelse([$1],,,[$1=$PATH_SEPARATOR])
4895 AC_SUBST(PATH_SEPARATOR)
4896 AC_MSG_RESULT($PATH_SEPARATOR)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304897])dnl
4898dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004899dnl CF_PATH_SYNTAX version: 16 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304900dnl --------------
4901dnl Check the argument to see that it looks like a pathname. Rewrite it if it
4902dnl begins with one of the prefix/exec_prefix variables, and then again if the
4903dnl result begins with 'NONE'. This is necessary to work around autoconf's
4904dnl delayed evaluation of those symbols.
4905AC_DEFUN([CF_PATH_SYNTAX],[
4906if test "x$prefix" != xNONE; then
Steve Kondikae271bc2015-11-15 02:50:53 +01004907 cf_path_syntax="$prefix"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304908else
Steve Kondikae271bc2015-11-15 02:50:53 +01004909 cf_path_syntax="$ac_default_prefix"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304910fi
4911
Steve Kondikae271bc2015-11-15 02:50:53 +01004912case ".[$]$1" in
4913(.\[$]\(*\)*|.\'*\'*)
4914 ;;
4915(..|./*|.\\*)
4916 ;;
4917(.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
4918 ;;
4919(.\[$]{*prefix}*|.\[$]{*dir}*)
4920 eval $1="[$]$1"
4921 case ".[$]$1" in
4922 (.NONE/*)
4923 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
4924 ;;
4925 esac
4926 ;;
4927(.no|.NONE/*)
4928 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
4929 ;;
4930(*)
4931 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
4932 ;;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304933esac
4934])dnl
4935dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01004936dnl CF_PKG_CONFIG version: 10 updated: 2015/04/26 18:06:58
4937dnl -------------
4938dnl Check for the package-config program, unless disabled by command-line.
4939AC_DEFUN([CF_PKG_CONFIG],
4940[
4941AC_MSG_CHECKING(if you want to use pkg-config)
4942AC_ARG_WITH(pkg-config,
4943 [ --with-pkg-config{=path} enable/disable use of pkg-config],
4944 [cf_pkg_config=$withval],
4945 [cf_pkg_config=yes])
4946AC_MSG_RESULT($cf_pkg_config)
4947
4948case $cf_pkg_config in
4949(no)
4950 PKG_CONFIG=none
4951 ;;
4952(yes)
4953 CF_ACVERSION_CHECK(2.52,
4954 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
4955 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
4956 ;;
4957(*)
4958 PKG_CONFIG=$withval
4959 ;;
4960esac
4961
4962test -z "$PKG_CONFIG" && PKG_CONFIG=none
4963if test "$PKG_CONFIG" != none ; then
4964 CF_PATH_SYNTAX(PKG_CONFIG)
4965elif test "x$cf_pkg_config" != xno ; then
4966 AC_MSG_WARN(pkg-config is not installed)
4967fi
4968
4969AC_SUBST(PKG_CONFIG)
4970])dnl
4971dnl ---------------------------------------------------------------------------
4972dnl CF_POSIX_C_SOURCE version: 9 updated: 2015/04/12 15:39:00
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304973dnl -----------------
4974dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
4975dnl
4976dnl POSIX.1-1990 _POSIX_SOURCE
4977dnl POSIX.1-1990 and _POSIX_SOURCE and
4978dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
4979dnl Bindings Option
4980dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
4981dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
4982dnl X/Open 2000 _POSIX_C_SOURCE=200112L
4983dnl
4984dnl Parameters:
4985dnl $1 is the nominal value for _POSIX_C_SOURCE
4986AC_DEFUN([CF_POSIX_C_SOURCE],
4987[
Steve Kondikae271bc2015-11-15 02:50:53 +01004988cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304989
4990cf_save_CFLAGS="$CFLAGS"
4991cf_save_CPPFLAGS="$CPPFLAGS"
4992
4993CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
4994CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
4995
4996AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
4997 CF_MSG_LOG(if the symbol is already defined go no further)
4998 AC_TRY_COMPILE([#include <sys/types.h>],[
4999#ifndef _POSIX_C_SOURCE
5000make an error
5001#endif],
5002 [cf_cv_posix_c_source=no],
5003 [cf_want_posix_source=no
Steve Kondikae271bc2015-11-15 02:50:53 +01005004 case .$cf_POSIX_C_SOURCE in
5005 (.[[12]]??*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305006 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
5007 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005008 (.2)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305009 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
5010 cf_want_posix_source=yes
5011 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005012 (.*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305013 cf_want_posix_source=yes
5014 ;;
5015 esac
5016 if test "$cf_want_posix_source" = yes ; then
5017 AC_TRY_COMPILE([#include <sys/types.h>],[
5018#ifdef _POSIX_SOURCE
5019make an error
5020#endif],[],
5021 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
5022 fi
5023 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
5024 CFLAGS="$cf_trim_CFLAGS"
5025 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
5026 CF_MSG_LOG(if the second compile does not leave our definition intact error)
5027 AC_TRY_COMPILE([#include <sys/types.h>],[
5028#ifndef _POSIX_C_SOURCE
5029make an error
5030#endif],,
5031 [cf_cv_posix_c_source=no])
5032 CFLAGS="$cf_save_CFLAGS"
5033 CPPFLAGS="$cf_save_CPPFLAGS"
5034 ])
5035])
5036
5037if test "$cf_cv_posix_c_source" != no ; then
5038 CFLAGS="$cf_trim_CFLAGS"
5039 CPPFLAGS="$cf_trim_CPPFLAGS"
Steve Kondikae271bc2015-11-15 02:50:53 +01005040 CF_ADD_CFLAGS($cf_cv_posix_c_source)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305041fi
5042
5043])dnl
5044dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01005045dnl CF_PREDEFINE version: 2 updated: 2010/05/26 16:44:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305046dnl ------------
5047dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
5048dnl
5049dnl $1 = symbol to test
5050dnl $2 = value (if any) to use for a predefinition
5051AC_DEFUN([CF_PREDEFINE],
5052[
5053AC_MSG_CHECKING(if we must define $1)
5054AC_TRY_COMPILE([#include <sys/types.h>
5055],[
5056#ifndef $1
5057make an error
5058#endif],[cf_result=no],[cf_result=yes])
5059AC_MSG_RESULT($cf_result)
5060
5061if test "$cf_result" = yes ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01005062 CPPFLAGS="$CPPFLAGS ifelse([$2],,-D$1,[-D$1=$2])"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305063elif test "x$2" != "x" ; then
5064 AC_MSG_CHECKING(checking for compatible value versus $2)
5065 AC_TRY_COMPILE([#include <sys/types.h>
5066],[
5067#if $1-$2 < 0
5068make an error
5069#endif],[cf_result=yes],[cf_result=no])
5070 AC_MSG_RESULT($cf_result)
5071 if test "$cf_result" = no ; then
5072 # perhaps we can override it - try...
5073 CPPFLAGS="$CPPFLAGS -D$1=$2"
5074 fi
5075fi
5076])dnl
5077dnl ---------------------------------------------------------------------------
5078dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
5079dnl ------------
5080dnl Append definitions and rules for the given programs to the subdirectory
5081dnl Makefiles, and the recursion rule for the top-level Makefile.
5082dnl
5083dnl parameters
5084dnl $1 = script to run
5085dnl $2 = list of subdirectories
5086dnl
5087dnl variables
5088dnl $AWK
5089AC_DEFUN([CF_PRG_RULES],
5090[
5091for cf_dir in $2
5092do
5093 if test ! -d $srcdir/$cf_dir; then
5094 continue
5095 elif test -f $srcdir/$cf_dir/programs; then
5096 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
5097 fi
5098done
5099
5100])dnl
5101dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01005102dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
5103dnl ----------
5104dnl Check for archiver "ar".
5105AC_DEFUN([CF_PROG_AR],[
5106AC_CHECK_TOOL(AR, ar, ar)
5107])
5108dnl ---------------------------------------------------------------------------
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305109dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
5110dnl -----------
5111dnl Check for awk, ensure that the check found something.
5112AC_DEFUN([CF_PROG_AWK],
5113[
5114AC_PROG_AWK
5115test -z "$AWK" && AC_MSG_ERROR(No awk program found)
5116])dnl
5117dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01005118dnl CF_PROG_CC version: 4 updated: 2014/07/12 18:57:58
5119dnl ----------
5120dnl standard check for CC, plus followup sanity checks
5121dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
5122AC_DEFUN([CF_PROG_CC],[
5123ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
5124CF_GCC_VERSION
5125CF_ACVERSION_CHECK(2.52,
5126 [AC_PROG_CC_STDC],
5127 [CF_ANSI_CC_REQD])
5128CF_CC_ENV_FLAGS
5129])dnl
5130dnl ---------------------------------------------------------------------------
5131dnl CF_PROG_CC_C_O version: 3 updated: 2010/08/14 18:25:37
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305132dnl --------------
5133dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
5134dnl the output file can be renamed, and allows for a shell variable that can
5135dnl be used later. The parameter is either CC or CXX. The result is the
5136dnl cache variable:
5137dnl $cf_cv_prog_CC_c_o
5138dnl $cf_cv_prog_CXX_c_o
5139AC_DEFUN([CF_PROG_CC_C_O],
5140[AC_REQUIRE([AC_PROG_CC])dnl
5141AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
5142AC_CACHE_VAL(cf_cv_prog_$1_c_o,
5143[
5144cat > conftest.$ac_ext <<CF_EOF
5145#include <stdio.h>
5146int main()
5147{
5148 ${cf_cv_main_return:-return}(0);
5149}
5150CF_EOF
5151# We do the test twice because some compilers refuse to overwrite an
5152# existing .o file with -o, though they will create one.
5153ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
5154if AC_TRY_EVAL(ac_try) &&
5155 test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
5156then
5157 eval cf_cv_prog_$1_c_o=yes
5158else
5159 eval cf_cv_prog_$1_c_o=no
5160fi
Steve Kondikae271bc2015-11-15 02:50:53 +01005161rm -rf conftest*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305162])dnl
5163if test $cf_cv_prog_$1_c_o = yes; then
5164 AC_MSG_RESULT([yes])
5165else
5166 AC_MSG_RESULT([no])
5167fi
5168])dnl
5169dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01005170dnl CF_PROG_EGREP version: 2 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305171dnl -------------
5172dnl AC_PROG_EGREP was introduced in autoconf 2.53.
5173dnl This macro adds a check to ensure the script found something.
5174AC_DEFUN([CF_PROG_EGREP],
5175[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
Steve Kondikae271bc2015-11-15 02:50:53 +01005176 [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
5177 then ac_cv_prog_egrep='grep -E'
5178 else ac_cv_prog_egrep='egrep'
5179 fi])
5180 EGREP=$ac_cv_prog_egrep
5181 AC_SUBST([EGREP])
5182 test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305183])dnl
5184dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01005185dnl CF_PROG_GNAT version: 3 updated: 2015/04/18 08:56:57
5186dnl ------------
5187dnl Check for gnatmake, ensure that it is complete.
5188AC_DEFUN([CF_PROG_GNAT],[
5189cf_ada_make=gnatmake
5190AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
5191if test "$ac_cv_prog_gnat_exists" = no; then
5192 cf_ada_make=
5193 cf_cv_prog_gnat_correct=no
5194else
5195 CF_GNAT_VERSION
5196 AC_CHECK_PROG(M4_exists, m4, yes, no)
5197 if test "$ac_cv_prog_M4_exists" = no; then
5198 cf_cv_prog_gnat_correct=no
5199 echo Ada95 binding required program m4 not found. Ada95 binding disabled.
5200 fi
5201 if test "$cf_cv_prog_gnat_correct" = yes; then
5202 AC_MSG_CHECKING(if GNAT works)
5203 CF_GNAT_TRY_RUN([procedure conftest;],
5204[with Text_IO;
5205with GNAT.OS_Lib;
5206procedure conftest is
5207begin
5208 Text_IO.Put ("Hello World");
5209 Text_IO.New_Line;
5210 GNAT.OS_Lib.OS_Exit (0);
5211end conftest;],[cf_cv_prog_gnat_correct=yes],[cf_cv_prog_gnat_correct=no])
5212 AC_MSG_RESULT($cf_cv_prog_gnat_correct)
5213 fi
5214fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305215
Steve Kondikae271bc2015-11-15 02:50:53 +01005216AC_SUBST(cf_ada_make)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305217])dnl
5218dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01005219dnl CF_PROG_INSTALL version: 7 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305220dnl ---------------
5221dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
5222dnl misc/tabset install won't work properly. Usually this happens only when
5223dnl using the fallback mkinstalldirs script
5224AC_DEFUN([CF_PROG_INSTALL],
5225[AC_PROG_INSTALL
5226case $INSTALL in
Steve Kondikae271bc2015-11-15 02:50:53 +01005227(/*)
5228 ;;
5229(*)
5230 CF_DIRNAME(cf_dir,$INSTALL)
5231 test -z "$cf_dir" && cf_dir=.
5232 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
5233 ;;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305234esac
5235])dnl
5236dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01005237dnl CF_PROG_LDCONFIG version: 5 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305238dnl ----------------
5239dnl Check for ldconfig, needed to fixup shared libraries that would be built
5240dnl and then used in the install.
5241AC_DEFUN([CF_PROG_LDCONFIG],[
5242if test "$cross_compiling" = yes ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01005243 LDCONFIG=:
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305244else
Steve Kondikae271bc2015-11-15 02:50:53 +01005245 case "$cf_cv_system_name" in
5246 (dragonfly*|mirbsd*|freebsd*)
5247 test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
5248 ;;
5249 (*) LDPATH=$PATH:/sbin:/usr/sbin
5250 AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
5251 ;;
5252 esac
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305253fi
5254AC_SUBST(LDCONFIG)
5255])dnl
5256dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01005257dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305258dnl ------------
5259AC_DEFUN([CF_PROG_LINT],
5260[
Steve Kondikae271bc2015-11-15 02:50:53 +01005261AC_CHECK_PROGS(LINT, tdlint lint alint splint lclint)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305262AC_SUBST(LINT_OPTS)
5263])dnl
5264dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01005265dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
5266dnl ------------
5267dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
5268dnl option if it is supported.
5269AC_DEFUN([CF_PROG_LN_S],[
5270AC_PROG_LN_S
5271AC_MSG_CHECKING(if $LN_S -f options work)
5272
5273rm -f conf$$.src conf$$dst
5274echo >conf$$.dst
5275echo first >conf$$.src
5276if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
5277 cf_prog_ln_sf=yes
5278else
5279 cf_prog_ln_sf=no
5280fi
5281rm -f conf$$.dst conf$$src
5282AC_MSG_RESULT($cf_prog_ln_sf)
5283
5284test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
5285])dnl
5286dnl ---------------------------------------------------------------------------
5287dnl CF_REGEX version: 12 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305288dnl --------
5289dnl Attempt to determine if we've got one of the flavors of regular-expression
5290dnl code that we can support.
5291AC_DEFUN([CF_REGEX],
5292[
Steve Kondikae271bc2015-11-15 02:50:53 +01005293
5294cf_regex_func=no
5295
5296cf_regex_libs="regex re"
5297case $host_os in
5298(mingw*)
5299 cf_regex_libs="gnurx $cf_regex_libs"
5300 ;;
5301esac
5302
5303AC_CHECK_FUNC(regcomp,[cf_regex_func=regcomp],[
5304 for cf_regex_lib in $cf_regex_libs
5305 do
5306 AC_CHECK_LIB($cf_regex_lib,regcomp,[
5307 CF_ADD_LIB($cf_regex_lib)
5308 cf_regex_func=regcomp
5309 break])
5310 done
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305311])
Steve Kondikae271bc2015-11-15 02:50:53 +01005312
5313if test "$cf_regex_func" = no ; then
5314 AC_CHECK_FUNC(compile,[cf_regex_func=compile],[
5315 AC_CHECK_LIB(gen,compile,[
5316 CF_ADD_LIB(gen)
5317 cf_regex_func=compile])])
5318fi
5319
5320if test "$cf_regex_func" = no ; then
5321 AC_MSG_WARN(cannot find regular expression library)
5322fi
5323
5324AC_CACHE_CHECK(for regular-expression headers,cf_cv_regex_hdrs,[
5325
5326cf_cv_regex_hdrs=no
5327case $cf_regex_func in
5328(compile)
5329 for cf_regex_hdr in regexp.h regexpr.h
5330 do
5331 AC_TRY_LINK([#include <$cf_regex_hdr>],[
5332 char *p = compile("", "", "", 0);
5333 int x = step("", "");
5334 ],[
5335 cf_cv_regex_hdrs=$cf_regex_hdr
5336 break
5337 ])
5338 done
5339 ;;
5340(*)
5341 for cf_regex_hdr in regex.h
5342 do
5343 AC_TRY_LINK([#include <sys/types.h>
5344#include <$cf_regex_hdr>],[
5345 regex_t *p;
5346 int x = regcomp(p, "", 0);
5347 int y = regexec(p, "", 0, 0, 0);
5348 regfree(p);
5349 ],[
5350 cf_cv_regex_hdrs=$cf_regex_hdr
5351 break
5352 ])
5353 done
5354 ;;
5355esac
5356
5357])
5358
5359case $cf_cv_regex_hdrs in
5360 (no) AC_MSG_WARN(no regular expression header found) ;;
5361 (regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS,1,[Define to 1 to include regex.h for regular expressions]) ;;
5362 (regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS,1,[Define to 1 to include regexp.h for regular expressions]) ;;
5363 (regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS,1,[Define to 1 to include regexpr.h for regular expressions]) ;;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305364esac
5365])dnl
5366dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01005367dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305368dnl ----------------
5369dnl Remove all -U and -D options that refer to the given symbol from a list
5370dnl of C compiler options. This works around the problem that not all
5371dnl compilers process -U and -D options from left-to-right, so a -U option
5372dnl cannot be used to cancel the effect of a preceding -D option.
5373dnl
5374dnl $1 = target (which could be the same as the source variable)
5375dnl $2 = source (including '$')
5376dnl $3 = symbol to remove
5377define([CF_REMOVE_DEFINE],
5378[
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305379$1=`echo "$2" | \
Steve Kondikae271bc2015-11-15 02:50:53 +01005380 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
5381 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305382])dnl
5383dnl ---------------------------------------------------------------------------
5384dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
5385dnl -------------
5386dnl Remove the given library from the symbol
5387dnl
5388dnl $1 = target (which could be the same as the source variable)
5389dnl $2 = source (including '$')
5390dnl $3 = library to remove
5391define([CF_REMOVE_LIB],
5392[
5393# remove $3 library from $2
5394$1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
5395])dnl
5396dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01005397dnl CF_RPATH_HACK version: 11 updated: 2013/09/01 13:02:00
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305398dnl -------------
5399AC_DEFUN([CF_RPATH_HACK],
5400[
Steve Kondikae271bc2015-11-15 02:50:53 +01005401AC_REQUIRE([CF_LD_RPATH_OPT])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305402AC_MSG_CHECKING(for updated LDFLAGS)
Steve Kondikae271bc2015-11-15 02:50:53 +01005403if test -n "$LD_RPATH_OPT" ; then
5404 AC_MSG_RESULT(maybe)
5405
5406 AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
5407 cf_rpath_list="/usr/lib /lib"
5408 if test "$cf_ldd_prog" != no
5409 then
5410 cf_rpath_oops=
5411
5412AC_TRY_LINK([#include <stdio.h>],
5413 [printf("Hello");],
5414 [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
5415 cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
5416
5417 # If we passed the link-test, but get a "not found" on a given library,
5418 # this could be due to inept reconfiguration of gcc to make it only
5419 # partly honor /usr/local/lib (or whatever). Sometimes this behavior
5420 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
5421 # /usr/local libraries.
5422 if test -n "$cf_rpath_oops"
5423 then
5424 for cf_rpath_src in $cf_rpath_oops
5425 do
5426 for cf_rpath_dir in \
5427 /usr/local \
5428 /usr/pkg \
5429 /opt/sfw
5430 do
5431 if test -f $cf_rpath_dir/lib/$cf_rpath_src
5432 then
5433 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
5434 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
5435 break
5436 fi
5437 done
5438 done
5439 fi
5440 fi
5441
5442 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
5443
5444 CF_RPATH_HACK_2(LDFLAGS)
5445 CF_RPATH_HACK_2(LIBS)
5446
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305447 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305448else
Steve Kondikae271bc2015-11-15 02:50:53 +01005449 AC_MSG_RESULT(no)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305450fi
Steve Kondikae271bc2015-11-15 02:50:53 +01005451AC_SUBST(EXTRA_LDFLAGS)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305452])dnl
5453dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01005454dnl CF_RPATH_HACK_2 version: 7 updated: 2015/04/12 15:39:00
5455dnl ---------------
5456dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
5457dnl EXTRA_LDFLAGS for each -L option found.
5458dnl
5459dnl $cf_rpath_list contains a list of directories to ignore.
5460dnl
5461dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
5462dnl but LIBS often has misplaced -L options.
5463AC_DEFUN([CF_RPATH_HACK_2],
5464[
5465CF_VERBOSE(...checking $1 [$]$1)
5466
5467cf_rpath_dst=
5468for cf_rpath_src in [$]$1
5469do
5470 case $cf_rpath_src in
5471 (-L*)
5472
5473 # check if this refers to a directory which we will ignore
5474 cf_rpath_skip=no
5475 if test -n "$cf_rpath_list"
5476 then
5477 for cf_rpath_item in $cf_rpath_list
5478 do
5479 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
5480 then
5481 cf_rpath_skip=yes
5482 break
5483 fi
5484 done
5485 fi
5486
5487 if test "$cf_rpath_skip" = no
5488 then
5489 # transform the option
5490 if test "$LD_RPATH_OPT" = "-R " ; then
5491 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
5492 else
5493 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
5494 fi
5495
5496 # if we have not already added this, add it now
5497 cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
5498 if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
5499 then
5500 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
5501 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
5502 fi
5503 fi
5504 ;;
5505 esac
5506 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
5507done
5508$1=$cf_rpath_dst
5509
5510CF_VERBOSE(...checked $1 [$]$1)
5511AC_SUBST(EXTRA_LDFLAGS)
5512])dnl
5513dnl ---------------------------------------------------------------------------
5514dnl CF_SHARED_OPTS version: 88 updated: 2015/08/05 20:44:28
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305515dnl --------------
5516dnl --------------
5517dnl Attempt to determine the appropriate CC/LD options for creating a shared
5518dnl library.
5519dnl
Steve Kondikae271bc2015-11-15 02:50:53 +01005520dnl Notes:
5521dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within
5522dnl the build-tree, i.e., by making use of the libraries that are compiled in
5523dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the
5524dnl shared library since that can lead to unexpected results at runtime.
5525dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared
5526dnl libraries are compiled in ../../lib
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305527dnl
5528dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
5529dnl to install symbolic links to the rel/abi versions of shared libraries.
5530dnl
5531dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
5532dnl version when making symbolic links.
5533dnl
5534dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
5535dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
5536dnl (ex: libncurses.so.<ver>).
5537dnl
5538dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
5539AC_DEFUN([CF_SHARED_OPTS],
5540[
Steve Kondikae271bc2015-11-15 02:50:53 +01005541 AC_REQUIRE([CF_LD_RPATH_OPT])
5542 RM_SHARED_OPTS=
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305543 LOCAL_LDFLAGS=
5544 LOCAL_LDFLAGS2=
5545 LD_SHARED_OPTS=
5546 INSTALL_LIB="-m 644"
Steve Kondikae271bc2015-11-15 02:50:53 +01005547 : ${rel_builddir:=.}
5548
5549 shlibdir=$libdir
5550 AC_SUBST(shlibdir)
5551
5552 MAKE_DLLS="#"
5553 AC_SUBST(MAKE_DLLS)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305554
5555 cf_cv_do_symlinks=no
Steve Kondikae271bc2015-11-15 02:50:53 +01005556 cf_ld_rpath_opt=
5557 test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305558
5559 AC_MSG_CHECKING(if release/abi version should be used for shared libs)
5560 AC_ARG_WITH(shlib-version,
5561 [ --with-shlib-version=X Specify rel or abi version for shared libs],
5562 [test -z "$withval" && withval=auto
Steve Kondikae271bc2015-11-15 02:50:53 +01005563 case $withval in
5564 (yes)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305565 cf_cv_shlib_version=auto
5566 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005567 (rel|abi|auto|no)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305568 cf_cv_shlib_version=$withval
5569 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005570 (*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305571 AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
5572 ;;
5573 esac
5574 ],[cf_cv_shlib_version=auto])
5575 AC_MSG_RESULT($cf_cv_shlib_version)
5576
5577 cf_cv_rm_so_locs=no
Steve Kondikae271bc2015-11-15 02:50:53 +01005578 cf_try_cflags=
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305579
5580 # Some less-capable ports of gcc support only -fpic
5581 CC_SHARED_OPTS=
5582 if test "$GCC" = yes
5583 then
5584 AC_MSG_CHECKING(which $CC option to use)
5585 cf_save_CFLAGS="$CFLAGS"
5586 for CC_SHARED_OPTS in -fPIC -fpic ''
5587 do
5588 CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
5589 AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
5590 done
5591 AC_MSG_RESULT($CC_SHARED_OPTS)
5592 CFLAGS="$cf_save_CFLAGS"
5593 fi
5594
5595 cf_cv_shlib_version_infix=no
5596
5597 case $cf_cv_system_name in
Steve Kondikae271bc2015-11-15 02:50:53 +01005598 (aix4.[3-9]*|aix[[5-7]]*)
5599 if test "$GCC" = yes; then
5600 CC_SHARED_OPTS='-Wl,-brtl'
5601 MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
5602 else
5603 CC_SHARED_OPTS='-brtl'
5604 # as well as '-qpic=large -G' or perhaps "-bM:SRE -bnoentry -bexpall"
5605 MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
5606 fi
5607 ;;
5608 (beos*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305609 MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
5610 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005611 (cygwin*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305612 CC_SHARED_OPTS=
Steve Kondikae271bc2015-11-15 02:50:53 +01005613 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
5614 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305615 cf_cv_shlib_version=cygdll
5616 cf_cv_shlib_version_infix=cygdll
Steve Kondikae271bc2015-11-15 02:50:53 +01005617 shlibdir=$bindir
5618 MAKE_DLLS=
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305619 cat >mk_shared_lib.sh <<-CF_EOF
Steve Kondikae271bc2015-11-15 02:50:53 +01005620 #!$SHELL
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305621 SHARED_LIB=\[$]1
5622 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
5623 shift
5624 cat <<-EOF
5625 Linking shared library
5626 ** SHARED_LIB \[$]SHARED_LIB
5627 ** IMPORT_LIB \[$]IMPORT_LIB
5628EOF
Steve Kondikae271bc2015-11-15 02:50:53 +01005629 exec \[$]* -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305630CF_EOF
Steve Kondikae271bc2015-11-15 02:50:53 +01005631 chmod +x mk_shared_lib.sh
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305632 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005633 (msys*)
5634 CC_SHARED_OPTS=
5635 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
5636 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
5637 cf_cv_shlib_version=msysdll
5638 cf_cv_shlib_version_infix=msysdll
5639 shlibdir=$bindir
5640 MAKE_DLLS=
5641 cat >mk_shared_lib.sh <<-CF_EOF
5642 #!$SHELL
5643 SHARED_LIB=\[$]1
5644 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
5645 shift
5646 cat <<-EOF
5647 Linking shared library
5648 ** SHARED_LIB \[$]SHARED_LIB
5649 ** IMPORT_LIB \[$]IMPORT_LIB
5650EOF
5651 exec \[$]* -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
5652CF_EOF
5653 chmod +x mk_shared_lib.sh
5654 ;;
5655 (darwin*)
5656 cf_try_cflags="no-cpp-precomp"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305657 CC_SHARED_OPTS="-dynamic"
5658 MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
5659 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
5660 cf_cv_shlib_version_infix=yes
5661 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
5662 cf_save_LDFLAGS=$LDFLAGS
5663 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
5664 AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
5665 LDFLAGS=$cf_save_LDFLAGS])
5666 if test $cf_cv_ldflags_search_paths_first = yes; then
5667 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
5668 fi
5669 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005670 (hpux[[7-8]]*)
5671 # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
5672 if test "$GCC" != yes; then
5673 CC_SHARED_OPTS='+Z'
5674 fi
5675 MK_SHARED_LIB='${LD} -b -o $[@]'
5676 INSTALL_LIB="-m 555"
5677 ;;
5678 (hpux*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305679 # (tested with gcc 2.7.2 -- I don't have c89)
5680 if test "$GCC" = yes; then
5681 LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
5682 else
5683 CC_SHARED_OPTS='+Z'
5684 LD_SHARED_OPTS='-Wl,+b,${libdir}'
5685 fi
5686 MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]'
5687 # HP-UX shared libraries must be executable, and should be
5688 # readonly to exploit a quirk in the memory manager.
5689 INSTALL_LIB="-m 555"
5690 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005691 (interix*)
5692 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
5693 if test "$cf_cv_shlib_version" = rel; then
5694 cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
5695 else
5696 cf_shared_soname='`basename $@`'
5697 fi
5698 CC_SHARED_OPTS=
5699 MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $@'
5700 ;;
5701 (irix*)
5702 if test "$cf_cv_enable_rpath" = yes ; then
5703 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305704 fi
5705 # tested with IRIX 5.2 and 'cc'.
5706 if test "$GCC" != yes; then
5707 CC_SHARED_OPTS='-KPIC'
5708 MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
5709 else
5710 MK_SHARED_LIB='${CC} -shared -Wl,-soname,`basename $[@]` -o $[@]'
5711 fi
5712 cf_cv_rm_so_locs=yes
5713 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005714 (linux*|gnu*|k*bsd*-gnu)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305715 if test "$DFT_LWR_MODEL" = "shared" ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01005716 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305717 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
5718 fi
Steve Kondikae271bc2015-11-15 02:50:53 +01005719 if test "$cf_cv_enable_rpath" = yes ; then
5720 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305721 fi
5722 CF_SHARED_SONAME
5723 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
5724 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005725 (mingw*)
5726 cf_cv_shlib_version=mingw
5727 cf_cv_shlib_version_infix=mingw
5728 shlibdir=$bindir
5729 MAKE_DLLS=
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305730 if test "$DFT_LWR_MODEL" = "shared" ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01005731 LOCAL_LDFLAGS="-Wl,--enable-auto-import"
5732 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
5733 EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
5734 fi
5735 CC_SHARED_OPTS=
5736 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
5737 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
5738 cat >mk_shared_lib.sh <<-CF_EOF
5739 #!$SHELL
5740 SHARED_LIB=\[$]1
5741 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
5742 shift
5743 cat <<-EOF
5744 Linking shared library
5745 ** SHARED_LIB \[$]SHARED_LIB
5746 ** IMPORT_LIB \[$]IMPORT_LIB
5747EOF
5748 exec \[$]* -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
5749CF_EOF
5750 chmod +x mk_shared_lib.sh
5751 ;;
5752 (openbsd[[2-9]].*|mirbsd*)
5753 if test "$DFT_LWR_MODEL" = "shared" ; then
5754 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305755 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
5756 fi
Steve Kondikae271bc2015-11-15 02:50:53 +01005757 if test "$cf_cv_enable_rpath" = yes ; then
5758 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305759 fi
5760 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
5761 CF_SHARED_SONAME
Steve Kondikae271bc2015-11-15 02:50:53 +01005762 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305763 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005764 (nto-qnx*|openbsd*|freebsd[[12]].*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305765 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
5766 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
5767 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
5768 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005769 (dragonfly*|freebsd*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305770 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
Steve Kondikae271bc2015-11-15 02:50:53 +01005771 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
5772 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
5773 LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
5774 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305775 fi
5776 CF_SHARED_SONAME
Steve Kondikae271bc2015-11-15 02:50:53 +01005777 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305778 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005779 (netbsd*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305780 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
Steve Kondikae271bc2015-11-15 02:50:53 +01005781 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
5782 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305783 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
Steve Kondikae271bc2015-11-15 02:50:53 +01005784 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305785 if test "$cf_cv_shlib_version" = auto; then
5786 if test -f /usr/libexec/ld.elf_so; then
5787 cf_cv_shlib_version=abi
5788 else
5789 cf_cv_shlib_version=rel
5790 fi
5791 fi
5792 CF_SHARED_SONAME
5793 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
5794 else
Steve Kondikae271bc2015-11-15 02:50:53 +01005795 MK_SHARED_LIB='${CC} -Wl,-shared -Wl,-Bshareable -o $[@]'
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305796 fi
5797 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005798 (osf*|mls+*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305799 # tested with OSF/1 V3.2 and 'cc'
5800 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
5801 # link with shared libs).
5802 MK_SHARED_LIB='${LD} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
5803 case $host_os in
Steve Kondikae271bc2015-11-15 02:50:53 +01005804 (osf4*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305805 MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
5806 ;;
5807 esac
5808 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
5809 if test "$DFT_LWR_MODEL" = "shared" ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01005810 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305811 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
5812 fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305813 cf_cv_rm_so_locs=yes
5814 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005815 (sco3.2v5*) # also uw2* and UW7: hops 13-Apr-98
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305816 # tested with osr5.0.5
5817 if test "$GCC" != yes; then
5818 CC_SHARED_OPTS='-belf -KPIC'
5819 fi
5820 MK_SHARED_LIB='${LD} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
Steve Kondikae271bc2015-11-15 02:50:53 +01005821 if test "$cf_cv_enable_rpath" = yes ; then
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305822 # only way is to set LD_RUN_PATH but no switch for it
5823 RUN_PATH=$libdir
5824 fi
5825 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
5826 LINK_PROGS='LD_RUN_PATH=${libdir}'
5827 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
5828 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005829 (sunos4*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305830 # tested with SunOS 4.1.1 and gcc 2.7.0
5831 if test "$GCC" != yes; then
5832 CC_SHARED_OPTS='-KPIC'
5833 fi
5834 MK_SHARED_LIB='${LD} -assert pure-text -o $[@]'
5835 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
5836 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005837 (solaris2*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305838 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
5839 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
5840 if test "$DFT_LWR_MODEL" = "shared" ; then
5841 LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
5842 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
5843 fi
Steve Kondikae271bc2015-11-15 02:50:53 +01005844 if test "$cf_cv_enable_rpath" = yes ; then
5845 EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305846 fi
5847 CF_SHARED_SONAME
5848 if test "$GCC" != yes; then
Steve Kondikae271bc2015-11-15 02:50:53 +01005849 cf_save_CFLAGS="$CFLAGS"
5850 for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
5851 do
5852 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
5853 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\n");],[break])
5854 done
5855 CFLAGS="$cf_save_CFLAGS"
5856 CC_SHARED_OPTS=$cf_shared_opts
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305857 MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
5858 else
5859 MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
5860 fi
5861 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005862 (sysv5uw7*|unix_sv*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305863 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
5864 if test "$GCC" != yes; then
5865 CC_SHARED_OPTS='-KPIC'
5866 fi
5867 MK_SHARED_LIB='${LD} -d y -G -o [$]@'
5868 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005869 (*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305870 CC_SHARED_OPTS='unknown'
5871 MK_SHARED_LIB='echo unknown'
5872 ;;
5873 esac
5874
5875 # This works if the last tokens in $MK_SHARED_LIB are the -o target.
Steve Kondikae271bc2015-11-15 02:50:53 +01005876 case "$cf_cv_shlib_version" in
5877 (rel|abi)
5878 case "$MK_SHARED_LIB" in
5879 (*'-o $[@]')
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305880 test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
5881 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01005882 (*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305883 AC_MSG_WARN(ignored --with-shlib-version)
5884 ;;
5885 esac
5886 ;;
5887 esac
5888
Steve Kondikae271bc2015-11-15 02:50:53 +01005889 if test -n "$cf_try_cflags"
5890 then
5891cat > conftest.$ac_ext <<EOF
5892#line __oline__ "${as_me:-configure}"
5893#include <stdio.h>
5894int main(int argc, char *argv[[]])
5895{
5896 printf("hello\n");
5897 return (argv[[argc-1]] == 0) ;
5898}
5899EOF
5900 cf_save_CFLAGS="$CFLAGS"
5901 for cf_opt in $cf_try_cflags
5902 do
5903 CFLAGS="$cf_save_CFLAGS -$cf_opt"
5904 AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
5905 if AC_TRY_EVAL(ac_compile); then
5906 AC_MSG_RESULT(yes)
5907 cf_save_CFLAGS="$CFLAGS"
5908 else
5909 AC_MSG_RESULT(no)
5910 fi
5911 done
5912 CFLAGS="$cf_save_CFLAGS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305913 fi
5914
Steve Kondikae271bc2015-11-15 02:50:53 +01005915
5916 # RPATH_LIST is a colon-separated list of directories
5917 test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
5918 test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
5919
5920 test $cf_cv_rm_so_locs = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
5921
5922 CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
5923 CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
5924
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305925 AC_SUBST(CC_SHARED_OPTS)
Steve Kondikae271bc2015-11-15 02:50:53 +01005926 AC_SUBST(LD_RPATH_OPT)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305927 AC_SUBST(LD_SHARED_OPTS)
5928 AC_SUBST(MK_SHARED_LIB)
Steve Kondikae271bc2015-11-15 02:50:53 +01005929 AC_SUBST(RM_SHARED_OPTS)
5930
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305931 AC_SUBST(LINK_PROGS)
5932 AC_SUBST(LINK_TESTS)
Steve Kondikae271bc2015-11-15 02:50:53 +01005933
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305934 AC_SUBST(EXTRA_LDFLAGS)
5935 AC_SUBST(LOCAL_LDFLAGS)
5936 AC_SUBST(LOCAL_LDFLAGS2)
Steve Kondikae271bc2015-11-15 02:50:53 +01005937
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305938 AC_SUBST(INSTALL_LIB)
Steve Kondikae271bc2015-11-15 02:50:53 +01005939 AC_SUBST(RPATH_LIST)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305940])dnl
5941dnl ---------------------------------------------------------------------------
5942dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
5943dnl ----------------
5944dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
5945dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
5946dnl option.
5947dnl
5948dnl $1 is the default that should be used for "$cf_cv_shlib_version".
5949dnl If missing, use "rel".
5950define([CF_SHARED_SONAME],
5951[
5952 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
5953 if test "$cf_cv_shlib_version" = rel; then
5954 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
5955 else
5956 cf_cv_shared_soname='`basename $[@]`'
5957 fi
5958])
5959dnl ---------------------------------------------------------------------------
5960dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
5961dnl -----------
5962dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
5963dnl programs need this test).
5964dnl
5965dnl This is really a MacOS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
5966dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
5967dnl winsize declaration is left alone - we may revisit this if Apple choose to
5968dnl break that part of the interface as well.
5969AC_DEFUN([CF_SIGWINCH],
5970[
5971AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
5972 AC_TRY_COMPILE([
5973#include <sys/types.h>
5974#include <sys/signal.h>
5975],[int x = SIGWINCH],
5976 [cf_cv_define_sigwinch=yes],
5977 [AC_TRY_COMPILE([
5978#undef _XOPEN_SOURCE
5979#undef _POSIX_SOURCE
5980#undef _POSIX_C_SOURCE
5981#include <sys/types.h>
5982#include <sys/signal.h>
5983],[int x = SIGWINCH],
5984 [cf_cv_define_sigwinch=maybe],
5985 [cf_cv_define_sigwinch=no])
5986])
5987])
5988
5989if test "$cf_cv_define_sigwinch" = maybe ; then
5990AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
5991cf_cv_fixup_sigwinch=unknown
5992cf_sigwinch=32
5993while test $cf_sigwinch != 1
5994do
5995 AC_TRY_COMPILE([
5996#undef _XOPEN_SOURCE
5997#undef _POSIX_SOURCE
5998#undef _POSIX_C_SOURCE
5999#include <sys/types.h>
6000#include <sys/signal.h>
6001],[
6002#if SIGWINCH != $cf_sigwinch
6003make an error
6004#endif
6005int x = SIGWINCH],
6006 [cf_cv_fixup_sigwinch=$cf_sigwinch
6007 break])
6008
6009cf_sigwinch=`expr $cf_sigwinch - 1`
6010done
6011])
6012
6013 if test "$cf_cv_fixup_sigwinch" != unknown ; then
6014 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
6015 fi
6016fi
6017])dnl
6018dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006019dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306020dnl ---------------
6021dnl signal handler, but there are some gcc depedencies in that recommendation.
6022dnl Try anyway.
6023AC_DEFUN([CF_SIG_ATOMIC_T],
6024[
6025AC_MSG_CHECKING(for signal global datatype)
6026AC_CACHE_VAL(cf_cv_sig_atomic_t,[
6027 for cf_type in \
6028 "volatile sig_atomic_t" \
6029 "sig_atomic_t" \
6030 "int"
6031 do
6032 AC_TRY_COMPILE([
6033#include <sys/types.h>
6034#include <signal.h>
6035#include <stdio.h>
6036
6037extern $cf_type x;
6038$cf_type x;
6039static void handler(int sig)
6040{
6041 x = 5;
6042}],
6043 [signal(SIGINT, handler);
6044 x = 1],
6045 [cf_cv_sig_atomic_t=$cf_type],
6046 [cf_cv_sig_atomic_t=no])
6047 test "$cf_cv_sig_atomic_t" != no && break
6048 done
6049 ])
6050AC_MSG_RESULT($cf_cv_sig_atomic_t)
Steve Kondikae271bc2015-11-15 02:50:53 +01006051test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306052])dnl
6053dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006054dnl CF_SIZECHANGE version: 11 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306055dnl -------------
6056dnl Check for definitions & structures needed for window size-changing
6057dnl FIXME: check that this works with "snake" (HP-UX 10.x)
6058AC_DEFUN([CF_SIZECHANGE],
6059[
6060AC_REQUIRE([CF_STRUCT_TERMIOS])
6061AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
Steve Kondikae271bc2015-11-15 02:50:53 +01006062 cf_cv_sizechange=unknown
6063 cf_save_CPPFLAGS="$CPPFLAGS"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306064
6065for cf_opts in "" "NEED_PTEM_H"
6066do
6067
Steve Kondikae271bc2015-11-15 02:50:53 +01006068 CPPFLAGS="$cf_save_CPPFLAGS"
6069 test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
6070 AC_TRY_COMPILE([#include <sys/types.h>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306071#ifdef HAVE_TERMIOS_H
6072#include <termios.h>
6073#else
6074#ifdef HAVE_TERMIO_H
6075#include <termio.h>
6076#endif
6077#endif
6078#ifdef NEED_PTEM_H
6079/* This is a workaround for SCO: they neglected to define struct winsize in
6080 * termios.h -- it's only in termio.h and ptem.h
6081 */
6082#include <sys/stream.h>
6083#include <sys/ptem.h>
6084#endif
6085#if !defined(sun) || !defined(HAVE_TERMIOS_H)
6086#include <sys/ioctl.h>
6087#endif
6088],[
6089#ifdef TIOCGSIZE
6090 struct ttysize win; /* FIXME: what system is this? */
6091 int y = win.ts_lines;
6092 int x = win.ts_cols;
6093#else
6094#ifdef TIOCGWINSZ
6095 struct winsize win;
6096 int y = win.ws_row;
6097 int x = win.ws_col;
6098#else
6099 no TIOCGSIZE or TIOCGWINSZ
6100#endif /* TIOCGWINSZ */
6101#endif /* TIOCGSIZE */
6102 ],
6103 [cf_cv_sizechange=yes],
6104 [cf_cv_sizechange=no])
6105
6106 CPPFLAGS="$cf_save_CPPFLAGS"
6107 if test "$cf_cv_sizechange" = yes ; then
6108 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
6109 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
6110 break
6111 fi
6112done
6113])
6114if test "$cf_cv_sizechange" != no ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01006115 AC_DEFINE(HAVE_SIZECHANGE,1,[Define to 1 if sizechar declarations are provided])
6116 case $cf_cv_sizechange in
6117 (NEED*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306118 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
6119 ;;
6120 esac
6121fi
6122])dnl
6123dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006124dnl CF_SRC_MODULES version: 29 updated: 2015/04/12 11:42:01
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306125dnl --------------
6126dnl For each parameter, test if the source-directory exists, and if it contains
6127dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
6128dnl use in CF_LIB_RULES.
6129dnl
6130dnl This uses the configured value to make the lists SRC_SUBDIRS and
6131dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
6132AC_DEFUN([CF_SRC_MODULES],
6133[
6134AC_MSG_CHECKING(for src modules)
6135
6136# dependencies and linker-arguments for test-programs
6137TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
6138TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
6139if test "$DFT_LWR_MODEL" = "libtool"; then
6140 TEST_ARGS="${TEST_DEPS}"
6141 TEST_ARG2="${TEST_DEP2}"
6142else
Steve Kondikae271bc2015-11-15 02:50:53 +01006143 TEST_ARGS="-l${LIB_NAME}${USE_ARG_SUFFIX} $TEST_ARGS"
6144 TEST_ARG2="-l${LIB_NAME}${USE_ARG_SUFFIX} $TEST_ARG2"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306145fi
6146
Steve Kondikae271bc2015-11-15 02:50:53 +01006147PC_MODULES_TO_MAKE="ncurses${USE_ARG_SUFFIX}"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306148cf_cv_src_modules=
6149for cf_dir in $1
6150do
6151 if test -f $srcdir/$cf_dir/modules; then
6152
6153 # We may/may not have tack in the distribution, though the
6154 # makefile is.
6155 if test $cf_dir = tack ; then
6156 if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
6157 continue
6158 fi
6159 fi
6160
6161 if test -z "$cf_cv_src_modules"; then
6162 cf_cv_src_modules=$cf_dir
6163 else
6164 cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
6165 fi
6166
6167 # Make the ncurses_cfg.h file record the library interface files as
6168 # well. These are header files that are the same name as their
6169 # directory. Ncurses is the only library that does not follow
6170 # that pattern.
6171 if test $cf_dir = tack ; then
6172 continue
6173 elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
6174 CF_UPPER(cf_have_include,$cf_dir)
6175 AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
6176 AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
6177 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
6178 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
6179 if test "$DFT_LWR_MODEL" = "libtool"; then
6180 TEST_ARGS="${TEST_DEPS}"
6181 TEST_ARG2="${TEST_DEP2}"
6182 else
Steve Kondikae271bc2015-11-15 02:50:53 +01006183 TEST_ARGS="-l${cf_dir}${USE_ARG_SUFFIX} $TEST_ARGS"
6184 TEST_ARG2="-l${cf_dir}${USE_ARG_SUFFIX} $TEST_ARG2"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306185 fi
Steve Kondikae271bc2015-11-15 02:50:53 +01006186 PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${USE_ARG_SUFFIX}"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306187 fi
6188 fi
6189done
6190AC_MSG_RESULT($cf_cv_src_modules)
6191
6192TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
6193TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
6194
6195AC_SUBST(TEST_ARGS)
6196AC_SUBST(TEST_DEPS)
6197
6198AC_SUBST(TEST_ARG2)
6199AC_SUBST(TEST_DEP2)
6200
Steve Kondikae271bc2015-11-15 02:50:53 +01006201SRC_SUBDIRS=
6202if test "x$cf_with_manpages" != xno ; then
6203 SRC_SUBDIRS="$SRC_SUBDIRS man"
6204fi
6205SRC_SUBDIRS="$SRC_SUBDIRS include"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306206for cf_dir in $cf_cv_src_modules
6207do
6208 SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
6209done
Steve Kondikae271bc2015-11-15 02:50:53 +01006210if test "x$cf_with_tests" != "xno" ; then
6211 SRC_SUBDIRS="$SRC_SUBDIRS test"
6212fi
6213# always make this, to install the ncurses-config script
6214SRC_SUBDIRS="$SRC_SUBDIRS misc"
6215if test "$cf_with_cxx_binding" != no; then
6216 PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${USE_ARG_SUFFIX}"
6217 SRC_SUBDIRS="$SRC_SUBDIRS c++"
6218fi
6219
6220test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX"
6221test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX"
6222
6223AC_SUBST(PC_MODULES_TO_MAKE)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306224
6225ADA_SUBDIRS=
Steve Kondikae271bc2015-11-15 02:50:53 +01006226if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f $srcdir/Ada95/Makefile.in; then
6227 SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
6228 ADA_SUBDIRS="gen src"
6229 if test "x$cf_with_tests" != "xno" ; then
6230 ADA_SUBDIRS="$ADA_SUBDIRS samples"
6231 fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306232fi
6233
6234SUB_MAKEFILES=
6235for cf_dir in $SRC_SUBDIRS
6236do
6237 SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
6238done
6239
6240if test -n "$ADA_SUBDIRS"; then
Steve Kondikae271bc2015-11-15 02:50:53 +01006241 for cf_dir in $ADA_SUBDIRS
6242 do
6243 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
6244 done
6245 AC_SUBST(ADA_SUBDIRS)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306246fi
6247])dnl
6248dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006249dnl CF_STDCPP_LIBRARY version: 8 updated: 2015/04/17 21:13:04
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306250dnl -----------------
6251dnl Check for -lstdc++, which is GNU's standard C++ library.
6252AC_DEFUN([CF_STDCPP_LIBRARY],
6253[
6254if test -n "$GXX" ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01006255case $cf_cv_system_name in
6256(os2*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306257 cf_stdcpp_libname=stdcpp
6258 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01006259(*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306260 cf_stdcpp_libname=stdc++
6261 ;;
6262esac
6263AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
6264 cf_save="$LIBS"
Steve Kondikae271bc2015-11-15 02:50:53 +01006265 CF_ADD_LIB($cf_stdcpp_libname)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306266AC_TRY_LINK([
6267#include <strstream.h>],[
6268char buf[80];
6269strstreambuf foo(buf, sizeof(buf))
6270],
6271 [cf_cv_libstdcpp=yes],
6272 [cf_cv_libstdcpp=no])
6273 LIBS="$cf_save"
6274])
Steve Kondikae271bc2015-11-15 02:50:53 +01006275test "$cf_cv_libstdcpp" = yes && CF_ADD_LIB($cf_stdcpp_libname,CXXLIBS)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306276fi
6277])dnl
6278dnl ---------------------------------------------------------------------------
6279dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
6280dnl --------------
6281dnl Remove "-g" option from the compiler options
6282AC_DEFUN([CF_STRIP_G_OPT],
6283[$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
6284dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006285dnl CF_STRUCT_SIGACTION version: 5 updated: 2012/10/06 17:56:13
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306286dnl -------------------
6287dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
6288dnl do this if we've found the sigaction function.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306289AC_DEFUN([CF_STRUCT_SIGACTION],[
Steve Kondikae271bc2015-11-15 02:50:53 +01006290AC_REQUIRE([CF_XOPEN_SOURCE])
6291
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306292if test "$ac_cv_func_sigaction" = yes; then
6293AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
6294AC_TRY_COMPILE([
6295#include <sys/types.h>
6296#include <signal.h>],
6297 [struct sigaction act],
6298 [sigact_bad=no],
6299 [
6300AC_TRY_COMPILE([
6301#define _POSIX_SOURCE
6302#include <sys/types.h>
6303#include <signal.h>],
6304 [struct sigaction act],
6305 [sigact_bad=yes
Steve Kondikae271bc2015-11-15 02:50:53 +01006306 AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE])],
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306307 [sigact_bad=unknown])])
6308AC_MSG_RESULT($sigact_bad)
6309fi
6310])dnl
6311dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006312dnl CF_STRUCT_TERMIOS version: 8 updated: 2015/04/15 19:08:48
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306313dnl -----------------
6314dnl Some machines require _POSIX_SOURCE to completely define struct termios.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306315AC_DEFUN([CF_STRUCT_TERMIOS],[
Steve Kondikae271bc2015-11-15 02:50:53 +01006316AC_REQUIRE([CF_XOPEN_SOURCE])
6317
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306318AC_CHECK_HEADERS( \
6319termio.h \
6320termios.h \
6321unistd.h \
6322)
Steve Kondikae271bc2015-11-15 02:50:53 +01006323
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306324if test "$ISC" = yes ; then
6325 AC_CHECK_HEADERS( sys/termio.h )
6326fi
6327if test "$ac_cv_header_termios_h" = yes ; then
6328 case "$CFLAGS $CPPFLAGS" in
Steve Kondikae271bc2015-11-15 02:50:53 +01006329 (*-D_POSIX_SOURCE*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306330 termios_bad=dunno ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01006331 (*) termios_bad=maybe ;;
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306332 esac
6333 if test "$termios_bad" = maybe ; then
6334 AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
6335 AC_TRY_COMPILE([#include <termios.h>],
6336 [struct termios foo; int x = foo.c_iflag],
6337 termios_bad=no, [
6338 AC_TRY_COMPILE([
6339#define _POSIX_SOURCE
6340#include <termios.h>],
6341 [struct termios foo; int x = foo.c_iflag],
6342 termios_bad=unknown,
Steve Kondikae271bc2015-11-15 02:50:53 +01006343 termios_bad=yes AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE]))
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306344 ])
6345 AC_MSG_RESULT($termios_bad)
6346 fi
6347fi
6348])dnl
6349dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006350dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306351dnl --------------
6352dnl Construct a search-list for a nonstandard header/lib-file
6353dnl $1 = the variable to return as result
6354dnl $2 = the package name
6355dnl $3 = the subdirectory, e.g., bin, include or lib
6356AC_DEFUN([CF_SUBDIR_PATH],
Steve Kondikae271bc2015-11-15 02:50:53 +01006357[
6358$1=
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306359
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306360CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
Steve Kondikae271bc2015-11-15 02:50:53 +01006361
6362for cf_subdir_prefix in \
6363 /usr \
6364 /usr/local \
6365 /usr/pkg \
6366 /opt \
6367 /opt/local \
6368 [$]HOME
6369do
6370 CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
6371done
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306372])dnl
6373dnl ---------------------------------------------------------------------------
6374dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
6375dnl -----------
6376dnl Shorthand macro for substituting things that the user may override
6377dnl with an environment variable.
6378dnl
6379dnl $1 = condition to pass to "test"
6380dnl $2 = environment variable
6381dnl $3 = value if the test succeeds
6382dnl $4 = value if the test fails
6383AC_DEFUN([CF_SUBST_IF],
6384[
6385if test $1 ; then
6386 $2=$3
6387ifelse($4,,,[else
6388 $2=$4])
6389fi
6390AC_SUBST($2)
6391])dnl
6392dnl ---------------------------------------------------------------------------
6393dnl CF_SUBST_NCURSES_VERSION version: 8 updated: 2006/09/16 11:40:59
6394dnl ------------------------
6395dnl Get the version-number for use in shared-library naming, etc.
6396AC_DEFUN([CF_SUBST_NCURSES_VERSION],
6397[
6398AC_REQUIRE([CF_PROG_EGREP])
6399NCURSES_MAJOR="`$ac_cv_prog_egrep '^NCURSES_MAJOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
6400NCURSES_MINOR="`$ac_cv_prog_egrep '^NCURSES_MINOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
6401NCURSES_PATCH="`$ac_cv_prog_egrep '^NCURSES_PATCH[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
6402cf_cv_abi_version=${NCURSES_MAJOR}
6403cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
6404dnl Show the computed version, for logging
6405cf_cv_timestamp=`date`
6406AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
6407dnl We need these values in the generated headers
6408AC_SUBST(NCURSES_MAJOR)
6409AC_SUBST(NCURSES_MINOR)
6410AC_SUBST(NCURSES_PATCH)
6411dnl We need these values in the generated makefiles
6412AC_SUBST(cf_cv_rel_version)
6413AC_SUBST(cf_cv_abi_version)
6414AC_SUBST(cf_cv_builtin_bool)
6415AC_SUBST(cf_cv_header_stdbool_h)
6416AC_SUBST(cf_cv_type_of_bool)dnl
6417])dnl
6418dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006419dnl CF_SYS_TIME_SELECT version: 6 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306420dnl ------------------
6421dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
6422dnl older SCO configurations.
6423AC_DEFUN([CF_SYS_TIME_SELECT],
6424[
6425AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
6426AC_CACHE_VAL(cf_cv_sys_time_select,[
6427AC_TRY_COMPILE([
6428#include <sys/types.h>
6429#ifdef HAVE_SYS_TIME_H
6430#include <sys/time.h>
6431#endif
6432#ifdef HAVE_SYS_SELECT_H
6433#include <sys/select.h>
6434#endif
6435],[],[cf_cv_sys_time_select=yes],
Steve Kondikae271bc2015-11-15 02:50:53 +01006436 [cf_cv_sys_time_select=no])
6437 ])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306438AC_MSG_RESULT($cf_cv_sys_time_select)
Steve Kondikae271bc2015-11-15 02:50:53 +01006439test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT,1,[Define to 1 if we can include <sys/time.h> with <sys/select.h>])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306440])dnl
6441dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006442dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306443dnl ---------------
6444dnl Define a top_builddir symbol, for applications that need an absolute path.
6445AC_DEFUN([CF_TOP_BUILDDIR],
6446[
Steve Kondikae271bc2015-11-15 02:50:53 +01006447top_builddir=ifelse($1,,`pwd`,$1)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306448AC_SUBST(top_builddir)
6449])dnl
6450dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006451dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
6452dnl -------------------
6453dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
6454dnl can define it successfully.
6455AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
6456AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
6457 AC_TRY_COMPILE([
6458#include <stdlib.h>
6459#include <string.h>
6460#include <sys/types.h>
6461],[
6462#ifndef _XOPEN_SOURCE
6463make an error
6464#endif],
6465 [cf_cv_xopen_source=no],
6466 [cf_save="$CPPFLAGS"
6467 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
6468 AC_TRY_COMPILE([
6469#include <stdlib.h>
6470#include <string.h>
6471#include <sys/types.h>
6472],[
6473#ifdef _XOPEN_SOURCE
6474make an error
6475#endif],
6476 [cf_cv_xopen_source=no],
6477 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
6478 CPPFLAGS="$cf_save"
6479 ])
6480])
6481
6482if test "$cf_cv_xopen_source" != no ; then
6483 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
6484 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
6485 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
6486 CF_ADD_CFLAGS($cf_temp_xopen_source)
6487fi
6488])
6489dnl ---------------------------------------------------------------------------
6490dnl CF_TYPEOF_CHTYPE version: 9 updated: 2012/10/06 17:56:13
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306491dnl ----------------
6492dnl Determine the type we should use for chtype (and attr_t, which is treated
6493dnl as the same thing). We want around 32 bits, so on most machines want a
6494dnl long, but on newer 64-bit machines, probably want an int. If we're using
6495dnl wide characters, we have to have a type compatible with that, as well.
6496AC_DEFUN([CF_TYPEOF_CHTYPE],
6497[
6498AC_MSG_CHECKING([for type of chtype])
6499AC_CACHE_VAL(cf_cv_typeof_chtype,[
6500 AC_TRY_RUN([
6501#define WANT_BITS 31
6502#include <stdio.h>
6503int main()
6504{
6505 FILE *fp = fopen("cf_test.out", "w");
6506 if (fp != 0) {
6507 char *result = "long";
6508 if (sizeof(unsigned long) > sizeof(unsigned int)) {
6509 int n;
6510 unsigned int x, y;
6511 for (n = 0; n < WANT_BITS; n++) {
6512 x = (1 << n);
6513 y = (x >> n);
6514 if (y != 1 || x == 0) {
6515 x = 0;
6516 break;
6517 }
6518 }
6519 /*
6520 * If x is nonzero, an int is big enough for the bits
6521 * that we want.
6522 */
6523 result = (x != 0) ? "int" : "long";
6524 }
6525 fputs(result, fp);
6526 fclose(fp);
6527 }
6528 ${cf_cv_main_return:-return}(0);
6529}
6530 ],
6531 [cf_cv_typeof_chtype=`cat cf_test.out`],
6532 [cf_cv_typeof_chtype=long],
6533 [cf_cv_typeof_chtype=long])
6534 rm -f cf_test.out
6535 ])
6536AC_MSG_RESULT($cf_cv_typeof_chtype)
6537
6538AC_SUBST(cf_cv_typeof_chtype)
Steve Kondikae271bc2015-11-15 02:50:53 +01006539AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype,[Define to actual type if needed for chtype])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306540])dnl
6541dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006542dnl CF_TYPE_SIGACTION version: 4 updated: 2012/10/06 17:56:13
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306543dnl -----------------
6544dnl
6545AC_DEFUN([CF_TYPE_SIGACTION],
6546[
6547AC_MSG_CHECKING([for type sigaction_t])
6548AC_CACHE_VAL(cf_cv_type_sigaction,[
6549 AC_TRY_COMPILE([
6550#include <signal.h>],
6551 [sigaction_t x],
6552 [cf_cv_type_sigaction=yes],
6553 [cf_cv_type_sigaction=no])])
6554AC_MSG_RESULT($cf_cv_type_sigaction)
Steve Kondikae271bc2015-11-15 02:50:53 +01006555test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION,1,[Define to 1 if we have the sigaction_t type])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306556])dnl
6557dnl ---------------------------------------------------------------------------
6558dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
6559dnl --------------------
6560dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
6561dnl won't, but they're still there.
6562AC_DEFUN([CF_UNSIGNED_LITERALS],
6563[
6564AC_MSG_CHECKING([if unsigned literals are legal])
6565AC_CACHE_VAL(cf_cv_unsigned_literals,[
6566 AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
6567 [cf_cv_unsigned_literals=yes],
6568 [cf_cv_unsigned_literals=no])
6569 ])
6570AC_MSG_RESULT($cf_cv_unsigned_literals)
6571])dnl
6572dnl ---------------------------------------------------------------------------
6573dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
6574dnl --------
6575dnl Make an uppercase version of a variable
6576dnl $1=uppercase($2)
6577AC_DEFUN([CF_UPPER],
6578[
6579$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
6580])dnl
6581dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006582dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306583dnl -----------
6584dnl Check for multibyte support, and if not found, utf8 compatibility library
6585AC_DEFUN([CF_UTF8_LIB],
6586[
6587AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
6588 cf_save_LIBS="$LIBS"
6589 AC_TRY_LINK([
6590#include <stdlib.h>],[putwc(0,0);],
6591 [cf_cv_utf8_lib=yes],
6592 [CF_FIND_LINKAGE([
6593#include <libutf8.h>],[putwc(0,0);],utf8,
6594 [cf_cv_utf8_lib=add-on],
6595 [cf_cv_utf8_lib=no])
6596])])
6597
6598# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
6599# ncurses/ncursesw:
6600if test "$cf_cv_utf8_lib" = "add-on" ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01006601 AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306602 CF_ADD_INCDIR($cf_cv_header_path_utf8)
6603 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
Steve Kondikae271bc2015-11-15 02:50:53 +01006604 CF_ADD_LIBS($cf_cv_library_file_utf8)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306605fi
6606])dnl
6607dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006608dnl CF_VA_COPY version: 3 updated: 2012/10/06 11:17:15
6609dnl ----------
6610dnl check for va_copy, part of stdarg.h
6611dnl Also, workaround for glibc's __va_copy, by checking for both.
6612AC_DEFUN([CF_VA_COPY],[
6613AC_CACHE_CHECK(for va_copy, cf_cv_have_va_copy,[
6614AC_TRY_LINK([
6615#include <stdarg.h>
6616],[
6617 static va_list dst;
6618 static va_list src;
6619 va_copy(dst, src)],
6620 cf_cv_have_va_copy=yes,
6621 cf_cv_have_va_copy=no)])
6622
6623test "$cf_cv_have_va_copy" = yes && AC_DEFINE(HAVE_VA_COPY,1,[Define to 1 if we have va_copy])
6624
6625AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[
6626AC_TRY_LINK([
6627#include <stdarg.h>
6628],[
6629 static va_list dst;
6630 static va_list src;
6631 __va_copy(dst, src)],
6632 cf_cv_have___va_copy=yes,
6633 cf_cv_have___va_copy=no)])
6634
6635test "$cf_cv_have___va_copy" = yes && AC_DEFINE(HAVE___VA_COPY,1,[Define to 1 if we have __va_copy])
6636])
6637dnl ---------------------------------------------------------------------------
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306638dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
6639dnl ----------
6640dnl Use AC_VERBOSE w/o the warnings
6641AC_DEFUN([CF_VERBOSE],
6642[test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
6643CF_MSG_LOG([$1])
6644])dnl
6645dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006646dnl CF_VERSION_INFO version: 7 updated: 2015/04/17 21:13:04
6647dnl ---------------
6648dnl Define several useful symbols derived from the VERSION file. A separate
6649dnl file is preferred to embedding the version numbers in various scripts.
6650dnl (automake is a textbook-example of why the latter is a bad idea, but there
6651dnl are others).
6652dnl
6653dnl The file contents are:
6654dnl libtool-version release-version patch-version
6655dnl or
6656dnl release-version
6657dnl where
6658dnl libtool-version (see ?) consists of 3 integers separated by '.'
6659dnl release-version consists of a major version and minor version
6660dnl separated by '.', optionally followed by a patch-version
6661dnl separated by '-'. The minor version need not be an
6662dnl integer (but it is preferred).
6663dnl patch-version is an integer in the form yyyymmdd, so ifdef's and
6664dnl scripts can easily compare versions.
6665dnl
6666dnl If libtool is used, the first form is required, since CF_WITH_LIBTOOL
6667dnl simply extracts the first field using 'cut -f1'.
6668dnl
6669dnl Optional parameters:
6670dnl $1 = internal name for package
6671dnl $2 = external name for package
6672AC_DEFUN([CF_VERSION_INFO],
6673[
6674if test -f $srcdir/VERSION ; then
6675 AC_MSG_CHECKING(for package version)
6676
6677 # if there are not enough fields, cut returns the last one...
6678 cf_field1=`sed -e '2,$d' $srcdir/VERSION|cut -f1`
6679 cf_field2=`sed -e '2,$d' $srcdir/VERSION|cut -f2`
6680 cf_field3=`sed -e '2,$d' $srcdir/VERSION|cut -f3`
6681
6682 # this is how CF_BUNDLED_INTL uses $VERSION:
6683 VERSION="$cf_field1"
6684
6685 VERSION_MAJOR=`echo "$cf_field2" | sed -e 's/\..*//'`
6686 test -z "$VERSION_MAJOR" && AC_MSG_ERROR(missing major-version)
6687
6688 VERSION_MINOR=`echo "$cf_field2" | sed -e 's/^[[^.]]*\.//' -e 's/-.*//'`
6689 test -z "$VERSION_MINOR" && AC_MSG_ERROR(missing minor-version)
6690
6691 AC_MSG_RESULT(${VERSION_MAJOR}.${VERSION_MINOR})
6692
6693 AC_MSG_CHECKING(for package patch date)
6694 VERSION_PATCH=`echo "$cf_field3" | sed -e 's/^[[^-]]*-//'`
6695 case .$VERSION_PATCH in
6696 (.)
6697 AC_MSG_ERROR(missing patch-date $VERSION_PATCH)
6698 ;;
6699 (.[[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]])
6700 ;;
6701 (*)
6702 AC_MSG_ERROR(illegal patch-date $VERSION_PATCH)
6703 ;;
6704 esac
6705 AC_MSG_RESULT($VERSION_PATCH)
6706else
6707 AC_MSG_ERROR(did not find $srcdir/VERSION)
6708fi
6709
6710# show the actual data that we have for versions:
6711CF_VERBOSE(ABI VERSION $VERSION)
6712CF_VERBOSE(VERSION_MAJOR $VERSION_MAJOR)
6713CF_VERBOSE(VERSION_MINOR $VERSION_MINOR)
6714CF_VERBOSE(VERSION_PATCH $VERSION_PATCH)
6715
6716AC_SUBST(VERSION)
6717AC_SUBST(VERSION_MAJOR)
6718AC_SUBST(VERSION_MINOR)
6719AC_SUBST(VERSION_PATCH)
6720
6721dnl if a package name is given, define its corresponding version info. We
6722dnl need the package name to ensure that the defined symbols are unique.
6723ifelse($1,,,[
6724 cf_PACKAGE=$1
6725 PACKAGE=ifelse($2,,$1,$2)
6726 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE",[Define to the package-name])
6727 AC_SUBST(PACKAGE)
6728 CF_UPPER(cf_PACKAGE,$cf_PACKAGE)
6729 AC_DEFINE_UNQUOTED(${cf_PACKAGE}_VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}")
6730 AC_DEFINE_UNQUOTED(${cf_PACKAGE}_PATCHDATE,${VERSION_PATCH})
6731])
6732])dnl
6733dnl ---------------------------------------------------------------------------
6734dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306735dnl -------------
6736dnl Check if type wide-character type $1 is declared, and if so, which header
6737dnl file is needed. The second parameter is used to set a shell variable when
6738dnl the type is not found. The first parameter sets a shell variable for the
6739dnl opposite sense.
6740AC_DEFUN([CF_WCHAR_TYPE],
6741[
6742# This is needed on Tru64 5.0 to declare $1
6743AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
6744AC_TRY_COMPILE([
6745#include <stdlib.h>
6746#include <stdarg.h>
6747#include <stdio.h>
6748#ifdef HAVE_LIBUTF8_H
6749#include <libutf8.h>
6750#endif],
6751 [$1 state],
6752 [cf_cv_$1=no],
6753 [AC_TRY_COMPILE([
6754#include <stdlib.h>
6755#include <stdarg.h>
6756#include <stdio.h>
6757#include <wchar.h>
6758#ifdef HAVE_LIBUTF8_H
6759#include <libutf8.h>
6760#endif],
6761 [$1 value],
6762 [cf_cv_$1=yes],
6763 [cf_cv_$1=unknown])])])
6764
6765if test "$cf_cv_$1" = yes ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01006766 AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306767 NEED_WCHAR_H=1
6768fi
6769
Steve Kondikae271bc2015-11-15 02:50:53 +01006770ifelse([$2],,,[
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306771# if we do not find $1 in either place, use substitution to provide a fallback.
6772if test "$cf_cv_$1" = unknown ; then
6773 $2=1
6774fi
6775])
6776ifelse($3,,,[
6777# if we find $1 in either place, use substitution to provide a fallback.
6778if test "$cf_cv_$1" != unknown ; then
6779 $3=1
6780fi
6781])
6782])dnl
6783dnl ---------------------------------------------------------------------------
6784dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
6785dnl ---------------
6786dnl Check for compiler-support for weak symbols.
6787dnl This works with "recent" gcc.
6788AC_DEFUN([CF_WEAK_SYMBOLS],[
6789AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
6790
6791AC_TRY_COMPILE([
6792#include <stdio.h>],
6793[
6794#if defined(__GNUC__)
6795# if defined __USE_ISOC99
6796# define _cat_pragma(exp) _Pragma(#exp)
6797# define _weak_pragma(exp) _cat_pragma(weak name)
6798# else
6799# define _weak_pragma(exp)
6800# endif
6801# define _declare(name) __extension__ extern __typeof__(name) name
6802# define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
6803#endif
6804
6805weak_symbol(fopen);
6806],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
6807])
6808])dnl
6809dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006810dnl CF_WITH_ABI_VERSION version: 3 updated: 2015/06/06 16:10:11
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306811dnl -------------------
6812dnl Allow library's ABI to be overridden. Generally this happens when a
6813dnl packager has incremented the ABI past that used in the original package,
6814dnl and wishes to keep doing this.
6815dnl
6816dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
6817dnl symbol.
6818AC_DEFUN([CF_WITH_ABI_VERSION],[
6819test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
6820AC_ARG_WITH(abi-version,
Steve Kondikae271bc2015-11-15 02:50:53 +01006821[ --with-abi-version=XXX override derived ABI version],[
6822 if test "x$cf_cv_abi_version" != "x$withval"
6823 then
6824 AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
6825 case $cf_cv_rel_version in
6826 (5.*)
6827 cf_cv_rel_version=$withval.0
6828 ;;
6829 (6.*)
6830 cf_cv_rel_version=$withval.9 # FIXME: should be 10 as of 6.0 release
6831 ;;
6832 esac
6833 fi
6834 cf_cv_abi_version=$withval])
6835 CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306836ifelse($1,,,[
6837$1_ABI=$cf_cv_abi_version
6838])
6839])dnl
6840dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006841dnl CF_NCURSES_WITH_ABI_VERSION version: 1 updated: 2015/06/06 13:49:58
6842dnl ---------------------------
6843dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
6844dnl -------------------
6845dnl Allow ncurses's ABI to be overridden. Generally this happens when a
6846dnl packager has incremented the ABI past that used in the original package,
6847dnl and wishes to keep doing this.
6848dnl
6849dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
6850dnl symbol.
6851AC_DEFUN([CF_NCURSES_WITH_ABI_VERSION],[
6852CF_WITH_ABI_VERSION($1)
6853if test "x$cf_cv_abi_version" != "x$with_abi_version"
6854then
6855 case $cf_cv_rel_version in
6856 (5.*)
6857 cf_cv_rel_version=$with_abi_version.0
6858 ;;
6859 esac
6860fi
6861])dnl
6862dnl ---------------------------------------------------------------------------
6863dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58
6864dnl --------------------
6865dnl Command-line option to specify the Ada95 compiler.
6866AC_DEFUN([CF_WITH_ADA_COMPILER],[
6867AC_MSG_CHECKING(for ada-compiler)
6868AC_ARG_WITH(ada-compiler,
6869 [ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
6870 [cf_ada_compiler=$withval],
6871 [cf_ada_compiler=gnatmake])
6872AC_SUBST(cf_ada_compiler)
6873AC_MSG_RESULT($cf_ada_compiler)
6874])dnl
6875dnl ---------------------------------------------------------------------------
6876dnl CF_WITH_ADA_INCLUDE version: 2 updated: 2010/06/26 17:35:58
6877dnl -------------------
6878dnl Command-line option to specify where Ada includes will install.
6879AC_DEFUN([CF_WITH_ADA_INCLUDE],[
6880AC_MSG_CHECKING(for ada-include)
6881CF_WITH_PATH(ada-include,
6882 [ --with-ada-include=DIR Ada includes are in DIR],
6883 ADA_INCLUDE,
6884 PREFIX/share/ada/adainclude,
6885 [$]prefix/share/ada/adainclude)
6886AC_SUBST(ADA_INCLUDE)
6887AC_MSG_RESULT($ADA_INCLUDE)
6888])dnl
6889dnl ---------------------------------------------------------------------------
6890dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
6891dnl -------------------
6892dnl Command-line option to specify where Ada objects will install.
6893AC_DEFUN([CF_WITH_ADA_OBJECTS],[
6894AC_MSG_CHECKING(for ada-objects)
6895CF_WITH_PATH(ada-objects,
6896 [ --with-ada-objects=DIR Ada objects are in DIR],
6897 ADA_OBJECTS,
6898 PREFIX/lib/ada/adalib,
6899 [$]prefix/lib/ada/adalib)
6900AC_SUBST(ADA_OBJECTS)
6901AC_MSG_RESULT($ADA_OBJECTS)
6902])dnl
6903dnl ---------------------------------------------------------------------------
6904dnl CF_WITH_ADA_SHAREDLIB version: 4 updated: 2014/05/31 21:08:37
6905dnl ---------------------
6906dnl Command-line option to specify if an Ada95 shared-library should be built,
6907dnl and optionally what its soname should be.
6908AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
6909AC_MSG_CHECKING(if an Ada95 shared-library should be built)
6910AC_ARG_WITH(ada-sharedlib,
6911 [ --with-ada-sharedlib=soname build shared-library (requires GNAT projects)],
6912 [with_ada_sharedlib=$withval],
6913 [with_ada_sharedlib=no])
6914AC_MSG_RESULT($with_ada_sharedlib)
6915
6916ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
6917MAKE_ADA_SHAREDLIB="#"
6918
6919if test "x$with_ada_sharedlib" != xno
6920then
6921 MAKE_ADA_SHAREDLIB=
6922 if test "x$with_ada_sharedlib" != xyes
6923 then
6924 ADA_SHAREDLIB="$with_ada_sharedlib"
6925 fi
6926fi
6927
6928AC_SUBST(ADA_SHAREDLIB)
6929AC_SUBST(MAKE_ADA_SHAREDLIB)
6930])dnl
6931dnl ---------------------------------------------------------------------------
6932dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306933dnl ----------------
6934dnl Configure-option for dbmalloc. The optional parameter is used to override
6935dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
6936AC_DEFUN([CF_WITH_DBMALLOC],[
6937CF_NO_LEAKS_OPTION(dbmalloc,
6938 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
6939 [USE_DBMALLOC])
6940
6941if test "$with_dbmalloc" = yes ; then
6942 AC_CHECK_HEADER(dbmalloc.h,
Steve Kondikae271bc2015-11-15 02:50:53 +01006943 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306944fi
6945])dnl
6946dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006947dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306948dnl ---------------
6949dnl Configure-option for dmalloc. The optional parameter is used to override
6950dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
6951AC_DEFUN([CF_WITH_DMALLOC],[
6952CF_NO_LEAKS_OPTION(dmalloc,
6953 [ --with-dmalloc test: use Gray Watson's dmalloc library],
6954 [USE_DMALLOC])
6955
6956if test "$with_dmalloc" = yes ; then
6957 AC_CHECK_HEADER(dmalloc.h,
Steve Kondikae271bc2015-11-15 02:50:53 +01006958 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306959fi
6960])dnl
6961dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01006962dnl CF_WITH_EXPORT_SYMS version: 3 updated: 2014/12/20 19:16:08
6963dnl -------------------
6964dnl Use this with libtool to specify the list of symbols that may be exported.
6965dnl The input file contains one symbol per line; comments work with "#".
6966dnl
6967dnl $1 = basename of the ".sym" file (default $PACKAGE)
6968AC_DEFUN([CF_WITH_EXPORT_SYMS],
6969[
6970AC_MSG_CHECKING(if exported-symbols file should be used)
6971AC_ARG_WITH(export-syms,
6972 [ --with-export-syms=XXX limit exported symbols using libtool],
6973 [with_export_syms=$withval],
6974 [with_export_syms=no])
6975if test "x$with_export_syms" = xyes
6976then
6977 with_export_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).sym'
6978 AC_SUBST(PACKAGE)
6979fi
6980AC_MSG_RESULT($with_export_syms)
6981if test "x$with_export_syms" != xno
6982then
6983 EXPORT_SYMS="-export-symbols $with_export_syms"
6984 AC_SUBST(EXPORT_SYMS)
6985fi
6986])dnl
6987dnl ---------------------------------------------------------------------------
6988dnl CF_WITH_GPM version: 8 updated: 2012/10/06 17:56:13
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306989dnl -----------
6990dnl
6991dnl The option parameter (if neither yes/no) is assumed to be the name of
6992dnl the gpm library, e.g., for dynamic loading.
6993AC_DEFUN([CF_WITH_GPM],
6994[
6995AC_MSG_CHECKING(if you want to link with the GPM mouse library)
6996AC_ARG_WITH(gpm,
6997 [ --with-gpm use Alessandro Rubini's GPM library],
6998 [with_gpm=$withval],
6999 [with_gpm=maybe])
7000AC_MSG_RESULT($with_gpm)
7001
7002if test "$with_gpm" != no ; then
7003 AC_CHECK_HEADER(gpm.h,[
Steve Kondikae271bc2015-11-15 02:50:53 +01007004 AC_DEFINE(HAVE_GPM_H,1,[Define to 1 if we have gpm.h header])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307005 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
7006 CF_VERBOSE(assuming we really have GPM library)
Steve Kondikae271bc2015-11-15 02:50:53 +01007007 AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307008 else
7009 AC_CHECK_LIB(gpm,Gpm_Open,[:],[
7010 AC_MSG_ERROR(Cannot link with GPM library)
7011 fi
7012 with_gpm=yes
7013 ])
7014 ],[
7015 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
7016 with_gpm=no
7017 ])
7018fi
7019])
7020dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01007021dnl CF_WITH_LIBTOOL version: 32 updated: 2015/04/17 21:13:04
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307022dnl ---------------
7023dnl Provide a configure option to incorporate libtool. Define several useful
7024dnl symbols for the makefile rules.
7025dnl
7026dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
7027dnl macros from libtool.m4 which is in the aclocal directory of automake.
7028dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
7029dnl But that still does not work properly since the macro is expanded outside
7030dnl the CF_WITH_LIBTOOL macro:
7031dnl
7032dnl #!/bin/sh
7033dnl ACLOCAL=`aclocal --print-ac-dir`
7034dnl if test -z "$ACLOCAL" ; then
7035dnl echo cannot find aclocal directory
7036dnl exit 1
7037dnl elif test ! -f $ACLOCAL/libtool.m4 ; then
7038dnl echo cannot find libtool.m4 file
7039dnl exit 1
7040dnl fi
Steve Kondikae271bc2015-11-15 02:50:53 +01007041dnl
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307042dnl LOCAL=aclocal.m4
7043dnl ORIG=aclocal.m4.orig
Steve Kondikae271bc2015-11-15 02:50:53 +01007044dnl
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307045dnl trap "mv $ORIG $LOCAL" 0 1 2 5 15
7046dnl rm -f $ORIG
7047dnl mv $LOCAL $ORIG
Steve Kondikae271bc2015-11-15 02:50:53 +01007048dnl
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307049dnl # sed the LIBTOOL= assignment to omit the current directory?
Steve Kondikae271bc2015-11-15 02:50:53 +01007050dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL:-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307051dnl cat $ORIG >>$LOCAL
Steve Kondikae271bc2015-11-15 02:50:53 +01007052dnl
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307053dnl autoconf-257 $*
7054dnl
7055AC_DEFUN([CF_WITH_LIBTOOL],
7056[
Steve Kondikae271bc2015-11-15 02:50:53 +01007057AC_REQUIRE([CF_DISABLE_LIBTOOL_VERSION])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307058ifdef([AC_PROG_LIBTOOL],,[
7059LIBTOOL=
7060])
7061# common library maintenance symbols that are convenient for libtool scripts:
7062LIB_CREATE='${AR} -cr'
7063LIB_OBJECT='${OBJECTS}'
7064LIB_SUFFIX=.a
7065LIB_PREP="$RANLIB"
7066
7067# symbols used to prop libtool up to enable it to determine what it should be
7068# doing:
7069LIB_CLEAN=
7070LIB_COMPILE=
7071LIB_LINK='${CC}'
7072LIB_INSTALL=
7073LIB_UNINSTALL=
7074
7075AC_MSG_CHECKING(if you want to build libraries with libtool)
7076AC_ARG_WITH(libtool,
7077 [ --with-libtool generate libraries with libtool],
7078 [with_libtool=$withval],
7079 [with_libtool=no])
7080AC_MSG_RESULT($with_libtool)
7081if test "$with_libtool" != "no"; then
7082ifdef([AC_PROG_LIBTOOL],[
7083 # missing_content_AC_PROG_LIBTOOL{{
7084 AC_PROG_LIBTOOL
7085 # missing_content_AC_PROG_LIBTOOL}}
7086],[
Steve Kondikae271bc2015-11-15 02:50:53 +01007087 if test "$with_libtool" != "yes" ; then
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307088 CF_PATH_SYNTAX(with_libtool)
7089 LIBTOOL=$with_libtool
7090 else
Steve Kondikae271bc2015-11-15 02:50:53 +01007091 AC_CHECK_TOOLS(LIBTOOL,[libtool glibtool],none)
7092 CF_LIBTOOL_VERSION
7093 if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool
7094 then
7095 CF_FORGET_TOOL(LIBTOOL)
7096 AC_CHECK_TOOLS(LIBTOOL,[glibtool],none)
7097 CF_LIBTOOL_VERSION
7098 fi
7099 fi
7100 if test -z "$LIBTOOL" ; then
7101 AC_MSG_ERROR(Cannot find libtool)
7102 fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307103])dnl
Steve Kondikae271bc2015-11-15 02:50:53 +01007104 LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o'
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307105 LIB_OBJECT='${OBJECTS:.o=.lo}'
7106 LIB_SUFFIX=.la
7107 LIB_CLEAN='${LIBTOOL} --mode=clean'
7108 LIB_COMPILE='${LIBTOOL} --mode=compile'
7109 LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
7110 LIB_INSTALL='${LIBTOOL} --mode=install'
7111 LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
7112 LIB_PREP=:
7113
Steve Kondikae271bc2015-11-15 02:50:53 +01007114 CF_CHECK_LIBTOOL_VERSION
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307115
Steve Kondikae271bc2015-11-15 02:50:53 +01007116 # special hack to add -no-undefined (which libtool should do for itself)
7117 LT_UNDEF=
7118 case "$cf_cv_system_name" in
7119 (cygwin*|msys*|mingw32*|uwin*|aix[[4-7]])
7120 LT_UNDEF=-no-undefined
7121 ;;
7122 esac
7123 AC_SUBST([LT_UNDEF])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307124
7125 # special hack to add --tag option for C++ compiler
7126 case $cf_cv_libtool_version in
Steve Kondikae271bc2015-11-15 02:50:53 +01007127 (1.[[5-9]]*|[[2-9]].[[0-9.a-z]]*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307128 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
7129 LIBTOOL="$LIBTOOL --tag=CC"
7130 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01007131 (*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307132 LIBTOOL_CXX="$LIBTOOL"
7133 ;;
7134 esac
7135else
7136 LIBTOOL=""
7137 LIBTOOL_CXX=""
7138fi
7139
7140test -z "$LIBTOOL" && ECHO_LT=
7141
7142AC_SUBST(LIBTOOL)
7143AC_SUBST(LIBTOOL_CXX)
7144AC_SUBST(LIBTOOL_OPTS)
7145
7146AC_SUBST(LIB_CREATE)
7147AC_SUBST(LIB_OBJECT)
7148AC_SUBST(LIB_SUFFIX)
7149AC_SUBST(LIB_PREP)
7150
7151AC_SUBST(LIB_CLEAN)
7152AC_SUBST(LIB_COMPILE)
7153AC_SUBST(LIB_LINK)
7154AC_SUBST(LIB_INSTALL)
7155AC_SUBST(LIB_UNINSTALL)
7156
7157])dnl
7158dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01007159dnl CF_WITH_LIBTOOL_OPTS version: 4 updated: 2015/04/17 21:13:04
7160dnl --------------------
7161dnl Allow user to pass additional libtool options into the library creation
7162dnl and link steps. The main use for this is to do something like
7163dnl ./configure --with-libtool-opts=-static
7164dnl to get the same behavior as automake-flavored
7165dnl ./configure --enable-static
7166AC_DEFUN([CF_WITH_LIBTOOL_OPTS],[
7167AC_MSG_CHECKING(for additional libtool options)
7168AC_ARG_WITH(libtool-opts,
7169 [ --with-libtool-opts=XXX specify additional libtool options],
7170 [with_libtool_opts=$withval],
7171 [with_libtool_opts=no])
7172AC_MSG_RESULT($with_libtool_opts)
7173
7174case .$with_libtool_opts in
7175(.yes|.no|.)
7176 ;;
7177(*)
7178 LIBTOOL_OPTS="$LIBTOOL_OPTS $with_libtool_opts"
7179 ;;
7180esac
7181
7182AC_SUBST(LIBTOOL_OPTS)
7183])dnl
7184dnl ---------------------------------------------------------------------------
7185dnl CF_WITH_LIB_PREFIX version: 1 updated: 2012/01/21 19:28:10
7186dnl ------------------
7187dnl Allow the library-prefix to be overridden. OS/2 EMX originally had no
7188dnl "lib" prefix, e.g., because it used the dll naming convention.
7189dnl
7190dnl $1 = variable to set
7191AC_DEFUN([CF_WITH_LIB_PREFIX],
7192[
7193AC_MSG_CHECKING(if you want to have a library-prefix)
7194AC_ARG_WITH(lib-prefix,
7195 [ --with-lib-prefix override library-prefix],
7196 [with_lib_prefix=$withval],
7197 [with_lib_prefix=auto])
7198AC_MSG_RESULT($with_lib_prefix)
7199
7200if test $with_lib_prefix = auto
7201then
7202 CF_LIB_PREFIX($1)
7203elif test $with_lib_prefix = no
7204then
7205 LIB_PREFIX=
7206else
7207 LIB_PREFIX=$with_lib_prefix
7208fi
7209])dnl
7210dnl ---------------------------------------------------------------------------
7211dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307212dnl ------------
7213dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
7214dnl defaulting to yes/no.
7215dnl
7216dnl $1 = option name
7217dnl $2 = help-text
7218dnl $3 = environment variable to set
7219dnl $4 = default value, shown in the help-message, must be a constant
7220dnl $5 = default value, if it's an expression & cannot be in the help-message
7221dnl
7222AC_DEFUN([CF_WITH_PATH],
Steve Kondikae271bc2015-11-15 02:50:53 +01007223[AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
7224ifelse([$4],,[withval="${$3}"],[withval="${$3:-ifelse([$5],,[$4],[$5])}"]))dnl
7225if ifelse([$5],,true,[test -n "$5"]) ; then
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307226CF_PATH_SYNTAX(withval)
7227fi
Steve Kondikae271bc2015-11-15 02:50:53 +01007228eval $3="$withval"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307229AC_SUBST($3)dnl
7230])dnl
7231dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01007232dnl CF_WITH_PATHLIST version: 10 updated: 2015/04/17 21:13:04
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307233dnl ----------------
7234dnl Process an option specifying a list of colon-separated paths.
7235dnl
7236dnl $1 = option name
7237dnl $2 = help-text
7238dnl $3 = environment variable to set
7239dnl $4 = default value, shown in the help-message, must be a constant
7240dnl $5 = default value, if it's an expression & cannot be in the help-message
7241dnl $6 = flag to tell if we want to define or substitute
7242dnl
7243AC_DEFUN([CF_WITH_PATHLIST],[
7244AC_REQUIRE([CF_PATHSEP])
7245AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
Steve Kondikae271bc2015-11-15 02:50:53 +01007246ifelse($4,,[withval=${$3}],[withval=${$3:-ifelse($5,,$4,$5)}]))dnl
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307247
Steve Kondikae271bc2015-11-15 02:50:53 +01007248IFS="${IFS:- }"; ac_save_ifs="$IFS"; IFS="${PATH_SEPARATOR}"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307249cf_dst_path=
7250for cf_src_path in $withval
7251do
7252 CF_PATH_SYNTAX(cf_src_path)
Steve Kondikae271bc2015-11-15 02:50:53 +01007253 test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307254 cf_dst_path="${cf_dst_path}${cf_src_path}"
7255done
7256IFS="$ac_save_ifs"
7257
7258ifelse($6,define,[
7259# Strip single quotes from the value, e.g., when it was supplied as a literal
7260# for $4 or $5.
Steve Kondikae271bc2015-11-15 02:50:53 +01007261case $cf_dst_path in
7262(\'*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307263 cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
7264 ;;
7265esac
7266cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
7267])
7268
Steve Kondikae271bc2015-11-15 02:50:53 +01007269# This may use the prefix/exec_prefix symbols which will only yield "NONE"
7270# so we have to check/work around. We do prefer the result of "eval"...
7271eval cf_dst_eval="$cf_dst_path"
7272case "x$cf_dst_eval" in
7273(xNONE*)
7274 $3=$cf_dst_path
7275 ;;
7276(*)
7277 $3="$cf_dst_eval"
7278 ;;
7279esac
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307280AC_SUBST($3)dnl
7281
7282])dnl
7283dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01007284dnl CF_WITH_PKG_CONFIG_LIBDIR version: 9 updated: 2015/06/06 19:26:44
7285dnl -------------------------
7286dnl Allow the choice of the pkg-config library directory to be overridden.
7287AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
7288if test "x$PKG_CONFIG" = xnone ; then
7289 PKG_CONFIG_LIBDIR=no
7290else
7291 AC_MSG_CHECKING(for $PKG_CONFIG library directory)
7292 AC_ARG_WITH(pkg-config-libdir,
7293 [ --with-pkg-config-libdir=XXX use given directory for installing pc-files],
7294 [PKG_CONFIG_LIBDIR=$withval],
7295 [PKG_CONFIG_LIBDIR=yes])
7296fi
7297
7298case x$PKG_CONFIG_LIBDIR in
7299(x/*)
7300 ;;
7301(xyes)
7302 # Look for the library directory using the same prefix as the executable
7303 if test "x$PKG_CONFIG" = xnone
7304 then
7305 cf_path=$prefix
7306 else
7307 cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`
7308 fi
7309
7310 # If you don't like using the default architecture, you have to specify the
7311 # intended library directory and corresponding compiler/linker options.
7312 #
7313 # This case allows for Debian's 2014-flavor of multiarch, along with the
7314 # most common variations before that point. Some other variants spell the
7315 # directory differently, e.g., "pkg-config", and put it in unusual places.
7316 # pkg-config has always been poorly standardized, which is ironic...
7317 case x`(arch) 2>/dev/null` in
7318 (*64)
7319 cf_search_path="\
7320 $cf_path/lib/*64-linux-gnu \
7321 $cf_path/share \
7322 $cf_path/lib64 \
7323 $cf_path/lib32 \
7324 $cf_path/lib"
7325 ;;
7326 (*)
7327 cf_search_path="\
7328 $cf_path/lib/*-linux-gnu \
7329 $cf_path/share \
7330 $cf_path/lib32 \
7331 $cf_path/lib \
7332 $cf_path/libdata"
7333 ;;
7334 esac
7335
7336 CF_VERBOSE(list...)
7337 for cf_config in $cf_search_path
7338 do
7339 CF_VERBOSE(checking $cf_config/pkgconfig)
7340 if test -d $cf_config/pkgconfig
7341 then
7342 PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
7343 AC_MSG_CHECKING(done)
7344 break
7345 fi
7346 done
7347 ;;
7348(*)
7349 ;;
7350esac
7351
7352if test "x$PKG_CONFIG" != xnone ; then
7353 AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
7354fi
7355
7356AC_SUBST(PKG_CONFIG_LIBDIR)
7357])dnl
7358dnl ---------------------------------------------------------------------------
7359dnl CF_WITH_PTHREAD version: 7 updated: 2015/04/18 08:56:57
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307360dnl ---------------
7361dnl Check for POSIX thread library.
7362AC_DEFUN([CF_WITH_PTHREAD],
7363[
7364AC_MSG_CHECKING(if you want to link with the pthread library)
7365AC_ARG_WITH(pthread,
Steve Kondikae271bc2015-11-15 02:50:53 +01007366 [ --with-pthread use POSIX thread library],
7367 [with_pthread=$withval],
7368 [with_pthread=no])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307369AC_MSG_RESULT($with_pthread)
7370
7371if test "$with_pthread" != no ; then
Steve Kondikae271bc2015-11-15 02:50:53 +01007372 AC_CHECK_HEADER(pthread.h,[
7373 AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307374
Steve Kondikae271bc2015-11-15 02:50:53 +01007375 for cf_lib_pthread in pthread c_r
7376 do
7377 AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
7378 cf_save_LIBS="$LIBS"
7379 CF_ADD_LIB($cf_lib_pthread)
7380 AC_TRY_LINK([
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307381#include <pthread.h>
7382],[
Steve Kondikae271bc2015-11-15 02:50:53 +01007383 int rc = pthread_create(0,0,0,0);
7384 int r2 = pthread_mutexattr_settype(0, 0);
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307385],[with_pthread=yes],[with_pthread=no])
Steve Kondikae271bc2015-11-15 02:50:53 +01007386 LIBS="$cf_save_LIBS"
7387 AC_MSG_RESULT($with_pthread)
7388 test "$with_pthread" = yes && break
7389 done
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307390
Steve Kondikae271bc2015-11-15 02:50:53 +01007391 if test "$with_pthread" = yes ; then
7392 CF_ADD_LIB($cf_lib_pthread)
7393 AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
7394 else
7395 AC_MSG_ERROR(Cannot link with pthread library)
7396 fi
7397 ])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307398fi
7399])
7400dnl ---------------------------------------------------------------------------
7401dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
7402dnl -------------------
7403dnl Allow library's release-version to be overridden. Generally this happens when a
7404dnl packager has incremented the release-version past that used in the original package,
7405dnl and wishes to keep doing this.
7406dnl
7407dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
7408dnl and {package}_MINOR symbols
7409dnl symbol.
7410AC_DEFUN([CF_WITH_REL_VERSION],[
7411test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
7412AC_ARG_WITH(rel-version,
7413[ --with-rel-version=XXX override derived release version],
7414[AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
7415 cf_cv_rel_version=$withval])
7416ifelse($1,,[
7417 CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
7418],[
7419 $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
7420 $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
7421 CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
7422 CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
7423])
7424])dnl
7425dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01007426dnl CF_WITH_SYSMOUSE version: 3 updated: 2012/10/06 17:56:13
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307427dnl ----------------
7428dnl If we can compile with sysmouse, make it available unless it is not wanted.
7429AC_DEFUN([CF_WITH_SYSMOUSE],[
7430# not everyone has "test -c"
7431if test -c /dev/sysmouse 2>/dev/null ; then
7432AC_MSG_CHECKING(if you want to use sysmouse)
7433AC_ARG_WITH(sysmouse,
7434 [ --with-sysmouse use sysmouse (FreeBSD console)],
7435 [cf_with_sysmouse=$withval],
7436 [cf_with_sysmouse=maybe])
7437 if test "$cf_with_sysmouse" != no ; then
7438 AC_TRY_COMPILE([
7439#include <osreldate.h>
7440#if (__FreeBSD_version >= 400017)
7441#include <sys/consio.h>
7442#include <sys/fbio.h>
7443#else
7444#include <machine/console.h>
7445#endif
7446],[
7447 struct mouse_info the_mouse;
7448 ioctl(0, CONS_MOUSECTL, &the_mouse);
7449],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
7450 fi
7451AC_MSG_RESULT($cf_with_sysmouse)
Steve Kondikae271bc2015-11-15 02:50:53 +01007452test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE,1,[Define to 1 if we can/should use the sysmouse interface])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307453fi
7454])dnl
7455dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01007456dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
7457dnl ---------------
7458dnl For testing, override the derived host system-type which is used to decide
7459dnl things such as the linker commands used to build shared libraries. This is
7460dnl normally chosen automatically based on the type of system which you are
7461dnl building on. We use it for testing the configure script.
7462dnl
7463dnl This is different from the --host option: it is used only for testing parts
7464dnl of the configure script which would not be reachable with --host since that
7465dnl relies on the build environment being real, rather than mocked up.
7466AC_DEFUN([CF_WITH_SYSTYPE],[
7467CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
7468AC_ARG_WITH(system-type,
7469 [ --with-system-type=XXX test: override derived host system-type],
7470[AC_MSG_WARN(overriding system type to $withval)
7471 cf_cv_system_name=$withval
7472 host_os=$withval
7473])
7474])dnl
7475dnl ---------------------------------------------------------------------------
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307476dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
7477dnl ----------------
7478AC_DEFUN([CF_WITH_VALGRIND],[
7479CF_NO_LEAKS_OPTION(valgrind,
7480 [ --with-valgrind test: use valgrind],
7481 [USE_VALGRIND])
7482])dnl
7483dnl ---------------------------------------------------------------------------
Steve Kondikae271bc2015-11-15 02:50:53 +01007484dnl CF_WITH_VERSIONED_SYMS version: 5 updated: 2015/04/17 21:13:04
7485dnl ----------------------
7486dnl Use this when building shared library with ELF, to markup symbols with the
7487dnl version identifier from the given input file. Generally that identifier is
7488dnl the same as the SONAME at which the symbol was first introduced.
7489dnl
7490dnl $1 = basename of the ".map" file (default $PACKAGE)
7491AC_DEFUN([CF_WITH_VERSIONED_SYMS],
7492[
7493AC_MSG_CHECKING(if versioned-symbols file should be used)
7494AC_ARG_WITH(versioned-syms,
7495 [ --with-versioned-syms=X markup versioned symbols using ld],
7496 [with_versioned_syms=$withval],
7497 [with_versioned_syms=no])
7498if test "x$with_versioned_syms" = xyes
7499then
7500 with_versioned_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).map'
7501 AC_SUBST(PACKAGE)
7502fi
7503AC_MSG_RESULT($with_versioned_syms)
7504
7505RESULTING_SYMS=
7506VERSIONED_SYMS=
7507WILDCARD_SYMS=
7508
7509if test "x$with_versioned_syms" != xno
7510then
7511 RESULTING_SYMS=$with_versioned_syms
7512 case "x$MK_SHARED_LIB" in
7513 (*-Wl,*)
7514 VERSIONED_SYMS="-Wl,--version-script,\${RESULTING_SYMS}"
7515 MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-Wl,%\\[$]{VERSIONED_SYMS} -Wl,%"`
7516 CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
7517 ;;
7518 (*-dy\ *)
7519 VERSIONED_SYMS="-Wl,-M,\${RESULTING_SYMS}"
7520 MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-dy%\\[$]{VERSIONED_SYMS} -dy%"`
7521 CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
7522 ;;
7523 (*)
7524 AC_MSG_WARN(this system does not support versioned-symbols)
7525 ;;
7526 esac
7527
7528 # Linux ld can selectively override scope, e.g., of symbols beginning with
7529 # "_" by first declaring some as global, and then using a wildcard to
7530 # declare the others as local. Some other loaders cannot do this. Check
7531 # by constructing a (very) simple shared library and inspecting its
7532 # symbols.
7533 if test "x$VERSIONED_SYMS" != "x"
7534 then
7535 AC_MSG_CHECKING(if wildcards can be used to selectively omit symbols)
7536 WILDCARD_SYMS=no
7537
7538 # make sources
7539 rm -f conftest.*
7540
7541 cat >conftest.ver <<EOF
7542module_1.0 {
7543global:
7544 globalf1;
7545local:
7546 localf1;
7547};
7548module_2.0 {
7549global:
7550 globalf2;
7551local:
7552 localf2;
7553 _*;
7554} module_1.0;
7555submodule_1.0 {
7556global:
7557 subglobalf1;
7558 _ismissing;
7559local:
7560 sublocalf1;
7561};
7562submodule_2.0 {
7563global:
7564 subglobalf2;
7565local:
7566 sublocalf2;
7567 _*;
7568} submodule_1.0;
7569EOF
7570 cat >conftest.$ac_ext <<EOF
7571#line __oline__ "configure"
7572int _ismissing(void) { return 1; }
7573int _localf1(void) { return 1; }
7574int _localf2(void) { return 2; }
7575int globalf1(void) { return 1; }
7576int globalf2(void) { return 2; }
7577int _sublocalf1(void) { return 1; }
7578int _sublocalf2(void) { return 2; }
7579int subglobalf1(void) { return 1; }
7580int subglobalf2(void) { return 2; }
7581EOF
7582 cat >conftest.mk <<EOF
7583CC=${CC}
7584CFLAGS=${CFLAGS}
7585CPPFLAGS=${CPPFLAGS}
7586LDFLAGS=${LDFLAGS}
7587LIBS=${LIBS}
7588VERSIONED_SYMS=${VERSIONED_SYMS}
7589RESULTING_SYMS=conftest.ver
7590MK_SHARED_LIB=${MK_SHARED_LIB}
7591conftest.so: conftest.$ac_cv_objext
7592 \$(MK_SHARED_LIB) conftest.$ac_cv_objext
7593EOF
7594
7595 # compile source, make library
7596 if make -f conftest.mk 2>&AC_FD_CC >/dev/null
7597 then
7598 # test for missing symbol
7599 cf_missing=`nm -P conftest.so 2>&AC_FD_CC |fgrep _ismissing | egrep '[[ ]]T[[ ]]'`
7600 test -n "$cf_missing" && WILDCARD_SYMS=yes
7601 fi
7602 AC_MSG_RESULT($WILDCARD_SYMS)
7603 rm -f conftest.*
7604 fi
7605fi
7606AC_SUBST(RESULTING_SYMS)
7607AC_SUBST(VERSIONED_SYMS)
7608AC_SUBST(WILDCARD_SYMS)
7609])dnl
7610dnl ---------------------------------------------------------------------------
7611dnl CF_XOPEN_SOURCE version: 49 updated: 2015/04/12 15:39:00
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307612dnl ---------------
7613dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
7614dnl or adapt to the vendor's definitions to get equivalent functionality,
7615dnl without losing the common non-POSIX features.
7616dnl
7617dnl Parameters:
7618dnl $1 is the nominal value for _XOPEN_SOURCE
7619dnl $2 is the nominal value for _POSIX_C_SOURCE
7620AC_DEFUN([CF_XOPEN_SOURCE],[
Steve Kondikae271bc2015-11-15 02:50:53 +01007621AC_REQUIRE([AC_CANONICAL_HOST])
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307622
Steve Kondikae271bc2015-11-15 02:50:53 +01007623cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
7624cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
7625cf_xopen_source=
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307626
Steve Kondikae271bc2015-11-15 02:50:53 +01007627case $host_os in
7628(aix[[4-7]]*)
7629 cf_xopen_source="-D_ALL_SOURCE"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307630 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01007631(cygwin|msys)
7632 cf_XOPEN_SOURCE=600
7633 ;;
7634(darwin[[0-8]].*)
7635 cf_xopen_source="-D_APPLE_C_SOURCE"
7636 ;;
7637(darwin*)
7638 cf_xopen_source="-D_DARWIN_C_SOURCE"
7639 cf_XOPEN_SOURCE=
7640 ;;
7641(freebsd*|dragonfly*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307642 # 5.x headers associate
7643 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
7644 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
7645 cf_POSIX_C_SOURCE=200112L
7646 cf_XOPEN_SOURCE=600
Steve Kondikae271bc2015-11-15 02:50:53 +01007647 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307648 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01007649(hpux11*)
7650 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307651 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01007652(hpux*)
7653 cf_xopen_source="-D_HPUX_SOURCE"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307654 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01007655(irix[[56]].*)
7656 cf_xopen_source="-D_SGI_SOURCE"
7657 cf_XOPEN_SOURCE=
7658 ;;
7659(linux*|gnu*|mint*|k*bsd*-gnu)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307660 CF_GNU_SOURCE
7661 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01007662(minix*)
7663 cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307664 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01007665(mirbsd*)
7666 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
7667 cf_XOPEN_SOURCE=
7668 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307669 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01007670(netbsd*)
7671 cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
7672 ;;
7673(openbsd[[4-9]]*)
7674 # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
7675 cf_xopen_source="-D_BSD_SOURCE"
7676 cf_XOPEN_SOURCE=600
7677 ;;
7678(openbsd*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307679 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
7680 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01007681(osf[[45]]*)
7682 cf_xopen_source="-D_OSF_SOURCE"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307683 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01007684(nto-qnx*)
7685 cf_xopen_source="-D_QNX_SOURCE"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307686 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01007687(sco*)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307688 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
7689 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01007690(solaris2.*)
7691 cf_xopen_source="-D__EXTENSIONS__"
7692 cf_cv_xopen_source=broken
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307693 ;;
Steve Kondikae271bc2015-11-15 02:50:53 +01007694(sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
7695 cf_XOPEN_SOURCE=
7696 cf_POSIX_C_SOURCE=
7697 ;;
7698(*)
7699 CF_TRY_XOPEN_SOURCE
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307700 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
7701 ;;
7702esac
Steve Kondikae271bc2015-11-15 02:50:53 +01007703
7704if test -n "$cf_xopen_source" ; then
7705 CF_ADD_CFLAGS($cf_xopen_source,true)
7706fi
7707
7708dnl In anything but the default case, we may have system-specific setting
7709dnl which is still not guaranteed to provide all of the entrypoints that
7710dnl _XOPEN_SOURCE would yield.
7711if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
7712 AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
7713 AC_TRY_COMPILE([#include <stdlib.h>],[
7714#ifndef _XOPEN_SOURCE
7715make an error
7716#endif],
7717 [cf_XOPEN_SOURCE_set=yes],
7718 [cf_XOPEN_SOURCE_set=no])
7719 AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
7720 if test $cf_XOPEN_SOURCE_set = yes
7721 then
7722 AC_TRY_COMPILE([#include <stdlib.h>],[
7723#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
7724make an error
7725#endif],
7726 [cf_XOPEN_SOURCE_set_ok=yes],
7727 [cf_XOPEN_SOURCE_set_ok=no])
7728 if test $cf_XOPEN_SOURCE_set_ok = no
7729 then
7730 AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
7731 fi
7732 else
7733 CF_TRY_XOPEN_SOURCE
7734 fi
7735fi
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05307736])