1dnl $Id: aclocal.m4,v 1.30 2013/03/05 01:13:39 tom Exp $ 2dnl Macros for byacc configure script (Thomas E. Dickey) 3dnl --------------------------------------------------------------------------- 4dnl Copyright 2004-2012,2013 Thomas E. Dickey 5dnl 6dnl Permission is hereby granted, free of charge, to any person obtaining a 7dnl copy of this software and associated documentation files (the 8dnl "Software"), to deal in the Software without restriction, including 9dnl without limitation the rights to use, copy, modify, merge, publish, 10dnl distribute, distribute with modifications, sublicense, and/or sell 11dnl copies of the Software, and to permit persons to whom the Software is 12dnl furnished to do so, subject to the following conditions: 13dnl 14dnl The above copyright notice and this permission notice shall be included 15dnl in all copies or portions of the Software. 16dnl 17dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 18dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 21dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 22dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR 23dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24dnl 25dnl Except as contained in this notice, the name(s) of the above copyright 26dnl holders shall not be used in advertising or otherwise to promote the 27dnl sale, use or other dealings in this Software without prior written 28dnl authorization. 29dnl --------------------------------------------------------------------------- 30dnl --------------------------------------------------------------------------- 31dnl CF_ACVERSION_CHECK version: 4 updated: 2013/03/04 19:52:56 32dnl ------------------ 33dnl Conditionally generate script according to whether we're using a given autoconf. 34dnl 35dnl $1 = version to compare against 36dnl $2 = code to use if AC_ACVERSION is at least as high as $1. 37dnl $3 = code to use if AC_ACVERSION is older than $1. 38define([CF_ACVERSION_CHECK], 39[ 40ifdef([AC_ACVERSION], ,[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])dnl 41ifdef([m4_version_compare], 42[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])], 43[CF_ACVERSION_COMPARE( 44AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])), 45AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl 46dnl --------------------------------------------------------------------------- 47dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53 48dnl -------------------- 49dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1, 50dnl MAJOR2, MINOR2, TERNARY2, 51dnl PRINTABLE2, not FOUND, FOUND) 52define([CF_ACVERSION_COMPARE], 53[ifelse(builtin([eval], [$2 < $5]), 1, 54[ifelse([$8], , ,[$8])], 55[ifelse([$9], , ,[$9])])])dnl 56dnl --------------------------------------------------------------------------- 57dnl CF_ADD_CFLAGS version: 10 updated: 2010/05/26 05:38:42 58dnl ------------- 59dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS 60dnl The second parameter if given makes this macro verbose. 61dnl 62dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS, 63dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily 64dnl confused by the quotes (which require backslashes to keep them usable). 65AC_DEFUN([CF_ADD_CFLAGS], 66[ 67cf_fix_cppflags=no 68cf_new_cflags= 69cf_new_cppflags= 70cf_new_extra_cppflags= 71 72for cf_add_cflags in $1 73do 74case $cf_fix_cppflags in 75no) 76 case $cf_add_cflags in #(vi 77 -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi 78 case $cf_add_cflags in 79 -D*) 80 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'` 81 82 test "${cf_add_cflags}" != "${cf_tst_cflags}" \ 83 && test -z "${cf_tst_cflags}" \ 84 && cf_fix_cppflags=yes 85 86 if test $cf_fix_cppflags = yes ; then 87 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" 88 continue 89 elif test "${cf_tst_cflags}" = "\"'" ; then 90 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" 91 continue 92 fi 93 ;; 94 esac 95 case "$CPPFLAGS" in 96 *$cf_add_cflags) #(vi 97 ;; 98 *) #(vi 99 case $cf_add_cflags in #(vi 100 -D*) 101 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` 102 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags) 103 ;; 104 esac 105 cf_new_cppflags="$cf_new_cppflags $cf_add_cflags" 106 ;; 107 esac 108 ;; 109 *) 110 cf_new_cflags="$cf_new_cflags $cf_add_cflags" 111 ;; 112 esac 113 ;; 114yes) 115 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" 116 117 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'` 118 119 test "${cf_add_cflags}" != "${cf_tst_cflags}" \ 120 && test -z "${cf_tst_cflags}" \ 121 && cf_fix_cppflags=no 122 ;; 123esac 124done 125 126if test -n "$cf_new_cflags" ; then 127 ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)]) 128 CFLAGS="$CFLAGS $cf_new_cflags" 129fi 130 131if test -n "$cf_new_cppflags" ; then 132 ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)]) 133 CPPFLAGS="$CPPFLAGS $cf_new_cppflags" 134fi 135 136if test -n "$cf_new_extra_cppflags" ; then 137 ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)]) 138 EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" 139fi 140 141AC_SUBST(EXTRA_CPPFLAGS) 142 143])dnl 144dnl --------------------------------------------------------------------------- 145dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31 146dnl -------------- 147dnl Allow user to disable a normally-on option. 148AC_DEFUN([CF_ARG_DISABLE], 149[CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl 150dnl --------------------------------------------------------------------------- 151dnl CF_ARG_OPTION version: 4 updated: 2010/05/26 05:38:42 152dnl ------------- 153dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus 154dnl values. 155dnl 156dnl Parameters: 157dnl $1 = option name 158dnl $2 = help-string 159dnl $3 = action to perform if option is not default 160dnl $4 = action if perform if option is default 161dnl $5 = default option value (either 'yes' or 'no') 162AC_DEFUN([CF_ARG_OPTION], 163[AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes) 164 if test "$enableval" != "$5" ; then 165ifelse([$3],,[ :]dnl 166,[ $3]) ifelse([$4],,,[ 167 else 168 $4]) 169 fi],[enableval=$5 ifelse([$4],,,[ 170 $4 171])dnl 172 ])])dnl 173dnl --------------------------------------------------------------------------- 174dnl CF_CC_ENV_FLAGS version: 1 updated: 2012/10/03 05:25:49 175dnl --------------- 176dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content 177dnl into CC. This will not help with broken scripts that wrap the compiler with 178dnl options, but eliminates a more common category of user confusion. 179AC_DEFUN([CF_CC_ENV_FLAGS], 180[ 181# This should have been defined by AC_PROG_CC 182: ${CC:=cc} 183 184AC_MSG_CHECKING(\$CC variable) 185case "$CC" in #(vi 186*[[\ \ ]]-[[IUD]]*) 187 AC_MSG_RESULT(broken) 188 AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options) 189 # humor him... 190 cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'` 191 CC=`echo "$CC" | sed -e 's/[[ ]].*//'` 192 CF_ADD_CFLAGS($cf_flags) 193 ;; 194*) 195 AC_MSG_RESULT(ok) 196 ;; 197esac 198])dnl 199dnl --------------------------------------------------------------------------- 200dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03 201dnl -------------- 202dnl Check if we're accidentally using a cache from a different machine. 203dnl Derive the system name, as a check for reusing the autoconf cache. 204dnl 205dnl If we've packaged config.guess and config.sub, run that (since it does a 206dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow 207dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM 208dnl which is useful in cross-compiles. 209dnl 210dnl Note: we would use $ac_config_sub, but that is one of the places where 211dnl autoconf 2.5x broke compatibility with autoconf 2.13 212AC_DEFUN([CF_CHECK_CACHE], 213[ 214if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then 215 ifelse([$1],,[AC_CANONICAL_HOST],[$1]) 216 system_name="$host_os" 217else 218 system_name="`(uname -s -r) 2>/dev/null`" 219 if test -z "$system_name" ; then 220 system_name="`(hostname) 2>/dev/null`" 221 fi 222fi 223test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.]) 224AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"]) 225 226test -z "$system_name" && system_name="$cf_cv_system_name" 227test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name) 228 229if test ".$system_name" != ".$cf_cv_system_name" ; then 230 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)) 231 AC_MSG_ERROR("Please remove config.cache and try again.") 232fi 233])dnl 234dnl --------------------------------------------------------------------------- 235dnl CF_CLANG_COMPILER version: 1 updated: 2012/06/16 14:55:39 236dnl ----------------- 237dnl Check if the given compiler is really clang. clang's C driver defines 238dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does 239dnl not ignore some gcc options. 240dnl 241dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to 242dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from 243dnl the wrappers for gcc and g++ warnings. 244dnl 245dnl $1 = GCC (default) or GXX 246dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS 247dnl $3 = CFLAGS (default) or CXXFLAGS 248AC_DEFUN([CF_CLANG_COMPILER],[ 249ifelse([$2],,CLANG_COMPILER,[$2])=no 250 251if test "$ifelse([$1],,[$1],GCC)" = yes ; then 252 AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler) 253 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])" 254 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments" 255 AC_TRY_COMPILE([],[ 256#ifdef __clang__ 257#else 258make an error 259#endif 260],[ifelse([$2],,CLANG_COMPILER,[$2])=yes 261cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments" 262],[]) 263 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS" 264 AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2])) 265fi 266]) 267dnl --------------------------------------------------------------------------- 268dnl CF_DISABLE_ECHO version: 12 updated: 2012/10/06 16:30:28 269dnl --------------- 270dnl You can always use "make -n" to see the actual options, but it's hard to 271dnl pick out/analyze warning messages when the compile-line is long. 272dnl 273dnl Sets: 274dnl ECHO_LT - symbol to control if libtool is verbose 275dnl ECHO_LD - symbol to prefix "cc -o" lines 276dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o) 277dnl SHOW_CC - symbol to put before explicit "cc -c" lines 278dnl ECHO_CC - symbol to put before any "cc" line 279dnl 280AC_DEFUN([CF_DISABLE_ECHO],[ 281AC_MSG_CHECKING(if you want to see long compiling messages) 282CF_ARG_DISABLE(echo, 283 [ --disable-echo do not display "compiling" commands], 284 [ 285 ECHO_LT='--silent' 286 ECHO_LD='@echo linking [$]@;' 287 RULE_CC='@echo compiling [$]<' 288 SHOW_CC='@echo compiling [$]@' 289 ECHO_CC='@' 290],[ 291 ECHO_LT='' 292 ECHO_LD='' 293 RULE_CC='' 294 SHOW_CC='' 295 ECHO_CC='' 296]) 297AC_MSG_RESULT($enableval) 298AC_SUBST(ECHO_LT) 299AC_SUBST(ECHO_LD) 300AC_SUBST(RULE_CC) 301AC_SUBST(SHOW_CC) 302AC_SUBST(ECHO_CC) 303])dnl 304dnl --------------------------------------------------------------------------- 305dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03 306dnl ---------------- 307dnl Combine no-leak checks with the libraries or tools that are used for the 308dnl checks. 309AC_DEFUN([CF_DISABLE_LEAKS],[ 310 311AC_REQUIRE([CF_WITH_DMALLOC]) 312AC_REQUIRE([CF_WITH_DBMALLOC]) 313AC_REQUIRE([CF_WITH_VALGRIND]) 314 315AC_MSG_CHECKING(if you want to perform memory-leak testing) 316AC_ARG_ENABLE(leaks, 317 [ --disable-leaks test: free permanent memory, analyze leaks], 318 [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi], 319 : ${with_no_leaks:=no}) 320AC_MSG_RESULT($with_no_leaks) 321 322if test "$with_no_leaks" = yes ; then 323 AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.]) 324 AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.]) 325fi 326])dnl 327dnl --------------------------------------------------------------------------- 328dnl CF_GCC_ATTRIBUTES version: 16 updated: 2012/10/02 20:55:03 329dnl ----------------- 330dnl Test for availability of useful gcc __attribute__ directives to quiet 331dnl compiler warnings. Though useful, not all are supported -- and contrary 332dnl to documentation, unrecognized directives cause older compilers to barf. 333AC_DEFUN([CF_GCC_ATTRIBUTES], 334[ 335if test "$GCC" = yes 336then 337cat > conftest.i <<EOF 338#ifndef GCC_PRINTF 339#define GCC_PRINTF 0 340#endif 341#ifndef GCC_SCANF 342#define GCC_SCANF 0 343#endif 344#ifndef GCC_NORETURN 345#define GCC_NORETURN /* nothing */ 346#endif 347#ifndef GCC_UNUSED 348#define GCC_UNUSED /* nothing */ 349#endif 350EOF 351if test "$GCC" = yes 352then 353 AC_CHECKING([for $CC __attribute__ directives]) 354cat > conftest.$ac_ext <<EOF 355#line __oline__ "${as_me:-configure}" 356#include "confdefs.h" 357#include "conftest.h" 358#include "conftest.i" 359#if GCC_PRINTF 360#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) 361#else 362#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ 363#endif 364#if GCC_SCANF 365#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) 366#else 367#define GCC_SCANFLIKE(fmt,var) /*nothing*/ 368#endif 369extern void wow(char *,...) GCC_SCANFLIKE(1,2); 370extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN; 371extern void foo(void) GCC_NORETURN; 372int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; } 373EOF 374 cf_printf_attribute=no 375 cf_scanf_attribute=no 376 for cf_attribute in scanf printf unused noreturn 377 do 378 CF_UPPER(cf_ATTRIBUTE,$cf_attribute) 379 cf_directive="__attribute__(($cf_attribute))" 380 echo "checking for $CC $cf_directive" 1>&AC_FD_CC 381 382 case $cf_attribute in #(vi 383 printf) #(vi 384 cf_printf_attribute=yes 385 cat >conftest.h <<EOF 386#define GCC_$cf_ATTRIBUTE 1 387EOF 388 ;; 389 scanf) #(vi 390 cf_scanf_attribute=yes 391 cat >conftest.h <<EOF 392#define GCC_$cf_ATTRIBUTE 1 393EOF 394 ;; 395 *) #(vi 396 cat >conftest.h <<EOF 397#define GCC_$cf_ATTRIBUTE $cf_directive 398EOF 399 ;; 400 esac 401 402 if AC_TRY_EVAL(ac_compile); then 403 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute) 404 cat conftest.h >>confdefs.h 405 case $cf_attribute in #(vi 406 noreturn) #(vi 407 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc]) 408 ;; 409 printf) #(vi 410 cf_value='/* nothing */' 411 if test "$cf_printf_attribute" != no ; then 412 cf_value='__attribute__((format(printf,fmt,var)))' 413 AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.]) 414 fi 415 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc]) 416 ;; 417 scanf) #(vi 418 cf_value='/* nothing */' 419 if test "$cf_scanf_attribute" != no ; then 420 cf_value='__attribute__((format(scanf,fmt,var)))' 421 AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.]) 422 fi 423 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc]) 424 ;; 425 unused) #(vi 426 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc]) 427 ;; 428 esac 429 fi 430 done 431else 432 fgrep define conftest.i >>confdefs.h 433fi 434rm -rf conftest* 435fi 436])dnl 437dnl --------------------------------------------------------------------------- 438dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33 439dnl -------------- 440dnl Find version of gcc 441AC_DEFUN([CF_GCC_VERSION],[ 442AC_REQUIRE([AC_PROG_CC]) 443GCC_VERSION=none 444if test "$GCC" = yes ; then 445 AC_MSG_CHECKING(version of $CC) 446 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.]].*//'`" 447 test -z "$GCC_VERSION" && GCC_VERSION=unknown 448 AC_MSG_RESULT($GCC_VERSION) 449fi 450])dnl 451dnl --------------------------------------------------------------------------- 452dnl CF_GCC_WARNINGS version: 29 updated: 2012/06/16 14:55:39 453dnl --------------- 454dnl Check if the compiler supports useful warning options. There's a few that 455dnl we don't use, simply because they're too noisy: 456dnl 457dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x) 458dnl -Wredundant-decls (system headers make this too noisy) 459dnl -Wtraditional (combines too many unrelated messages, only a few useful) 460dnl -Wwrite-strings (too noisy, but should review occasionally). This 461dnl is enabled for ncurses using "--enable-const". 462dnl -pedantic 463dnl 464dnl Parameter: 465dnl $1 is an optional list of gcc warning flags that a particular 466dnl application might want to use, e.g., "no-unused" for 467dnl -Wno-unused 468dnl Special: 469dnl If $with_ext_const is "yes", add a check for -Wwrite-strings 470dnl 471AC_DEFUN([CF_GCC_WARNINGS], 472[ 473AC_REQUIRE([CF_GCC_VERSION]) 474CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS) 475CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS) 476 477cat > conftest.$ac_ext <<EOF 478#line __oline__ "${as_me:-configure}" 479int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; } 480EOF 481 482if test "$INTEL_COMPILER" = yes 483then 484# The "-wdXXX" options suppress warnings: 485# remark #1419: external declaration in primary source file 486# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem) 487# remark #1684: conversion from pointer to same-sized integral type (potential portability problem) 488# remark #193: zero used for undefined preprocessing identifier 489# remark #593: variable "curs_sb_left_arrow" was set but never used 490# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits 491# remark #869: parameter "tw" was never referenced 492# remark #981: operands are evaluated in unspecified order 493# warning #279: controlling expression is constant 494 495 AC_CHECKING([for $CC warning options]) 496 cf_save_CFLAGS="$CFLAGS" 497 EXTRA_CFLAGS="-Wall" 498 for cf_opt in \ 499 wd1419 \ 500 wd1683 \ 501 wd1684 \ 502 wd193 \ 503 wd593 \ 504 wd279 \ 505 wd810 \ 506 wd869 \ 507 wd981 508 do 509 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" 510 if AC_TRY_EVAL(ac_compile); then 511 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt) 512 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" 513 fi 514 done 515 CFLAGS="$cf_save_CFLAGS" 516 517elif test "$GCC" = yes 518then 519 AC_CHECKING([for $CC warning options]) 520 cf_save_CFLAGS="$CFLAGS" 521 EXTRA_CFLAGS= 522 cf_warn_CONST="" 523 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings" 524 for cf_opt in W Wall \ 525 Wbad-function-cast \ 526 Wcast-align \ 527 Wcast-qual \ 528 Winline \ 529 Wmissing-declarations \ 530 Wmissing-prototypes \ 531 Wnested-externs \ 532 Wpointer-arith \ 533 Wshadow \ 534 Wstrict-prototypes \ 535 Wundef $cf_warn_CONST $1 536 do 537 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" 538 if AC_TRY_EVAL(ac_compile); then 539 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt) 540 case $cf_opt in #(vi 541 Wcast-qual) #(vi 542 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES" 543 ;; 544 Winline) #(vi 545 case $GCC_VERSION in 546 [[34]].*) 547 CF_VERBOSE(feature is broken in gcc $GCC_VERSION) 548 continue;; 549 esac 550 ;; 551 Wpointer-arith) #(vi 552 case $GCC_VERSION in 553 [[12]].*) 554 CF_VERBOSE(feature is broken in gcc $GCC_VERSION) 555 continue;; 556 esac 557 ;; 558 esac 559 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" 560 fi 561 done 562 CFLAGS="$cf_save_CFLAGS" 563fi 564rm -rf conftest* 565 566AC_SUBST(EXTRA_CFLAGS) 567])dnl 568dnl --------------------------------------------------------------------------- 569dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07 570dnl ------------- 571dnl Check if we must define _GNU_SOURCE to get a reasonable value for 572dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect 573dnl (or misfeature) of glibc2, which breaks portability of many applications, 574dnl since it is interwoven with GNU extensions. 575dnl 576dnl Well, yes we could work around it... 577AC_DEFUN([CF_GNU_SOURCE], 578[ 579AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[ 580AC_TRY_COMPILE([#include <sys/types.h>],[ 581#ifndef _XOPEN_SOURCE 582make an error 583#endif], 584 [cf_cv_gnu_source=no], 585 [cf_save="$CPPFLAGS" 586 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" 587 AC_TRY_COMPILE([#include <sys/types.h>],[ 588#ifdef _XOPEN_SOURCE 589make an error 590#endif], 591 [cf_cv_gnu_source=no], 592 [cf_cv_gnu_source=yes]) 593 CPPFLAGS="$cf_save" 594 ]) 595]) 596test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" 597])dnl 598dnl --------------------------------------------------------------------------- 599dnl CF_INTEL_COMPILER version: 5 updated: 2013/02/10 10:41:05 600dnl ----------------- 601dnl Check if the given compiler is really the Intel compiler for Linux. It 602dnl tries to imitate gcc, but does not return an error when it finds a mismatch 603dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK. 604dnl 605dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to 606dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from 607dnl the wrappers for gcc and g++ warnings. 608dnl 609dnl $1 = GCC (default) or GXX 610dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS 611dnl $3 = CFLAGS (default) or CXXFLAGS 612AC_DEFUN([CF_INTEL_COMPILER],[ 613AC_REQUIRE([AC_CANONICAL_HOST]) 614ifelse([$2],,INTEL_COMPILER,[$2])=no 615 616if test "$ifelse([$1],,[$1],GCC)" = yes ; then 617 case $host_os in 618 linux*|gnu*) 619 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler) 620 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])" 621 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc" 622 AC_TRY_COMPILE([],[ 623#ifdef __INTEL_COMPILER 624#else 625make an error 626#endif 627],[ifelse([$2],,INTEL_COMPILER,[$2])=yes 628cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc" 629],[]) 630 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS" 631 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2])) 632 ;; 633 esac 634fi 635])dnl 636dnl --------------------------------------------------------------------------- 637dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32 638dnl ------------ 639dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have 640dnl a monocase filesystem. 641AC_DEFUN([CF_MAKE_TAGS],[ 642AC_REQUIRE([CF_MIXEDCASE_FILENAMES]) 643 644AC_CHECK_PROGS(CTAGS, exctags ctags) 645AC_CHECK_PROGS(ETAGS, exetags etags) 646 647AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no) 648 649if test "$cf_cv_mixedcase" = yes ; then 650 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no) 651else 652 MAKE_UPPER_TAGS=no 653fi 654 655if test "$MAKE_UPPER_TAGS" = yes ; then 656 MAKE_UPPER_TAGS= 657else 658 MAKE_UPPER_TAGS="#" 659fi 660 661if test "$MAKE_LOWER_TAGS" = yes ; then 662 MAKE_LOWER_TAGS= 663else 664 MAKE_LOWER_TAGS="#" 665fi 666 667AC_SUBST(CTAGS) 668AC_SUBST(ETAGS) 669 670AC_SUBST(MAKE_UPPER_TAGS) 671AC_SUBST(MAKE_LOWER_TAGS) 672])dnl 673dnl --------------------------------------------------------------------------- 674dnl CF_MIXEDCASE_FILENAMES version: 4 updated: 2012/10/02 20:55:03 675dnl ---------------------- 676dnl Check if the file-system supports mixed-case filenames. If we're able to 677dnl create a lowercase name and see it as uppercase, it doesn't support that. 678AC_DEFUN([CF_MIXEDCASE_FILENAMES], 679[ 680AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[ 681if test "$cross_compiling" = yes ; then 682 case $target_alias in #(vi 683 *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi 684 cf_cv_mixedcase=no 685 ;; 686 *) 687 cf_cv_mixedcase=yes 688 ;; 689 esac 690else 691 rm -f conftest CONFTEST 692 echo test >conftest 693 if test -f CONFTEST ; then 694 cf_cv_mixedcase=no 695 else 696 cf_cv_mixedcase=yes 697 fi 698 rm -f conftest CONFTEST 699fi 700]) 701test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.]) 702])dnl 703dnl --------------------------------------------------------------------------- 704dnl CF_MKSTEMP version: 9 updated: 2012/10/03 04:34:49 705dnl ---------- 706dnl Check for a working mkstemp. This creates two files, checks that they are 707dnl successfully created and distinct (AmigaOS apparently fails on the last). 708AC_DEFUN([CF_MKSTEMP],[ 709AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[ 710rm -rf conftest* 711AC_TRY_RUN([ 712#include <sys/types.h> 713#include <stdlib.h> 714#include <stdio.h> 715#include <string.h> 716#include <sys/stat.h> 717int main() 718{ 719 char *tmpl = "conftestXXXXXX"; 720 char name[2][80]; 721 int n; 722 int result = 0; 723 int fd; 724 struct stat sb; 725 726 umask(077); 727 for (n = 0; n < 2; ++n) { 728 strcpy(name[n], tmpl); 729 if ((fd = mkstemp(name[n])) >= 0) { 730 if (!strcmp(name[n], tmpl) 731 || stat(name[n], &sb) != 0 732 || (sb.st_mode & S_IFMT) != S_IFREG 733 || (sb.st_mode & 077) != 0) { 734 result = 1; 735 } 736 close(fd); 737 } 738 } 739 if (result == 0 740 && !strcmp(name[0], name[1])) 741 result = 1; 742 ${cf_cv_main_return:-return}(result); 743} 744],[cf_cv_func_mkstemp=yes 745],[cf_cv_func_mkstemp=no 746],[cf_cv_func_mkstemp=maybe]) 747]) 748if test "x$cf_cv_func_mkstemp" = xmaybe ; then 749 AC_CHECK_FUNC(mkstemp) 750fi 751if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then 752 AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.]) 753fi 754])dnl 755dnl --------------------------------------------------------------------------- 756dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32 757dnl ---------- 758dnl Write a debug message to config.log, along with the line number in the 759dnl configure script. 760AC_DEFUN([CF_MSG_LOG],[ 761echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC 762])dnl 763dnl --------------------------------------------------------------------------- 764dnl CF_NO_LEAKS_OPTION version: 5 updated: 2012/10/02 20:55:03 765dnl ------------------ 766dnl see CF_WITH_NO_LEAKS 767AC_DEFUN([CF_NO_LEAKS_OPTION],[ 768AC_MSG_CHECKING(if you want to use $1 for testing) 769AC_ARG_WITH($1, 770 [$2], 771 [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[ 772 $4 773]) 774 : ${with_cflags:=-g} 775 : ${with_no_leaks:=yes} 776 with_$1=yes], 777 [with_$1=]) 778AC_MSG_RESULT(${with_$1:-no}) 779 780case .$with_cflags in #(vi 781.*-g*) 782 case .$CFLAGS in #(vi 783 .*-g*) #(vi 784 ;; 785 *) 786 CF_ADD_CFLAGS([-g]) 787 ;; 788 esac 789 ;; 790esac 791])dnl 792dnl --------------------------------------------------------------------------- 793dnl CF_POSIX_C_SOURCE version: 8 updated: 2010/05/26 05:38:42 794dnl ----------------- 795dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed. 796dnl 797dnl POSIX.1-1990 _POSIX_SOURCE 798dnl POSIX.1-1990 and _POSIX_SOURCE and 799dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2 800dnl Bindings Option 801dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L 802dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L 803dnl X/Open 2000 _POSIX_C_SOURCE=200112L 804dnl 805dnl Parameters: 806dnl $1 is the nominal value for _POSIX_C_SOURCE 807AC_DEFUN([CF_POSIX_C_SOURCE], 808[ 809cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1]) 810 811cf_save_CFLAGS="$CFLAGS" 812cf_save_CPPFLAGS="$CPPFLAGS" 813 814CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE) 815CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE) 816 817AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[ 818 CF_MSG_LOG(if the symbol is already defined go no further) 819 AC_TRY_COMPILE([#include <sys/types.h>],[ 820#ifndef _POSIX_C_SOURCE 821make an error 822#endif], 823 [cf_cv_posix_c_source=no], 824 [cf_want_posix_source=no 825 case .$cf_POSIX_C_SOURCE in #(vi 826 .[[12]]??*) #(vi 827 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" 828 ;; 829 .2) #(vi 830 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" 831 cf_want_posix_source=yes 832 ;; 833 .*) 834 cf_want_posix_source=yes 835 ;; 836 esac 837 if test "$cf_want_posix_source" = yes ; then 838 AC_TRY_COMPILE([#include <sys/types.h>],[ 839#ifdef _POSIX_SOURCE 840make an error 841#endif],[], 842 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE") 843 fi 844 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE) 845 CFLAGS="$cf_trim_CFLAGS" 846 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source" 847 CF_MSG_LOG(if the second compile does not leave our definition intact error) 848 AC_TRY_COMPILE([#include <sys/types.h>],[ 849#ifndef _POSIX_C_SOURCE 850make an error 851#endif],, 852 [cf_cv_posix_c_source=no]) 853 CFLAGS="$cf_save_CFLAGS" 854 CPPFLAGS="$cf_save_CPPFLAGS" 855 ]) 856]) 857 858if test "$cf_cv_posix_c_source" != no ; then 859 CFLAGS="$cf_trim_CFLAGS" 860 CPPFLAGS="$cf_trim_CPPFLAGS" 861 CF_ADD_CFLAGS($cf_cv_posix_c_source) 862fi 863 864])dnl 865dnl --------------------------------------------------------------------------- 866dnl CF_PROG_CC version: 3 updated: 2012/10/06 15:31:55 867dnl ---------- 868dnl standard check for CC, plus followup sanity checks 869dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name 870AC_DEFUN([CF_PROG_CC],[ 871ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)]) 872CF_GCC_VERSION 873CF_ACVERSION_CHECK(2.52, 874 [AC_PROG_CC_STDC], 875 [CF_ANSI_CC_REQD]) 876CF_CC_ENV_FLAGS 877])dnl 878dnl --------------------------------------------------------------------------- 879dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14 880dnl ------------ 881AC_DEFUN([CF_PROG_LINT], 882[ 883AC_CHECK_PROGS(LINT, tdlint lint alint splint lclint) 884AC_SUBST(LINT_OPTS) 885])dnl 886dnl --------------------------------------------------------------------------- 887dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50 888dnl ---------------- 889dnl Remove all -U and -D options that refer to the given symbol from a list 890dnl of C compiler options. This works around the problem that not all 891dnl compilers process -U and -D options from left-to-right, so a -U option 892dnl cannot be used to cancel the effect of a preceding -D option. 893dnl 894dnl $1 = target (which could be the same as the source variable) 895dnl $2 = source (including '$') 896dnl $3 = symbol to remove 897define([CF_REMOVE_DEFINE], 898[ 899$1=`echo "$2" | \ 900 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \ 901 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'` 902])dnl 903dnl --------------------------------------------------------------------------- 904dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50 905dnl ------------------- 906dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we 907dnl can define it successfully. 908AC_DEFUN([CF_TRY_XOPEN_SOURCE],[ 909AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[ 910 AC_TRY_COMPILE([ 911#include <stdlib.h> 912#include <string.h> 913#include <sys/types.h> 914],[ 915#ifndef _XOPEN_SOURCE 916make an error 917#endif], 918 [cf_cv_xopen_source=no], 919 [cf_save="$CPPFLAGS" 920 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" 921 AC_TRY_COMPILE([ 922#include <stdlib.h> 923#include <string.h> 924#include <sys/types.h> 925],[ 926#ifdef _XOPEN_SOURCE 927make an error 928#endif], 929 [cf_cv_xopen_source=no], 930 [cf_cv_xopen_source=$cf_XOPEN_SOURCE]) 931 CPPFLAGS="$cf_save" 932 ]) 933]) 934 935if test "$cf_cv_xopen_source" != no ; then 936 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE) 937 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE) 938 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" 939 CF_ADD_CFLAGS($cf_temp_xopen_source) 940fi 941]) 942dnl --------------------------------------------------------------------------- 943dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59 944dnl -------- 945dnl Make an uppercase version of a variable 946dnl $1=uppercase($2) 947AC_DEFUN([CF_UPPER], 948[ 949$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` 950])dnl 951dnl --------------------------------------------------------------------------- 952dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12 953dnl ---------- 954dnl Use AC_VERBOSE w/o the warnings 955AC_DEFUN([CF_VERBOSE], 956[test -n "$verbose" && echo " $1" 1>&AC_FD_MSG 957CF_MSG_LOG([$1]) 958])dnl 959dnl --------------------------------------------------------------------------- 960dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47 961dnl ---------------- 962dnl Configure-option for dbmalloc. The optional parameter is used to override 963dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests. 964AC_DEFUN([CF_WITH_DBMALLOC],[ 965CF_NO_LEAKS_OPTION(dbmalloc, 966 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library], 967 [USE_DBMALLOC]) 968 969if test "$with_dbmalloc" = yes ; then 970 AC_CHECK_HEADER(dbmalloc.h, 971 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))]) 972fi 973])dnl 974dnl --------------------------------------------------------------------------- 975dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47 976dnl --------------- 977dnl Configure-option for dmalloc. The optional parameter is used to override 978dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests. 979AC_DEFUN([CF_WITH_DMALLOC],[ 980CF_NO_LEAKS_OPTION(dmalloc, 981 [ --with-dmalloc test: use Gray Watson's dmalloc library], 982 [USE_DMALLOC]) 983 984if test "$with_dmalloc" = yes ; then 985 AC_CHECK_HEADER(dmalloc.h, 986 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))]) 987fi 988])dnl 989dnl --------------------------------------------------------------------------- 990dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21 991dnl ---------------- 992AC_DEFUN([CF_WITH_VALGRIND],[ 993CF_NO_LEAKS_OPTION(valgrind, 994 [ --with-valgrind test: use valgrind], 995 [USE_VALGRIND]) 996])dnl 997dnl --------------------------------------------------------------------------- 998dnl CF_WITH_WARNINGS version: 5 updated: 2004/07/23 14:40:34 999dnl ---------------- 1000dnl Combine the checks for gcc features into a configure-script option 1001dnl 1002dnl Parameters: 1003dnl $1 - see CF_GCC_WARNINGS 1004AC_DEFUN([CF_WITH_WARNINGS], 1005[ 1006if ( test "$GCC" = yes || test "$GXX" = yes ) 1007then 1008AC_MSG_CHECKING(if you want to check for gcc warnings) 1009AC_ARG_WITH(warnings, 1010 [ --with-warnings test: turn on gcc warnings], 1011 [cf_opt_with_warnings=$withval], 1012 [cf_opt_with_warnings=no]) 1013AC_MSG_RESULT($cf_opt_with_warnings) 1014if test "$cf_opt_with_warnings" != no ; then 1015 CF_GCC_ATTRIBUTES 1016 CF_GCC_WARNINGS([$1]) 1017fi 1018fi 1019])dnl 1020dnl --------------------------------------------------------------------------- 1021dnl CF_XOPEN_SOURCE version: 43 updated: 2013/02/10 10:41:05 1022dnl --------------- 1023dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions, 1024dnl or adapt to the vendor's definitions to get equivalent functionality, 1025dnl without losing the common non-POSIX features. 1026dnl 1027dnl Parameters: 1028dnl $1 is the nominal value for _XOPEN_SOURCE 1029dnl $2 is the nominal value for _POSIX_C_SOURCE 1030AC_DEFUN([CF_XOPEN_SOURCE],[ 1031AC_REQUIRE([AC_CANONICAL_HOST]) 1032 1033cf_XOPEN_SOURCE=ifelse([$1],,500,[$1]) 1034cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2]) 1035cf_xopen_source= 1036 1037case $host_os in #(vi 1038aix[[4-7]]*) #(vi 1039 cf_xopen_source="-D_ALL_SOURCE" 1040 ;; 1041cygwin) #(vi 1042 cf_XOPEN_SOURCE=600 1043 ;; 1044darwin[[0-8]].*) #(vi 1045 cf_xopen_source="-D_APPLE_C_SOURCE" 1046 ;; 1047darwin*) #(vi 1048 cf_xopen_source="-D_DARWIN_C_SOURCE" 1049 cf_XOPEN_SOURCE= 1050 ;; 1051freebsd*|dragonfly*) #(vi 1052 # 5.x headers associate 1053 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L 1054 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L 1055 cf_POSIX_C_SOURCE=200112L 1056 cf_XOPEN_SOURCE=600 1057 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" 1058 ;; 1059hpux11*) #(vi 1060 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500" 1061 ;; 1062hpux*) #(vi 1063 cf_xopen_source="-D_HPUX_SOURCE" 1064 ;; 1065irix[[56]].*) #(vi 1066 cf_xopen_source="-D_SGI_SOURCE" 1067 cf_XOPEN_SOURCE= 1068 ;; 1069linux*|gnu*|mint*|k*bsd*-gnu) #(vi 1070 CF_GNU_SOURCE 1071 ;; 1072mirbsd*) #(vi 1073 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types 1074 cf_XOPEN_SOURCE= 1075 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) 1076 ;; 1077netbsd*) #(vi 1078 cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw 1079 ;; 1080openbsd[[4-9]]*) #(vi 1081 # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw 1082 cf_xopen_source="-D_BSD_SOURCE" 1083 cf_XOPEN_SOURCE=600 1084 ;; 1085openbsd*) #(vi 1086 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw 1087 ;; 1088osf[[45]]*) #(vi 1089 cf_xopen_source="-D_OSF_SOURCE" 1090 ;; 1091nto-qnx*) #(vi 1092 cf_xopen_source="-D_QNX_SOURCE" 1093 ;; 1094sco*) #(vi 1095 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer 1096 ;; 1097solaris2.*) #(vi 1098 cf_xopen_source="-D__EXTENSIONS__" 1099 ;; 1100*) 1101 CF_TRY_XOPEN_SOURCE 1102 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) 1103 ;; 1104esac 1105 1106if test -n "$cf_xopen_source" ; then 1107 CF_ADD_CFLAGS($cf_xopen_source) 1108fi 1109 1110dnl In anything but the default case, we may have system-specific setting 1111dnl which is still not guaranteed to provide all of the entrypoints that 1112dnl _XOPEN_SOURCE would yield. 1113if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then 1114 AC_MSG_CHECKING(if _XOPEN_SOURCE really is set) 1115 AC_TRY_COMPILE([#include <stdlib.h>],[ 1116#ifndef _XOPEN_SOURCE 1117make an error 1118#endif], 1119 [cf_XOPEN_SOURCE_set=yes], 1120 [cf_XOPEN_SOURCE_set=no]) 1121 AC_MSG_RESULT($cf_XOPEN_SOURCE_set) 1122 if test $cf_XOPEN_SOURCE_set = yes 1123 then 1124 AC_TRY_COMPILE([#include <stdlib.h>],[ 1125#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE 1126make an error 1127#endif], 1128 [cf_XOPEN_SOURCE_set_ok=yes], 1129 [cf_XOPEN_SOURCE_set_ok=no]) 1130 if test $cf_XOPEN_SOURCE_set_ok = no 1131 then 1132 AC_MSG_WARN(_XOPEN_SOURCE is lower than requested) 1133 fi 1134 else 1135 CF_TRY_XOPEN_SOURCE 1136 fi 1137fi 1138]) 1139