cristy | 3ed852e | 2009-09-05 21:47:34 +0000 | [diff] [blame^] | 1 | # Portability macros for glibc argz. -*- Autoconf -*- |
| 2 | # |
| 3 | # Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. |
| 4 | # Written by Gary V. Vaughan <gary@gnu.org> |
| 5 | # |
| 6 | # This file is free software; the Free Software Foundation gives |
| 7 | # unlimited permission to copy and/or distribute it, with or without |
| 8 | # modifications, as long as this notice is preserved. |
| 9 | |
| 10 | # serial 5 argz.m4 |
| 11 | |
| 12 | AC_DEFUN([gl_FUNC_ARGZ], |
| 13 | [gl_PREREQ_ARGZ |
| 14 | |
| 15 | AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT]) |
| 16 | |
| 17 | AC_CHECK_TYPES([error_t], |
| 18 | [], |
| 19 | [AC_DEFINE([error_t], [int], |
| 20 | [Define to a type to use for `error_t' if it is not otherwise available.]) |
| 21 | AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h |
| 22 | does not typedef error_t.])], |
| 23 | [#if defined(HAVE_ARGZ_H) |
| 24 | # include <argz.h> |
| 25 | #endif]) |
| 26 | |
| 27 | ARGZ_H= |
| 28 | AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \ |
| 29 | argz_next argz_stringify], [], [ARGZ_H=argz.h; AC_LIBOBJ([argz])]) |
| 30 | |
| 31 | dnl if have system argz functions, allow forced use of |
| 32 | dnl libltdl-supplied implementation (and default to do so |
| 33 | dnl on "known bad" systems). Could use a runtime check, but |
| 34 | dnl (a) detecting malloc issues is notoriously unreliable |
| 35 | dnl (b) only known system that declares argz functions, |
| 36 | dnl provides them, yet they are broken, is cygwin |
| 37 | dnl releases prior to 16-Mar-2007 (1.5.24 and earlier) |
| 38 | dnl So, it's more straightforward simply to special case |
| 39 | dnl this for known bad systems. |
| 40 | AS_IF([test -z "$ARGZ_H"], |
| 41 | [AC_CACHE_CHECK( |
| 42 | [if argz actually works], |
| 43 | [lt_cv_sys_argz_works], |
| 44 | [[case $host_os in #( |
| 45 | *cygwin*) |
| 46 | lt_cv_sys_argz_works=no |
| 47 | if test "$cross_compiling" != no; then |
| 48 | lt_cv_sys_argz_works="guessing no" |
| 49 | else |
| 50 | lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/' |
| 51 | save_IFS=$IFS |
| 52 | IFS=-. |
| 53 | set x `uname -r | sed -e "$lt_sed_extract_leading_digits"` |
| 54 | IFS=$save_IFS |
| 55 | lt_os_major=${2-0} |
| 56 | lt_os_minor=${3-0} |
| 57 | lt_os_micro=${4-0} |
| 58 | if test "$lt_os_major" -gt 1 \ |
| 59 | || { test "$lt_os_major" -eq 1 \ |
| 60 | && { test "$lt_os_minor" -gt 5 \ |
| 61 | || { test "$lt_os_minor" -eq 5 \ |
| 62 | && test "$lt_os_micro" -gt 24; }; }; }; then |
| 63 | lt_cv_sys_argz_works=yes |
| 64 | fi |
| 65 | fi |
| 66 | ;; #( |
| 67 | *) lt_cv_sys_argz_works=yes ;; |
| 68 | esac]]) |
| 69 | AS_IF([test $lt_cv_sys_argz_works = yes], |
| 70 | [AC_DEFINE([HAVE_WORKING_ARGZ], 1, |
| 71 | [This value is set to 1 to indicate that the system argz facility works])], |
| 72 | [ARGZ_H=argz.h |
| 73 | AC_LIBOBJ([argz])])]) |
| 74 | |
| 75 | AC_SUBST([ARGZ_H]) |
| 76 | ]) |
| 77 | |
| 78 | # Prerequisites of lib/argz.c. |
| 79 | AC_DEFUN([gl_PREREQ_ARGZ], [:]) |