e28e0eb380e3f1200da5f1b00b080656446a709c
[ncurses.git] / test / aclocal.m4
1 dnl***************************************************************************
2 dnl Copyright (c) 2003-2015,2016 Free Software Foundation, Inc.              *
3 dnl                                                                          *
4 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
5 dnl copy of this software and associated documentation files (the            *
6 dnl "Software"), to deal in the Software without restriction, including      *
7 dnl without limitation the rights to use, copy, modify, merge, publish,      *
8 dnl distribute, distribute with modifications, sublicense, and/or sell       *
9 dnl copies of the Software, and to permit persons to whom the Software is    *
10 dnl furnished to do so, subject to the following conditions:                 *
11 dnl                                                                          *
12 dnl The above copyright notice and this permission notice shall be included  *
13 dnl in all copies or substantial portions of the Software.                   *
14 dnl                                                                          *
15 dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
16 dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
17 dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
18 dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
19 dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
20 dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
21 dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
22 dnl                                                                          *
23 dnl Except as contained in this notice, the name(s) of the above copyright   *
24 dnl holders shall not be used in advertising or otherwise to promote the     *
25 dnl sale, use or other dealings in this Software without prior written       *
26 dnl authorization.                                                           *
27 dnl***************************************************************************
28 dnl
29 dnl $Id: aclocal.m4,v 1.126 2016/02/21 00:28:12 tom Exp $
30 dnl
31 dnl Author: Thomas E. Dickey
32 dnl
33 dnl Macros used in NCURSES test programs auto-configuration script.
34 dnl
35 dnl These macros are maintained separately from NCURSES.  The copyright on
36 dnl this file applies to the aggregation of macros and does not affect use of
37 dnl these macros in other applications.
38 dnl
39 dnl See http://invisible-island.net/autoconf/ for additional information.
40 dnl
41 dnl ---------------------------------------------------------------------------
42 dnl ---------------------------------------------------------------------------
43 dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
44 dnl ------------------
45 dnl Conditionally generate script according to whether we're using a given autoconf.
46 dnl
47 dnl $1 = version to compare against
48 dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
49 dnl $3 = code to use if AC_ACVERSION is older than $1.
50 define([CF_ACVERSION_CHECK],
51 [
52 ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
53 ifdef([m4_version_compare],
54 [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
55 [CF_ACVERSION_COMPARE(
56 AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
57 AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
58 dnl ---------------------------------------------------------------------------
59 dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
60 dnl --------------------
61 dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
62 dnl                      MAJOR2, MINOR2, TERNARY2,
63 dnl                      PRINTABLE2, not FOUND, FOUND)
64 define([CF_ACVERSION_COMPARE],
65 [ifelse(builtin([eval], [$2 < $5]), 1,
66 [ifelse([$8], , ,[$8])],
67 [ifelse([$9], , ,[$9])])])dnl
68 dnl ---------------------------------------------------------------------------
69 dnl CF_ADD_CFLAGS version: 12 updated: 2015/04/12 15:39:00
70 dnl -------------
71 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
72 dnl The second parameter if given makes this macro verbose.
73 dnl
74 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
75 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
76 dnl confused by the quotes (which require backslashes to keep them usable).
77 AC_DEFUN([CF_ADD_CFLAGS],
78 [
79 cf_fix_cppflags=no
80 cf_new_cflags=
81 cf_new_cppflags=
82 cf_new_extra_cppflags=
83
84 for cf_add_cflags in $1
85 do
86 case $cf_fix_cppflags in
87 (no)
88         case $cf_add_cflags in
89         (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
90                 case $cf_add_cflags in
91                 (-D*)
92                         cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
93
94                         test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
95                                 && test -z "${cf_tst_cflags}" \
96                                 && cf_fix_cppflags=yes
97
98                         if test $cf_fix_cppflags = yes ; then
99                                 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
100                                 continue
101                         elif test "${cf_tst_cflags}" = "\"'" ; then
102                                 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
103                                 continue
104                         fi
105                         ;;
106                 esac
107                 case "$CPPFLAGS" in
108                 (*$cf_add_cflags)
109                         ;;
110                 (*)
111                         case $cf_add_cflags in
112                         (-D*)
113                                 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
114                                 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
115                                 ;;
116                         esac
117                         cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
118                         ;;
119                 esac
120                 ;;
121         (*)
122                 cf_new_cflags="$cf_new_cflags $cf_add_cflags"
123                 ;;
124         esac
125         ;;
126 (yes)
127         cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
128
129         cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
130
131         test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
132                 && test -z "${cf_tst_cflags}" \
133                 && cf_fix_cppflags=no
134         ;;
135 esac
136 done
137
138 if test -n "$cf_new_cflags" ; then
139         ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
140         CFLAGS="$CFLAGS $cf_new_cflags"
141 fi
142
143 if test -n "$cf_new_cppflags" ; then
144         ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
145         CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
146 fi
147
148 if test -n "$cf_new_extra_cppflags" ; then
149         ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
150         EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
151 fi
152
153 AC_SUBST(EXTRA_CPPFLAGS)
154
155 ])dnl
156 dnl ---------------------------------------------------------------------------
157 dnl CF_ADD_INCDIR version: 14 updated: 2015/05/25 20:53:04
158 dnl -------------
159 dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
160 dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
161 dnl but old versions (and some misinstalled ones) need that.  To make things
162 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
163 dnl the include-path).
164 AC_DEFUN([CF_ADD_INCDIR],
165 [
166 if test -n "$1" ; then
167   for cf_add_incdir in $1
168   do
169         while test $cf_add_incdir != /usr/include
170         do
171           if test -d $cf_add_incdir
172           then
173                 cf_have_incdir=no
174                 if test -n "$CFLAGS$CPPFLAGS" ; then
175                   # a loop is needed to ensure we can add subdirs of existing dirs
176                   for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
177                         if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
178                           cf_have_incdir=yes; break
179                         fi
180                   done
181                 fi
182
183                 if test "$cf_have_incdir" = no ; then
184                   if test "$cf_add_incdir" = /usr/local/include ; then
185                         if test "$GCC" = yes
186                         then
187                           cf_save_CPPFLAGS=$CPPFLAGS
188                           CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
189                           AC_TRY_COMPILE([#include <stdio.h>],
190                                   [printf("Hello")],
191                                   [],
192                                   [cf_have_incdir=yes])
193                           CPPFLAGS=$cf_save_CPPFLAGS
194                         fi
195                   fi
196                 fi
197
198                 if test "$cf_have_incdir" = no ; then
199                   CF_VERBOSE(adding $cf_add_incdir to include-path)
200                   ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
201
202                   cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
203                   test "$cf_top_incdir" = "$cf_add_incdir" && break
204                   cf_add_incdir="$cf_top_incdir"
205                 else
206                   break
207                 fi
208           else
209                 break
210           fi
211         done
212   done
213 fi
214 ])dnl
215 dnl ---------------------------------------------------------------------------
216 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
217 dnl ----------
218 dnl Add a library, used to enforce consistency.
219 dnl
220 dnl $1 = library to add, without the "-l"
221 dnl $2 = variable to update (default $LIBS)
222 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
223 dnl ---------------------------------------------------------------------------
224 dnl CF_ADD_LIBDIR version: 10 updated: 2015/04/18 08:56:57
225 dnl -------------
226 dnl     Adds to the library-path
227 dnl
228 dnl     Some machines have trouble with multiple -L options.
229 dnl
230 dnl $1 is the (list of) directory(s) to add
231 dnl $2 is the optional name of the variable to update (default LDFLAGS)
232 dnl
233 AC_DEFUN([CF_ADD_LIBDIR],
234 [
235 if test -n "$1" ; then
236         for cf_add_libdir in $1
237         do
238                 if test $cf_add_libdir = /usr/lib ; then
239                         :
240                 elif test -d $cf_add_libdir
241                 then
242                         cf_have_libdir=no
243                         if test -n "$LDFLAGS$LIBS" ; then
244                                 # a loop is needed to ensure we can add subdirs of existing dirs
245                                 for cf_test_libdir in $LDFLAGS $LIBS ; do
246                                         if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
247                                                 cf_have_libdir=yes; break
248                                         fi
249                                 done
250                         fi
251                         if test "$cf_have_libdir" = no ; then
252                                 CF_VERBOSE(adding $cf_add_libdir to library-path)
253                                 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
254                         fi
255                 fi
256         done
257 fi
258 ])dnl
259 dnl ---------------------------------------------------------------------------
260 dnl CF_ADD_LIBS version: 2 updated: 2014/07/13 14:33:27
261 dnl -----------
262 dnl Add one or more libraries, used to enforce consistency.  Libraries are
263 dnl prepended to an existing list, since their dependencies are assumed to
264 dnl already exist in the list.
265 dnl
266 dnl $1 = libraries to add, with the "-l", etc.
267 dnl $2 = variable to update (default $LIBS)
268 AC_DEFUN([CF_ADD_LIBS],[
269 cf_add_libs="$1"
270 # Filter out duplicates - this happens with badly-designed ".pc" files...
271 for cf_add_1lib in [$]ifelse($2,,LIBS,[$2])
272 do
273         for cf_add_2lib in $cf_add_libs
274         do
275                 if test "x$cf_add_1lib" = "x$cf_add_2lib"
276                 then
277                         cf_add_1lib=
278                         break
279                 fi
280         done
281         test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
282 done
283 ifelse($2,,LIBS,[$2])="$cf_add_libs"
284 ])dnl
285 dnl ---------------------------------------------------------------------------
286 dnl CF_ADD_LIB_AFTER version: 3 updated: 2013/07/09 21:27:22
287 dnl ----------------
288 dnl Add a given library after another, e.g., following the one it satisfies a
289 dnl dependency for.
290 dnl
291 dnl $1 = the first library
292 dnl $2 = its dependency
293 AC_DEFUN([CF_ADD_LIB_AFTER],[
294 CF_VERBOSE(...before $LIBS)
295 LIBS=`echo "$LIBS" | sed -e "s/[[       ]][[    ]]*/ /g" -e "s%$1 %$1 $2 %" -e 's%  % %g'`
296 CF_VERBOSE(...after  $LIBS)
297 ])dnl
298 dnl ---------------------------------------------------------------------------
299 dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05
300 dnl ------------------
301 dnl Append to a search-list for a nonstandard header/lib-file
302 dnl     $1 = the variable to return as result
303 dnl     $2 = the package name
304 dnl     $3 = the subdirectory, e.g., bin, include or lib
305 dnl $4 = the directory under which we will test for subdirectories
306 dnl $5 = a directory that we do not want $4 to match
307 AC_DEFUN([CF_ADD_SUBDIR_PATH],
308 [
309 test "x$4" != "x$5" && \
310 test -d "$4" && \
311 ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) {
312         test -n "$verbose" && echo "    ... testing for $3-directories under $4"
313         test -d $4/$3 &&          $1="[$]$1 $4/$3"
314         test -d $4/$3/$2 &&       $1="[$]$1 $4/$3/$2"
315         test -d $4/$3/$2/$3 &&    $1="[$]$1 $4/$3/$2/$3"
316         test -d $4/$2/$3 &&       $1="[$]$1 $4/$2/$3"
317         test -d $4/$2/$3/$2 &&    $1="[$]$1 $4/$2/$3/$2"
318 }
319 ])dnl
320 dnl ---------------------------------------------------------------------------
321 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
322 dnl --------------
323 dnl Allow user to disable a normally-on option.
324 AC_DEFUN([CF_ARG_DISABLE],
325 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
326 dnl ---------------------------------------------------------------------------
327 dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
328 dnl -------------
329 dnl Allow user to enable a normally-off option.
330 AC_DEFUN([CF_ARG_ENABLE],
331 [CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
332 dnl ---------------------------------------------------------------------------
333 dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
334 dnl -------------
335 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
336 dnl values.
337 dnl
338 dnl Parameters:
339 dnl $1 = option name
340 dnl $2 = help-string
341 dnl $3 = action to perform if option is not default
342 dnl $4 = action if perform if option is default
343 dnl $5 = default option value (either 'yes' or 'no')
344 AC_DEFUN([CF_ARG_OPTION],
345 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
346         if test "$enableval" != "$5" ; then
347 ifelse([$3],,[    :]dnl
348 ,[    $3]) ifelse([$4],,,[
349         else
350                 $4])
351         fi],[enableval=$5 ifelse([$4],,,[
352         $4
353 ])dnl
354 ])])dnl
355 dnl ---------------------------------------------------------------------------
356 dnl CF_CC_ENV_FLAGS version: 2 updated: 2015/04/12 15:39:00
357 dnl ---------------
358 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
359 dnl into CC.  This will not help with broken scripts that wrap the compiler with
360 dnl options, but eliminates a more common category of user confusion.
361 AC_DEFUN([CF_CC_ENV_FLAGS],
362 [
363 # This should have been defined by AC_PROG_CC
364 : ${CC:=cc}
365
366 AC_MSG_CHECKING(\$CC variable)
367 case "$CC" in
368 (*[[\ \ ]]-[[IUD]]*)
369         AC_MSG_RESULT(broken)
370         AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
371         # humor him...
372         cf_flags=`echo "$CC" | sed -e 's/^[[^   ]]*[[   ]]//'`
373         CC=`echo "$CC" | sed -e 's/[[   ]].*//'`
374         CF_ADD_CFLAGS($cf_flags)
375         ;;
376 (*)
377         AC_MSG_RESULT(ok)
378         ;;
379 esac
380 ])dnl
381 dnl ---------------------------------------------------------------------------
382 dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
383 dnl --------------
384 dnl Check if we're accidentally using a cache from a different machine.
385 dnl Derive the system name, as a check for reusing the autoconf cache.
386 dnl
387 dnl If we've packaged config.guess and config.sub, run that (since it does a
388 dnl better job than uname).  Normally we'll use AC_CANONICAL_HOST, but allow
389 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
390 dnl which is useful in cross-compiles.
391 dnl
392 dnl Note: we would use $ac_config_sub, but that is one of the places where
393 dnl autoconf 2.5x broke compatibility with autoconf 2.13
394 AC_DEFUN([CF_CHECK_CACHE],
395 [
396 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
397         ifelse([$1],,[AC_CANONICAL_HOST],[$1])
398         system_name="$host_os"
399 else
400         system_name="`(uname -s -r) 2>/dev/null`"
401         if test -z "$system_name" ; then
402                 system_name="`(hostname) 2>/dev/null`"
403         fi
404 fi
405 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
406 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
407
408 test -z "$system_name" && system_name="$cf_cv_system_name"
409 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
410
411 if test ".$system_name" != ".$cf_cv_system_name" ; then
412         AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
413         AC_MSG_ERROR("Please remove config.cache and try again.")
414 fi
415 ])dnl
416 dnl ---------------------------------------------------------------------------
417 dnl CF_CHECK_CFLAGS version: 3 updated: 2014/07/22 05:32:57
418 dnl ---------------
419 dnl Conditionally add to $CFLAGS and $CPPFLAGS values which are derived from
420 dnl a build-configuration such as imake.  These have the pitfall that they
421 dnl often contain compiler-specific options which we cannot use, mixed with
422 dnl preprocessor options that we usually can.
423 AC_DEFUN([CF_CHECK_CFLAGS],
424 [
425 CF_VERBOSE(checking additions to CFLAGS)
426 cf_check_cflags="$CFLAGS"
427 cf_check_cppflags="$CPPFLAGS"
428 CF_ADD_CFLAGS($1,yes)
429 if test "x$cf_check_cflags" != "x$CFLAGS" ; then
430 AC_TRY_LINK([#include <stdio.h>],[printf("Hello world");],,
431         [CF_VERBOSE(test-compile failed.  Undoing change to \$CFLAGS)
432          if test "x$cf_check_cppflags" != "x$CPPFLAGS" ; then
433                  CF_VERBOSE(but keeping change to \$CPPFLAGS)
434          fi
435          CFLAGS="$cf_check_flags"])
436 fi
437 ])dnl
438 dnl ---------------------------------------------------------------------------
439 dnl CF_CHECK_CURSES_LIB version: 1 updated: 2015/04/25 20:53:11
440 dnl -------------------
441 dnl $1 = nominal library name, used also for header lookup
442 dnl $2 = suffix to append to library name
443 dnl $3 = function to check for using AC_CHECK_LIB
444 AC_DEFUN([CF_CHECK_CURSES_LIB],
445 [
446 AC_CHECK_LIB($1$2,$3,[
447 CF_UPPER(cf_upper,have_lib$1)
448 CF_ADD_LIBS(-l$1$2)
449 AC_DEFINE_UNQUOTED($cf_upper,1)])
450 ])dnl
451 dnl ---------------------------------------------------------------------------
452 dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
453 dnl -----------------
454 dnl Check if the given compiler is really clang.  clang's C driver defines
455 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
456 dnl not ignore some gcc options.
457 dnl
458 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
459 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
460 dnl the wrappers for gcc and g++ warnings.
461 dnl
462 dnl $1 = GCC (default) or GXX
463 dnl $2 = CLANG_COMPILER (default)
464 dnl $3 = CFLAGS (default) or CXXFLAGS
465 AC_DEFUN([CF_CLANG_COMPILER],[
466 ifelse([$2],,CLANG_COMPILER,[$2])=no
467
468 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
469         AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
470         cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
471         ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
472         AC_TRY_COMPILE([],[
473 #ifdef __clang__
474 #else
475 make an error
476 #endif
477 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
478 cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
479 ],[])
480         ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
481         AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
482 fi
483 ])
484 dnl ---------------------------------------------------------------------------
485 dnl CF_CURSES_ACS_MAP version: 7 updated: 2012/10/06 16:39:58
486 dnl -----------------
487 dnl Check for likely values of acs_map[]:
488 AC_DEFUN([CF_CURSES_ACS_MAP],
489 [
490 AC_REQUIRE([CF_NCURSES_WRAP_PREFIX])dnl
491 AC_CACHE_CHECK(for alternate character set array, cf_cv_curses_acs_map,[
492 cf_cv_curses_acs_map=unknown
493 for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
494 do
495 AC_TRY_LINK([
496 #include <${cf_cv_ncurses_header:-curses.h}>
497 ],[
498 $name['k'] = ACS_PLUS
499 ],[cf_cv_curses_acs_map=$name; break])
500 done
501 ])
502
503 test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map,[Define as needed to override ncurses prefix _nc_])
504 ])
505 dnl ---------------------------------------------------------------------------
506 dnl CF_CURSES_CHECK_DATA version: 5 updated: 2014/07/19 18:41:17
507 dnl --------------------
508 dnl Check if curses.h defines the given data/variable.
509 dnl Use this after CF_NCURSES_CONFIG or CF_CURSES_CONFIG.
510 AC_DEFUN([CF_CURSES_CHECK_DATA],
511 [
512 AC_MSG_CHECKING(for data $1 declaration in ${cf_cv_ncurses_header:-curses.h})
513
514 AC_TRY_COMPILE(CF__CURSES_HEAD,[
515 void *foo = &($1)
516 ],cf_result=yes,cf_result=no)
517 AC_MSG_RESULT($cf_result)
518
519 if test $cf_result = yes ; then
520         CF_UPPER(cf_result,have_curses_data_$1)
521         AC_DEFINE_UNQUOTED($cf_result)
522 else
523         AC_MSG_CHECKING(for data $1 in library)
524         # BSD linkers insist on making weak linkage, but resolve at runtime.
525         AC_TRY_RUN(CF__CURSES_HEAD
526 [
527 extern char $1;
528 int main(void)
529 {
530         void *foo = &($1);
531         fprintf(stderr, "testing linkage of $1:%p\n", foo);
532         ${cf_cv_main_return:-return}(foo == 0);
533 }],[cf_result=yes],[cf_result=no],[
534         # cross-compiling
535         AC_TRY_LINK(CF__CURSES_HEAD
536 [extern char $1;],[
537         do {
538                 void *foo = &($1);
539                 fprintf(stderr, "testing linkage of $1:%p\n", foo);
540                 ${cf_cv_main_return:-return}(foo == 0);
541         } while (0)
542 ],[cf_result=yes],[cf_result=no])
543 ])
544         AC_MSG_RESULT($cf_result)
545         if test $cf_result = yes ; then
546                 CF_UPPER(cf_result,decl_curses_data_$1)
547                 AC_DEFINE_UNQUOTED($cf_result)
548         fi
549 fi
550 ])dnl
551 dnl ---------------------------------------------------------------------------
552 dnl CF_CURSES_CHECK_TYPE version: 4 updated: 2012/10/06 16:39:58
553 dnl --------------------
554 dnl Check if curses.h defines the given type
555 AC_DEFUN([CF_CURSES_CHECK_TYPE],
556 [
557 AC_MSG_CHECKING(for type $1 in ${cf_cv_ncurses_header:-curses.h})
558 AC_TRY_COMPILE([
559 #ifndef _XOPEN_SOURCE_EXTENDED
560 #define _XOPEN_SOURCE_EXTENDED
561 #endif
562 #include <${cf_cv_ncurses_header:-curses.h}>],[
563 $1 foo
564 ],cf_result=yes,cf_result=no)
565 AC_MSG_RESULT($cf_result)
566 if test $cf_result = yes ; then
567         CF_UPPER(cf_result,have_type_$1)
568         AC_DEFINE_UNQUOTED($cf_result,1,[Define to 1 if we have type $1])
569 else
570         AC_DEFINE_UNQUOTED($1,$2,[Define to appropriate type if $1 is not declared])
571 fi
572 ])dnl
573 dnl ---------------------------------------------------------------------------
574 dnl CF_CURSES_CONFIG version: 2 updated: 2006/10/29 11:06:27
575 dnl ----------------
576 dnl Tie together the configure-script macros for curses.  It may be ncurses,
577 dnl but unless asked, we do not make a special search for ncurses.  However,
578 dnl still check for the ncurses version number, for use in other macros.
579 AC_DEFUN([CF_CURSES_CONFIG],
580 [
581 CF_CURSES_CPPFLAGS
582 CF_NCURSES_VERSION
583 CF_CURSES_LIBS
584 ])dnl
585 dnl ---------------------------------------------------------------------------
586 dnl CF_CURSES_CPPFLAGS version: 12 updated: 2015/04/15 19:08:48
587 dnl ------------------
588 dnl Look for the curses headers.
589 AC_DEFUN([CF_CURSES_CPPFLAGS],[
590
591 AC_CACHE_CHECK(for extra include directories,cf_cv_curses_incdir,[
592 cf_cv_curses_incdir=no
593 case $host_os in
594 (hpux10.*)
595         if test "x$cf_cv_screen" = "xcurses_colr"
596         then
597                 test -d /usr/include/curses_colr && \
598                 cf_cv_curses_incdir="-I/usr/include/curses_colr"
599         fi
600         ;;
601 (sunos3*|sunos4*)
602         if test "x$cf_cv_screen" = "xcurses_5lib"
603         then
604                 test -d /usr/5lib && \
605                 test -d /usr/5include && \
606                 cf_cv_curses_incdir="-I/usr/5include"
607         fi
608         ;;
609 esac
610 ])
611 test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
612
613 CF_CURSES_HEADER
614 CF_TERM_HEADER
615 ])dnl
616 dnl ---------------------------------------------------------------------------
617 dnl CF_CURSES_FUNCS version: 18 updated: 2014/07/19 18:44:41
618 dnl ---------------
619 dnl Curses-functions are a little complicated, since a lot of them are macros.
620 AC_DEFUN([CF_CURSES_FUNCS],
621 [
622 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
623 AC_REQUIRE([CF_XOPEN_CURSES])
624 AC_REQUIRE([CF_CURSES_TERM_H])
625 AC_REQUIRE([CF_CURSES_UNCTRL_H])
626 for cf_func in $1
627 do
628         CF_UPPER(cf_tr_func,$cf_func)
629         AC_MSG_CHECKING(for ${cf_func})
630         CF_MSG_LOG(${cf_func})
631         AC_CACHE_VAL(cf_cv_func_$cf_func,[
632                 eval cf_result='$ac_cv_func_'$cf_func
633                 if test ".$cf_result" != ".no"; then
634                         AC_TRY_LINK(CF__CURSES_HEAD,
635                         [
636 #ifndef ${cf_func}
637 long foo = (long)(&${cf_func});
638 fprintf(stderr, "testing linkage of $cf_func:%p\n", foo);
639 if (foo + 1234 > 5678)
640         ${cf_cv_main_return:-return}(foo);
641 #endif
642                         ],
643                         [cf_result=yes],
644                         [cf_result=no])
645                 fi
646                 eval 'cf_cv_func_'$cf_func'=$cf_result'
647         ])
648         # use the computed/retrieved cache-value:
649         eval 'cf_result=$cf_cv_func_'$cf_func
650         AC_MSG_RESULT($cf_result)
651         if test $cf_result != no; then
652                 AC_DEFINE_UNQUOTED(HAVE_${cf_tr_func})
653         fi
654 done
655 ])dnl
656 dnl ---------------------------------------------------------------------------
657 dnl CF_CURSES_HEADER version: 5 updated: 2015/04/23 20:35:30
658 dnl ----------------
659 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
660 dnl variations of ncurses' installs.
661 dnl
662 dnl $1 = ncurses when looking for ncurses, or is empty
663 AC_DEFUN([CF_CURSES_HEADER],[
664 AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
665 cf_cv_ncurses_header=none
666 for cf_header in \
667         ncurses.h ifelse($1,,,[$1/ncurses.h]) \
668         curses.h ifelse($1,,,[$1/curses.h]) ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
669 do
670 AC_TRY_COMPILE([#include <${cf_header}>],
671         [initscr(); tgoto("?", 0,0)],
672         [cf_cv_ncurses_header=$cf_header; break],[])
673 done
674 ])
675
676 if test "$cf_cv_ncurses_header" = none ; then
677         AC_MSG_ERROR(No curses header-files found)
678 fi
679
680 # cheat, to get the right #define's for HAVE_NCURSES_H, etc.
681 AC_CHECK_HEADERS($cf_cv_ncurses_header)
682 ])dnl
683 dnl ---------------------------------------------------------------------------
684 dnl CF_CURSES_LIBS version: 39 updated: 2015/05/10 19:52:14
685 dnl --------------
686 dnl Look for the curses libraries.  Older curses implementations may require
687 dnl termcap/termlib to be linked as well.  Call CF_CURSES_CPPFLAGS first.
688 AC_DEFUN([CF_CURSES_LIBS],[
689
690 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
691 AC_MSG_CHECKING(if we have identified curses libraries)
692 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
693         [initscr(); tgoto("?", 0,0)],
694         cf_result=yes,
695         cf_result=no)
696 AC_MSG_RESULT($cf_result)
697
698 if test "$cf_result" = no ; then
699 case $host_os in
700 (freebsd*)
701         AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)])
702         ;;
703 (hpux10.*)
704         # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
705         # next (1998), and xcurses "newer" (2000).  There is no header file for
706         # Hcurses; the subdirectory curses_colr has the headers (curses.h and
707         # term.h) for cur_colr
708         if test "x$cf_cv_screen" = "xcurses_colr"
709         then
710                 AC_CHECK_LIB(cur_colr,initscr,[
711                         CF_ADD_LIBS(-lcur_colr)
712                         ac_cv_func_initscr=yes
713                         ],[
714                 AC_CHECK_LIB(Hcurses,initscr,[
715                         # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
716                         CF_ADD_LIBS(-lHcurses)
717                         CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
718                         ac_cv_func_initscr=yes
719                         ])])
720         fi
721         ;;
722 (linux*)
723         case `arch 2>/dev/null` in
724         (x86_64)
725                 if test -d /lib64
726                 then
727                         CF_ADD_LIBDIR(/lib64)
728                 else
729                         CF_ADD_LIBDIR(/lib)
730                 fi
731                 ;;
732         (*)
733                 CF_ADD_LIBDIR(/lib)
734                 ;;
735         esac
736         ;;
737 (sunos3*|sunos4*)
738         if test "x$cf_cv_screen" = "xcurses_5lib"
739         then
740                 if test -d /usr/5lib ; then
741                         CF_ADD_LIBDIR(/usr/5lib)
742                         CF_ADD_LIBS(-lcurses -ltermcap)
743                 fi
744         fi
745         ac_cv_func_initscr=yes
746         ;;
747 esac
748
749 if test ".$ac_cv_func_initscr" != .yes ; then
750         cf_save_LIBS="$LIBS"
751
752         if test ".${cf_cv_ncurses_version:-no}" != .no
753         then
754                 cf_check_list="ncurses curses cursesX"
755         else
756                 cf_check_list="cursesX curses ncurses"
757         fi
758
759         # Check for library containing tgoto.  Do this before curses library
760         # because it may be needed to link the test-case for initscr.
761         if test "x$cf_term_lib" = x
762         then
763                 AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
764                         for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown
765                         do
766                                 AC_CHECK_LIB($cf_term_lib,tgoto,[break])
767                         done
768                 ])
769         fi
770
771         # Check for library containing initscr
772         test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
773         if test "x$cf_curs_lib" = x
774         then
775                 for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
776                 do
777                         AC_CHECK_LIB($cf_curs_lib,initscr,[break])
778                 done
779         fi
780         test $cf_curs_lib = unknown && AC_MSG_ERROR(no curses library found)
781
782         LIBS="-l$cf_curs_lib $cf_save_LIBS"
783         if test "$cf_term_lib" = unknown ; then
784                 AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
785                 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
786                         [initscr()],
787                         [cf_result=yes],
788                         [cf_result=no])
789                 AC_MSG_RESULT($cf_result)
790                 test $cf_result = no && AC_MSG_ERROR(Cannot link curses library)
791         elif test "$cf_curs_lib" = "$cf_term_lib" ; then
792                 :
793         elif test "$cf_term_lib" != predefined ; then
794                 AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
795                 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
796                         [initscr(); tgoto((char *)0, 0, 0);],
797                         [cf_result=no],
798                         [
799                         LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
800                         AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
801                                 [initscr()],
802                                 [cf_result=yes],
803                                 [cf_result=error])
804                         ])
805                 AC_MSG_RESULT($cf_result)
806         fi
807 fi
808 fi
809
810 ])dnl
811 dnl ---------------------------------------------------------------------------
812 dnl CF_CURSES_TERM_H version: 11 updated: 2015/04/15 19:08:48
813 dnl ----------------
814 dnl SVr4 curses should have term.h as well (where it puts the definitions of
815 dnl the low-level interface).  This may not be true in old/broken implementations,
816 dnl as well as in misconfigured systems (e.g., gcc configured for Solaris 2.4
817 dnl running with Solaris 2.5.1).
818 AC_DEFUN([CF_CURSES_TERM_H],
819 [
820 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
821
822 AC_CACHE_CHECK(for term.h, cf_cv_term_header,[
823
824 # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
825 # for <term.h> if we do not find the variant.
826
827 cf_header_list="term.h ncurses/term.h ncursesw/term.h"
828
829 case ${cf_cv_ncurses_header:-curses.h} in
830 (*/*)
831         cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
832         cf_header_list="$cf_header_item $cf_header_list"
833         ;;
834 esac
835
836 for cf_header in $cf_header_list
837 do
838         AC_TRY_COMPILE([
839 #include <${cf_cv_ncurses_header:-curses.h}>
840 #include <${cf_header}>],
841         [WINDOW *x],
842         [cf_cv_term_header=$cf_header
843          break],
844         [cf_cv_term_header=no])
845 done
846
847 case $cf_cv_term_header in
848 (no)
849         # If curses is ncurses, some packagers still mess it up by trying to make
850         # us use GNU termcap.  This handles the most common case.
851         for cf_header in ncurses/term.h ncursesw/term.h
852         do
853                 AC_TRY_COMPILE([
854 #include <${cf_cv_ncurses_header:-curses.h}>
855 #ifdef NCURSES_VERSION
856 #include <${cf_header}>
857 #else
858 make an error
859 #endif],
860                         [WINDOW *x],
861                         [cf_cv_term_header=$cf_header
862                          break],
863                         [cf_cv_term_header=no])
864         done
865         ;;
866 esac
867 ])
868
869 case $cf_cv_term_header in
870 (term.h)
871         AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
872         ;;
873 (ncurses/term.h)
874         AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
875         ;;
876 (ncursesw/term.h)
877         AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
878         ;;
879 esac
880 ])dnl
881 dnl ---------------------------------------------------------------------------
882 dnl CF_CURSES_UNCTRL_H version: 4 updated: 2015/04/15 19:08:48
883 dnl ------------------
884 dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages
885 dnl may put it in a subdirectory (along with ncurses' other headers, of
886 dnl course).  Packages which put the headers in inconsistent locations are
887 dnl broken).
888 AC_DEFUN([CF_CURSES_UNCTRL_H],
889 [
890 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
891
892 AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[
893
894 # If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
895 # for <unctrl.h> if we do not find the variant.
896
897 cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
898
899 case ${cf_cv_ncurses_header:-curses.h} in
900 (*/*)
901         cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
902         cf_header_list="$cf_header_item $cf_header_list"
903         ;;
904 esac
905
906 for cf_header in $cf_header_list
907 do
908         AC_TRY_COMPILE([
909 #include <${cf_cv_ncurses_header:-curses.h}>
910 #include <${cf_header}>],
911         [WINDOW *x],
912         [cf_cv_unctrl_header=$cf_header
913          break],
914         [cf_cv_unctrl_header=no])
915 done
916 ])
917
918 case $cf_cv_unctrl_header in
919 (no)
920         AC_MSG_WARN(unctrl.h header not found)
921         ;;
922 esac
923
924 case $cf_cv_unctrl_header in
925 (unctrl.h)
926         AC_DEFINE(HAVE_UNCTRL_H,1,[Define to 1 if we have unctrl.h])
927         ;;
928 (ncurses/unctrl.h)
929         AC_DEFINE(HAVE_NCURSES_UNCTRL_H,1,[Define to 1 if we have ncurses/unctrl.h])
930         ;;
931 (ncursesw/unctrl.h)
932         AC_DEFINE(HAVE_NCURSESW_UNCTRL_H,1,[Define to 1 if we have ncursesw/unctrl.h])
933         ;;
934 esac
935 ])dnl
936 dnl ---------------------------------------------------------------------------
937 dnl CF_CURSES_WACS_MAP version: 6 updated: 2012/10/06 08:57:51
938 dnl ------------------
939 dnl Check for likely values of wacs_map[].
940 AC_DEFUN([CF_CURSES_WACS_MAP],
941 [
942 AC_CACHE_CHECK(for wide alternate character set array, cf_cv_curses_wacs_map,[
943         cf_cv_curses_wacs_map=unknown
944         for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
945         do
946         AC_TRY_LINK([
947 #ifndef _XOPEN_SOURCE_EXTENDED
948 #define _XOPEN_SOURCE_EXTENDED
949 #endif
950 #include <${cf_cv_ncurses_header:-curses.h}>],
951         [void *foo = &($name['k'])],
952         [cf_cv_curses_wacs_map=$name
953          break])
954         done])
955
956 test "$cf_cv_curses_wacs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_WACS_ARRAY,$cf_cv_curses_wacs_map,[Define to name of (n)curses wide-character array])
957 ])dnl
958 dnl ---------------------------------------------------------------------------
959 dnl CF_CURSES_WACS_SYMBOLS version: 2 updated: 2012/10/06 08:57:51
960 dnl ----------------------
961 dnl Do a check to see if the WACS_xxx constants are defined compatibly with
962 dnl X/Open Curses.  In particular, NetBSD's implementation of the WACS_xxx
963 dnl constants is broken since those constants do not point to cchar_t's.
964 AC_DEFUN([CF_CURSES_WACS_SYMBOLS],
965 [
966 AC_REQUIRE([CF_CURSES_WACS_MAP])
967
968 AC_CACHE_CHECK(for wide alternate character constants, cf_cv_curses_wacs_symbols,[
969 cf_cv_curses_wacs_symbols=no
970 if test "$cf_cv_curses_wacs_map" != unknown
971 then
972         AC_TRY_LINK([
973 #ifndef _XOPEN_SOURCE_EXTENDED
974 #define _XOPEN_SOURCE_EXTENDED
975 #endif
976 #include <${cf_cv_ncurses_header:-curses.h}>],
977         [cchar_t *foo = WACS_PLUS;
978          $cf_cv_curses_wacs_map['k'] = *WACS_PLUS],
979         [cf_cv_curses_wacs_symbols=yes])
980 else
981         AC_TRY_LINK([
982 #ifndef _XOPEN_SOURCE_EXTENDED
983 #define _XOPEN_SOURCE_EXTENDED
984 #endif
985 #include <${cf_cv_ncurses_header:-curses.h}>],
986         [cchar_t *foo = WACS_PLUS],
987         [cf_cv_curses_wacs_symbols=yes])
988 fi
989 ])
990
991 test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS,1,[Define to 1 if (n)curses supports wide-character WACS_ symbols])
992 ])dnl
993 dnl ---------------------------------------------------------------------------
994 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
995 dnl ----------
996 dnl "dirname" is not portable, so we fake it with a shell script.
997 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
998 dnl ---------------------------------------------------------------------------
999 dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
1000 dnl ---------------
1001 dnl You can always use "make -n" to see the actual options, but it's hard to
1002 dnl pick out/analyze warning messages when the compile-line is long.
1003 dnl
1004 dnl Sets:
1005 dnl     ECHO_LT - symbol to control if libtool is verbose
1006 dnl     ECHO_LD - symbol to prefix "cc -o" lines
1007 dnl     RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1008 dnl     SHOW_CC - symbol to put before explicit "cc -c" lines
1009 dnl     ECHO_CC - symbol to put before any "cc" line
1010 dnl
1011 AC_DEFUN([CF_DISABLE_ECHO],[
1012 AC_MSG_CHECKING(if you want to see long compiling messages)
1013 CF_ARG_DISABLE(echo,
1014         [  --disable-echo          do not display "compiling" commands],
1015         [
1016         ECHO_LT='--silent'
1017         ECHO_LD='@echo linking [$]@;'
1018         RULE_CC='@echo compiling [$]<'
1019         SHOW_CC='@echo compiling [$]@'
1020         ECHO_CC='@'
1021 ],[
1022         ECHO_LT=''
1023         ECHO_LD=''
1024         RULE_CC=''
1025         SHOW_CC=''
1026         ECHO_CC=''
1027 ])
1028 AC_MSG_RESULT($enableval)
1029 AC_SUBST(ECHO_LT)
1030 AC_SUBST(ECHO_LD)
1031 AC_SUBST(RULE_CC)
1032 AC_SUBST(SHOW_CC)
1033 AC_SUBST(ECHO_CC)
1034 ])dnl
1035 dnl ---------------------------------------------------------------------------
1036 dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03
1037 dnl ----------------
1038 dnl Combine no-leak checks with the libraries or tools that are used for the
1039 dnl checks.
1040 AC_DEFUN([CF_DISABLE_LEAKS],[
1041
1042 AC_REQUIRE([CF_WITH_DMALLOC])
1043 AC_REQUIRE([CF_WITH_DBMALLOC])
1044 AC_REQUIRE([CF_WITH_VALGRIND])
1045
1046 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1047 AC_ARG_ENABLE(leaks,
1048         [  --disable-leaks         test: free permanent memory, analyze leaks],
1049         [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi],
1050         : ${with_no_leaks:=no})
1051 AC_MSG_RESULT($with_no_leaks)
1052
1053 if test "$with_no_leaks" = yes ; then
1054         AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1055         AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1056 fi
1057 ])dnl
1058 dnl ---------------------------------------------------------------------------
1059 dnl CF_DISABLE_RPATH_HACK version: 2 updated: 2011/02/13 13:31:33
1060 dnl ---------------------
1061 dnl The rpath-hack makes it simpler to build programs, particularly with the
1062 dnl *BSD ports which may have essential libraries in unusual places.  But it
1063 dnl can interfere with building an executable for the base system.  Use this
1064 dnl option in that case.
1065 AC_DEFUN([CF_DISABLE_RPATH_HACK],
1066 [
1067 AC_MSG_CHECKING(if rpath-hack should be disabled)
1068 CF_ARG_DISABLE(rpath-hack,
1069         [  --disable-rpath-hack    don't add rpath options for additional libraries],
1070         [cf_disable_rpath_hack=yes],
1071         [cf_disable_rpath_hack=no])
1072 AC_MSG_RESULT($cf_disable_rpath_hack)
1073 if test "$cf_disable_rpath_hack" = no ; then
1074         CF_RPATH_HACK
1075 fi
1076 ])
1077 dnl ---------------------------------------------------------------------------
1078 dnl CF_ENABLE_WARNINGS version: 4 updated: 2009/07/26 17:53:03
1079 dnl ------------------
1080 dnl Configure-option to enable gcc warnings
1081 AC_DEFUN([CF_ENABLE_WARNINGS],[
1082 if ( test "$GCC" = yes || test "$GXX" = yes )
1083 then
1084 AC_MSG_CHECKING(if you want to turn on gcc warnings)
1085 CF_ARG_ENABLE(warnings,
1086         [  --enable-warnings       test: turn on gcc compiler warnings],
1087         [with_warnings=yes],
1088         [with_warnings=no])
1089 AC_MSG_RESULT($with_warnings)
1090 if test "$with_warnings" = "yes"
1091 then
1092         CF_GCC_ATTRIBUTES
1093         CF_GCC_WARNINGS
1094 fi
1095 fi
1096 ])dnl
1097 dnl ---------------------------------------------------------------------------
1098 dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
1099 dnl ---------------
1100 dnl Look for a non-standard library, given parameters for AC_TRY_LINK.  We
1101 dnl prefer a standard location, and use -L options only if we do not find the
1102 dnl library in the standard library location(s).
1103 dnl     $1 = library name
1104 dnl     $2 = library class, usually the same as library name
1105 dnl     $3 = includes
1106 dnl     $4 = code fragment to compile/link
1107 dnl     $5 = corresponding function-name
1108 dnl     $6 = flag, nonnull if failure should not cause an error-exit
1109 dnl
1110 dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
1111 dnl to use a -L option.
1112 AC_DEFUN([CF_FIND_LIBRARY],
1113 [
1114         eval 'cf_cv_have_lib_'$1'=no'
1115         cf_libdir=""
1116         AC_CHECK_FUNC($5,
1117                 eval 'cf_cv_have_lib_'$1'=yes',[
1118                 cf_save_LIBS="$LIBS"
1119                 AC_MSG_CHECKING(for $5 in -l$1)
1120                 LIBS="-l$1 $LIBS"
1121                 AC_TRY_LINK([$3],[$4],
1122                         [AC_MSG_RESULT(yes)
1123                          eval 'cf_cv_have_lib_'$1'=yes'
1124                         ],
1125                         [AC_MSG_RESULT(no)
1126                         CF_LIBRARY_PATH(cf_search,$2)
1127                         for cf_libdir in $cf_search
1128                         do
1129                                 AC_MSG_CHECKING(for -l$1 in $cf_libdir)
1130                                 LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
1131                                 AC_TRY_LINK([$3],[$4],
1132                                         [AC_MSG_RESULT(yes)
1133                                          eval 'cf_cv_have_lib_'$1'=yes'
1134                                          break],
1135                                         [AC_MSG_RESULT(no)
1136                                          LIBS="$cf_save_LIBS"])
1137                         done
1138                         ])
1139                 ])
1140 eval 'cf_found_library=[$]cf_cv_have_lib_'$1
1141 ifelse($6,,[
1142 if test $cf_found_library = no ; then
1143         AC_MSG_ERROR(Cannot link $1 library)
1144 fi
1145 ])
1146 ])dnl
1147 dnl ---------------------------------------------------------------------------
1148 dnl CF_FIND_LINKAGE version: 20 updated: 2015/04/18 08:56:57
1149 dnl ---------------
1150 dnl Find a library (specifically the linkage used in the code fragment),
1151 dnl searching for it if it is not already in the library path.
1152 dnl See also CF_ADD_SEARCHPATH.
1153 dnl
1154 dnl Parameters (4-on are optional):
1155 dnl     $1 = headers for library entrypoint
1156 dnl     $2 = code fragment for library entrypoint
1157 dnl     $3 = the library name without the "-l" option or ".so" suffix.
1158 dnl     $4 = action to perform if successful (default: update CPPFLAGS, etc)
1159 dnl     $5 = action to perform if not successful
1160 dnl     $6 = module name, if not the same as the library name
1161 dnl     $7 = extra libraries
1162 dnl
1163 dnl Sets these variables:
1164 dnl     $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1165 dnl     $cf_cv_header_path_$3 - include-directory if needed
1166 dnl     $cf_cv_library_path_$3 - library-directory if needed
1167 dnl     $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1168 AC_DEFUN([CF_FIND_LINKAGE],[
1169
1170 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1171 # will be set on completion of the AC_TRY_LINK below.
1172 cf_cv_header_path_$3=
1173 cf_cv_library_path_$3=
1174
1175 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1176
1177 cf_save_LIBS="$LIBS"
1178
1179 AC_TRY_LINK([$1],[$2],[
1180         cf_cv_find_linkage_$3=yes
1181         cf_cv_header_path_$3=/usr/include
1182         cf_cv_library_path_$3=/usr/lib
1183 ],[
1184
1185 LIBS="-l$3 $7 $cf_save_LIBS"
1186
1187 AC_TRY_LINK([$1],[$2],[
1188         cf_cv_find_linkage_$3=yes
1189         cf_cv_header_path_$3=/usr/include
1190         cf_cv_library_path_$3=/usr/lib
1191         cf_cv_library_file_$3="-l$3"
1192 ],[
1193         cf_cv_find_linkage_$3=no
1194         LIBS="$cf_save_LIBS"
1195
1196         CF_VERBOSE(find linkage for $3 library)
1197         CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1198
1199         cf_save_CPPFLAGS="$CPPFLAGS"
1200         cf_test_CPPFLAGS="$CPPFLAGS"
1201
1202         CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1203         for cf_cv_header_path_$3 in $cf_search
1204         do
1205                 if test -d $cf_cv_header_path_$3 ; then
1206                         CF_VERBOSE(... testing $cf_cv_header_path_$3)
1207                         CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1208                         AC_TRY_COMPILE([$1],[$2],[
1209                                 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1210                                 cf_cv_find_linkage_$3=maybe
1211                                 cf_test_CPPFLAGS="$CPPFLAGS"
1212                                 break],[
1213                                 CPPFLAGS="$cf_save_CPPFLAGS"
1214                                 ])
1215                 fi
1216         done
1217
1218         if test "$cf_cv_find_linkage_$3" = maybe ; then
1219
1220                 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1221
1222                 cf_save_LIBS="$LIBS"
1223                 cf_save_LDFLAGS="$LDFLAGS"
1224
1225                 ifelse([$6],,,[
1226                 CPPFLAGS="$cf_test_CPPFLAGS"
1227                 LIBS="-l$3 $7 $cf_save_LIBS"
1228                 AC_TRY_LINK([$1],[$2],[
1229                         CF_VERBOSE(... found $3 library in system)
1230                         cf_cv_find_linkage_$3=yes])
1231                         CPPFLAGS="$cf_save_CPPFLAGS"
1232                         LIBS="$cf_save_LIBS"
1233                         ])
1234
1235                 if test "$cf_cv_find_linkage_$3" != yes ; then
1236                         CF_LIBRARY_PATH(cf_search,$3)
1237                         for cf_cv_library_path_$3 in $cf_search
1238                         do
1239                                 if test -d $cf_cv_library_path_$3 ; then
1240                                         CF_VERBOSE(... testing $cf_cv_library_path_$3)
1241                                         CPPFLAGS="$cf_test_CPPFLAGS"
1242                                         LIBS="-l$3 $7 $cf_save_LIBS"
1243                                         LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1244                                         AC_TRY_LINK([$1],[$2],[
1245                                         CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1246                                         cf_cv_find_linkage_$3=yes
1247                                         cf_cv_library_file_$3="-l$3"
1248                                         break],[
1249                                         CPPFLAGS="$cf_save_CPPFLAGS"
1250                                         LIBS="$cf_save_LIBS"
1251                                         LDFLAGS="$cf_save_LDFLAGS"
1252                                         ])
1253                                 fi
1254                         done
1255                         CPPFLAGS="$cf_save_CPPFLAGS"
1256                         LDFLAGS="$cf_save_LDFLAGS"
1257                 fi
1258
1259         else
1260                 cf_cv_find_linkage_$3=no
1261         fi
1262         ],$7)
1263 ])
1264
1265 LIBS="$cf_save_LIBS"
1266
1267 if test "$cf_cv_find_linkage_$3" = yes ; then
1268 ifelse([$4],,[
1269         CF_ADD_INCDIR($cf_cv_header_path_$3)
1270         CF_ADD_LIBDIR($cf_cv_library_path_$3)
1271         CF_ADD_LIB($3)
1272 ],[$4])
1273 else
1274 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1275 fi
1276 ])dnl
1277 dnl ---------------------------------------------------------------------------
1278 dnl CF_FUNC_CURSES_VERSION version: 6 updated: 2012/10/06 16:39:58
1279 dnl ----------------------
1280 dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
1281 dnl It's a character string "SVR4", not documented.
1282 AC_DEFUN([CF_FUNC_CURSES_VERSION],
1283 [
1284 AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
1285 AC_TRY_RUN([
1286 #include <${cf_cv_ncurses_header:-curses.h}>
1287 int main()
1288 {
1289         char temp[1024];
1290         sprintf(temp, "%s\n", curses_version());
1291         ${cf_cv_main_return:-return}(0);
1292 }]
1293 ,[cf_cv_func_curses_version=yes]
1294 ,[cf_cv_func_curses_version=no]
1295 ,[cf_cv_func_curses_version=unknown])
1296 rm -f core])
1297 test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 if we have curses_version function])
1298 ])
1299 dnl ---------------------------------------------------------------------------
1300 dnl CF_FUNC_OPENPTY version: 5 updated: 2015/09/12 14:46:50
1301 dnl ---------------
1302 dnl Check for openpty() function, along with <pty.h> header.  It may need the
1303 dnl "util" library as well.
1304 AC_DEFUN([CF_FUNC_OPENPTY],
1305 [
1306 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1307 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1308         cf_save_LIBS="$LIBS"
1309         test $cf_cv_lib_util = yes && { CF_ADD_LIB(util) }
1310         for cf_header in pty.h libutil.h util.h
1311         do
1312         AC_TRY_LINK([
1313 #include <$cf_header>
1314 ],[
1315         int x = openpty((int *)0, (int *)0, (char *)0,
1316                                    (struct termios *)0, (struct winsize *)0);
1317 ],[
1318                 cf_cv_func_openpty=$cf_header
1319                 break
1320 ],[
1321                 cf_cv_func_openpty=no
1322 ])
1323         done
1324         LIBS="$cf_save_LIBS"
1325 ])
1326 ])dnl
1327 dnl ---------------------------------------------------------------------------
1328 dnl CF_GCC_ATTRIBUTES version: 17 updated: 2015/04/12 15:39:00
1329 dnl -----------------
1330 dnl Test for availability of useful gcc __attribute__ directives to quiet
1331 dnl compiler warnings.  Though useful, not all are supported -- and contrary
1332 dnl to documentation, unrecognized directives cause older compilers to barf.
1333 AC_DEFUN([CF_GCC_ATTRIBUTES],
1334 [
1335 if test "$GCC" = yes
1336 then
1337 cat > conftest.i <<EOF
1338 #ifndef GCC_PRINTF
1339 #define GCC_PRINTF 0
1340 #endif
1341 #ifndef GCC_SCANF
1342 #define GCC_SCANF 0
1343 #endif
1344 #ifndef GCC_NORETURN
1345 #define GCC_NORETURN /* nothing */
1346 #endif
1347 #ifndef GCC_UNUSED
1348 #define GCC_UNUSED /* nothing */
1349 #endif
1350 EOF
1351 if test "$GCC" = yes
1352 then
1353         AC_CHECKING([for $CC __attribute__ directives])
1354 cat > conftest.$ac_ext <<EOF
1355 #line __oline__ "${as_me:-configure}"
1356 #include "confdefs.h"
1357 #include "conftest.h"
1358 #include "conftest.i"
1359 #if     GCC_PRINTF
1360 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1361 #else
1362 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1363 #endif
1364 #if     GCC_SCANF
1365 #define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
1366 #else
1367 #define GCC_SCANFLIKE(fmt,var)  /*nothing*/
1368 #endif
1369 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1370 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1371 extern void foo(void) GCC_NORETURN;
1372 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1373 EOF
1374         cf_printf_attribute=no
1375         cf_scanf_attribute=no
1376         for cf_attribute in scanf printf unused noreturn
1377         do
1378                 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1379                 cf_directive="__attribute__(($cf_attribute))"
1380                 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1381
1382                 case $cf_attribute in
1383                 (printf)
1384                         cf_printf_attribute=yes
1385                         cat >conftest.h <<EOF
1386 #define GCC_$cf_ATTRIBUTE 1
1387 EOF
1388                         ;;
1389                 (scanf)
1390                         cf_scanf_attribute=yes
1391                         cat >conftest.h <<EOF
1392 #define GCC_$cf_ATTRIBUTE 1
1393 EOF
1394                         ;;
1395                 (*)
1396                         cat >conftest.h <<EOF
1397 #define GCC_$cf_ATTRIBUTE $cf_directive
1398 EOF
1399                         ;;
1400                 esac
1401
1402                 if AC_TRY_EVAL(ac_compile); then
1403                         test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1404                         cat conftest.h >>confdefs.h
1405                         case $cf_attribute in
1406                         (noreturn)
1407                                 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
1408                                 ;;
1409                         (printf)
1410                                 cf_value='/* nothing */'
1411                                 if test "$cf_printf_attribute" != no ; then
1412                                         cf_value='__attribute__((format(printf,fmt,var)))'
1413                                         AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
1414                                 fi
1415                                 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
1416                                 ;;
1417                         (scanf)
1418                                 cf_value='/* nothing */'
1419                                 if test "$cf_scanf_attribute" != no ; then
1420                                         cf_value='__attribute__((format(scanf,fmt,var)))'
1421                                         AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
1422                                 fi
1423                                 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
1424                                 ;;
1425                         (unused)
1426                                 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
1427                                 ;;
1428                         esac
1429                 fi
1430         done
1431 else
1432         fgrep define conftest.i >>confdefs.h
1433 fi
1434 rm -rf conftest*
1435 fi
1436 ])dnl
1437 dnl ---------------------------------------------------------------------------
1438 dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
1439 dnl --------------
1440 dnl Find version of gcc
1441 AC_DEFUN([CF_GCC_VERSION],[
1442 AC_REQUIRE([AC_PROG_CC])
1443 GCC_VERSION=none
1444 if test "$GCC" = yes ; then
1445         AC_MSG_CHECKING(version of $CC)
1446         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.]].*//'`"
1447         test -z "$GCC_VERSION" && GCC_VERSION=unknown
1448         AC_MSG_RESULT($GCC_VERSION)
1449 fi
1450 ])dnl
1451 dnl ---------------------------------------------------------------------------
1452 dnl CF_GCC_WARNINGS version: 32 updated: 2015/04/12 15:39:00
1453 dnl ---------------
1454 dnl Check if the compiler supports useful warning options.  There's a few that
1455 dnl we don't use, simply because they're too noisy:
1456 dnl
1457 dnl     -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1458 dnl     -Wredundant-decls (system headers make this too noisy)
1459 dnl     -Wtraditional (combines too many unrelated messages, only a few useful)
1460 dnl     -Wwrite-strings (too noisy, but should review occasionally).  This
1461 dnl             is enabled for ncurses using "--enable-const".
1462 dnl     -pedantic
1463 dnl
1464 dnl Parameter:
1465 dnl     $1 is an optional list of gcc warning flags that a particular
1466 dnl             application might want to use, e.g., "no-unused" for
1467 dnl             -Wno-unused
1468 dnl Special:
1469 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
1470 dnl
1471 AC_DEFUN([CF_GCC_WARNINGS],
1472 [
1473 AC_REQUIRE([CF_GCC_VERSION])
1474 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1475 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
1476
1477 cat > conftest.$ac_ext <<EOF
1478 #line __oline__ "${as_me:-configure}"
1479 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1480 EOF
1481
1482 if test "$INTEL_COMPILER" = yes
1483 then
1484 # The "-wdXXX" options suppress warnings:
1485 # remark #1419: external declaration in primary source file
1486 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1487 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1488 # remark #193: zero used for undefined preprocessing identifier
1489 # remark #593: variable "curs_sb_left_arrow" was set but never used
1490 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1491 # remark #869: parameter "tw" was never referenced
1492 # remark #981: operands are evaluated in unspecified order
1493 # warning #279: controlling expression is constant
1494
1495         AC_CHECKING([for $CC warning options])
1496         cf_save_CFLAGS="$CFLAGS"
1497         EXTRA_CFLAGS="-Wall"
1498         for cf_opt in \
1499                 wd1419 \
1500                 wd1683 \
1501                 wd1684 \
1502                 wd193 \
1503                 wd593 \
1504                 wd279 \
1505                 wd810 \
1506                 wd869 \
1507                 wd981
1508         do
1509                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1510                 if AC_TRY_EVAL(ac_compile); then
1511                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1512                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1513                 fi
1514         done
1515         CFLAGS="$cf_save_CFLAGS"
1516
1517 elif test "$GCC" = yes
1518 then
1519         AC_CHECKING([for $CC warning options])
1520         cf_save_CFLAGS="$CFLAGS"
1521         EXTRA_CFLAGS=
1522         cf_warn_CONST=""
1523         test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1524         cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
1525         test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
1526         for cf_opt in W Wall \
1527                 Wbad-function-cast \
1528                 Wcast-align \
1529                 Wcast-qual \
1530                 Wdeclaration-after-statement \
1531                 Wextra \
1532                 Winline \
1533                 Wmissing-declarations \
1534                 Wmissing-prototypes \
1535                 Wnested-externs \
1536                 Wpointer-arith \
1537                 Wshadow \
1538                 Wstrict-prototypes \
1539                 Wundef $cf_gcc_warnings $cf_warn_CONST $1
1540         do
1541                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1542                 if AC_TRY_EVAL(ac_compile); then
1543                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1544                         case $cf_opt in
1545                         (Wcast-qual)
1546                                 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1547                                 ;;
1548                         (Winline)
1549                                 case $GCC_VERSION in
1550                                 ([[34]].*)
1551                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1552                                         continue;;
1553                                 esac
1554                                 ;;
1555                         (Wpointer-arith)
1556                                 case $GCC_VERSION in
1557                                 ([[12]].*)
1558                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1559                                         continue;;
1560                                 esac
1561                                 ;;
1562                         esac
1563                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1564                 fi
1565         done
1566         CFLAGS="$cf_save_CFLAGS"
1567 fi
1568 rm -rf conftest*
1569
1570 AC_SUBST(EXTRA_CFLAGS)
1571 ])dnl
1572 dnl ---------------------------------------------------------------------------
1573 dnl CF_GETOPT_HEADER version: 6 updated: 2014/07/22 14:45:54
1574 dnl ----------------
1575 dnl Check for getopt's variables which are commonly defined in stdlib.h,
1576 dnl unistd.h or (nonstandard) in getopt.h
1577 AC_DEFUN([CF_GETOPT_HEADER],
1578 [
1579 AC_HAVE_HEADERS(unistd.h getopt.h)
1580 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
1581 cf_cv_getopt_header=none
1582 for cf_header in stdio.h stdlib.h unistd.h getopt.h
1583 do
1584 AC_TRY_COMPILE([
1585 #include <$cf_header>],
1586 [int x = optind; char *y = optarg],
1587 [cf_cv_getopt_header=$cf_header
1588  break])
1589 done
1590 ])
1591 if test $cf_cv_getopt_header != none ; then
1592         AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
1593 fi
1594 if test $cf_cv_getopt_header = getopt.h ; then
1595         AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
1596 fi
1597 ])dnl
1598 dnl ---------------------------------------------------------------------------
1599 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
1600 dnl -------------
1601 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1602 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
1603 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1604 dnl since it is interwoven with GNU extensions.
1605 dnl
1606 dnl Well, yes we could work around it...
1607 AC_DEFUN([CF_GNU_SOURCE],
1608 [
1609 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1610 AC_TRY_COMPILE([#include <sys/types.h>],[
1611 #ifndef _XOPEN_SOURCE
1612 make an error
1613 #endif],
1614         [cf_cv_gnu_source=no],
1615         [cf_save="$CPPFLAGS"
1616          CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1617          AC_TRY_COMPILE([#include <sys/types.h>],[
1618 #ifdef _XOPEN_SOURCE
1619 make an error
1620 #endif],
1621         [cf_cv_gnu_source=no],
1622         [cf_cv_gnu_source=yes])
1623         CPPFLAGS="$cf_save"
1624         ])
1625 ])
1626 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1627 ])dnl
1628 dnl ---------------------------------------------------------------------------
1629 dnl CF_HEADER_PATH version: 13 updated: 2015/04/15 19:08:48
1630 dnl --------------
1631 dnl Construct a search-list of directories for a nonstandard header-file
1632 dnl
1633 dnl Parameters
1634 dnl     $1 = the variable to return as result
1635 dnl     $2 = the package name
1636 AC_DEFUN([CF_HEADER_PATH],
1637 [
1638 $1=
1639
1640 # collect the current set of include-directories from compiler flags
1641 cf_header_path_list=""
1642 if test -n "${CFLAGS}${CPPFLAGS}" ; then
1643         for cf_header_path in $CPPFLAGS $CFLAGS
1644         do
1645                 case $cf_header_path in
1646                 (-I*)
1647                         cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
1648                         CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
1649                         cf_header_path_list="$cf_header_path_list [$]$1"
1650                         ;;
1651                 esac
1652         done
1653 fi
1654
1655 # add the variations for the package we are looking for
1656 CF_SUBDIR_PATH($1,$2,include)
1657
1658 test "$includedir" != NONE && \
1659 test "$includedir" != "/usr/include" && \
1660 test -d "$includedir" && {
1661         test -d $includedir &&    $1="[$]$1 $includedir"
1662         test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
1663 }
1664
1665 test "$oldincludedir" != NONE && \
1666 test "$oldincludedir" != "/usr/include" && \
1667 test -d "$oldincludedir" && {
1668         test -d $oldincludedir    && $1="[$]$1 $oldincludedir"
1669         test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
1670 }
1671
1672 $1="[$]$1 $cf_header_path_list"
1673 ])dnl
1674 dnl ---------------------------------------------------------------------------
1675 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
1676 dnl ---------------
1677 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
1678 AC_DEFUN([CF_HELP_MESSAGE],
1679 [AC_DIVERT_HELP([$1])dnl
1680 ])dnl
1681 dnl ---------------------------------------------------------------------------
1682 dnl CF_INHERIT_SCRIPT version: 2 updated: 2003/03/01 23:50:42
1683 dnl -----------------
1684 dnl If we do not have a given script, look for it in the parent directory.
1685 AC_DEFUN([CF_INHERIT_SCRIPT],
1686 [
1687 test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
1688 ])dnl
1689 dnl ---------------------------------------------------------------------------
1690 dnl CF_INTEL_COMPILER version: 7 updated: 2015/04/12 15:39:00
1691 dnl -----------------
1692 dnl Check if the given compiler is really the Intel compiler for Linux.  It
1693 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
1694 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
1695 dnl
1696 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1697 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
1698 dnl the wrappers for gcc and g++ warnings.
1699 dnl
1700 dnl $1 = GCC (default) or GXX
1701 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
1702 dnl $3 = CFLAGS (default) or CXXFLAGS
1703 AC_DEFUN([CF_INTEL_COMPILER],[
1704 AC_REQUIRE([AC_CANONICAL_HOST])
1705 ifelse([$2],,INTEL_COMPILER,[$2])=no
1706
1707 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1708         case $host_os in
1709         (linux*|gnu*)
1710                 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
1711                 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1712                 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
1713                 AC_TRY_COMPILE([],[
1714 #ifdef __INTEL_COMPILER
1715 #else
1716 make an error
1717 #endif
1718 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
1719 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
1720 ],[])
1721                 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1722                 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
1723                 ;;
1724         esac
1725 fi
1726 ])dnl
1727 dnl ---------------------------------------------------------------------------
1728 dnl CF_LD_RPATH_OPT version: 7 updated: 2016/02/20 18:01:19
1729 dnl ---------------
1730 dnl For the given system and compiler, find the compiler flags to pass to the
1731 dnl loader to use the "rpath" feature.
1732 AC_DEFUN([CF_LD_RPATH_OPT],
1733 [
1734 AC_REQUIRE([CF_CHECK_CACHE])
1735
1736 LD_RPATH_OPT=
1737 AC_MSG_CHECKING(for an rpath option)
1738 case $cf_cv_system_name in
1739 (irix*)
1740         if test "$GCC" = yes; then
1741                 LD_RPATH_OPT="-Wl,-rpath,"
1742         else
1743                 LD_RPATH_OPT="-rpath "
1744         fi
1745         ;;
1746 (linux*|gnu*|k*bsd*-gnu|freebsd*)
1747         LD_RPATH_OPT="-Wl,-rpath,"
1748         ;;
1749 (openbsd[[2-9]].*|mirbsd*)
1750         LD_RPATH_OPT="-Wl,-rpath,"
1751         ;;
1752 (dragonfly*)
1753         LD_RPATH_OPT="-rpath "
1754         ;;
1755 (netbsd*)
1756         LD_RPATH_OPT="-Wl,-rpath,"
1757         ;;
1758 (osf*|mls+*)
1759         LD_RPATH_OPT="-rpath "
1760         ;;
1761 (solaris2*)
1762         LD_RPATH_OPT="-R"
1763         ;;
1764 (*)
1765         ;;
1766 esac
1767 AC_MSG_RESULT($LD_RPATH_OPT)
1768
1769 case "x$LD_RPATH_OPT" in
1770 (x-R*)
1771         AC_MSG_CHECKING(if we need a space after rpath option)
1772         cf_save_LIBS="$LIBS"
1773         CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
1774         AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
1775         LIBS="$cf_save_LIBS"
1776         AC_MSG_RESULT($cf_rpath_space)
1777         test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
1778         ;;
1779 esac
1780 ])dnl
1781 dnl ---------------------------------------------------------------------------
1782 dnl CF_LIBRARY_PATH version: 10 updated: 2015/04/15 19:08:48
1783 dnl ---------------
1784 dnl Construct a search-list of directories for a nonstandard library-file
1785 dnl
1786 dnl Parameters
1787 dnl     $1 = the variable to return as result
1788 dnl     $2 = the package name
1789 AC_DEFUN([CF_LIBRARY_PATH],
1790 [
1791 $1=
1792 cf_library_path_list=""
1793 if test -n "${LDFLAGS}${LIBS}" ; then
1794         for cf_library_path in $LDFLAGS $LIBS
1795         do
1796                 case $cf_library_path in
1797                 (-L*)
1798                         cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
1799                         CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
1800                         cf_library_path_list="$cf_library_path_list [$]$1"
1801                         ;;
1802                 esac
1803         done
1804 fi
1805
1806 CF_SUBDIR_PATH($1,$2,lib)
1807
1808 $1="$cf_library_path_list [$]$1"
1809 ])dnl
1810 dnl ---------------------------------------------------------------------------
1811 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
1812 dnl ------------
1813 dnl Generate tags/TAGS targets for makefiles.  Do not generate TAGS if we have
1814 dnl a monocase filesystem.
1815 AC_DEFUN([CF_MAKE_TAGS],[
1816 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
1817
1818 AC_CHECK_PROGS(CTAGS, exctags ctags)
1819 AC_CHECK_PROGS(ETAGS, exetags etags)
1820
1821 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
1822
1823 if test "$cf_cv_mixedcase" = yes ; then
1824         AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
1825 else
1826         MAKE_UPPER_TAGS=no
1827 fi
1828
1829 if test "$MAKE_UPPER_TAGS" = yes ; then
1830         MAKE_UPPER_TAGS=
1831 else
1832         MAKE_UPPER_TAGS="#"
1833 fi
1834
1835 if test "$MAKE_LOWER_TAGS" = yes ; then
1836         MAKE_LOWER_TAGS=
1837 else
1838         MAKE_LOWER_TAGS="#"
1839 fi
1840
1841 AC_SUBST(CTAGS)
1842 AC_SUBST(ETAGS)
1843
1844 AC_SUBST(MAKE_UPPER_TAGS)
1845 AC_SUBST(MAKE_LOWER_TAGS)
1846 ])dnl
1847 dnl ---------------------------------------------------------------------------
1848 dnl CF_MATH_LIB version: 8 updated: 2010/05/29 16:31:02
1849 dnl -----------
1850 dnl Checks for libraries.  At least one UNIX system, Apple Macintosh
1851 dnl Rhapsody 5.5, does not have -lm.  We cannot use the simpler
1852 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
1853 AC_DEFUN([CF_MATH_LIB],
1854 [
1855 AC_CACHE_CHECK(if -lm needed for math functions,
1856         cf_cv_need_libm,[
1857         AC_TRY_LINK([
1858         #include <stdio.h>
1859         #include <math.h>
1860         ],
1861         [double x = rand(); printf("result = %g\n", ]ifelse([$2],,sin(x),$2)[)],
1862         [cf_cv_need_libm=no],
1863         [cf_cv_need_libm=yes])])
1864 if test "$cf_cv_need_libm" = yes
1865 then
1866 ifelse($1,,[
1867         CF_ADD_LIB(m)
1868 ],[$1=-lm])
1869 fi
1870 ])
1871 dnl ---------------------------------------------------------------------------
1872 dnl CF_MIXEDCASE_FILENAMES version: 7 updated: 2015/04/12 15:39:00
1873 dnl ----------------------
1874 dnl Check if the file-system supports mixed-case filenames.  If we're able to
1875 dnl create a lowercase name and see it as uppercase, it doesn't support that.
1876 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
1877 [
1878 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
1879 if test "$cross_compiling" = yes ; then
1880         case $target_alias in
1881         (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
1882                 cf_cv_mixedcase=no
1883                 ;;
1884         (*)
1885                 cf_cv_mixedcase=yes
1886                 ;;
1887         esac
1888 else
1889         rm -f conftest CONFTEST
1890         echo test >conftest
1891         if test -f CONFTEST ; then
1892                 cf_cv_mixedcase=no
1893         else
1894                 cf_cv_mixedcase=yes
1895         fi
1896         rm -f conftest CONFTEST
1897 fi
1898 ])
1899 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
1900 ])dnl
1901 dnl ---------------------------------------------------------------------------
1902 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
1903 dnl ----------
1904 dnl Write a debug message to config.log, along with the line number in the
1905 dnl configure script.
1906 AC_DEFUN([CF_MSG_LOG],[
1907 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
1908 ])dnl
1909 dnl ---------------------------------------------------------------------------
1910 dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
1911 dnl -------------------
1912 dnl Check if we can compile with ncurses' header file
1913 dnl $1 is the cache variable to set
1914 dnl $2 is the header-file to include
1915 dnl $3 is the root name (ncurses or ncursesw)
1916 AC_DEFUN([CF_NCURSES_CC_CHECK],[
1917         AC_TRY_COMPILE([
1918 ]ifelse($3,ncursesw,[
1919 #define _XOPEN_SOURCE_EXTENDED
1920 #undef  HAVE_LIBUTF8_H  /* in case we used CF_UTF8_LIB */
1921 #define HAVE_LIBUTF8_H  /* to force ncurses' header file to use cchar_t */
1922 ])[
1923 #include <$2>],[
1924 #ifdef NCURSES_VERSION
1925 ]ifelse($3,ncursesw,[
1926 #ifndef WACS_BSSB
1927         make an error
1928 #endif
1929 ])[
1930 printf("%s\n", NCURSES_VERSION);
1931 #else
1932 #ifdef __NCURSES_H
1933 printf("old\n");
1934 #else
1935         make an error
1936 #endif
1937 #endif
1938         ]
1939         ,[$1=$2]
1940         ,[$1=no])
1941 ])dnl
1942 dnl ---------------------------------------------------------------------------
1943 dnl CF_NCURSES_CONFIG version: 17 updated: 2015/07/07 04:22:07
1944 dnl -----------------
1945 dnl Tie together the configure-script macros for ncurses, preferring these in
1946 dnl order:
1947 dnl a) ".pc" files for pkg-config, using $NCURSES_CONFIG_PKG
1948 dnl b) the "-config" script from ncurses, using $NCURSES_CONFIG
1949 dnl c) just plain libraries
1950 dnl
1951 dnl $1 is the root library name (default: "ncurses")
1952 AC_DEFUN([CF_NCURSES_CONFIG],[
1953 AC_REQUIRE([CF_PKG_CONFIG])
1954 cf_ncuconfig_root=ifelse($1,,ncurses,$1)
1955 cf_have_ncuconfig=no
1956
1957 if test "x${PKG_CONFIG:=none}" != xnone; then
1958         AC_MSG_CHECKING(pkg-config for $cf_ncuconfig_root)
1959         if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
1960                 AC_MSG_RESULT(yes)
1961
1962                 AC_MSG_CHECKING(if the $cf_ncuconfig_root package files work)
1963                 cf_have_ncuconfig=unknown
1964
1965                 cf_save_CPPFLAGS="$CPPFLAGS"
1966                 cf_save_LIBS="$LIBS"
1967
1968                 CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags $cf_ncuconfig_root`"
1969                 CF_ADD_LIBS(`$PKG_CONFIG --libs $cf_ncuconfig_root`)
1970
1971                 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
1972                         [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
1973                         [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
1974                                 int main(void)
1975                                 { char *xx = curses_version(); return (xx == 0); }],
1976                                 [cf_have_ncuconfig=yes],
1977                                 [cf_have_ncuconfig=no],
1978                                 [cf_have_ncuconfig=maybe])],
1979                         [cf_have_ncuconfig=no])
1980                 AC_MSG_RESULT($cf_have_ncuconfig)
1981                 test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
1982                 if test "$cf_have_ncuconfig" != "yes"
1983                 then
1984                         CPPFLAGS="$cf_save_CPPFLAGS"
1985                         LIBS="$cf_save_LIBS"
1986                         NCURSES_CONFIG_PKG=none
1987                 else
1988                         AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
1989                         NCURSES_CONFIG_PKG=$cf_ncuconfig_root
1990                 fi
1991
1992         else
1993                 AC_MSG_RESULT(no)
1994                 NCURSES_CONFIG_PKG=none
1995         fi
1996 else
1997         NCURSES_CONFIG_PKG=none
1998 fi
1999
2000 if test "x$cf_have_ncuconfig" = "xno"; then
2001         echo "Looking for ${cf_ncuconfig_root}-config"
2002
2003         CF_ACVERSION_CHECK(2.52,
2004                 [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncuconfig_root}-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
2005                 [AC_PATH_PROGS(NCURSES_CONFIG,  ${cf_ncuconfig_root}-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
2006
2007         if test "$NCURSES_CONFIG" != none ; then
2008
2009                 CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
2010                 CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
2011
2012                 # even with config script, some packages use no-override for curses.h
2013                 CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
2014
2015                 dnl like CF_NCURSES_CPPFLAGS
2016                 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2017
2018                 dnl like CF_NCURSES_LIBS
2019                 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
2020                 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2021
2022                 dnl like CF_NCURSES_VERSION
2023                 cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
2024
2025         else
2026
2027                 CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
2028                 CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
2029
2030         fi
2031 else
2032         NCURSES_CONFIG=none
2033 fi
2034 ])dnl
2035 dnl ---------------------------------------------------------------------------
2036 dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51
2037 dnl -------------------
2038 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
2039 dnl the CPPFLAGS variable so we can include its header.
2040 dnl
2041 dnl The header files may be installed as either curses.h, or ncurses.h (would
2042 dnl be obsolete, except that some packagers prefer this name to distinguish it
2043 dnl from a "native" curses implementation).  If not installed for overwrite,
2044 dnl the curses.h file would be in an ncurses subdirectory (e.g.,
2045 dnl /usr/include/ncurses), but someone may have installed overwriting the
2046 dnl vendor's curses.  Only very old versions (pre-1.9.2d, the first autoconf'd
2047 dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
2048 dnl the header.
2049 dnl
2050 dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
2051 dnl is already in the include-path, don't even bother with this, since we cannot
2052 dnl easily determine which file it is.  In this case, it has to be <curses.h>.
2053 dnl
2054 dnl The optional parameter gives the root name of the library, in case it is
2055 dnl not installed as the default curses library.  That is how the
2056 dnl wide-character version of ncurses is installed.
2057 AC_DEFUN([CF_NCURSES_CPPFLAGS],
2058 [AC_REQUIRE([CF_WITH_CURSES_DIR])
2059
2060 AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
2061 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
2062
2063 test -n "$cf_cv_curses_dir" && \
2064 test "$cf_cv_curses_dir" != "no" && { \
2065   CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
2066 }
2067
2068 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
2069         cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
2070         ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
2071         for cf_header in $cf_header_list
2072         do
2073                 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
2074                 test "$cf_cv_ncurses_h" != no && break
2075         done
2076 ])
2077
2078 CF_NCURSES_HEADER
2079 CF_TERM_HEADER
2080
2081 # some applications need this, but should check for NCURSES_VERSION
2082 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2083
2084 CF_NCURSES_VERSION
2085 ])dnl
2086 dnl ---------------------------------------------------------------------------
2087 dnl CF_NCURSES_EXT_FUNCS version: 4 updated: 2012/10/06 16:39:58
2088 dnl --------------------
2089 dnl Since 2007/11/17, ncurses has defined NCURSES_EXT_FUNCS; earlier versions
2090 dnl may provide these functions.  Define the symbol if it is not defined, and
2091 dnl if it is valid.
2092 AC_DEFUN([CF_NCURSES_EXT_FUNCS],
2093 [
2094 AC_CACHE_CHECK(for ncurses extended functions,cf_cv_ncurses_ext_funcs,[
2095 AC_TRY_COMPILE([
2096 #include <${cf_cv_ncurses_header:-curses.h}>],
2097 [
2098 int x = NCURSES_EXT_FUNCS
2099 ],[cf_cv_ncurses_ext_funcs=defined],[
2100 AC_TRY_LINK([
2101 #include <${cf_cv_ncurses_header:-curses.h}>],
2102 [
2103         (void) assume_default_colors (0, 0);
2104         (void) curses_version ();
2105         (void) define_key (0, 0);
2106         (void) is_term_resized (0, 0);
2107         (void) key_defined (0);
2108         (void) keybound (0, 0);
2109         (void) keyok (0, 0);
2110         (void) resize_term (0, 0);
2111         (void) resizeterm (0, 0);
2112         (void) use_default_colors ();
2113         (void) use_extended_names (0);
2114         (void) wresize (0, 0, 0);],
2115         [cf_cv_ncurses_ext_funcs=yes],
2116         [cf_cv_ncurses_ext_funcs=no])
2117 ])
2118 ])
2119 test "$cf_cv_ncurses_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 if we have ncurses extensions])
2120 ])dnl
2121 dnl ---------------------------------------------------------------------------
2122 dnl CF_NCURSES_HEADER version: 4 updated: 2015/04/15 19:08:48
2123 dnl -----------------
2124 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
2125 dnl variations of ncurses' installs.
2126 dnl
2127 dnl See also CF_CURSES_HEADER, which sets the same cache variable.
2128 AC_DEFUN([CF_NCURSES_HEADER],[
2129
2130 if test "$cf_cv_ncurses_h" != no ; then
2131         cf_cv_ncurses_header=$cf_cv_ncurses_h
2132 else
2133
2134 AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
2135         test -n "$verbose" && echo
2136         CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
2137         test -n "$verbose" && echo search path $cf_search
2138         cf_save2_CPPFLAGS="$CPPFLAGS"
2139         for cf_incdir in $cf_search
2140         do
2141                 CF_ADD_INCDIR($cf_incdir)
2142                 for cf_header in \
2143                         ncurses.h \
2144                         curses.h
2145                 do
2146                         CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
2147                         if test "$cf_cv_ncurses_h2" != no ; then
2148                                 cf_cv_ncurses_h2=$cf_incdir/$cf_header
2149                                 test -n "$verbose" && echo $ac_n "      ... found $ac_c" 1>&AC_FD_MSG
2150                                 break
2151                         fi
2152                         test -n "$verbose" && echo "    ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
2153                 done
2154                 CPPFLAGS="$cf_save2_CPPFLAGS"
2155                 test "$cf_cv_ncurses_h2" != no && break
2156         done
2157         test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
2158         ])
2159
2160         CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
2161         cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
2162         if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
2163                 cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
2164         fi
2165         CF_ADD_INCDIR($cf_1st_incdir)
2166
2167 fi
2168
2169 # Set definitions to allow ifdef'ing for ncurses.h
2170
2171 case $cf_cv_ncurses_header in
2172 (*ncurses.h)
2173         AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
2174         ;;
2175 esac
2176
2177 case $cf_cv_ncurses_header in
2178 (ncurses/curses.h|ncurses/ncurses.h)
2179         AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
2180         ;;
2181 (ncursesw/curses.h|ncursesw/ncurses.h)
2182         AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
2183         ;;
2184 esac
2185
2186 ])dnl
2187 dnl ---------------------------------------------------------------------------
2188 dnl CF_NCURSES_LIBS version: 17 updated: 2015/04/15 19:08:48
2189 dnl ---------------
2190 dnl Look for the ncurses library.  This is a little complicated on Linux,
2191 dnl because it may be linked with the gpm (general purpose mouse) library.
2192 dnl Some distributions have gpm linked with (bsd) curses, which makes it
2193 dnl unusable with ncurses.  However, we don't want to link with gpm unless
2194 dnl ncurses has a dependency, since gpm is normally set up as a shared library,
2195 dnl and the linker will record a dependency.
2196 dnl
2197 dnl The optional parameter gives the root name of the library, in case it is
2198 dnl not installed as the default curses library.  That is how the
2199 dnl wide-character version of ncurses is installed.
2200 AC_DEFUN([CF_NCURSES_LIBS],
2201 [AC_REQUIRE([CF_NCURSES_CPPFLAGS])
2202
2203 cf_nculib_root=ifelse($1,,ncurses,$1)
2204         # This works, except for the special case where we find gpm, but
2205         # ncurses is in a nonstandard location via $LIBS, and we really want
2206         # to link gpm.
2207 cf_ncurses_LIBS=""
2208 cf_ncurses_SAVE="$LIBS"
2209 AC_CHECK_LIB(gpm,Gpm_Open,
2210         [AC_CHECK_LIB(gpm,initscr,
2211                 [LIBS="$cf_ncurses_SAVE"],
2212                 [cf_ncurses_LIBS="-lgpm"])])
2213
2214 case $host_os in
2215 (freebsd*)
2216         # This is only necessary if you are linking against an obsolete
2217         # version of ncurses (but it should do no harm, since it's static).
2218         if test "$cf_nculib_root" = ncurses ; then
2219                 AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
2220         fi
2221         ;;
2222 esac
2223
2224 CF_ADD_LIBS($cf_ncurses_LIBS)
2225
2226 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
2227 then
2228         CF_ADD_LIBS(-l$cf_nculib_root)
2229 else
2230         CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
2231                 [#include <${cf_cv_ncurses_header:-curses.h}>],
2232                 [initscr()],
2233                 initscr)
2234 fi
2235
2236 if test -n "$cf_ncurses_LIBS" ; then
2237         AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
2238         cf_ncurses_SAVE="$LIBS"
2239         for p in $cf_ncurses_LIBS ; do
2240                 q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
2241                 if test "$q" != "$LIBS" ; then
2242                         LIBS="$q"
2243                 fi
2244         done
2245         AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2246                 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2247                 [AC_MSG_RESULT(yes)],
2248                 [AC_MSG_RESULT(no)
2249                  LIBS="$cf_ncurses_SAVE"])
2250 fi
2251
2252 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
2253 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2254 ])dnl
2255 dnl ---------------------------------------------------------------------------
2256 dnl CF_NCURSES_PTHREADS version: 1 updated: 2016/02/20 19:23:20
2257 dnl -------------------
2258 dnl Use this followup check to ensure that we link with pthreads if ncurses
2259 dnl uses it.
2260 AC_DEFUN([CF_NCURSES_PTHREADS],[
2261 : ${cf_nculib_root:=ifelse($1,,ncurses,$1)}
2262 AC_CACHE_CHECK(if $cf_nculib_root uses pthreads, cf_cv_ncurses_pthreads,[
2263         AC_CHECK_LIB($cf_nculib_root,_nc_init_pthreads,
2264                 cf_cv_ncurses_pthreads=yes,
2265                 cf_cv_ncurses_pthreads=no)
2266 ])
2267 if test "$cf_cv_ncurses_pthreads" = yes
2268 then
2269         CF_ADD_LIBS(-lpthread)
2270 fi
2271 ])dnl
2272 dnl ---------------------------------------------------------------------------
2273 dnl CF_NCURSES_VERSION version: 14 updated: 2012/10/06 08:57:51
2274 dnl ------------------
2275 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
2276 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS.  We don't use
2277 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
2278 AC_DEFUN([CF_NCURSES_VERSION],
2279 [
2280 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
2281 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
2282         cf_cv_ncurses_version=no
2283         cf_tempfile=out$$
2284         rm -f $cf_tempfile
2285         AC_TRY_RUN([
2286 #include <${cf_cv_ncurses_header:-curses.h}>
2287 #include <stdio.h>
2288 int main()
2289 {
2290         FILE *fp = fopen("$cf_tempfile", "w");
2291 #ifdef NCURSES_VERSION
2292 # ifdef NCURSES_VERSION_PATCH
2293         fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
2294 # else
2295         fprintf(fp, "%s\n", NCURSES_VERSION);
2296 # endif
2297 #else
2298 # ifdef __NCURSES_H
2299         fprintf(fp, "old\n");
2300 # else
2301         make an error
2302 # endif
2303 #endif
2304         ${cf_cv_main_return:-return}(0);
2305 }],[
2306         cf_cv_ncurses_version=`cat $cf_tempfile`],,[
2307
2308         # This will not work if the preprocessor splits the line after the
2309         # Autoconf token.  The 'unproto' program does that.
2310         cat > conftest.$ac_ext <<EOF
2311 #include <${cf_cv_ncurses_header:-curses.h}>
2312 #undef Autoconf
2313 #ifdef NCURSES_VERSION
2314 Autoconf NCURSES_VERSION
2315 #else
2316 #ifdef __NCURSES_H
2317 Autoconf "old"
2318 #endif
2319 ;
2320 #endif
2321 EOF
2322         cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
2323         AC_TRY_EVAL(cf_try)
2324         if test -f conftest.out ; then
2325                 cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%'`
2326                 test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
2327                 rm -f conftest.out
2328         fi
2329 ])
2330         rm -f $cf_tempfile
2331 ])
2332 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2333 ])dnl
2334 dnl ---------------------------------------------------------------------------
2335 dnl CF_NCURSES_WRAP_PREFIX version: 1 updated: 2009/03/28 16:08:10
2336 dnl ----------------------
2337 dnl Check for ncurses "wrap-prefix" used for public variables which have been
2338 dnl wrapped with a function to help with concurrency control.
2339 AC_DEFUN([CF_NCURSES_WRAP_PREFIX],
2340 [
2341 AC_MSG_CHECKING(for ncurses wrap-prefix)
2342 AC_ARG_WITH(ncurses-wrap-prefix,
2343         [  --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables],
2344         [NCURSES_WRAP_PREFIX=$withval],
2345         [NCURSES_WRAP_PREFIX=_nc_])
2346 AC_MSG_RESULT($NCURSES_WRAP_PREFIX)
2347
2348 AC_SUBST(NCURSES_WRAP_PREFIX)
2349 ])
2350 dnl ---------------------------------------------------------------------------
2351 dnl CF_NETBSD_FORM_H version: 2 updated: 2012/10/06 16:39:58
2352 dnl ----------------
2353 dnl Check for NetBSD's form.h, which is incompatible with SVr4 and ncurses.
2354 dnl Some workarounds are needed in client programs to allow them to compile.
2355 AC_DEFUN([CF_NETBSD_FORM_H],[
2356 AC_CACHE_CHECK(for NetBSD form.h,cf_cv_netbsd_form_h,[
2357 AC_TRY_COMPILE([
2358 #include <${cf_cv_ncurses_header:-curses.h}>
2359 #include <form.h>
2360 ],[
2361         FORM *form;
2362         int y = current_field(form)->cursor_ypos;
2363         int x = current_field(form)->cursor_xpos;
2364 ],[cf_cv_netbsd_form_h=yes
2365 ],[cf_cv_netbsd_form_h=no])
2366 ])
2367
2368 test "$cf_cv_netbsd_form_h" = yes && AC_DEFINE(HAVE_NETBSD_FORM_H,1,[Define to 1 if we appear to be using NetBSD form.h])
2369 ])dnl
2370 dnl ---------------------------------------------------------------------------
2371 dnl CF_NETBSD_MENU_H version: 2 updated: 2012/10/06 16:39:58
2372 dnl ----------------
2373 dnl Check for NetBSD's menu.h, which is incompatible with SVr4 and ncurses.
2374 dnl Some workarounds are needed in client programs to allow them to compile.
2375 AC_DEFUN([CF_NETBSD_MENU_H],[
2376 AC_CACHE_CHECK(for NetBSD menu.h,cf_cv_netbsd_menu_h,[
2377 AC_TRY_COMPILE([
2378 #include <${cf_cv_ncurses_header:-curses.h}>
2379 #include <menu.h>
2380 ],[
2381         MENU *menu;
2382         int y = menu->max_item_width;
2383 ],[cf_cv_netbsd_menu_h=yes
2384 ],[cf_cv_netbsd_menu_h=no])
2385 ])
2386
2387 test "$cf_cv_netbsd_menu_h" = yes && AC_DEFINE(HAVE_NETBSD_MENU_H,1,[Define to 1 if we appear to be using NetBSD menu.h])
2388 ])dnl
2389 dnl ---------------------------------------------------------------------------
2390 dnl CF_NO_LEAKS_OPTION version: 6 updated: 2015/04/12 15:39:00
2391 dnl ------------------
2392 dnl see CF_WITH_NO_LEAKS
2393 AC_DEFUN([CF_NO_LEAKS_OPTION],[
2394 AC_MSG_CHECKING(if you want to use $1 for testing)
2395 AC_ARG_WITH($1,
2396         [$2],
2397         [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
2398          $4
2399 ])
2400         : ${with_cflags:=-g}
2401         : ${with_no_leaks:=yes}
2402          with_$1=yes],
2403         [with_$1=])
2404 AC_MSG_RESULT(${with_$1:-no})
2405
2406 case .$with_cflags in
2407 (.*-g*)
2408         case .$CFLAGS in
2409         (.*-g*)
2410                 ;;
2411         (*)
2412                 CF_ADD_CFLAGS([-g])
2413                 ;;
2414         esac
2415         ;;
2416 esac
2417 ])dnl
2418 dnl ---------------------------------------------------------------------------
2419 dnl CF_PATH_SYNTAX version: 16 updated: 2015/04/18 08:56:57
2420 dnl --------------
2421 dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
2422 dnl begins with one of the prefix/exec_prefix variables, and then again if the
2423 dnl result begins with 'NONE'.  This is necessary to work around autoconf's
2424 dnl delayed evaluation of those symbols.
2425 AC_DEFUN([CF_PATH_SYNTAX],[
2426 if test "x$prefix" != xNONE; then
2427         cf_path_syntax="$prefix"
2428 else
2429         cf_path_syntax="$ac_default_prefix"
2430 fi
2431
2432 case ".[$]$1" in
2433 (.\[$]\(*\)*|.\'*\'*)
2434         ;;
2435 (..|./*|.\\*)
2436         ;;
2437 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
2438         ;;
2439 (.\[$]{*prefix}*|.\[$]{*dir}*)
2440         eval $1="[$]$1"
2441         case ".[$]$1" in
2442         (.NONE/*)
2443                 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2444                 ;;
2445         esac
2446         ;;
2447 (.no|.NONE/*)
2448         $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2449         ;;
2450 (*)
2451         ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
2452         ;;
2453 esac
2454 ])dnl
2455 dnl ---------------------------------------------------------------------------
2456 dnl CF_PDCURSES_X11 version: 13 updated: 2012/10/06 16:39:58
2457 dnl ---------------
2458 dnl Configure for PDCurses' X11 library
2459 AC_DEFUN([CF_PDCURSES_X11],[
2460 AC_REQUIRE([CF_X_ATHENA])
2461
2462 CF_ACVERSION_CHECK(2.52,
2463         [AC_CHECK_TOOLS(XCURSES_CONFIG, xcurses-config, none)],
2464         [AC_PATH_PROGS(XCURSES_CONFIG, xcurses-config, none)])
2465
2466 if test "$XCURSES_CONFIG" != none ; then
2467
2468 CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`"
2469 CF_ADD_LIBS(`$XCURSES_CONFIG --libs`)
2470
2471 cf_cv_lib_XCurses=yes
2472
2473 else
2474
2475 LDFLAGS="$LDFLAGS $X_LIBS"
2476 CF_CHECK_CFLAGS($X_CFLAGS)
2477 AC_CHECK_LIB(X11,XOpenDisplay,
2478         [CF_ADD_LIBS(-lX11)],,
2479         [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
2480 AC_CACHE_CHECK(for XCurses library,cf_cv_lib_XCurses,[
2481 CF_ADD_LIBS(-lXCurses)
2482 AC_TRY_LINK([
2483 #include <xcurses.h>
2484 char *XCursesProgramName = "test";
2485 ],[XCursesExit();],
2486 [cf_cv_lib_XCurses=yes],
2487 [cf_cv_lib_XCurses=no])
2488 ])
2489
2490 fi
2491
2492 if test $cf_cv_lib_XCurses = yes ; then
2493         AC_DEFINE(UNIX,1,[Define to 1 if using PDCurses on Unix])
2494         AC_DEFINE(XCURSES,1,[Define to 1 if using PDCurses on Unix])
2495         AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES,1,[Define to 1 if using PDCurses on Unix]))
2496 else
2497         AC_MSG_ERROR(Cannot link with XCurses)
2498 fi
2499 ])dnl
2500 dnl ---------------------------------------------------------------------------
2501 dnl CF_PKG_CONFIG version: 10 updated: 2015/04/26 18:06:58
2502 dnl -------------
2503 dnl Check for the package-config program, unless disabled by command-line.
2504 AC_DEFUN([CF_PKG_CONFIG],
2505 [
2506 AC_MSG_CHECKING(if you want to use pkg-config)
2507 AC_ARG_WITH(pkg-config,
2508         [  --with-pkg-config{=path} enable/disable use of pkg-config],
2509         [cf_pkg_config=$withval],
2510         [cf_pkg_config=yes])
2511 AC_MSG_RESULT($cf_pkg_config)
2512
2513 case $cf_pkg_config in
2514 (no)
2515         PKG_CONFIG=none
2516         ;;
2517 (yes)
2518         CF_ACVERSION_CHECK(2.52,
2519                 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
2520                 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
2521         ;;
2522 (*)
2523         PKG_CONFIG=$withval
2524         ;;
2525 esac
2526
2527 test -z "$PKG_CONFIG" && PKG_CONFIG=none
2528 if test "$PKG_CONFIG" != none ; then
2529         CF_PATH_SYNTAX(PKG_CONFIG)
2530 elif test "x$cf_pkg_config" != xno ; then
2531         AC_MSG_WARN(pkg-config is not installed)
2532 fi
2533
2534 AC_SUBST(PKG_CONFIG)
2535 ])dnl
2536 dnl ---------------------------------------------------------------------------
2537 dnl CF_POSIX_C_SOURCE version: 9 updated: 2015/04/12 15:39:00
2538 dnl -----------------
2539 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
2540 dnl
2541 dnl     POSIX.1-1990                            _POSIX_SOURCE
2542 dnl     POSIX.1-1990 and                        _POSIX_SOURCE and
2543 dnl             POSIX.2-1992 C-Language                 _POSIX_C_SOURCE=2
2544 dnl             Bindings Option
2545 dnl     POSIX.1b-1993                           _POSIX_C_SOURCE=199309L
2546 dnl     POSIX.1c-1996                           _POSIX_C_SOURCE=199506L
2547 dnl     X/Open 2000                             _POSIX_C_SOURCE=200112L
2548 dnl
2549 dnl Parameters:
2550 dnl     $1 is the nominal value for _POSIX_C_SOURCE
2551 AC_DEFUN([CF_POSIX_C_SOURCE],
2552 [
2553 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
2554
2555 cf_save_CFLAGS="$CFLAGS"
2556 cf_save_CPPFLAGS="$CPPFLAGS"
2557
2558 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
2559 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
2560
2561 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
2562         CF_MSG_LOG(if the symbol is already defined go no further)
2563         AC_TRY_COMPILE([#include <sys/types.h>],[
2564 #ifndef _POSIX_C_SOURCE
2565 make an error
2566 #endif],
2567         [cf_cv_posix_c_source=no],
2568         [cf_want_posix_source=no
2569          case .$cf_POSIX_C_SOURCE in
2570          (.[[12]]??*)
2571                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2572                 ;;
2573          (.2)
2574                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2575                 cf_want_posix_source=yes
2576                 ;;
2577          (.*)
2578                 cf_want_posix_source=yes
2579                 ;;
2580          esac
2581          if test "$cf_want_posix_source" = yes ; then
2582                 AC_TRY_COMPILE([#include <sys/types.h>],[
2583 #ifdef _POSIX_SOURCE
2584 make an error
2585 #endif],[],
2586                 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
2587          fi
2588          CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
2589          CFLAGS="$cf_trim_CFLAGS"
2590          CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
2591          CF_MSG_LOG(if the second compile does not leave our definition intact error)
2592          AC_TRY_COMPILE([#include <sys/types.h>],[
2593 #ifndef _POSIX_C_SOURCE
2594 make an error
2595 #endif],,
2596          [cf_cv_posix_c_source=no])
2597          CFLAGS="$cf_save_CFLAGS"
2598          CPPFLAGS="$cf_save_CPPFLAGS"
2599         ])
2600 ])
2601
2602 if test "$cf_cv_posix_c_source" != no ; then
2603         CFLAGS="$cf_trim_CFLAGS"
2604         CPPFLAGS="$cf_trim_CPPFLAGS"
2605         CF_ADD_CFLAGS($cf_cv_posix_c_source)
2606 fi
2607
2608 ])dnl
2609 dnl ---------------------------------------------------------------------------
2610 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
2611 dnl ------------
2612 dnl Append definitions and rules for the given programs to the subdirectory
2613 dnl Makefiles, and the recursion rule for the top-level Makefile.
2614 dnl
2615 dnl parameters
2616 dnl     $1 = script to run
2617 dnl     $2 = list of subdirectories
2618 dnl
2619 dnl variables
2620 dnl     $AWK
2621 AC_DEFUN([CF_PRG_RULES],
2622 [
2623 for cf_dir in $2
2624 do
2625         if test ! -d $srcdir/$cf_dir; then
2626                 continue
2627         elif test -f $srcdir/$cf_dir/programs; then
2628                 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
2629         fi
2630 done
2631
2632 ])dnl
2633 dnl ---------------------------------------------------------------------------
2634 dnl CF_PROG_CC version: 4 updated: 2014/07/12 18:57:58
2635 dnl ----------
2636 dnl standard check for CC, plus followup sanity checks
2637 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
2638 AC_DEFUN([CF_PROG_CC],[
2639 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
2640 CF_GCC_VERSION
2641 CF_ACVERSION_CHECK(2.52,
2642         [AC_PROG_CC_STDC],
2643         [CF_ANSI_CC_REQD])
2644 CF_CC_ENV_FLAGS
2645 ])dnl
2646 dnl ---------------------------------------------------------------------------
2647 dnl CF_PROG_INSTALL version: 7 updated: 2015/04/18 08:56:57
2648 dnl ---------------
2649 dnl Force $INSTALL to be an absolute-path.  Otherwise, edit_man.sh and the
2650 dnl misc/tabset install won't work properly.  Usually this happens only when
2651 dnl using the fallback mkinstalldirs script
2652 AC_DEFUN([CF_PROG_INSTALL],
2653 [AC_PROG_INSTALL
2654 case $INSTALL in
2655 (/*)
2656         ;;
2657 (*)
2658         CF_DIRNAME(cf_dir,$INSTALL)
2659         test -z "$cf_dir" && cf_dir=.
2660         INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
2661         ;;
2662 esac
2663 ])dnl
2664 dnl ---------------------------------------------------------------------------
2665 dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14
2666 dnl ------------
2667 AC_DEFUN([CF_PROG_LINT],
2668 [
2669 AC_CHECK_PROGS(LINT, tdlint lint alint splint lclint)
2670 AC_SUBST(LINT_OPTS)
2671 ])dnl
2672 dnl ---------------------------------------------------------------------------
2673 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
2674 dnl ----------------
2675 dnl Remove all -U and -D options that refer to the given symbol from a list
2676 dnl of C compiler options.  This works around the problem that not all
2677 dnl compilers process -U and -D options from left-to-right, so a -U option
2678 dnl cannot be used to cancel the effect of a preceding -D option.
2679 dnl
2680 dnl $1 = target (which could be the same as the source variable)
2681 dnl $2 = source (including '$')
2682 dnl $3 = symbol to remove
2683 define([CF_REMOVE_DEFINE],
2684 [
2685 $1=`echo "$2" | \
2686         sed     -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[[       ]]/ /g' \
2687                 -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[$]//g'`
2688 ])dnl
2689 dnl ---------------------------------------------------------------------------
2690 dnl CF_RPATH_HACK version: 11 updated: 2013/09/01 13:02:00
2691 dnl -------------
2692 AC_DEFUN([CF_RPATH_HACK],
2693 [
2694 AC_REQUIRE([CF_LD_RPATH_OPT])
2695 AC_MSG_CHECKING(for updated LDFLAGS)
2696 if test -n "$LD_RPATH_OPT" ; then
2697         AC_MSG_RESULT(maybe)
2698
2699         AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
2700         cf_rpath_list="/usr/lib /lib"
2701         if test "$cf_ldd_prog" != no
2702         then
2703                 cf_rpath_oops=
2704
2705 AC_TRY_LINK([#include <stdio.h>],
2706                 [printf("Hello");],
2707                 [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
2708                  cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[     ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
2709
2710                 # If we passed the link-test, but get a "not found" on a given library,
2711                 # this could be due to inept reconfiguration of gcc to make it only
2712                 # partly honor /usr/local/lib (or whatever).  Sometimes this behavior
2713                 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
2714                 # /usr/local libraries.
2715                 if test -n "$cf_rpath_oops"
2716                 then
2717                         for cf_rpath_src in $cf_rpath_oops
2718                         do
2719                                 for cf_rpath_dir in \
2720                                         /usr/local \
2721                                         /usr/pkg \
2722                                         /opt/sfw
2723                                 do
2724                                         if test -f $cf_rpath_dir/lib/$cf_rpath_src
2725                                         then
2726                                                 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
2727                                                 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
2728                                                 break
2729                                         fi
2730                                 done
2731                         done
2732                 fi
2733         fi
2734
2735         CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
2736
2737         CF_RPATH_HACK_2(LDFLAGS)
2738         CF_RPATH_HACK_2(LIBS)
2739
2740         CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
2741 else
2742         AC_MSG_RESULT(no)
2743 fi
2744 AC_SUBST(EXTRA_LDFLAGS)
2745 ])dnl
2746 dnl ---------------------------------------------------------------------------
2747 dnl CF_RPATH_HACK_2 version: 7 updated: 2015/04/12 15:39:00
2748 dnl ---------------
2749 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
2750 dnl EXTRA_LDFLAGS for each -L option found.
2751 dnl
2752 dnl $cf_rpath_list contains a list of directories to ignore.
2753 dnl
2754 dnl $1 = variable name to update.  The LDFLAGS variable should be the only one,
2755 dnl      but LIBS often has misplaced -L options.
2756 AC_DEFUN([CF_RPATH_HACK_2],
2757 [
2758 CF_VERBOSE(...checking $1 [$]$1)
2759
2760 cf_rpath_dst=
2761 for cf_rpath_src in [$]$1
2762 do
2763         case $cf_rpath_src in
2764         (-L*)
2765
2766                 # check if this refers to a directory which we will ignore
2767                 cf_rpath_skip=no
2768                 if test -n "$cf_rpath_list"
2769                 then
2770                         for cf_rpath_item in $cf_rpath_list
2771                         do
2772                                 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
2773                                 then
2774                                         cf_rpath_skip=yes
2775                                         break
2776                                 fi
2777                         done
2778                 fi
2779
2780                 if test "$cf_rpath_skip" = no
2781                 then
2782                         # transform the option
2783                         if test "$LD_RPATH_OPT" = "-R " ; then
2784                                 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
2785                         else
2786                                 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
2787                         fi
2788
2789                         # if we have not already added this, add it now
2790                         cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
2791                         if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
2792                         then
2793                                 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
2794                                 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
2795                         fi
2796                 fi
2797                 ;;
2798         esac
2799         cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
2800 done
2801 $1=$cf_rpath_dst
2802
2803 CF_VERBOSE(...checked $1 [$]$1)
2804 AC_SUBST(EXTRA_LDFLAGS)
2805 ])dnl
2806 dnl ---------------------------------------------------------------------------
2807 dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20
2808 dnl ---------------
2809 dnl signal handler, but there are some gcc depedencies in that recommendation.
2810 dnl Try anyway.
2811 AC_DEFUN([CF_SIG_ATOMIC_T],
2812 [
2813 AC_MSG_CHECKING(for signal global datatype)
2814 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
2815         for cf_type in \
2816                 "volatile sig_atomic_t" \
2817                 "sig_atomic_t" \
2818                 "int"
2819         do
2820         AC_TRY_COMPILE([
2821 #include <sys/types.h>
2822 #include <signal.h>
2823 #include <stdio.h>
2824
2825 extern $cf_type x;
2826 $cf_type x;
2827 static void handler(int sig)
2828 {
2829         x = 5;
2830 }],
2831                 [signal(SIGINT, handler);
2832                  x = 1],
2833                 [cf_cv_sig_atomic_t=$cf_type],
2834                 [cf_cv_sig_atomic_t=no])
2835                 test "$cf_cv_sig_atomic_t" != no && break
2836         done
2837         ])
2838 AC_MSG_RESULT($cf_cv_sig_atomic_t)
2839 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
2840 ])dnl
2841 dnl ---------------------------------------------------------------------------
2842 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
2843 dnl --------------
2844 dnl Construct a search-list for a nonstandard header/lib-file
2845 dnl     $1 = the variable to return as result
2846 dnl     $2 = the package name
2847 dnl     $3 = the subdirectory, e.g., bin, include or lib
2848 AC_DEFUN([CF_SUBDIR_PATH],
2849 [
2850 $1=
2851
2852 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
2853
2854 for cf_subdir_prefix in \
2855         /usr \
2856         /usr/local \
2857         /usr/pkg \
2858         /opt \
2859         /opt/local \
2860         [$]HOME
2861 do
2862         CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
2863 done
2864 ])dnl
2865 dnl ---------------------------------------------------------------------------
2866 dnl CF_SYS_TIME_SELECT version: 6 updated: 2015/04/18 08:56:57
2867 dnl ------------------
2868 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
2869 dnl older SCO configurations.
2870 AC_DEFUN([CF_SYS_TIME_SELECT],
2871 [
2872 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
2873 AC_CACHE_VAL(cf_cv_sys_time_select,[
2874 AC_TRY_COMPILE([
2875 #include <sys/types.h>
2876 #ifdef HAVE_SYS_TIME_H
2877 #include <sys/time.h>
2878 #endif
2879 #ifdef HAVE_SYS_SELECT_H
2880 #include <sys/select.h>
2881 #endif
2882 ],[],[cf_cv_sys_time_select=yes],
2883          [cf_cv_sys_time_select=no])
2884          ])
2885 AC_MSG_RESULT($cf_cv_sys_time_select)
2886 test "$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>])
2887 ])dnl
2888 dnl ---------------------------------------------------------------------------
2889 dnl CF_TERM_HEADER version: 4 updated: 2015/04/15 19:08:48
2890 dnl --------------
2891 dnl Look for term.h, which is part of X/Open curses.  It defines the interface
2892 dnl to terminfo database.  Usually it is in the same include-path as curses.h,
2893 dnl but some packagers change this, breaking various applications.
2894 AC_DEFUN([CF_TERM_HEADER],[
2895 AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
2896 case ${cf_cv_ncurses_header} in
2897 (*/ncurses.h|*/ncursesw.h)
2898         cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
2899         ;;
2900 (*)
2901         cf_term_header=term.h
2902         ;;
2903 esac
2904
2905 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
2906 do
2907 AC_TRY_COMPILE([#include <stdio.h>
2908 #include <${cf_cv_ncurses_header:-curses.h}>
2909 #include <$cf_test>
2910 ],[int x = auto_left_margin],[
2911         cf_cv_term_header="$cf_test"],[
2912         cf_cv_term_header=unknown
2913         ])
2914         test "$cf_cv_term_header" != unknown && break
2915 done
2916 ])
2917
2918 # Set definitions to allow ifdef'ing to accommodate subdirectories
2919
2920 case $cf_cv_term_header in
2921 (*term.h)
2922         AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
2923         ;;
2924 esac
2925
2926 case $cf_cv_term_header in
2927 (ncurses/term.h)
2928         AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
2929         ;;
2930 (ncursesw/term.h)
2931         AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
2932         ;;
2933 esac
2934 ])dnl
2935 dnl ---------------------------------------------------------------------------
2936 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
2937 dnl ---------------
2938 dnl Define a top_builddir symbol, for applications that need an absolute path.
2939 AC_DEFUN([CF_TOP_BUILDDIR],
2940 [
2941 top_builddir=ifelse($1,,`pwd`,$1)
2942 AC_SUBST(top_builddir)
2943 ])dnl
2944 dnl ---------------------------------------------------------------------------
2945 dnl CF_TPUTS_PROTO version: 3 updated: 2015/04/17 21:26:14
2946 dnl --------------
2947 dnl Check for type of function-pointer passed to tputs.  Some old
2948 dnl implementations used functions that had different prototypes, making it
2949 dnl hard to compile portable programs using tputs.
2950 AC_DEFUN([CF_TPUTS_PROTO],[
2951 CF_CURSES_FUNCS(tputs)
2952 if test x$cf_cv_func_tputs = xyes
2953 then
2954         cf_done=no
2955         for cf_arg in int char
2956         do
2957                 for cf_ret in int void
2958                 do
2959                         if test $cf_ret = void
2960                         then
2961                                 cf_return="/* nothing */"
2962                         else
2963                                 cf_return="return value"
2964                         fi
2965                         AC_TRY_COMPILE([
2966 #include <${cf_cv_ncurses_header:-curses.h}>
2967 #include <$cf_cv_term_header>
2968
2969 static $cf_ret outc($cf_arg value) { $cf_return; }
2970 ],[
2971         tputs("hello", 0, outc);
2972         ${cf_cv_main_return:-return}(0);
2973 ],[
2974                 CF_VERBOSE([prototype $cf_ret func($cf_arg value)])
2975                 cat >>confdefs.h <<EOF
2976 #define TPUTS_ARG               $cf_arg
2977 #define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value)
2978 #define TPUTS_RETURN(value)     $cf_return
2979 EOF
2980                 cf_done=yes
2981                 break
2982 ])
2983                 done
2984                 test $cf_done = yes && break
2985         done
2986 fi
2987 ])dnl
2988 dnl ---------------------------------------------------------------------------
2989 dnl CF_TRIM_X_LIBS version: 3 updated: 2015/04/12 15:39:00
2990 dnl --------------
2991 dnl Trim extra base X libraries added as a workaround for inconsistent library
2992 dnl dependencies returned by "new" pkg-config files.
2993 AC_DEFUN([CF_TRIM_X_LIBS],[
2994         for cf_trim_lib in Xmu Xt X11
2995         do
2996                 case "$LIBS" in
2997                 (*-l$cf_trim_lib\ *-l$cf_trim_lib*)
2998                         LIBS=`echo "$LIBS " | sed -e 's/  / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'`
2999                         CF_VERBOSE(..trimmed $LIBS)
3000                         ;;
3001                 esac
3002         done
3003 ])
3004 dnl ---------------------------------------------------------------------------
3005 dnl CF_TRY_PKG_CONFIG version: 5 updated: 2013/07/06 21:27:06
3006 dnl -----------------
3007 dnl This is a simple wrapper to use for pkg-config, for libraries which may be
3008 dnl available in that form.
3009 dnl
3010 dnl $1 = package name
3011 dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
3012 dnl $3 = logic to use if pkg-config does not have the package
3013 AC_DEFUN([CF_TRY_PKG_CONFIG],[
3014 AC_REQUIRE([CF_PKG_CONFIG])
3015
3016 if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $1; then
3017         CF_VERBOSE(found package $1)
3018         cf_pkgconfig_incs="`$PKG_CONFIG --cflags $1 2>/dev/null`"
3019         cf_pkgconfig_libs="`$PKG_CONFIG --libs   $1 2>/dev/null`"
3020         CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
3021         CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
3022         CF_ADD_CFLAGS($cf_pkgconfig_incs)
3023         CF_ADD_LIBS($cf_pkgconfig_libs)
3024         ifelse([$2],,:,[$2])
3025 else
3026         cf_pkgconfig_incs=
3027         cf_pkgconfig_libs=
3028         ifelse([$3],,:,[$3])
3029 fi
3030 ])
3031 dnl ---------------------------------------------------------------------------
3032 dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
3033 dnl -------------------
3034 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
3035 dnl can define it successfully.
3036 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
3037 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
3038         AC_TRY_COMPILE([
3039 #include <stdlib.h>
3040 #include <string.h>
3041 #include <sys/types.h>
3042 ],[
3043 #ifndef _XOPEN_SOURCE
3044 make an error
3045 #endif],
3046         [cf_cv_xopen_source=no],
3047         [cf_save="$CPPFLAGS"
3048          CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3049          AC_TRY_COMPILE([
3050 #include <stdlib.h>
3051 #include <string.h>
3052 #include <sys/types.h>
3053 ],[
3054 #ifdef _XOPEN_SOURCE
3055 make an error
3056 #endif],
3057         [cf_cv_xopen_source=no],
3058         [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
3059         CPPFLAGS="$cf_save"
3060         ])
3061 ])
3062
3063 if test "$cf_cv_xopen_source" != no ; then
3064         CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
3065         CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
3066         cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
3067         CF_ADD_CFLAGS($cf_temp_xopen_source)
3068 fi
3069 ])
3070 dnl ---------------------------------------------------------------------------
3071 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
3072 dnl --------
3073 dnl Make an uppercase version of a variable
3074 dnl $1=uppercase($2)
3075 AC_DEFUN([CF_UPPER],
3076 [
3077 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3078 ])dnl
3079 dnl ---------------------------------------------------------------------------
3080 dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
3081 dnl -----------
3082 dnl Check for multibyte support, and if not found, utf8 compatibility library
3083 AC_DEFUN([CF_UTF8_LIB],
3084 [
3085 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
3086         cf_save_LIBS="$LIBS"
3087         AC_TRY_LINK([
3088 #include <stdlib.h>],[putwc(0,0);],
3089         [cf_cv_utf8_lib=yes],
3090         [CF_FIND_LINKAGE([
3091 #include <libutf8.h>],[putwc(0,0);],utf8,
3092                 [cf_cv_utf8_lib=add-on],
3093                 [cf_cv_utf8_lib=no])
3094 ])])
3095
3096 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
3097 # ncurses/ncursesw:
3098 if test "$cf_cv_utf8_lib" = "add-on" ; then
3099         AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
3100         CF_ADD_INCDIR($cf_cv_header_path_utf8)
3101         CF_ADD_LIBDIR($cf_cv_library_path_utf8)
3102         CF_ADD_LIBS($cf_cv_library_file_utf8)
3103 fi
3104 ])dnl
3105 dnl ---------------------------------------------------------------------------
3106 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
3107 dnl ----------
3108 dnl Use AC_VERBOSE w/o the warnings
3109 AC_DEFUN([CF_VERBOSE],
3110 [test -n "$verbose" && echo "   $1" 1>&AC_FD_MSG
3111 CF_MSG_LOG([$1])
3112 ])dnl
3113 dnl ---------------------------------------------------------------------------
3114 dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
3115 dnl -------------
3116 dnl Check if type wide-character type $1 is declared, and if so, which header
3117 dnl file is needed.  The second parameter is used to set a shell variable when
3118 dnl the type is not found.  The first parameter sets a shell variable for the
3119 dnl opposite sense.
3120 AC_DEFUN([CF_WCHAR_TYPE],
3121 [
3122 # This is needed on Tru64 5.0 to declare $1
3123 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
3124 AC_TRY_COMPILE([
3125 #include <stdlib.h>
3126 #include <stdarg.h>
3127 #include <stdio.h>
3128 #ifdef HAVE_LIBUTF8_H
3129 #include <libutf8.h>
3130 #endif],
3131         [$1 state],
3132         [cf_cv_$1=no],
3133         [AC_TRY_COMPILE([
3134 #include <stdlib.h>
3135 #include <stdarg.h>
3136 #include <stdio.h>
3137 #include <wchar.h>
3138 #ifdef HAVE_LIBUTF8_H
3139 #include <libutf8.h>
3140 #endif],
3141         [$1 value],
3142         [cf_cv_$1=yes],
3143         [cf_cv_$1=unknown])])])
3144
3145 if test "$cf_cv_$1" = yes ; then
3146         AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
3147         NEED_WCHAR_H=1
3148 fi
3149
3150 ifelse([$2],,,[
3151 # if we do not find $1 in either place, use substitution to provide a fallback.
3152 if test "$cf_cv_$1" = unknown ; then
3153         $2=1
3154 fi
3155 ])
3156 ifelse($3,,,[
3157 # if we find $1 in either place, use substitution to provide a fallback.
3158 if test "$cf_cv_$1" != unknown ; then
3159         $3=1
3160 fi
3161 ])
3162 ])dnl
3163 dnl ---------------------------------------------------------------------------
3164 dnl CF_WITH_CURSES_DIR version: 3 updated: 2010/11/20 17:02:38
3165 dnl ------------------
3166 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
3167 dnl libraries.
3168 AC_DEFUN([CF_WITH_CURSES_DIR],[
3169
3170 AC_MSG_CHECKING(for specific curses-directory)
3171 AC_ARG_WITH(curses-dir,
3172         [  --with-curses-dir=DIR   directory in which (n)curses is installed],
3173         [cf_cv_curses_dir=$withval],
3174         [cf_cv_curses_dir=no])
3175 AC_MSG_RESULT($cf_cv_curses_dir)
3176
3177 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
3178 then
3179         CF_PATH_SYNTAX(withval)
3180         if test -d "$cf_cv_curses_dir"
3181         then
3182                 CF_ADD_INCDIR($cf_cv_curses_dir/include)
3183                 CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
3184         fi
3185 fi
3186 ])dnl
3187 dnl ---------------------------------------------------------------------------
3188 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
3189 dnl ----------------
3190 dnl Configure-option for dbmalloc.  The optional parameter is used to override
3191 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3192 AC_DEFUN([CF_WITH_DBMALLOC],[
3193 CF_NO_LEAKS_OPTION(dbmalloc,
3194         [  --with-dbmalloc         test: use Conor Cahill's dbmalloc library],
3195         [USE_DBMALLOC])
3196
3197 if test "$with_dbmalloc" = yes ; then
3198         AC_CHECK_HEADER(dbmalloc.h,
3199                 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
3200 fi
3201 ])dnl
3202 dnl ---------------------------------------------------------------------------
3203 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
3204 dnl ---------------
3205 dnl Configure-option for dmalloc.  The optional parameter is used to override
3206 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3207 AC_DEFUN([CF_WITH_DMALLOC],[
3208 CF_NO_LEAKS_OPTION(dmalloc,
3209         [  --with-dmalloc          test: use Gray Watson's dmalloc library],
3210         [USE_DMALLOC])
3211
3212 if test "$with_dmalloc" = yes ; then
3213         AC_CHECK_HEADER(dmalloc.h,
3214                 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
3215 fi
3216 ])dnl
3217 dnl ---------------------------------------------------------------------------
3218 dnl CF_WITH_NCURSES_ETC version: 5 updated: 2016/02/20 19:23:20
3219 dnl -------------------
3220 dnl Use this macro for programs which use any variant of "curses", e.g.,
3221 dnl "ncurses", and "PDCurses".  Programs that can use curses and some unrelated
3222 dnl library (such as slang) should use a "--with-screen=XXX" option.
3223 dnl
3224 dnl This does not use AC_DEFUN, because that would tell autoconf to run each
3225 dnl of the macros inside this one - before this macro.
3226 define([CF_WITH_NCURSES_ETC],[
3227 CF_WITH_CURSES_DIR
3228
3229 cf_cv_screen=curses
3230
3231 AC_MSG_CHECKING(for specified curses library type)
3232 AC_ARG_WITH(screen,
3233         [  --with-screen=XXX       use specified curses-libraries],
3234         [cf_cv_screen=$withval],[
3235
3236 AC_ARG_WITH(ncursesw,
3237         [  --with-ncursesw         use wide ncurses-libraries],
3238         [cf_cv_screen=ncursesw],[
3239
3240 AC_ARG_WITH(ncurses,
3241         [  --with-ncurses          use ncurses-libraries],
3242         [cf_cv_screen=ncurses],[
3243
3244 AC_ARG_WITH(pdcurses,
3245         [  --with-pdcurses         compile/link with pdcurses X11 library],
3246         [cf_cv_screen=pdcurses],[
3247
3248 AC_ARG_WITH(curses-colr,
3249         [  --with-curses-colr      compile/link with HPUX 10.x color-curses],
3250         [cf_cv_screen=curses_colr],[
3251
3252 AC_ARG_WITH(curses-5lib,
3253         [  --with-curses-5lib      compile/link with SunOS 5lib curses],
3254         [cf_cv_screen=curses_5lib])])])])])])
3255
3256 AC_MSG_RESULT($cf_cv_screen)
3257
3258 case $cf_cv_screen in
3259 (curses|curses_*)
3260         CF_CURSES_CONFIG
3261         ;;
3262 (ncursesw*)
3263         CF_UTF8_LIB
3264         CF_NCURSES_CONFIG($cf_cv_screen)
3265         ;;
3266 (ncurses*)
3267         CF_NCURSES_CONFIG($cf_cv_screen)
3268         ;;
3269 (pdcurses)
3270         CF_PDCURSES_X11
3271         ;;
3272 (*)
3273         AC_MSG_ERROR(unexpected screen-value: $cf_cv_screen)
3274         ;;
3275 esac
3276
3277 CF_NCURSES_PTHREADS($cf_cv_screen)
3278
3279 ])dnl
3280 dnl ---------------------------------------------------------------------------
3281 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
3282 dnl ----------------
3283 AC_DEFUN([CF_WITH_VALGRIND],[
3284 CF_NO_LEAKS_OPTION(valgrind,
3285         [  --with-valgrind         test: use valgrind],
3286         [USE_VALGRIND])
3287 ])dnl
3288 dnl ---------------------------------------------------------------------------
3289 dnl CF_XOPEN_CURSES version: 13 updated: 2015/12/12 20:59:52
3290 dnl ---------------
3291 dnl Test if we should define X/Open source for curses, needed on Digital Unix
3292 dnl 4.x, to see the extended functions, but breaks on IRIX 6.x.
3293 dnl
3294 dnl The getbegyx() check is needed for HPUX, which omits legacy macros such
3295 dnl as getbegy().  The latter is better design, but the former is standard.
3296 AC_DEFUN([CF_XOPEN_CURSES],
3297 [
3298 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
3299 AC_CACHE_CHECK(definition to turn on extended curses functions,cf_cv_need_xopen_extension,[
3300 cf_cv_need_xopen_extension=unknown
3301 AC_TRY_LINK([
3302 #include <stdlib.h>
3303 #include <${cf_cv_ncurses_header:-curses.h}>],[
3304 #if defined(NCURSES_VERSION_PATCH)
3305 #if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
3306         make an error
3307 #endif
3308 #endif
3309 #ifdef NCURSES_VERSION
3310         cchar_t check;
3311         int check2 = curs_set((int)sizeof(check));
3312 #endif
3313         long x = winnstr(stdscr, "", 0);
3314         int x1, y1;
3315         getbegyx(stdscr, y1, x1)],
3316         [cf_cv_need_xopen_extension=none],
3317         [
3318         for cf_try_xopen_extension in _XOPEN_SOURCE_EXTENDED NCURSES_WIDECHAR
3319         do
3320                 AC_TRY_LINK([
3321 #define $cf_try_xopen_extension 1
3322 #include <stdlib.h>
3323 #include <${cf_cv_ncurses_header:-curses.h}>],[
3324 #ifdef NCURSES_VERSION
3325                 cchar_t check;
3326                 int check2 = curs_set((int)sizeof(check));
3327 #endif
3328                 long x = winnstr(stdscr, "", 0);
3329                 int x1, y1;
3330                 getbegyx(stdscr, y1, x1)],
3331                 [cf_cv_need_xopen_extension=$cf_try_xopen_extension; break])
3332         done
3333         ])
3334 ])
3335
3336 case $cf_cv_need_xopen_extension in
3337 (*_*)
3338         CPPFLAGS="$CPPFLAGS -D$cf_cv_need_xopen_extension"
3339         ;;
3340 esac
3341
3342 ])dnl
3343 dnl ---------------------------------------------------------------------------
3344 dnl CF_XOPEN_SOURCE version: 50 updated: 2015/10/17 19:03:33
3345 dnl ---------------
3346 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
3347 dnl or adapt to the vendor's definitions to get equivalent functionality,
3348 dnl without losing the common non-POSIX features.
3349 dnl
3350 dnl Parameters:
3351 dnl     $1 is the nominal value for _XOPEN_SOURCE
3352 dnl     $2 is the nominal value for _POSIX_C_SOURCE
3353 AC_DEFUN([CF_XOPEN_SOURCE],[
3354 AC_REQUIRE([AC_CANONICAL_HOST])
3355
3356 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
3357 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
3358 cf_xopen_source=
3359
3360 case $host_os in
3361 (aix[[4-7]]*)
3362         cf_xopen_source="-D_ALL_SOURCE"
3363         ;;
3364 (cygwin|msys)
3365         cf_XOPEN_SOURCE=600
3366         ;;
3367 (darwin[[0-8]].*)
3368         cf_xopen_source="-D_APPLE_C_SOURCE"
3369         ;;
3370 (darwin*)
3371         cf_xopen_source="-D_DARWIN_C_SOURCE"
3372         cf_XOPEN_SOURCE=
3373         ;;
3374 (freebsd*|dragonfly*)
3375         # 5.x headers associate
3376         #       _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
3377         #       _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
3378         cf_POSIX_C_SOURCE=200112L
3379         cf_XOPEN_SOURCE=600
3380         cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3381         ;;
3382 (hpux11*)
3383         cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
3384         ;;
3385 (hpux*)
3386         cf_xopen_source="-D_HPUX_SOURCE"
3387         ;;
3388 (irix[[56]].*)
3389         cf_xopen_source="-D_SGI_SOURCE"
3390         cf_XOPEN_SOURCE=
3391         ;;
3392 (linux*|gnu*|mint*|k*bsd*-gnu)
3393         CF_GNU_SOURCE
3394         ;;
3395 (minix*)
3396         cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
3397         ;;
3398 (mirbsd*)
3399         # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
3400         cf_XOPEN_SOURCE=
3401         CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3402         ;;
3403 (netbsd*)
3404         cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
3405         ;;
3406 (openbsd[[4-9]]*)
3407         # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
3408         cf_xopen_source="-D_BSD_SOURCE"
3409         cf_XOPEN_SOURCE=600
3410         ;;
3411 (openbsd*)
3412         # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
3413         ;;
3414 (os2*)
3415         cf_XOPEN_SOURCE=
3416         ;;
3417 (osf[[45]]*)
3418         cf_xopen_source="-D_OSF_SOURCE"
3419         ;;
3420 (nto-qnx*)
3421         cf_xopen_source="-D_QNX_SOURCE"
3422         ;;
3423 (sco*)
3424         # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
3425         ;;
3426 (solaris2.*)
3427         cf_xopen_source="-D__EXTENSIONS__"
3428         cf_cv_xopen_source=broken
3429         ;;
3430 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
3431         cf_XOPEN_SOURCE=
3432         cf_POSIX_C_SOURCE=
3433         ;;
3434 (*)
3435         CF_TRY_XOPEN_SOURCE
3436         CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3437         ;;
3438 esac
3439
3440 if test -n "$cf_xopen_source" ; then
3441         CF_ADD_CFLAGS($cf_xopen_source,true)
3442 fi
3443
3444 dnl In anything but the default case, we may have system-specific setting
3445 dnl which is still not guaranteed to provide all of the entrypoints that
3446 dnl _XOPEN_SOURCE would yield.
3447 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
3448         AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
3449         AC_TRY_COMPILE([#include <stdlib.h>],[
3450 #ifndef _XOPEN_SOURCE
3451 make an error
3452 #endif],
3453         [cf_XOPEN_SOURCE_set=yes],
3454         [cf_XOPEN_SOURCE_set=no])
3455         AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
3456         if test $cf_XOPEN_SOURCE_set = yes
3457         then
3458                 AC_TRY_COMPILE([#include <stdlib.h>],[
3459 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
3460 make an error
3461 #endif],
3462                 [cf_XOPEN_SOURCE_set_ok=yes],
3463                 [cf_XOPEN_SOURCE_set_ok=no])
3464                 if test $cf_XOPEN_SOURCE_set_ok = no
3465                 then
3466                         AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
3467                 fi
3468         else
3469                 CF_TRY_XOPEN_SOURCE
3470         fi
3471 fi
3472 ])
3473 dnl ---------------------------------------------------------------------------
3474 dnl CF_X_ATHENA version: 23 updated: 2015/04/12 15:39:00
3475 dnl -----------
3476 dnl Check for Xaw (Athena) libraries
3477 dnl
3478 dnl Sets $cf_x_athena according to the flavor of Xaw which is used.
3479 AC_DEFUN([CF_X_ATHENA],
3480 [
3481 cf_x_athena=${cf_x_athena:-Xaw}
3482
3483 AC_MSG_CHECKING(if you want to link with Xaw 3d library)
3484 withval=
3485 AC_ARG_WITH(Xaw3d,
3486         [  --with-Xaw3d            link with Xaw 3d library])
3487 if test "$withval" = yes ; then
3488         cf_x_athena=Xaw3d
3489         AC_MSG_RESULT(yes)
3490 else
3491         AC_MSG_RESULT(no)
3492 fi
3493
3494 AC_MSG_CHECKING(if you want to link with Xaw 3d xft library)
3495 withval=
3496 AC_ARG_WITH(Xaw3dxft,
3497         [  --with-Xaw3dxft         link with Xaw 3d xft library])
3498 if test "$withval" = yes ; then
3499         cf_x_athena=Xaw3dxft
3500         AC_MSG_RESULT(yes)
3501 else
3502         AC_MSG_RESULT(no)
3503 fi
3504
3505 AC_MSG_CHECKING(if you want to link with neXT Athena library)
3506 withval=
3507 AC_ARG_WITH(neXtaw,
3508         [  --with-neXtaw           link with neXT Athena library])
3509 if test "$withval" = yes ; then
3510         cf_x_athena=neXtaw
3511         AC_MSG_RESULT(yes)
3512 else
3513         AC_MSG_RESULT(no)
3514 fi
3515
3516 AC_MSG_CHECKING(if you want to link with Athena-Plus library)
3517 withval=
3518 AC_ARG_WITH(XawPlus,
3519         [  --with-XawPlus          link with Athena-Plus library])
3520 if test "$withval" = yes ; then
3521         cf_x_athena=XawPlus
3522         AC_MSG_RESULT(yes)
3523 else
3524         AC_MSG_RESULT(no)
3525 fi
3526
3527 cf_x_athena_lib=""
3528
3529 if test "$PKG_CONFIG" != none ; then
3530         cf_athena_list=
3531         test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
3532         for cf_athena_pkg in \
3533                 $cf_athena_list \
3534                 ${cf_x_athena} \
3535                 ${cf_x_athena}-devel \
3536                 lib${cf_x_athena} \
3537                 lib${cf_x_athena}-devel
3538         do
3539                 CF_TRY_PKG_CONFIG($cf_athena_pkg,[
3540                         cf_x_athena_lib="$cf_pkgconfig_libs"
3541                         CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
3542                         AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
3543
3544                         CF_TRIM_X_LIBS
3545
3546 AC_CACHE_CHECK(for usable $cf_x_athena/Xmu package,cf_cv_xaw_compat,[
3547 AC_TRY_LINK([
3548 #include <X11/Xmu/CharSet.h>
3549 ],[
3550 int check = XmuCompareISOLatin1("big", "small")
3551 ],[cf_cv_xaw_compat=yes],[cf_cv_xaw_compat=no])])
3552
3553                         if test "$cf_cv_xaw_compat" = no
3554                         then
3555                                 # workaround for broken ".pc" files...
3556                                 case "$cf_x_athena_lib" in
3557                                 (*-lXmu*)
3558                                         ;;
3559                                 (*)
3560                                         CF_VERBOSE(work around broken package)
3561                                         cf_save_xmu="$LIBS"
3562                                         cf_first_lib=`echo "$cf_save_xmu" | sed -e 's/^[ ][ ]*//' -e 's/ .*//'`
3563                                         CF_TRY_PKG_CONFIG(xmu,[
3564                                                         LIBS="$cf_save_xmu"
3565                                                         CF_ADD_LIB_AFTER($cf_first_lib,$cf_pkgconfig_libs)
3566                                                 ],[
3567                                                         CF_ADD_LIB_AFTER($cf_first_lib,-lXmu)
3568                                                 ])
3569                                         CF_TRIM_X_LIBS
3570                                         ;;
3571                                 esac
3572                         fi
3573
3574                         break])
3575         done
3576 fi
3577
3578 if test -z "$cf_x_athena_lib" ; then
3579         CF_X_EXT
3580         CF_X_TOOLKIT
3581         CF_X_ATHENA_CPPFLAGS($cf_x_athena)
3582         CF_X_ATHENA_LIBS($cf_x_athena)
3583 fi
3584 ])dnl
3585 dnl ---------------------------------------------------------------------------
3586 dnl CF_X_ATHENA_CPPFLAGS version: 5 updated: 2010/05/26 17:35:30
3587 dnl --------------------
3588 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
3589 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
3590 AC_DEFUN([CF_X_ATHENA_CPPFLAGS],
3591 [
3592 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
3593 cf_x_athena_inc=""
3594
3595 for cf_path in default \
3596         /usr/contrib/X11R6 \
3597         /usr/contrib/X11R5 \
3598         /usr/lib/X11R5 \
3599         /usr/local
3600 do
3601         if test -z "$cf_x_athena_inc" ; then
3602                 cf_save="$CPPFLAGS"
3603                 cf_test=X11/$cf_x_athena_root/SimpleMenu.h
3604                 if test $cf_path != default ; then
3605                         CPPFLAGS="$cf_save -I$cf_path/include"
3606                         AC_MSG_CHECKING(for $cf_test in $cf_path)
3607                 else
3608                         AC_MSG_CHECKING(for $cf_test)
3609                 fi
3610                 AC_TRY_COMPILE([
3611 #include <X11/Intrinsic.h>
3612 #include <$cf_test>],[],
3613                         [cf_result=yes],
3614                         [cf_result=no])
3615                 AC_MSG_RESULT($cf_result)
3616                 if test "$cf_result" = yes ; then
3617                         cf_x_athena_inc=$cf_path
3618                         break
3619                 else
3620                         CPPFLAGS="$cf_save"
3621                 fi
3622         fi
3623 done
3624
3625 if test -z "$cf_x_athena_inc" ; then
3626         AC_MSG_WARN(
3627 [Unable to successfully find Athena header files with test program])
3628 elif test "$cf_x_athena_inc" != default ; then
3629         CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc"
3630 fi
3631 ])
3632 dnl ---------------------------------------------------------------------------
3633 dnl CF_X_ATHENA_LIBS version: 12 updated: 2011/07/17 19:55:02
3634 dnl ----------------
3635 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
3636 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
3637 AC_DEFUN([CF_X_ATHENA_LIBS],
3638 [AC_REQUIRE([CF_X_TOOLKIT])
3639 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
3640 cf_x_athena_lib=""
3641
3642 for cf_path in default \
3643         /usr/contrib/X11R6 \
3644         /usr/contrib/X11R5 \
3645         /usr/lib/X11R5 \
3646         /usr/local
3647 do
3648         for cf_lib in \
3649                 ${cf_x_athena_root} \
3650                 ${cf_x_athena_root}7 \
3651                 ${cf_x_athena_root}6
3652         do
3653         for cf_libs in \
3654                 "-l$cf_lib -lXmu" \
3655                 "-l$cf_lib -lXpm -lXmu" \
3656                 "-l${cf_lib}_s -lXmu_s"
3657         do
3658                 if test -z "$cf_x_athena_lib" ; then
3659                         cf_save="$LIBS"
3660                         cf_test=XawSimpleMenuAddGlobalActions
3661                         if test $cf_path != default ; then
3662                                 CF_ADD_LIBS(-L$cf_path/lib $cf_libs)
3663                                 AC_MSG_CHECKING(for $cf_libs in $cf_path)
3664                         else
3665                                 CF_ADD_LIBS($cf_libs)
3666                                 AC_MSG_CHECKING(for $cf_test in $cf_libs)
3667                         fi
3668                         AC_TRY_LINK([
3669 #include <X11/Intrinsic.h>
3670 #include <X11/$cf_x_athena_root/SimpleMenu.h>
3671 ],[
3672 $cf_test((XtAppContext) 0)],
3673                                 [cf_result=yes],
3674                                 [cf_result=no])
3675                         AC_MSG_RESULT($cf_result)
3676                         if test "$cf_result" = yes ; then
3677                                 cf_x_athena_lib="$cf_libs"
3678                                 break
3679                         fi
3680                         LIBS="$cf_save"
3681                 fi
3682         done # cf_libs
3683                 test -n "$cf_x_athena_lib" && break
3684         done # cf_lib
3685 done
3686
3687 if test -z "$cf_x_athena_lib" ; then
3688         AC_MSG_ERROR(
3689 [Unable to successfully link Athena library (-l$cf_x_athena_root) with test program])
3690 fi
3691
3692 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
3693 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
3694 ])
3695 dnl ---------------------------------------------------------------------------
3696 dnl CF_X_EXT version: 3 updated: 2010/06/02 05:03:05
3697 dnl --------
3698 AC_DEFUN([CF_X_EXT],[
3699 CF_TRY_PKG_CONFIG(Xext,,[
3700         AC_CHECK_LIB(Xext,XextCreateExtension,
3701                 [CF_ADD_LIB(Xext)])])
3702 ])dnl
3703 dnl ---------------------------------------------------------------------------
3704 dnl CF_X_TOOLKIT version: 23 updated: 2015/04/12 15:39:00
3705 dnl ------------
3706 dnl Check for X Toolkit libraries
3707 AC_DEFUN([CF_X_TOOLKIT],
3708 [
3709 AC_REQUIRE([AC_PATH_XTRA])
3710 AC_REQUIRE([CF_CHECK_CACHE])
3711
3712 # OSX is schizoid about who owns /usr/X11 (old) versus /opt/X11 (new), and (and
3713 # in some cases has installed dummy files in the former, other cases replaced
3714 # it with a link to the new location).  This complicates the configure script.
3715 # Check for that pitfall, and recover using pkg-config
3716 #
3717 # If none of these are set, the configuration is almost certainly broken.
3718 if test -z "${X_CFLAGS}${X_PRE_LIBS}${X_LIBS}${X_EXTRA_LIBS}"
3719 then
3720         CF_TRY_PKG_CONFIG(x11,,[AC_MSG_WARN(unable to find X11 library)])
3721         CF_TRY_PKG_CONFIG(ice,,[AC_MSG_WARN(unable to find ICE library)])
3722         CF_TRY_PKG_CONFIG(sm,,[AC_MSG_WARN(unable to find SM library)])
3723         CF_TRY_PKG_CONFIG(xt,,[AC_MSG_WARN(unable to find&n