maint: update copyright
[gnulib.git] / m4 / argz.m4
1 # Portability macros for glibc argz.                    -*- Autoconf -*-
2 #
3 #   Copyright (C) 2004-2014 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 11 argz.m4
11
12 AC_DEFUN([gl_FUNC_ARGZ],
13 [gl_PREREQ_ARGZ
14
15 AC_REQUIRE([AC_C_RESTRICT])
16
17 AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT])
18
19 AC_CHECK_TYPES([error_t],
20   [],
21   [AC_DEFINE([error_t], [int],
22    [Define to a type to use for 'error_t' if it is not otherwise available.])
23    AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h
24     does not typedef error_t.])],
25   [#if defined(HAVE_ARGZ_H)
26 #  include <argz.h>
27 #endif])
28
29 ARGZ_H=
30 AC_CHECK_FUNC([argz_replace], [], [ARGZ_H=argz.h])
31
32 dnl if have system argz functions, allow forced use of
33 dnl libltdl-supplied implementation (and default to do so
34 dnl on "known bad" systems). Could use a runtime check, but
35 dnl (a) detecting malloc issues is notoriously unreliable
36 dnl (b) only known system that declares argz functions,
37 dnl     provides them, yet they are broken, is cygwin
38 dnl     releases prior to 5-May-2007 (1.5.24 and earlier)
39 dnl So, it's more straightforward simply to special case
40 dnl this for known bad systems.
41 AS_IF([test -z "$ARGZ_H"],
42     [AC_CACHE_CHECK(
43         [if argz actually works],
44         [lt_cv_sys_argz_works],
45         [[case $host_os in #(
46          *cygwin*)
47            lt_cv_sys_argz_works=no
48            if test "$cross_compiling" != no; then
49              lt_cv_sys_argz_works="guessing no"
50            else
51              lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/'
52              save_IFS=$IFS
53              IFS=-.
54              set x `uname -r | sed -e "$lt_sed_extract_leading_digits"`
55              IFS=$save_IFS
56              lt_os_major=${2-0}
57              lt_os_minor=${3-0}
58              lt_os_micro=${4-0}
59              if test "$lt_os_major" -gt 1 \
60                 || { test "$lt_os_major" -eq 1 \
61                   && { test "$lt_os_minor" -gt 5 \
62                     || { test "$lt_os_minor" -eq 5 \
63                       && test "$lt_os_micro" -gt 24; }; }; }; then
64                lt_cv_sys_argz_works=yes
65              fi
66            fi
67            ;; #(
68          *) lt_cv_sys_argz_works=yes ;;
69          esac]])
70      AS_IF([test "$lt_cv_sys_argz_works" = yes],
71         [AC_DEFINE([HAVE_WORKING_ARGZ], [1],
72                    [This value is set to 1 to indicate that the system argz facility works])],
73         [ARGZ_H=argz.h])])
74
75 AC_SUBST([ARGZ_H])
76 AM_CONDITIONAL([GL_GENERATE_ARGZ_H], [test -n "$ARGZ_H"])
77 ])
78
79 # Prerequisites of lib/argz.c.
80 AC_DEFUN([gl_PREREQ_ARGZ], [:])