diff options
Diffstat (limited to 'gl/m4')
89 files changed, 6900 insertions, 0 deletions
diff --git a/gl/m4/absolute-header.m4 b/gl/m4/absolute-header.m4 new file mode 100644 index 00000000..c649df08 --- /dev/null +++ b/gl/m4/absolute-header.m4 | |||
@@ -0,0 +1,44 @@ | |||
1 | # absolute-header.m4 serial 6 | ||
2 | dnl Copyright (C) 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Derek Price. | ||
8 | |||
9 | # gl_ABSOLUTE_HEADER(HEADER1 HEADER2 ...) | ||
10 | # --------------------------------------- | ||
11 | # Find the absolute name of a header file, assuming the header exists. | ||
12 | # If the header were sys/inttypes.h, this macro would define | ||
13 | # ABSOLUTE_SYS_INTTYPES_H to the `""' quoted absolute name of sys/inttypes.h | ||
14 | # in config.h | ||
15 | # (e.g. `#define ABSOLUTE_SYS_INTTYPES_H "///usr/include/sys/inttypes.h"'). | ||
16 | # The three "///" are to pacify Sun C 5.8, which otherwise would say | ||
17 | # "warning: #include of /usr/include/... may be non-portable". | ||
18 | # Use `""', not `<>', so that the /// cannot be confused with a C99 comment. | ||
19 | AC_DEFUN([gl_ABSOLUTE_HEADER], | ||
20 | [AC_LANG_PREPROC_REQUIRE()dnl | ||
21 | AC_FOREACH([gl_HEADER_NAME], [$1], | ||
22 | [AS_VAR_PUSHDEF([gl_absolute_header], | ||
23 | [gl_cv_absolute_]m4_quote(m4_defn([gl_HEADER_NAME])))dnl | ||
24 | AC_CACHE_CHECK([absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>], | ||
25 | m4_quote(m4_defn([gl_absolute_header])), | ||
26 | [AS_VAR_PUSHDEF([ac_header_exists], | ||
27 | [ac_cv_header_]m4_quote(m4_defn([gl_HEADER_NAME])))dnl | ||
28 | AC_CHECK_HEADERS_ONCE(m4_quote(m4_defn([gl_HEADER_NAME])))dnl | ||
29 | if test AS_VAR_GET(ac_header_exists) = yes; then | ||
30 | AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]])]) | ||
31 | dnl eval is necessary to expand ac_cpp. | ||
32 | dnl Ultrix and Pyramid sh refuse to redirect output of eval, so use subshell. | ||
33 | AS_VAR_SET(gl_absolute_header, | ||
34 | [`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | | ||
35 | sed -n '\#/]m4_quote(m4_defn([gl_HEADER_NAME]))[#{s#.*"\(.*/]m4_quote(m4_defn([gl_HEADER_NAME]))[\)".*#\1#;s#^/[^/]#//&#;p;q;}'`]) | ||
36 | fi | ||
37 | AS_VAR_POPDEF([ac_header_exists])dnl | ||
38 | ])dnl | ||
39 | AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_quote(m4_defn([gl_HEADER_NAME]))), | ||
40 | ["AS_VAR_GET(gl_absolute_header)"], | ||
41 | [Define this to an absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>.]) | ||
42 | AS_VAR_POPDEF([gl_absolute_header])dnl | ||
43 | ])dnl | ||
44 | ])# gl_ABSOLUTE_HEADER | ||
diff --git a/gl/m4/alloca.m4 b/gl/m4/alloca.m4 new file mode 100644 index 00000000..eb62e0e7 --- /dev/null +++ b/gl/m4/alloca.m4 | |||
@@ -0,0 +1,50 @@ | |||
1 | # alloca.m4 serial 7 | ||
2 | dnl Copyright (C) 2002-2004, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_FUNC_ALLOCA], | ||
8 | [ | ||
9 | dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57. | ||
10 | AC_REQUIRE([AC_PROG_CPP]) | ||
11 | AC_REQUIRE([AC_PROG_EGREP]) | ||
12 | |||
13 | AC_REQUIRE([AC_FUNC_ALLOCA]) | ||
14 | if test $ac_cv_func_alloca_works = no; then | ||
15 | gl_PREREQ_ALLOCA | ||
16 | fi | ||
17 | |||
18 | # Define an additional variable used in the Makefile substitution. | ||
19 | if test $ac_cv_working_alloca_h = yes; then | ||
20 | AC_CACHE_CHECK([for alloca as a compiler built-in], [gl_cv_rpl_alloca], [ | ||
21 | AC_EGREP_CPP([Need own alloca], [ | ||
22 | #if defined __GNUC__ || defined _AIX || defined _MSC_VER | ||
23 | Need own alloca | ||
24 | #endif | ||
25 | ], [gl_cv_rpl_alloca=yes], [gl_cv_rpl_alloca=no]) | ||
26 | ]) | ||
27 | if test $gl_cv_rpl_alloca = yes; then | ||
28 | dnl OK, alloca can be implemented through a compiler built-in. | ||
29 | AC_DEFINE([HAVE_ALLOCA], 1, | ||
30 | [Define to 1 if you have 'alloca' after including <alloca.h>, | ||
31 | a header that may be supplied by this distribution.]) | ||
32 | ALLOCA_H=alloca.h | ||
33 | else | ||
34 | dnl alloca exists as a library function, i.e. it is slow and probably | ||
35 | dnl a memory leak. Don't define HAVE_ALLOCA in this case. | ||
36 | ALLOCA_H= | ||
37 | fi | ||
38 | else | ||
39 | ALLOCA_H=alloca.h | ||
40 | fi | ||
41 | AC_SUBST([ALLOCA_H]) | ||
42 | |||
43 | AC_DEFINE(HAVE_ALLOCA_H, 1, | ||
44 | [Define HAVE_ALLOCA_H for backward compatibility with older code | ||
45 | that includes <alloca.h> only if HAVE_ALLOCA_H is defined.]) | ||
46 | ]) | ||
47 | |||
48 | # Prerequisites of lib/alloca.c. | ||
49 | # STACK_DIRECTION is already handled by AC_FUNC_ALLOCA. | ||
50 | AC_DEFUN([gl_PREREQ_ALLOCA], [:]) | ||
diff --git a/gl/m4/arpa_inet_h.m4 b/gl/m4/arpa_inet_h.m4 new file mode 100644 index 00000000..d01d0984 --- /dev/null +++ b/gl/m4/arpa_inet_h.m4 | |||
@@ -0,0 +1,18 @@ | |||
1 | # arpa_inet_h.m4 serial 1 | ||
2 | dnl Copyright (C) 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl Written by Simon Josefsson | ||
8 | |||
9 | AC_DEFUN([gl_HEADER_ARPA_INET], | ||
10 | [ | ||
11 | AC_CHECK_HEADERS_ONCE([arpa/inet.h]) | ||
12 | if test $ac_cv_header_arpa_inet_h = yes; then | ||
13 | ARPA_INET_H='' | ||
14 | else | ||
15 | ARPA_INET_H='arpa/inet.h' | ||
16 | fi | ||
17 | AC_SUBST(ARPA_INET_H) | ||
18 | ]) | ||
diff --git a/gl/m4/c-strtod.m4 b/gl/m4/c-strtod.m4 new file mode 100644 index 00000000..7f206c71 --- /dev/null +++ b/gl/m4/c-strtod.m4 | |||
@@ -0,0 +1,53 @@ | |||
1 | # c-strtod.m4 serial 9 | ||
2 | |||
3 | # Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. | ||
4 | # This file is free software; the Free Software Foundation | ||
5 | # gives unlimited permission to copy and/or distribute it, | ||
6 | # with or without modifications, as long as this notice is preserved. | ||
7 | |||
8 | # Written by Paul Eggert. | ||
9 | |||
10 | AC_DEFUN([gl_C99_STRTOLD], | ||
11 | [ | ||
12 | AC_CACHE_CHECK([whether strtold conforms to C99], | ||
13 | [gl_cv_func_c99_strtold], | ||
14 | [AC_LINK_IFELSE( | ||
15 | [AC_LANG_PROGRAM( | ||
16 | [[/* On HP-UX before 11.23, strtold returns a struct instead of | ||
17 | long double. Reject implementations like that, by requiring | ||
18 | compatibility with the C99 prototype. */ | ||
19 | #include <stdlib.h> | ||
20 | static long double (*p) (char const *, char **) = strtold; | ||
21 | static long double | ||
22 | test (char const *nptr, char **endptr) | ||
23 | { | ||
24 | long double r; | ||
25 | r = strtold (nptr, endptr); | ||
26 | return r; | ||
27 | }]], | ||
28 | [[return test ("1.0", NULL) != 1 || p ("1.0", NULL) != 1;]])], | ||
29 | [gl_cv_func_c99_strtold=yes], | ||
30 | [gl_cv_func_c99_strtold=no])]) | ||
31 | if test $gl_cv_func_c99_strtold = yes; then | ||
32 | AC_DEFINE([HAVE_C99_STRTOLD], 1, [Define to 1 if strtold conforms to C99.]) | ||
33 | fi | ||
34 | ]) | ||
35 | |||
36 | AC_DEFUN([gl_C_STRTOD], | ||
37 | [ | ||
38 | AC_LIBOBJ([c-strtod]) | ||
39 | |||
40 | dnl Prerequisites of lib/c-strtod.c. | ||
41 | AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) | ||
42 | : | ||
43 | ]) | ||
44 | |||
45 | AC_DEFUN([gl_C_STRTOLD], | ||
46 | [ | ||
47 | AC_LIBOBJ([c-strtold]) | ||
48 | |||
49 | dnl Prerequisites of lib/c-strtold.c. | ||
50 | AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) | ||
51 | AC_REQUIRE([gl_C99_STRTOLD]) | ||
52 | : | ||
53 | ]) | ||
diff --git a/gl/m4/cloexec.m4 b/gl/m4/cloexec.m4 new file mode 100644 index 00000000..4c4e26a1 --- /dev/null +++ b/gl/m4/cloexec.m4 | |||
@@ -0,0 +1,10 @@ | |||
1 | #serial 6 | ||
2 | dnl Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_CLOEXEC], | ||
8 | [ | ||
9 | AC_LIBOBJ([cloexec]) | ||
10 | ]) | ||
diff --git a/gl/m4/codeset.m4 b/gl/m4/codeset.m4 new file mode 100644 index 00000000..223955b4 --- /dev/null +++ b/gl/m4/codeset.m4 | |||
@@ -0,0 +1,21 @@ | |||
1 | # codeset.m4 serial 2 (gettext-0.16) | ||
2 | dnl Copyright (C) 2000-2002, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Bruno Haible. | ||
8 | |||
9 | AC_DEFUN([AM_LANGINFO_CODESET], | ||
10 | [ | ||
11 | AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, | ||
12 | [AC_TRY_LINK([#include <langinfo.h>], | ||
13 | [char* cs = nl_langinfo(CODESET); return !cs;], | ||
14 | am_cv_langinfo_codeset=yes, | ||
15 | am_cv_langinfo_codeset=no) | ||
16 | ]) | ||
17 | if test $am_cv_langinfo_codeset = yes; then | ||
18 | AC_DEFINE(HAVE_LANGINFO_CODESET, 1, | ||
19 | [Define if you have <langinfo.h> and nl_langinfo(CODESET).]) | ||
20 | fi | ||
21 | ]) | ||
diff --git a/gl/m4/dirname.m4 b/gl/m4/dirname.m4 new file mode 100644 index 00000000..e35da965 --- /dev/null +++ b/gl/m4/dirname.m4 | |||
@@ -0,0 +1,18 @@ | |||
1 | #serial 7 -*- autoconf -*- | ||
2 | dnl Copyright (C) 2002-2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_DIRNAME], | ||
8 | [ | ||
9 | AC_LIBOBJ([basename]) | ||
10 | AC_LIBOBJ([dirname]) | ||
11 | AC_LIBOBJ([stripslash]) | ||
12 | |||
13 | dnl Prerequisites of lib/dirname.h. | ||
14 | AC_REQUIRE([gl_AC_DOS]) | ||
15 | AC_REQUIRE([gl_DOUBLE_SLASH_ROOT]) | ||
16 | |||
17 | dnl No prerequisites of lib/basename.c, lib/dirname.c, lib/stripslash.c. | ||
18 | ]) | ||
diff --git a/gl/m4/dos.m4 b/gl/m4/dos.m4 new file mode 100644 index 00000000..dd59571c --- /dev/null +++ b/gl/m4/dos.m4 | |||
@@ -0,0 +1,71 @@ | |||
1 | #serial 10 -*- autoconf -*- | ||
2 | |||
3 | # Define some macros required for proper operation of code in lib/*.c | ||
4 | # on MSDOS/Windows systems. | ||
5 | |||
6 | # Copyright (C) 2000, 2001, 2004, 2005, 2006 Free Software Foundation, Inc. | ||
7 | # This file is free software; the Free Software Foundation | ||
8 | # gives unlimited permission to copy and/or distribute it, | ||
9 | # with or without modifications, as long as this notice is preserved. | ||
10 | |||
11 | # From Jim Meyering. | ||
12 | |||
13 | AC_DEFUN([gl_AC_DOS], | ||
14 | [ | ||
15 | AC_CACHE_CHECK([whether system is Windows or MSDOS], [ac_cv_win_or_dos], | ||
16 | [ | ||
17 | AC_TRY_COMPILE([], | ||
18 | [#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __CYGWIN__ | ||
19 | neither MSDOS nor Windows | ||
20 | #endif], | ||
21 | [ac_cv_win_or_dos=yes], | ||
22 | [ac_cv_win_or_dos=no]) | ||
23 | ]) | ||
24 | |||
25 | if test x"$ac_cv_win_or_dos" = xyes; then | ||
26 | ac_fs_accepts_drive_letter_prefix=1 | ||
27 | ac_fs_backslash_is_file_name_separator=1 | ||
28 | AC_CACHE_CHECK([whether drive letter can start relative path], | ||
29 | [ac_cv_drive_letter_can_be_relative], | ||
30 | [ | ||
31 | AC_TRY_COMPILE([], | ||
32 | [#if defined __CYGWIN__ | ||
33 | drive letters are always absolute | ||
34 | #endif], | ||
35 | [ac_cv_drive_letter_can_be_relative=yes], | ||
36 | [ac_cv_drive_letter_can_be_relative=no]) | ||
37 | ]) | ||
38 | if test x"$ac_cv_drive_letter_can_be_relative" = xyes; then | ||
39 | ac_fs_drive_letter_can_be_relative=1 | ||
40 | else | ||
41 | ac_fs_drive_letter_can_be_relative=0 | ||
42 | fi | ||
43 | else | ||
44 | ac_fs_accepts_drive_letter_prefix=0 | ||
45 | ac_fs_backslash_is_file_name_separator=0 | ||
46 | ac_fs_drive_letter_can_be_relative=0 | ||
47 | fi | ||
48 | |||
49 | AC_DEFINE_UNQUOTED([FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX], | ||
50 | $ac_fs_accepts_drive_letter_prefix, | ||
51 | [Define on systems for which file names may have a so-called | ||
52 | `drive letter' prefix, define this to compute the length of that | ||
53 | prefix, including the colon.]) | ||
54 | |||
55 | AH_VERBATIM(ISSLASH, | ||
56 | [#if FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR | ||
57 | # define ISSLASH(C) ((C) == '/' || (C) == '\\') | ||
58 | #else | ||
59 | # define ISSLASH(C) ((C) == '/') | ||
60 | #endif]) | ||
61 | |||
62 | AC_DEFINE_UNQUOTED([FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR], | ||
63 | $ac_fs_backslash_is_file_name_separator, | ||
64 | [Define if the backslash character may also serve as a file name | ||
65 | component separator.]) | ||
66 | |||
67 | AC_DEFINE_UNQUOTED([FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE], | ||
68 | $ac_fs_drive_letter_can_be_relative, | ||
69 | [Define if a drive letter prefix denotes a relative path if it is | ||
70 | not followed by a file name component separator.]) | ||
71 | ]) | ||
diff --git a/gl/m4/double-slash-root.m4 b/gl/m4/double-slash-root.m4 new file mode 100644 index 00000000..69d60d01 --- /dev/null +++ b/gl/m4/double-slash-root.m4 | |||
@@ -0,0 +1,38 @@ | |||
1 | # double-slash-root.m4 serial 2 -*- Autoconf -*- | ||
2 | dnl Copyright (C) 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_DOUBLE_SLASH_ROOT], | ||
8 | [ | ||
9 | AC_REQUIRE([AC_CANONICAL_HOST]) | ||
10 | AC_CACHE_CHECK([whether // is distinct from /], [gl_cv_double_slash_root], | ||
11 | [ if test x"$cross_compiling" = xyes ; then | ||
12 | # When cross-compiling, there is no way to tell whether // is special | ||
13 | # short of a list of hosts. However, the only known hosts to date | ||
14 | # that have a distinct // are Apollo DomainOS (too old to port to), | ||
15 | # Cygwin, and z/OS. If anyone knows of another system for which // has | ||
16 | # special semantics and is distinct from /, please report it to | ||
17 | # <bug-gnulib@gnu.org>. | ||
18 | case $host in | ||
19 | *-cygwin | i370-ibm-openedition) | ||
20 | gl_cv_double_slash_root=yes ;; | ||
21 | *) | ||
22 | # Be optimistic and assume that / and // are the same when we | ||
23 | # don't know. | ||
24 | gl_cv_double_slash_root='unknown, assuming no' ;; | ||
25 | esac | ||
26 | else | ||
27 | set x `ls -di / //` | ||
28 | if test $[2] = $[4] && wc //dev/null >/dev/null 2>&1; then | ||
29 | gl_cv_double_slash_root=no | ||
30 | else | ||
31 | gl_cv_double_slash_root=yes | ||
32 | fi | ||
33 | fi]) | ||
34 | if test "$gl_cv_double_slash_root" = yes; then | ||
35 | AC_DEFINE([DOUBLE_SLASH_IS_DISTINCT_ROOT], 1, | ||
36 | [Define to 1 if // is a file system root distinct from /.]) | ||
37 | fi | ||
38 | ]) | ||
diff --git a/gl/m4/eoverflow.m4 b/gl/m4/eoverflow.m4 new file mode 100644 index 00000000..3bffd10e --- /dev/null +++ b/gl/m4/eoverflow.m4 | |||
@@ -0,0 +1,70 @@ | |||
1 | # eoverflow.m4 serial 2 | ||
2 | dnl Copyright (C) 2004, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Bruno Haible. | ||
8 | |||
9 | # The EOVERFLOW errno value ought to be defined in <errno.h>, according to | ||
10 | # POSIX. But some systems (like AIX 3) don't define it, and some systems | ||
11 | # (like OSF/1) define it when _XOPEN_SOURCE_EXTENDED is defined. | ||
12 | |||
13 | # Define EOVERFLOW as a C macro and as a substituted macro in such a way that | ||
14 | # 1. on all systems, after inclusion of <errno.h>, EOVERFLOW is usable, | ||
15 | # 2. on systems where EOVERFLOW is defined elsewhere, we use the same numeric | ||
16 | # value. | ||
17 | |||
18 | AC_DEFUN([gl_EOVERFLOW], | ||
19 | [ | ||
20 | AC_REQUIRE([AC_PROG_CC])dnl | ||
21 | |||
22 | AC_CACHE_CHECK([for EOVERFLOW], ac_cv_decl_EOVERFLOW, [ | ||
23 | AC_EGREP_CPP(yes,[ | ||
24 | #include <errno.h> | ||
25 | #ifdef EOVERFLOW | ||
26 | yes | ||
27 | #endif | ||
28 | ], have_eoverflow=1) | ||
29 | if test -n "$have_eoverflow"; then | ||
30 | dnl EOVERFLOW exists in <errno.h>. Don't need to define EOVERFLOW ourselves. | ||
31 | ac_cv_decl_EOVERFLOW=yes | ||
32 | else | ||
33 | AC_EGREP_CPP(yes,[ | ||
34 | #define _XOPEN_SOURCE_EXTENDED 1 | ||
35 | #include <errno.h> | ||
36 | #ifdef EOVERFLOW | ||
37 | yes | ||
38 | #endif | ||
39 | ], have_eoverflow=1) | ||
40 | if test -n "$have_eoverflow"; then | ||
41 | dnl EOVERFLOW exists but is hidden. | ||
42 | dnl Define it to the same value. | ||
43 | AC_COMPUTE_INT([ac_cv_decl_EOVERFLOW], [EOVERFLOW], [ | ||
44 | #define _XOPEN_SOURCE_EXTENDED 1 | ||
45 | #include <errno.h> | ||
46 | /* The following two lines are a workaround against an autoconf-2.52 bug. */ | ||
47 | #include <stdio.h> | ||
48 | #include <stdlib.h> | ||
49 | ]) | ||
50 | else | ||
51 | dnl EOVERFLOW isn't defined by the system. Define EOVERFLOW ourselves, but | ||
52 | dnl don't define it as EINVAL, because snprintf() callers want to | ||
53 | dnl distinguish EINVAL and EOVERFLOW. | ||
54 | ac_cv_decl_EOVERFLOW=E2BIG | ||
55 | fi | ||
56 | fi | ||
57 | ]) | ||
58 | if test "$ac_cv_decl_EOVERFLOW" != yes; then | ||
59 | AC_DEFINE_UNQUOTED([EOVERFLOW], [$ac_cv_decl_EOVERFLOW], | ||
60 | [Define as good substitute value for EOVERFLOW.]) | ||
61 | EOVERFLOW="$ac_cv_decl_EOVERFLOW" | ||
62 | AC_SUBST(EOVERFLOW) | ||
63 | fi | ||
64 | ]) | ||
65 | |||
66 | dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. | ||
67 | dnl Remove this when we can assume autoconf >= 2.61. | ||
68 | m4_ifdef([AC_COMPUTE_INT], [], [ | ||
69 | AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) | ||
70 | ]) | ||
diff --git a/gl/m4/error.m4 b/gl/m4/error.m4 new file mode 100644 index 00000000..7c7746e2 --- /dev/null +++ b/gl/m4/error.m4 | |||
@@ -0,0 +1,22 @@ | |||
1 | #serial 11 | ||
2 | |||
3 | # Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2004 Free Software | ||
4 | # Foundation, Inc. | ||
5 | # | ||
6 | # This file is free software; the Free Software Foundation | ||
7 | # gives unlimited permission to copy and/or distribute it, | ||
8 | # with or without modifications, as long as this notice is preserved. | ||
9 | |||
10 | AC_DEFUN([gl_ERROR], | ||
11 | [ | ||
12 | AC_FUNC_ERROR_AT_LINE | ||
13 | dnl Note: AC_FUNC_ERROR_AT_LINE does AC_LIBSOURCES([error.h, error.c]). | ||
14 | gl_PREREQ_ERROR | ||
15 | ]) | ||
16 | |||
17 | # Prerequisites of lib/error.c. | ||
18 | AC_DEFUN([gl_PREREQ_ERROR], | ||
19 | [ | ||
20 | AC_REQUIRE([AC_FUNC_STRERROR_R]) | ||
21 | : | ||
22 | ]) | ||
diff --git a/gl/m4/exitfail.m4 b/gl/m4/exitfail.m4 new file mode 100644 index 00000000..b7a691e5 --- /dev/null +++ b/gl/m4/exitfail.m4 | |||
@@ -0,0 +1,13 @@ | |||
1 | # exitfail.m4 serial 6 | ||
2 | dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_EXITFAIL], | ||
8 | [ | ||
9 | AC_LIBOBJ([exitfail]) | ||
10 | |||
11 | dnl No prerequisites of lib/exitfail.c. | ||
12 | : | ||
13 | ]) | ||
diff --git a/gl/m4/extensions.m4 b/gl/m4/extensions.m4 new file mode 100644 index 00000000..143a9e54 --- /dev/null +++ b/gl/m4/extensions.m4 | |||
@@ -0,0 +1,58 @@ | |||
1 | # serial 4 -*- Autoconf -*- | ||
2 | # Enable extensions on systems that normally disable them. | ||
3 | |||
4 | # Copyright (C) 2003, 2006 Free Software Foundation, Inc. | ||
5 | # This file is free software; the Free Software Foundation | ||
6 | # gives unlimited permission to copy and/or distribute it, | ||
7 | # with or without modifications, as long as this notice is preserved. | ||
8 | |||
9 | # This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from CVS | ||
10 | # Autoconf. Perhaps we can remove this once we can assume Autoconf | ||
11 | # 2.61 or later everywhere, but since CVS Autoconf mutates rapidly | ||
12 | # enough in this area it's likely we'll need to redefine | ||
13 | # AC_USE_SYSTEM_EXTENSIONS for quite some time. | ||
14 | |||
15 | # AC_USE_SYSTEM_EXTENSIONS | ||
16 | # ------------------------ | ||
17 | # Enable extensions on systems that normally disable them, | ||
18 | # typically due to standards-conformance issues. | ||
19 | AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS], | ||
20 | [ | ||
21 | AC_BEFORE([$0], [AC_COMPILE_IFELSE]) | ||
22 | AC_BEFORE([$0], [AC_RUN_IFELSE]) | ||
23 | |||
24 | AC_REQUIRE([AC_GNU_SOURCE]) | ||
25 | AC_REQUIRE([AC_AIX]) | ||
26 | AC_REQUIRE([AC_MINIX]) | ||
27 | |||
28 | AH_VERBATIM([__EXTENSIONS__], | ||
29 | [/* Enable extensions on Solaris. */ | ||
30 | #ifndef __EXTENSIONS__ | ||
31 | # undef __EXTENSIONS__ | ||
32 | #endif | ||
33 | #ifndef _POSIX_PTHREAD_SEMANTICS | ||
34 | # undef _POSIX_PTHREAD_SEMANTICS | ||
35 | #endif | ||
36 | #ifndef _TANDEM_SOURCE | ||
37 | # undef _TANDEM_SOURCE | ||
38 | #endif]) | ||
39 | AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__], | ||
40 | [ac_cv_safe_to_define___extensions__], | ||
41 | [AC_COMPILE_IFELSE( | ||
42 | [AC_LANG_PROGRAM([ | ||
43 | # define __EXTENSIONS__ 1 | ||
44 | AC_INCLUDES_DEFAULT])], | ||
45 | [ac_cv_safe_to_define___extensions__=yes], | ||
46 | [ac_cv_safe_to_define___extensions__=no])]) | ||
47 | test $ac_cv_safe_to_define___extensions__ = yes && | ||
48 | AC_DEFINE([__EXTENSIONS__]) | ||
49 | AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) | ||
50 | AC_DEFINE([_TANDEM_SOURCE]) | ||
51 | ]) | ||
52 | |||
53 | # gl_USE_SYSTEM_EXTENSIONS | ||
54 | # ------------------------ | ||
55 | # Enable extensions on systems that normally disable them, | ||
56 | # typically due to standards-conformance issues. | ||
57 | AC_DEFUN([gl_USE_SYSTEM_EXTENSIONS], | ||
58 | [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])]) | ||
diff --git a/gl/m4/fcntl-safer.m4 b/gl/m4/fcntl-safer.m4 new file mode 100644 index 00000000..3475b0a7 --- /dev/null +++ b/gl/m4/fcntl-safer.m4 | |||
@@ -0,0 +1,11 @@ | |||
1 | #serial 5 | ||
2 | dnl Copyright (C) 2005-2007 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_FCNTL_SAFER], | ||
8 | [ | ||
9 | AC_LIBOBJ([open-safer]) | ||
10 | AC_LIBOBJ([creat-safer]) | ||
11 | ]) | ||
diff --git a/gl/m4/fstypename.m4 b/gl/m4/fstypename.m4 new file mode 100644 index 00000000..aa676f3a --- /dev/null +++ b/gl/m4/fstypename.m4 | |||
@@ -0,0 +1,22 @@ | |||
1 | #serial 6 | ||
2 | |||
3 | dnl From Jim Meyering. | ||
4 | dnl | ||
5 | dnl See if struct statfs has the f_fstypename member. | ||
6 | dnl If so, define HAVE_STRUCT_STATFS_F_FSTYPENAME. | ||
7 | dnl | ||
8 | |||
9 | # Copyright (C) 1998, 1999, 2001, 2004, 2006 Free Software Foundation, Inc. | ||
10 | # This file is free software; the Free Software Foundation | ||
11 | # gives unlimited permission to copy and/or distribute it, | ||
12 | # with or without modifications, as long as this notice is preserved. | ||
13 | |||
14 | AC_DEFUN([gl_FSTYPENAME], | ||
15 | [ | ||
16 | AC_CHECK_MEMBERS([struct statfs.f_fstypename],,, | ||
17 | [ | ||
18 | #include <sys/types.h> | ||
19 | #include <sys/param.h> | ||
20 | #include <sys/mount.h> | ||
21 | ]) | ||
22 | ]) | ||
diff --git a/gl/m4/fsusage.m4 b/gl/m4/fsusage.m4 new file mode 100644 index 00000000..08bf06c9 --- /dev/null +++ b/gl/m4/fsusage.m4 | |||
@@ -0,0 +1,265 @@ | |||
1 | #serial 22 | ||
2 | # Obtaining file system usage information. | ||
3 | |||
4 | # Copyright (C) 1997, 1998, 2000, 2001, 2003, 2004, 2005, 2006 Free Software | ||
5 | # Foundation, Inc. | ||
6 | # | ||
7 | # This file is free software; the Free Software Foundation | ||
8 | # gives unlimited permission to copy and/or distribute it, | ||
9 | # with or without modifications, as long as this notice is preserved. | ||
10 | |||
11 | # Written by Jim Meyering. | ||
12 | |||
13 | AC_DEFUN([gl_FSUSAGE], | ||
14 | [ | ||
15 | AC_CHECK_HEADERS_ONCE(sys/param.h) | ||
16 | AC_CHECK_HEADERS_ONCE(sys/vfs.h sys/fs_types.h) | ||
17 | AC_CHECK_HEADERS(sys/mount.h, [], [], | ||
18 | [AC_INCLUDES_DEFAULT | ||
19 | [#if HAVE_SYS_PARAM_H | ||
20 | #include <sys/param.h> | ||
21 | #endif]]) | ||
22 | gl_FILE_SYSTEM_USAGE([gl_cv_fs_space=yes], [gl_cv_fs_space=no]) | ||
23 | if test $gl_cv_fs_space = yes; then | ||
24 | AC_LIBOBJ(fsusage) | ||
25 | gl_PREREQ_FSUSAGE_EXTRA | ||
26 | fi | ||
27 | ]) | ||
28 | |||
29 | # Try to determine how a program can obtain file system usage information. | ||
30 | # If successful, define the appropriate symbol (see fsusage.c) and | ||
31 | # execute ACTION-IF-FOUND. Otherwise, execute ACTION-IF-NOT-FOUND. | ||
32 | # | ||
33 | # gl_FILE_SYSTEM_USAGE([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) | ||
34 | |||
35 | AC_DEFUN([gl_FILE_SYSTEM_USAGE], | ||
36 | [ | ||
37 | |||
38 | AC_MSG_NOTICE([checking how to get file system space usage]) | ||
39 | ac_fsusage_space=no | ||
40 | |||
41 | # Perform only the link test since it seems there are no variants of the | ||
42 | # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs) | ||
43 | # because that got a false positive on SCO OSR5. Adding the declaration | ||
44 | # of a `struct statvfs' causes this test to fail (as it should) on such | ||
45 | # systems. That system is reported to work fine with STAT_STATFS4 which | ||
46 | # is what it gets when this test fails. | ||
47 | if test $ac_fsusage_space = no; then | ||
48 | # SVR4 | ||
49 | AC_CACHE_CHECK([for statvfs function (SVR4)], fu_cv_sys_stat_statvfs, | ||
50 | [AC_TRY_LINK([#include <sys/types.h> | ||
51 | #if defined __GLIBC__ && !defined __BEOS__ | ||
52 | Do not use statvfs on systems with GNU libc, because that function stats | ||
53 | all preceding entries in /proc/mounts, and that makes df hang if even | ||
54 | one of the corresponding file systems is hard-mounted, but not available. | ||
55 | statvfs in GNU libc on BeOS operates differently: it only makes a system | ||
56 | call. | ||
57 | #endif | ||
58 | #include <sys/statvfs.h>], | ||
59 | [struct statvfs fsd; statvfs (0, &fsd);], | ||
60 | fu_cv_sys_stat_statvfs=yes, | ||
61 | fu_cv_sys_stat_statvfs=no)]) | ||
62 | if test $fu_cv_sys_stat_statvfs = yes; then | ||
63 | ac_fsusage_space=yes | ||
64 | AC_DEFINE(STAT_STATVFS, 1, | ||
65 | [ Define if there is a function named statvfs. (SVR4)]) | ||
66 | fi | ||
67 | fi | ||
68 | |||
69 | if test $ac_fsusage_space = no; then | ||
70 | # DEC Alpha running OSF/1 | ||
71 | AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)]) | ||
72 | AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1, | ||
73 | [AC_TRY_RUN([ | ||
74 | #include <sys/param.h> | ||
75 | #include <sys/types.h> | ||
76 | #include <sys/mount.h> | ||
77 | int | ||
78 | main () | ||
79 | { | ||
80 | struct statfs fsd; | ||
81 | fsd.f_fsize = 0; | ||
82 | return statfs (".", &fsd, sizeof (struct statfs)) != 0; | ||
83 | }], | ||
84 | fu_cv_sys_stat_statfs3_osf1=yes, | ||
85 | fu_cv_sys_stat_statfs3_osf1=no, | ||
86 | fu_cv_sys_stat_statfs3_osf1=no)]) | ||
87 | AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1) | ||
88 | if test $fu_cv_sys_stat_statfs3_osf1 = yes; then | ||
89 | ac_fsusage_space=yes | ||
90 | AC_DEFINE(STAT_STATFS3_OSF1, 1, | ||
91 | [ Define if statfs takes 3 args. (DEC Alpha running OSF/1)]) | ||
92 | fi | ||
93 | fi | ||
94 | |||
95 | if test $ac_fsusage_space = no; then | ||
96 | # AIX | ||
97 | AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl | ||
98 | member (AIX, 4.3BSD)]) | ||
99 | AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize, | ||
100 | [AC_TRY_RUN([ | ||
101 | #ifdef HAVE_SYS_PARAM_H | ||
102 | #include <sys/param.h> | ||
103 | #endif | ||
104 | #ifdef HAVE_SYS_MOUNT_H | ||
105 | #include <sys/mount.h> | ||
106 | #endif | ||
107 | #ifdef HAVE_SYS_VFS_H | ||
108 | #include <sys/vfs.h> | ||
109 | #endif | ||
110 | int | ||
111 | main () | ||
112 | { | ||
113 | struct statfs fsd; | ||
114 | fsd.f_bsize = 0; | ||
115 | return statfs (".", &fsd) != 0; | ||
116 | }], | ||
117 | fu_cv_sys_stat_statfs2_bsize=yes, | ||
118 | fu_cv_sys_stat_statfs2_bsize=no, | ||
119 | fu_cv_sys_stat_statfs2_bsize=no)]) | ||
120 | AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize) | ||
121 | if test $fu_cv_sys_stat_statfs2_bsize = yes; then | ||
122 | ac_fsusage_space=yes | ||
123 | AC_DEFINE(STAT_STATFS2_BSIZE, 1, | ||
124 | [ Define if statfs takes 2 args and struct statfs has a field named f_bsize. | ||
125 | (4.3BSD, SunOS 4, HP-UX, AIX PS/2)]) | ||
126 | fi | ||
127 | fi | ||
128 | |||
129 | if test $ac_fsusage_space = no; then | ||
130 | # SVR3 | ||
131 | AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)]) | ||
132 | AC_CACHE_VAL(fu_cv_sys_stat_statfs4, | ||
133 | [AC_TRY_RUN([#include <sys/types.h> | ||
134 | #include <sys/statfs.h> | ||
135 | int | ||
136 | main () | ||
137 | { | ||
138 | struct statfs fsd; | ||
139 | return statfs (".", &fsd, sizeof fsd, 0) != 0; | ||
140 | }], | ||
141 | fu_cv_sys_stat_statfs4=yes, | ||
142 | fu_cv_sys_stat_statfs4=no, | ||
143 | fu_cv_sys_stat_statfs4=no)]) | ||
144 | AC_MSG_RESULT($fu_cv_sys_stat_statfs4) | ||
145 | if test $fu_cv_sys_stat_statfs4 = yes; then | ||
146 | ac_fsusage_space=yes | ||
147 | AC_DEFINE(STAT_STATFS4, 1, | ||
148 | [ Define if statfs takes 4 args. (SVR3, Dynix, Irix, Dolphin)]) | ||
149 | fi | ||
150 | fi | ||
151 | |||
152 | if test $ac_fsusage_space = no; then | ||
153 | # 4.4BSD and NetBSD | ||
154 | AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl | ||
155 | member (4.4BSD and NetBSD)]) | ||
156 | AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize, | ||
157 | [AC_TRY_RUN([#include <sys/types.h> | ||
158 | #ifdef HAVE_SYS_PARAM_H | ||
159 | #include <sys/param.h> | ||
160 | #endif | ||
161 | #ifdef HAVE_SYS_MOUNT_H | ||
162 | #include <sys/mount.h> | ||
163 | #endif | ||
164 | int | ||
165 | main () | ||
166 | { | ||
167 | struct statfs fsd; | ||
168 | fsd.f_fsize = 0; | ||
169 | return statfs (".", &fsd) != 0; | ||
170 | }], | ||
171 | fu_cv_sys_stat_statfs2_fsize=yes, | ||
172 | fu_cv_sys_stat_statfs2_fsize=no, | ||
173 | fu_cv_sys_stat_statfs2_fsize=no)]) | ||
174 | AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize) | ||
175 | if test $fu_cv_sys_stat_statfs2_fsize = yes; then | ||
176 | ac_fsusage_space=yes | ||
177 | AC_DEFINE(STAT_STATFS2_FSIZE, 1, | ||
178 | [ Define if statfs takes 2 args and struct statfs has a field named f_fsize. | ||
179 | (4.4BSD, NetBSD)]) | ||
180 | fi | ||
181 | fi | ||
182 | |||
183 | if test $ac_fsusage_space = no; then | ||
184 | # Ultrix | ||
185 | AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)]) | ||
186 | AC_CACHE_VAL(fu_cv_sys_stat_fs_data, | ||
187 | [AC_TRY_RUN([#include <sys/types.h> | ||
188 | #ifdef HAVE_SYS_PARAM_H | ||
189 | #include <sys/param.h> | ||
190 | #endif | ||
191 | #ifdef HAVE_SYS_MOUNT_H | ||
192 | #include <sys/mount.h> | ||
193 | #endif | ||
194 | #ifdef HAVE_SYS_FS_TYPES_H | ||
195 | #include <sys/fs_types.h> | ||
196 | #endif | ||
197 | int | ||
198 | main () | ||
199 | { | ||
200 | struct fs_data fsd; | ||
201 | /* Ultrix's statfs returns 1 for success, | ||
202 | 0 for not mounted, -1 for failure. */ | ||
203 | return statfs (".", &fsd) != 1; | ||
204 | }], | ||
205 | fu_cv_sys_stat_fs_data=yes, | ||
206 | fu_cv_sys_stat_fs_data=no, | ||
207 | fu_cv_sys_stat_fs_data=no)]) | ||
208 | AC_MSG_RESULT($fu_cv_sys_stat_fs_data) | ||
209 | if test $fu_cv_sys_stat_fs_data = yes; then | ||
210 | ac_fsusage_space=yes | ||
211 | AC_DEFINE(STAT_STATFS2_FS_DATA, 1, | ||
212 | [ Define if statfs takes 2 args and the second argument has | ||
213 | type struct fs_data. (Ultrix)]) | ||
214 | fi | ||
215 | fi | ||
216 | |||
217 | if test $ac_fsusage_space = no; then | ||
218 | # SVR2 | ||
219 | AC_TRY_CPP([#include <sys/filsys.h> | ||
220 | ], | ||
221 | AC_DEFINE(STAT_READ_FILSYS, 1, | ||
222 | [Define if there is no specific function for reading file systems usage | ||
223 | information and you have the <sys/filsys.h> header file. (SVR2)]) | ||
224 | ac_fsusage_space=yes) | ||
225 | fi | ||
226 | |||
227 | AS_IF([test $ac_fsusage_space = yes], [$1], [$2]) | ||
228 | |||
229 | ]) | ||
230 | |||
231 | |||
232 | # Check for SunOS statfs brokenness wrt partitions 2GB and larger. | ||
233 | # If <sys/vfs.h> exists and struct statfs has a member named f_spare, | ||
234 | # enable the work-around code in fsusage.c. | ||
235 | AC_DEFUN([gl_STATFS_TRUNCATES], | ||
236 | [ | ||
237 | AC_MSG_CHECKING([for statfs that truncates block counts]) | ||
238 | AC_CACHE_VAL(fu_cv_sys_truncating_statfs, | ||
239 | [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | ||
240 | #if !defined(sun) && !defined(__sun) | ||
241 | choke -- this is a workaround for a Sun-specific problem | ||
242 | #endif | ||
243 | #include <sys/types.h> | ||
244 | #include <sys/vfs.h>]], | ||
245 | [[struct statfs t; long c = *(t.f_spare); | ||
246 | if (c) return 0;]])], | ||
247 | [fu_cv_sys_truncating_statfs=yes], | ||
248 | [fu_cv_sys_truncating_statfs=no])]) | ||
249 | if test $fu_cv_sys_truncating_statfs = yes; then | ||
250 | AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS, 1, | ||
251 | [Define if the block counts reported by statfs may be truncated to 2GB | ||
252 | and the correct values may be stored in the f_spare array. | ||
253 | (SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem. | ||
254 | SunOS 4.1.1 seems not to be affected.)]) | ||
255 | fi | ||
256 | AC_MSG_RESULT($fu_cv_sys_truncating_statfs) | ||
257 | ]) | ||
258 | |||
259 | |||
260 | # Prerequisites of lib/fsusage.c not done by gl_FILE_SYSTEM_USAGE. | ||
261 | AC_DEFUN([gl_PREREQ_FSUSAGE_EXTRA], | ||
262 | [ | ||
263 | AC_CHECK_HEADERS(dustat.h sys/fs/s5param.h sys/filsys.h sys/statfs.h) | ||
264 | gl_STATFS_TRUNCATES | ||
265 | ]) | ||
diff --git a/gl/m4/getaddrinfo.m4 b/gl/m4/getaddrinfo.m4 new file mode 100644 index 00000000..db285d94 --- /dev/null +++ b/gl/m4/getaddrinfo.m4 | |||
@@ -0,0 +1,88 @@ | |||
1 | # getaddrinfo.m4 serial 11 | ||
2 | dnl Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_GETADDRINFO], | ||
8 | [ | ||
9 | AC_MSG_NOTICE([checking how to do getaddrinfo, freeaddrinfo and getnameinfo]) | ||
10 | |||
11 | AC_SEARCH_LIBS(getaddrinfo, [nsl socket]) | ||
12 | AC_CHECK_FUNCS(getaddrinfo,, [ | ||
13 | AC_CACHE_CHECK(for getaddrinfo in ws2tcpip.h and -lws2_32, | ||
14 | gl_cv_w32_getaddrinfo, [ | ||
15 | gl_cv_w32_getaddrinfo=no | ||
16 | am_save_LIBS="$LIBS" | ||
17 | LIBS="$LIBS -lws2_32" | ||
18 | AC_TRY_LINK([ | ||
19 | #ifdef HAVE_WS2TCPIP_H | ||
20 | #include <ws2tcpip.h> | ||
21 | #endif | ||
22 | ], [getaddrinfo(0, 0, 0, 0);], gl_cv_w32_getaddrinfo=yes) | ||
23 | LIBS="$am_save_LIBS"]) | ||
24 | if test "$gl_cv_w32_getaddrinfo" = "yes"; then | ||
25 | LIBS="$LIBS -lws2_32" | ||
26 | else | ||
27 | AC_LIBOBJ(getaddrinfo) | ||
28 | fi | ||
29 | ]) | ||
30 | |||
31 | AC_REPLACE_FUNCS(gai_strerror) | ||
32 | gl_PREREQ_GETADDRINFO | ||
33 | ]) | ||
34 | |||
35 | # Prerequisites of lib/getaddrinfo.h and lib/getaddrinfo.c. | ||
36 | AC_DEFUN([gl_PREREQ_GETADDRINFO], [ | ||
37 | AC_SEARCH_LIBS(gethostbyname, [inet nsl]) | ||
38 | AC_SEARCH_LIBS(getservbyname, [inet nsl socket xnet]) | ||
39 | AC_CHECK_FUNCS(gethostbyname,, [ | ||
40 | AC_CACHE_CHECK(for gethostbyname in winsock2.h and -lws2_32, | ||
41 | gl_cv_w32_gethostbyname, [ | ||
42 | gl_cv_w32_gethostbyname=no | ||
43 | am_save_LIBS="$LIBS" | ||
44 | LIBS="$LIBS -lws2_32" | ||
45 | AC_TRY_LINK([ | ||
46 | #ifdef HAVE_WINSOCK2_H | ||
47 | #include <winsock2.h> | ||
48 | #endif | ||
49 | ], [gethostbyname(0);], gl_cv_w32_gethostbyname=yes) | ||
50 | LIBS="$am_save_LIBS"]) | ||
51 | if test "$gl_cv_w32_gethostbyname" = "yes"; then | ||
52 | LIBS="$LIBS -lws2_32" | ||
53 | fi | ||
54 | ]) | ||
55 | AC_REQUIRE([AC_C_RESTRICT]) | ||
56 | AC_REQUIRE([gl_SOCKET_FAMILIES]) | ||
57 | AC_REQUIRE([gl_HEADER_SYS_SOCKET]) | ||
58 | AC_REQUIRE([AC_C_INLINE]) | ||
59 | AC_REQUIRE([AC_GNU_SOURCE]) | ||
60 | AC_CHECK_HEADERS_ONCE(netinet/in.h netdb.h) | ||
61 | AC_CHECK_DECLS([getaddrinfo, freeaddrinfo, gai_strerror, getnameinfo],,,[ | ||
62 | /* sys/types.h is not needed according to POSIX, but the | ||
63 | sys/socket.h in i386-unknown-freebsd4.10 and | ||
64 | powerpc-apple-darwin5.5 required it. */ | ||
65 | #include <sys/types.h> | ||
66 | #ifdef HAVE_SYS_SOCKET_H | ||
67 | #include <sys/socket.h> | ||
68 | #endif | ||
69 | #ifdef HAVE_NETDB_H | ||
70 | #include <netdb.h> | ||
71 | #endif | ||
72 | #ifdef HAVE_WS2TCPIP_H | ||
73 | #include <ws2tcpip.h> | ||
74 | #endif | ||
75 | ]) | ||
76 | AC_CHECK_TYPES([struct addrinfo],,,[ | ||
77 | #include <sys/types.h> | ||
78 | #ifdef HAVE_SYS_SOCKET_H | ||
79 | #include <sys/socket.h> | ||
80 | #endif | ||
81 | #ifdef HAVE_NETDB_H | ||
82 | #include <netdb.h> | ||
83 | #endif | ||
84 | #ifdef HAVE_WS2TCPIP_H | ||
85 | #include <ws2tcpip.h> | ||
86 | #endif | ||
87 | ]) | ||
88 | ]) | ||
diff --git a/gl/m4/gethostname.m4 b/gl/m4/gethostname.m4 new file mode 100644 index 00000000..1e9749d3 --- /dev/null +++ b/gl/m4/gethostname.m4 | |||
@@ -0,0 +1,18 @@ | |||
1 | # gethostname.m4 serial 2 | ||
2 | dnl Copyright (C) 2002 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_FUNC_GETHOSTNAME], | ||
8 | [ | ||
9 | AC_REPLACE_FUNCS(gethostname) | ||
10 | if test $ac_cv_func_gethostname = no; then | ||
11 | gl_PREREQ_GETHOSTNAME | ||
12 | fi | ||
13 | ]) | ||
14 | |||
15 | # Prerequisites of lib/gethostname.c. | ||
16 | AC_DEFUN([gl_PREREQ_GETHOSTNAME], [ | ||
17 | AC_CHECK_FUNCS(uname) | ||
18 | ]) | ||
diff --git a/gl/m4/getloadavg.m4 b/gl/m4/getloadavg.m4 new file mode 100644 index 00000000..82437291 --- /dev/null +++ b/gl/m4/getloadavg.m4 | |||
@@ -0,0 +1,155 @@ | |||
1 | # Check for getloadavg. | ||
2 | |||
3 | # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1999, 2000, 2002, 2003, | ||
4 | # 2006 Free Software Foundation, Inc. | ||
5 | |||
6 | # This file is free software; the Free Software Foundation | ||
7 | # gives unlimited permission to copy and/or distribute it, | ||
8 | # with or without modifications, as long as this notice is preserved. | ||
9 | |||
10 | # Autoconf defines AC_FUNC_GETLOADAVG, but that is obsolescent. | ||
11 | # New applications should use gl_GETLOADAVG instead. | ||
12 | |||
13 | # gl_GETLOADAVG(LIBOBJDIR) | ||
14 | # ------------------------ | ||
15 | AC_DEFUN([gl_GETLOADAVG], | ||
16 | [gl_have_func=no # yes means we've found a way to get the load average. | ||
17 | |||
18 | # Make sure getloadavg.c is where it belongs, at configure-time. | ||
19 | test -f "$srcdir/$1/getloadavg.c" || | ||
20 | AC_MSG_ERROR([$srcdir/$1/getloadavg.c is missing]) | ||
21 | |||
22 | gl_save_LIBS=$LIBS | ||
23 | |||
24 | # Check for getloadavg, but be sure not to touch the cache variable. | ||
25 | (AC_CHECK_FUNC(getloadavg, exit 0, exit 1)) && gl_have_func=yes | ||
26 | |||
27 | # On HPUX9, an unprivileged user can get load averages through this function. | ||
28 | AC_CHECK_FUNCS(pstat_getdynamic) | ||
29 | |||
30 | # Solaris has libkstat which does not require root. | ||
31 | AC_CHECK_LIB(kstat, kstat_open) | ||
32 | test $ac_cv_lib_kstat_kstat_open = yes && gl_have_func=yes | ||
33 | |||
34 | # Some systems with -lutil have (and need) -lkvm as well, some do not. | ||
35 | # On Solaris, -lkvm requires nlist from -lelf, so check that first | ||
36 | # to get the right answer into the cache. | ||
37 | # For kstat on solaris, we need libelf to force the definition of SVR4 below. | ||
38 | if test $gl_have_func = no; then | ||
39 | AC_CHECK_LIB(elf, elf_begin, LIBS="-lelf $LIBS") | ||
40 | fi | ||
41 | if test $gl_have_func = no; then | ||
42 | AC_CHECK_LIB(kvm, kvm_open, LIBS="-lkvm $LIBS") | ||
43 | # Check for the 4.4BSD definition of getloadavg. | ||
44 | AC_CHECK_LIB(util, getloadavg, | ||
45 | [LIBS="-lutil $LIBS" gl_have_func=yes gl_cv_func_getloadavg_setgid=yes]) | ||
46 | fi | ||
47 | |||
48 | if test $gl_have_func = no; then | ||
49 | # There is a commonly available library for RS/6000 AIX. | ||
50 | # Since it is not a standard part of AIX, it might be installed locally. | ||
51 | gl_getloadavg_LIBS=$LIBS | ||
52 | LIBS="-L/usr/local/lib $LIBS" | ||
53 | AC_CHECK_LIB(getloadavg, getloadavg, | ||
54 | [LIBS="-lgetloadavg $LIBS"], [LIBS=$gl_getloadavg_LIBS]) | ||
55 | fi | ||
56 | |||
57 | # Make sure it is really in the library, if we think we found it, | ||
58 | # otherwise set up the replacement function. | ||
59 | AC_CHECK_FUNCS(getloadavg, [], | ||
60 | [gl_PREREQ_GETLOADAVG]) | ||
61 | |||
62 | # Some definitions of getloadavg require that the program be installed setgid. | ||
63 | AC_CACHE_CHECK(whether getloadavg requires setgid, | ||
64 | gl_cv_func_getloadavg_setgid, | ||
65 | [AC_EGREP_CPP([Yowza Am I SETGID yet], | ||
66 | [#define CONFIGURING_GETLOADAVG | ||
67 | #include "$srcdir/$1/getloadavg.c" | ||
68 | #ifdef LDAV_PRIVILEGED | ||
69 | Yowza Am I SETGID yet | ||
70 | #endif | ||
71 | ], | ||
72 | gl_cv_func_getloadavg_setgid=yes, | ||
73 | gl_cv_func_getloadavg_setgid=no)]) | ||
74 | if test $gl_cv_func_getloadavg_setgid = yes; then | ||
75 | NEED_SETGID=true | ||
76 | AC_DEFINE(GETLOADAVG_PRIVILEGED, 1, | ||
77 | [Define to 1 if the `getloadavg' function needs to be run setuid | ||
78 | or setgid.]) | ||
79 | else | ||
80 | NEED_SETGID=false | ||
81 | fi | ||
82 | AC_SUBST(NEED_SETGID)dnl | ||
83 | |||
84 | if test $gl_cv_func_getloadavg_setgid = yes; then | ||
85 | AC_CACHE_CHECK(group of /dev/kmem, gl_cv_group_kmem, | ||
86 | [ # On Solaris, /dev/kmem is a symlink. Get info on the real file. | ||
87 | ac_ls_output=`ls -lgL /dev/kmem 2>/dev/null` | ||
88 | # If we got an error (system does not support symlinks), try without -L. | ||
89 | test -z "$ac_ls_output" && ac_ls_output=`ls -lg /dev/kmem` | ||
90 | gl_cv_group_kmem=`echo $ac_ls_output \ | ||
91 | | sed -ne ['s/[ ][ ]*/ /g | ||
92 | s/^.[sSrwx-]* *[0-9]* *\([^0-9]*\) *.*/\1/ | ||
93 | / /s/.* //;p']` | ||
94 | ]) | ||
95 | AC_SUBST(KMEM_GROUP, $gl_cv_group_kmem)dnl | ||
96 | fi | ||
97 | if test "x$gl_save_LIBS" = x; then | ||
98 | GETLOADAVG_LIBS=$LIBS | ||
99 | else | ||
100 | GETLOADAVG_LIBS=`echo "$LIBS" | sed "s!$gl_save_LIBS!!"` | ||
101 | fi | ||
102 | LIBS=$gl_save_LIBS | ||
103 | |||
104 | AC_SUBST(GETLOADAVG_LIBS)dnl | ||
105 | ])# gl_GETLOADAVG | ||
106 | |||
107 | |||
108 | # gl_PREREQ_GETLOADAVG | ||
109 | # -------------------- | ||
110 | # Set up the AC_LIBOBJ replacement of `getloadavg'. | ||
111 | AC_DEFUN([gl_PREREQ_GETLOADAVG], | ||
112 | [AC_LIBOBJ(getloadavg) | ||
113 | AC_DEFINE(C_GETLOADAVG, 1, [Define to 1 if using `getloadavg.c'.]) | ||
114 | # Figure out what our getloadavg.c needs. | ||
115 | gl_have_func=no | ||
116 | AC_CHECK_HEADER(sys/dg_sys_info.h, | ||
117 | [gl_have_func=yes | ||
118 | AC_DEFINE(DGUX, 1, [Define to 1 for DGUX with <sys/dg_sys_info.h>.]) | ||
119 | AC_CHECK_LIB(dgc, dg_sys_info)]) | ||
120 | |||
121 | # We cannot check for <dwarf.h>, because Solaris 2 does not use dwarf (it | ||
122 | # uses stabs), but it is still SVR4. We cannot check for <elf.h> because | ||
123 | # Irix 4.0.5F has the header but not the library. | ||
124 | if test $gl_have_func = no && test "$ac_cv_lib_elf_elf_begin" = yes; then | ||
125 | gl_have_func=yes | ||
126 | AC_DEFINE(SVR4, 1, [Define to 1 on System V Release 4.]) | ||
127 | fi | ||
128 | |||
129 | if test $gl_have_func = no; then | ||
130 | AC_CHECK_HEADER(inq_stats/cpustats.h, | ||
131 | [gl_have_func=yes | ||
132 | AC_DEFINE(UMAX, 1, [Define to 1 for Encore UMAX.]) | ||
133 | AC_DEFINE(UMAX4_3, 1, | ||
134 | [Define to 1 for Encore UMAX 4.3 that has <inq_status/cpustats.h> | ||
135 | instead of <sys/cpustats.h>.])]) | ||
136 | fi | ||
137 | |||
138 | if test $gl_have_func = no; then | ||
139 | AC_CHECK_HEADER(sys/cpustats.h, | ||
140 | [gl_have_func=yes; AC_DEFINE(UMAX)]) | ||
141 | fi | ||
142 | |||
143 | if test $gl_have_func = no; then | ||
144 | AC_CHECK_HEADERS(mach/mach.h) | ||
145 | fi | ||
146 | |||
147 | AC_CHECK_HEADERS(nlist.h, | ||
148 | [AC_CHECK_MEMBERS([struct nlist.n_un.n_name], | ||
149 | [AC_DEFINE(NLIST_NAME_UNION, 1, | ||
150 | [Define to 1 if your `struct nlist' has an | ||
151 | `n_un' member. Obsolete, depend on | ||
152 | `HAVE_STRUCT_NLIST_N_UN_N_NAME])], [], | ||
153 | [@%:@include <nlist.h>]) | ||
154 | ])dnl | ||
155 | ])# gl_PREREQ_GETLOADAVG | ||
diff --git a/gl/m4/getopt.m4 b/gl/m4/getopt.m4 new file mode 100644 index 00000000..c0a73b2c --- /dev/null +++ b/gl/m4/getopt.m4 | |||
@@ -0,0 +1,83 @@ | |||
1 | # getopt.m4 serial 13 | ||
2 | dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | # The getopt module assume you want GNU getopt, with getopt_long etc, | ||
8 | # rather than vanilla POSIX getopt. This means your code should | ||
9 | # always include <getopt.h> for the getopt prototypes. | ||
10 | |||
11 | AC_DEFUN([gl_GETOPT_SUBSTITUTE], | ||
12 | [ | ||
13 | AC_LIBOBJ([getopt]) | ||
14 | AC_LIBOBJ([getopt1]) | ||
15 | gl_GETOPT_SUBSTITUTE_HEADER | ||
16 | gl_PREREQ_GETOPT | ||
17 | ]) | ||
18 | |||
19 | AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER], | ||
20 | [ | ||
21 | GETOPT_H=getopt.h | ||
22 | AC_DEFINE([__GETOPT_PREFIX], [[rpl_]], | ||
23 | [Define to rpl_ if the getopt replacement functions and variables | ||
24 | should be used.]) | ||
25 | AC_SUBST([GETOPT_H]) | ||
26 | ]) | ||
27 | |||
28 | AC_DEFUN([gl_GETOPT_CHECK_HEADERS], | ||
29 | [ | ||
30 | if test -z "$GETOPT_H"; then | ||
31 | AC_CHECK_HEADERS([getopt.h], [], [GETOPT_H=getopt.h]) | ||
32 | fi | ||
33 | |||
34 | if test -z "$GETOPT_H"; then | ||
35 | AC_CHECK_FUNCS([getopt_long_only], [], [GETOPT_H=getopt.h]) | ||
36 | fi | ||
37 | |||
38 | dnl BSD getopt_long uses an incompatible method to reset option processing, | ||
39 | dnl and (as of 2004-10-15) mishandles optional option-arguments. | ||
40 | if test -z "$GETOPT_H"; then | ||
41 | AC_CHECK_DECL([optreset], [GETOPT_H=getopt.h], [], [#include <getopt.h>]) | ||
42 | fi | ||
43 | |||
44 | dnl Solaris 10 getopt doesn't handle `+' as a leading character in an | ||
45 | dnl option string (as of 2005-05-05). | ||
46 | if test -z "$GETOPT_H"; then | ||
47 | AC_CACHE_CHECK([for working GNU getopt function], [gl_cv_func_gnu_getopt], | ||
48 | [AC_RUN_IFELSE( | ||
49 | [AC_LANG_PROGRAM([#include <getopt.h>], | ||
50 | [[ | ||
51 | char *myargv[3]; | ||
52 | myargv[0] = "conftest"; | ||
53 | myargv[1] = "-+"; | ||
54 | myargv[2] = 0; | ||
55 | return getopt (2, myargv, "+a") != '?'; | ||
56 | ]])], | ||
57 | [gl_cv_func_gnu_getopt=yes], | ||
58 | [gl_cv_func_gnu_getopt=no], | ||
59 | [dnl cross compiling - pessimistically guess based on decls | ||
60 | dnl Solaris 10 getopt doesn't handle `+' as a leading character in an | ||
61 | dnl option string (as of 2005-05-05). | ||
62 | AC_CHECK_DECL([getopt_clip], | ||
63 | [gl_cv_func_gnu_getopt=no], [gl_cv_func_gnu_getopt=yes], | ||
64 | [#include <getopt.h>])])]) | ||
65 | if test "$gl_cv_func_gnu_getopt" = "no"; then | ||
66 | GETOPT_H=getopt.h | ||
67 | fi | ||
68 | fi | ||
69 | ]) | ||
70 | |||
71 | AC_DEFUN([gl_GETOPT_IFELSE], | ||
72 | [ | ||
73 | AC_REQUIRE([gl_GETOPT_CHECK_HEADERS]) | ||
74 | AS_IF([test -n "$GETOPT_H"], [$1], [$2]) | ||
75 | ]) | ||
76 | |||
77 | AC_DEFUN([gl_GETOPT], [gl_GETOPT_IFELSE([gl_GETOPT_SUBSTITUTE])]) | ||
78 | |||
79 | # Prerequisites of lib/getopt*. | ||
80 | AC_DEFUN([gl_PREREQ_GETOPT], | ||
81 | [ | ||
82 | AC_CHECK_DECLS_ONCE([getenv]) | ||
83 | ]) | ||
diff --git a/gl/m4/gettext.m4 b/gl/m4/gettext.m4 new file mode 100644 index 00000000..91c345e9 --- /dev/null +++ b/gl/m4/gettext.m4 | |||
@@ -0,0 +1,419 @@ | |||
1 | # gettext.m4 serial 59 (gettext-0.16.1) | ||
2 | dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | dnl | ||
7 | dnl This file can can be used in projects which are not available under | ||
8 | dnl the GNU General Public License or the GNU Library General Public | ||
9 | dnl License but which still want to provide support for the GNU gettext | ||
10 | dnl functionality. | ||
11 | dnl Please note that the actual code of the GNU gettext library is covered | ||
12 | dnl by the GNU Library General Public License, and the rest of the GNU | ||
13 | dnl gettext package package is covered by the GNU General Public License. | ||
14 | dnl They are *not* in the public domain. | ||
15 | |||
16 | dnl Authors: | ||
17 | dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. | ||
18 | dnl Bruno Haible <haible@clisp.cons.org>, 2000-2006. | ||
19 | |||
20 | dnl Macro to add for using GNU gettext. | ||
21 | |||
22 | dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). | ||
23 | dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The | ||
24 | dnl default (if it is not specified or empty) is 'no-libtool'. | ||
25 | dnl INTLSYMBOL should be 'external' for packages with no intl directory, | ||
26 | dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. | ||
27 | dnl If INTLSYMBOL is 'use-libtool', then a libtool library | ||
28 | dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, | ||
29 | dnl depending on --{enable,disable}-{shared,static} and on the presence of | ||
30 | dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library | ||
31 | dnl $(top_builddir)/intl/libintl.a will be created. | ||
32 | dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext | ||
33 | dnl implementations (in libc or libintl) without the ngettext() function | ||
34 | dnl will be ignored. If NEEDSYMBOL is specified and is | ||
35 | dnl 'need-formatstring-macros', then GNU gettext implementations that don't | ||
36 | dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored. | ||
37 | dnl INTLDIR is used to find the intl libraries. If empty, | ||
38 | dnl the value `$(top_builddir)/intl/' is used. | ||
39 | dnl | ||
40 | dnl The result of the configuration is one of three cases: | ||
41 | dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled | ||
42 | dnl and used. | ||
43 | dnl Catalog format: GNU --> install in $(datadir) | ||
44 | dnl Catalog extension: .mo after installation, .gmo in source tree | ||
45 | dnl 2) GNU gettext has been found in the system's C library. | ||
46 | dnl Catalog format: GNU --> install in $(datadir) | ||
47 | dnl Catalog extension: .mo after installation, .gmo in source tree | ||
48 | dnl 3) No internationalization, always use English msgid. | ||
49 | dnl Catalog format: none | ||
50 | dnl Catalog extension: none | ||
51 | dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. | ||
52 | dnl The use of .gmo is historical (it was needed to avoid overwriting the | ||
53 | dnl GNU format catalogs when building on a platform with an X/Open gettext), | ||
54 | dnl but we keep it in order not to force irrelevant filename changes on the | ||
55 | dnl maintainers. | ||
56 | dnl | ||
57 | AC_DEFUN([AM_GNU_GETTEXT], | ||
58 | [ | ||
59 | dnl Argument checking. | ||
60 | ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , | ||
61 | [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT | ||
62 | ])])])])]) | ||
63 | ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , | ||
64 | [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT | ||
65 | ])])])]) | ||
66 | define([gt_included_intl], | ||
67 | ifelse([$1], [external], | ||
68 | ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), | ||
69 | [yes])) | ||
70 | define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) | ||
71 | gt_NEEDS_INIT | ||
72 | AM_GNU_GETTEXT_NEED([$2]) | ||
73 | |||
74 | AC_REQUIRE([AM_PO_SUBDIRS])dnl | ||
75 | ifelse(gt_included_intl, yes, [ | ||
76 | AC_REQUIRE([AM_INTL_SUBDIR])dnl | ||
77 | ]) | ||
78 | |||
79 | dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. | ||
80 | AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) | ||
81 | AC_REQUIRE([AC_LIB_RPATH]) | ||
82 | |||
83 | dnl Sometimes libintl requires libiconv, so first search for libiconv. | ||
84 | dnl Ideally we would do this search only after the | ||
85 | dnl if test "$USE_NLS" = "yes"; then | ||
86 | dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then | ||
87 | dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT | ||
88 | dnl the configure script would need to contain the same shell code | ||
89 | dnl again, outside any 'if'. There are two solutions: | ||
90 | dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. | ||
91 | dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. | ||
92 | dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not | ||
93 | dnl documented, we avoid it. | ||
94 | ifelse(gt_included_intl, yes, , [ | ||
95 | AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) | ||
96 | ]) | ||
97 | |||
98 | dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. | ||
99 | gt_INTL_MACOSX | ||
100 | |||
101 | dnl Set USE_NLS. | ||
102 | AC_REQUIRE([AM_NLS]) | ||
103 | |||
104 | ifelse(gt_included_intl, yes, [ | ||
105 | BUILD_INCLUDED_LIBINTL=no | ||
106 | USE_INCLUDED_LIBINTL=no | ||
107 | ]) | ||
108 | LIBINTL= | ||
109 | LTLIBINTL= | ||
110 | POSUB= | ||
111 | |||
112 | dnl Add a version number to the cache macros. | ||
113 | case " $gt_needs " in | ||
114 | *" need-formatstring-macros "*) gt_api_version=3 ;; | ||
115 | *" need-ngettext "*) gt_api_version=2 ;; | ||
116 | *) gt_api_version=1 ;; | ||
117 | esac | ||
118 | gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" | ||
119 | gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" | ||
120 | |||
121 | dnl If we use NLS figure out what method | ||
122 | if test "$USE_NLS" = "yes"; then | ||
123 | gt_use_preinstalled_gnugettext=no | ||
124 | ifelse(gt_included_intl, yes, [ | ||
125 | AC_MSG_CHECKING([whether included gettext is requested]) | ||
126 | AC_ARG_WITH(included-gettext, | ||
127 | [ --with-included-gettext use the GNU gettext library included here], | ||
128 | nls_cv_force_use_gnu_gettext=$withval, | ||
129 | nls_cv_force_use_gnu_gettext=no) | ||
130 | AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) | ||
131 | |||
132 | nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" | ||
133 | if test "$nls_cv_force_use_gnu_gettext" != "yes"; then | ||
134 | ]) | ||
135 | dnl User does not insist on using GNU NLS library. Figure out what | ||
136 | dnl to use. If GNU gettext is available we use this. Else we have | ||
137 | dnl to fall back to GNU NLS library. | ||
138 | |||
139 | if test $gt_api_version -ge 3; then | ||
140 | gt_revision_test_code=' | ||
141 | #ifndef __GNU_GETTEXT_SUPPORTED_REVISION | ||
142 | #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) | ||
143 | #endif | ||
144 | changequote(,)dnl | ||
145 | typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; | ||
146 | changequote([,])dnl | ||
147 | ' | ||
148 | else | ||
149 | gt_revision_test_code= | ||
150 | fi | ||
151 | if test $gt_api_version -ge 2; then | ||
152 | gt_expression_test_code=' + * ngettext ("", "", 0)' | ||
153 | else | ||
154 | gt_expression_test_code= | ||
155 | fi | ||
156 | |||
157 | AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], | ||
158 | [AC_TRY_LINK([#include <libintl.h> | ||
159 | $gt_revision_test_code | ||
160 | extern int _nl_msg_cat_cntr; | ||
161 | extern int *_nl_domain_bindings;], | ||
162 | [bindtextdomain ("", ""); | ||
163 | return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings], | ||
164 | [eval "$gt_func_gnugettext_libc=yes"], | ||
165 | [eval "$gt_func_gnugettext_libc=no"])]) | ||
166 | |||
167 | if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then | ||
168 | dnl Sometimes libintl requires libiconv, so first search for libiconv. | ||
169 | ifelse(gt_included_intl, yes, , [ | ||
170 | AM_ICONV_LINK | ||
171 | ]) | ||
172 | dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL | ||
173 | dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) | ||
174 | dnl because that would add "-liconv" to LIBINTL and LTLIBINTL | ||
175 | dnl even if libiconv doesn't exist. | ||
176 | AC_LIB_LINKFLAGS_BODY([intl]) | ||
177 | AC_CACHE_CHECK([for GNU gettext in libintl], | ||
178 | [$gt_func_gnugettext_libintl], | ||
179 | [gt_save_CPPFLAGS="$CPPFLAGS" | ||
180 | CPPFLAGS="$CPPFLAGS $INCINTL" | ||
181 | gt_save_LIBS="$LIBS" | ||
182 | LIBS="$LIBS $LIBINTL" | ||
183 | dnl Now see whether libintl exists and does not depend on libiconv. | ||
184 | AC_TRY_LINK([#include <libintl.h> | ||
185 | $gt_revision_test_code | ||
186 | extern int _nl_msg_cat_cntr; | ||
187 | extern | ||
188 | #ifdef __cplusplus | ||
189 | "C" | ||
190 | #endif | ||
191 | const char *_nl_expand_alias (const char *);], | ||
192 | [bindtextdomain ("", ""); | ||
193 | return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], | ||
194 | [eval "$gt_func_gnugettext_libintl=yes"], | ||
195 | [eval "$gt_func_gnugettext_libintl=no"]) | ||
196 | dnl Now see whether libintl exists and depends on libiconv. | ||
197 | if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then | ||
198 | LIBS="$LIBS $LIBICONV" | ||
199 | AC_TRY_LINK([#include <libintl.h> | ||
200 | $gt_revision_test_code | ||
201 | extern int _nl_msg_cat_cntr; | ||
202 | extern | ||
203 | #ifdef __cplusplus | ||
204 | "C" | ||
205 | #endif | ||
206 | const char *_nl_expand_alias (const char *);], | ||
207 | [bindtextdomain ("", ""); | ||
208 | return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], | ||
209 | [LIBINTL="$LIBINTL $LIBICONV" | ||
210 | LTLIBINTL="$LTLIBINTL $LTLIBICONV" | ||
211 | eval "$gt_func_gnugettext_libintl=yes" | ||
212 | ]) | ||
213 | fi | ||
214 | CPPFLAGS="$gt_save_CPPFLAGS" | ||
215 | LIBS="$gt_save_LIBS"]) | ||
216 | fi | ||
217 | |||
218 | dnl If an already present or preinstalled GNU gettext() is found, | ||
219 | dnl use it. But if this macro is used in GNU gettext, and GNU | ||
220 | dnl gettext is already preinstalled in libintl, we update this | ||
221 | dnl libintl. (Cf. the install rule in intl/Makefile.in.) | ||
222 | if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ | ||
223 | || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ | ||
224 | && test "$PACKAGE" != gettext-runtime \ | ||
225 | && test "$PACKAGE" != gettext-tools; }; then | ||
226 | gt_use_preinstalled_gnugettext=yes | ||
227 | else | ||
228 | dnl Reset the values set by searching for libintl. | ||
229 | LIBINTL= | ||
230 | LTLIBINTL= | ||
231 | INCINTL= | ||
232 | fi | ||
233 | |||
234 | ifelse(gt_included_intl, yes, [ | ||
235 | if test "$gt_use_preinstalled_gnugettext" != "yes"; then | ||
236 | dnl GNU gettext is not found in the C library. | ||
237 | dnl Fall back on included GNU gettext library. | ||
238 | nls_cv_use_gnu_gettext=yes | ||
239 | fi | ||
240 | fi | ||
241 | |||
242 | if test "$nls_cv_use_gnu_gettext" = "yes"; then | ||
243 | dnl Mark actions used to generate GNU NLS library. | ||
244 | BUILD_INCLUDED_LIBINTL=yes | ||
245 | USE_INCLUDED_LIBINTL=yes | ||
246 | LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" | ||
247 | LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" | ||
248 | LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` | ||
249 | fi | ||
250 | |||
251 | CATOBJEXT= | ||
252 | if test "$gt_use_preinstalled_gnugettext" = "yes" \ | ||
253 | || test "$nls_cv_use_gnu_gettext" = "yes"; then | ||
254 | dnl Mark actions to use GNU gettext tools. | ||
255 | CATOBJEXT=.gmo | ||
256 | fi | ||
257 | ]) | ||
258 | |||
259 | if test -n "$INTL_MACOSX_LIBS"; then | ||
260 | if test "$gt_use_preinstalled_gnugettext" = "yes" \ | ||
261 | || test "$nls_cv_use_gnu_gettext" = "yes"; then | ||
262 | dnl Some extra flags are needed during linking. | ||
263 | LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" | ||
264 | LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" | ||
265 | fi | ||
266 | fi | ||
267 | |||
268 | if test "$gt_use_preinstalled_gnugettext" = "yes" \ | ||
269 | || test "$nls_cv_use_gnu_gettext" = "yes"; then | ||
270 | AC_DEFINE(ENABLE_NLS, 1, | ||
271 | [Define to 1 if translation of program messages to the user's native language | ||
272 | is requested.]) | ||
273 | else | ||
274 | USE_NLS=no | ||
275 | fi | ||
276 | fi | ||
277 | |||
278 | AC_MSG_CHECKING([whether to use NLS]) | ||
279 | AC_MSG_RESULT([$USE_NLS]) | ||
280 | if test "$USE_NLS" = "yes"; then | ||
281 | AC_MSG_CHECKING([where the gettext function comes from]) | ||
282 | if test "$gt_use_preinstalled_gnugettext" = "yes"; then | ||
283 | if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then | ||
284 | gt_source="external libintl" | ||
285 | else | ||
286 | gt_source="libc" | ||
287 | fi | ||
288 | else | ||
289 | gt_source="included intl directory" | ||
290 | fi | ||
291 | AC_MSG_RESULT([$gt_source]) | ||
292 | fi | ||
293 | |||
294 | if test "$USE_NLS" = "yes"; then | ||
295 | |||
296 | if test "$gt_use_preinstalled_gnugettext" = "yes"; then | ||
297 | if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then | ||
298 | AC_MSG_CHECKING([how to link with libintl]) | ||
299 | AC_MSG_RESULT([$LIBINTL]) | ||
300 | AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) | ||
301 | fi | ||
302 | |||
303 | dnl For backward compatibility. Some packages may be using this. | ||
304 | AC_DEFINE(HAVE_GETTEXT, 1, | ||
305 | [Define if the GNU gettext() function is already present or preinstalled.]) | ||
306 | AC_DEFINE(HAVE_DCGETTEXT, 1, | ||
307 | [Define if the GNU dcgettext() function is already present or preinstalled.]) | ||
308 | fi | ||
309 | |||
310 | dnl We need to process the po/ directory. | ||
311 | POSUB=po | ||
312 | fi | ||
313 | |||
314 | ifelse(gt_included_intl, yes, [ | ||
315 | dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL | ||
316 | dnl to 'yes' because some of the testsuite requires it. | ||
317 | if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then | ||
318 | BUILD_INCLUDED_LIBINTL=yes | ||
319 | fi | ||
320 | |||
321 | dnl Make all variables we use known to autoconf. | ||
322 | AC_SUBST(BUILD_INCLUDED_LIBINTL) | ||
323 | AC_SUBST(USE_INCLUDED_LIBINTL) | ||
324 | AC_SUBST(CATOBJEXT) | ||
325 | |||
326 | dnl For backward compatibility. Some configure.ins may be using this. | ||
327 | nls_cv_header_intl= | ||
328 | nls_cv_header_libgt= | ||
329 | |||
330 | dnl For backward compatibility. Some Makefiles may be using this. | ||
331 | DATADIRNAME=share | ||
332 | AC_SUBST(DATADIRNAME) | ||
333 | |||
334 | dnl For backward compatibility. Some Makefiles may be using this. | ||
335 | INSTOBJEXT=.mo | ||
336 | AC_SUBST(INSTOBJEXT) | ||
337 | |||
338 | dnl For backward compatibility. Some Makefiles may be using this. | ||
339 | GENCAT=gencat | ||
340 | AC_SUBST(GENCAT) | ||
341 | |||
342 | dnl For backward compatibility. Some Makefiles may be using this. | ||
343 | INTLOBJS= | ||
344 | if test "$USE_INCLUDED_LIBINTL" = yes; then | ||
345 | INTLOBJS="\$(GETTOBJS)" | ||
346 | fi | ||
347 | AC_SUBST(INTLOBJS) | ||
348 | |||
349 | dnl Enable libtool support if the surrounding package wishes it. | ||
350 | INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix | ||
351 | AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) | ||
352 | ]) | ||
353 | |||
354 | dnl For backward compatibility. Some Makefiles may be using this. | ||
355 | INTLLIBS="$LIBINTL" | ||
356 | AC_SUBST(INTLLIBS) | ||
357 | |||
358 | dnl Make all documented variables known to autoconf. | ||
359 | AC_SUBST(LIBINTL) | ||
360 | AC_SUBST(LTLIBINTL) | ||
361 | AC_SUBST(POSUB) | ||
362 | ]) | ||
363 | |||
364 | |||
365 | dnl Checks for special options needed on MacOS X. | ||
366 | dnl Defines INTL_MACOSX_LIBS. | ||
367 | AC_DEFUN([gt_INTL_MACOSX], | ||
368 | [ | ||
369 | dnl Check for API introduced in MacOS X 10.2. | ||
370 | AC_CACHE_CHECK([for CFPreferencesCopyAppValue], | ||
371 | gt_cv_func_CFPreferencesCopyAppValue, | ||
372 | [gt_save_LIBS="$LIBS" | ||
373 | LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" | ||
374 | AC_TRY_LINK([#include <CoreFoundation/CFPreferences.h>], | ||
375 | [CFPreferencesCopyAppValue(NULL, NULL)], | ||
376 | [gt_cv_func_CFPreferencesCopyAppValue=yes], | ||
377 | [gt_cv_func_CFPreferencesCopyAppValue=no]) | ||
378 | LIBS="$gt_save_LIBS"]) | ||
379 | if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then | ||
380 | AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1, | ||
381 | [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) | ||
382 | fi | ||
383 | dnl Check for API introduced in MacOS X 10.3. | ||
384 | AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent, | ||
385 | [gt_save_LIBS="$LIBS" | ||
386 | LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" | ||
387 | AC_TRY_LINK([#include <CoreFoundation/CFLocale.h>], [CFLocaleCopyCurrent();], | ||
388 | [gt_cv_func_CFLocaleCopyCurrent=yes], | ||
389 | [gt_cv_func_CFLocaleCopyCurrent=no]) | ||
390 | LIBS="$gt_save_LIBS"]) | ||
391 | if test $gt_cv_func_CFLocaleCopyCurrent = yes; then | ||
392 | AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1, | ||
393 | [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) | ||
394 | fi | ||
395 | INTL_MACOSX_LIBS= | ||
396 | if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then | ||
397 | INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" | ||
398 | fi | ||
399 | AC_SUBST([INTL_MACOSX_LIBS]) | ||
400 | ]) | ||
401 | |||
402 | |||
403 | dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. | ||
404 | m4_define([gt_NEEDS_INIT], | ||
405 | [ | ||
406 | m4_divert_text([DEFAULTS], [gt_needs=]) | ||
407 | m4_define([gt_NEEDS_INIT], []) | ||
408 | ]) | ||
409 | |||
410 | |||
411 | dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) | ||
412 | AC_DEFUN([AM_GNU_GETTEXT_NEED], | ||
413 | [ | ||
414 | m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) | ||
415 | ]) | ||
416 | |||
417 | |||
418 | dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) | ||
419 | AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) | ||
diff --git a/gl/m4/glibc2.m4 b/gl/m4/glibc2.m4 new file mode 100644 index 00000000..e8f5bfe6 --- /dev/null +++ b/gl/m4/glibc2.m4 | |||
@@ -0,0 +1,30 @@ | |||
1 | # glibc2.m4 serial 1 | ||
2 | dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | # Test for the GNU C Library, version 2.0 or newer. | ||
8 | # From Bruno Haible. | ||
9 | |||
10 | AC_DEFUN([gt_GLIBC2], | ||
11 | [ | ||
12 | AC_CACHE_CHECK(whether we are using the GNU C Library 2 or newer, | ||
13 | ac_cv_gnu_library_2, | ||
14 | [AC_EGREP_CPP([Lucky GNU user], | ||
15 | [ | ||
16 | #include <features.h> | ||
17 | #ifdef __GNU_LIBRARY__ | ||
18 | #if (__GLIBC__ >= 2) | ||
19 | Lucky GNU user | ||
20 | #endif | ||
21 | #endif | ||
22 | ], | ||
23 | ac_cv_gnu_library_2=yes, | ||
24 | ac_cv_gnu_library_2=no) | ||
25 | ] | ||
26 | ) | ||
27 | AC_SUBST(GLIBC2) | ||
28 | GLIBC2="$ac_cv_gnu_library_2" | ||
29 | ] | ||
30 | ) | ||
diff --git a/gl/m4/glibc21.m4 b/gl/m4/glibc21.m4 new file mode 100644 index 00000000..d95fd986 --- /dev/null +++ b/gl/m4/glibc21.m4 | |||
@@ -0,0 +1,30 @@ | |||
1 | # glibc21.m4 serial 3 | ||
2 | dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | # Test for the GNU C Library, version 2.1 or newer. | ||
8 | # From Bruno Haible. | ||
9 | |||
10 | AC_DEFUN([gl_GLIBC21], | ||
11 | [ | ||
12 | AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, | ||
13 | ac_cv_gnu_library_2_1, | ||
14 | [AC_EGREP_CPP([Lucky GNU user], | ||
15 | [ | ||
16 | #include <features.h> | ||
17 | #ifdef __GNU_LIBRARY__ | ||
18 | #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) | ||
19 | Lucky GNU user | ||
20 | #endif | ||
21 | #endif | ||
22 | ], | ||
23 | ac_cv_gnu_library_2_1=yes, | ||
24 | ac_cv_gnu_library_2_1=no) | ||
25 | ] | ||
26 | ) | ||
27 | AC_SUBST(GLIBC21) | ||
28 | GLIBC21="$ac_cv_gnu_library_2_1" | ||
29 | ] | ||
30 | ) | ||
diff --git a/gl/m4/gnulib-cache.m4 b/gl/m4/gnulib-cache.m4 new file mode 100644 index 00000000..e78c8604 --- /dev/null +++ b/gl/m4/gnulib-cache.m4 | |||
@@ -0,0 +1,30 @@ | |||
1 | # Copyright (C) 2004-2007 Free Software Foundation, Inc. | ||
2 | # | ||
3 | # This file is free software, distributed under the terms of the GNU | ||
4 | # General Public License. As a special exception to the GNU General | ||
5 | # Public License, this file may be distributed as part of a program | ||
6 | # that contains a configuration script generated by Autoconf, under | ||
7 | # the same distribution terms as the rest of that program. | ||
8 | # | ||
9 | # Generated by gnulib-tool. | ||
10 | # | ||
11 | # This file represents the specification of how gnulib-tool is used. | ||
12 | # It acts as a cache: It is written and read by gnulib-tool. | ||
13 | # In projects using CVS, this file is meant to be stored in CVS, | ||
14 | # like the configure.ac and various Makefile.am files. | ||
15 | |||
16 | |||
17 | # Specification in the form of a command-line invocation: | ||
18 | # gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --aux-dir=. --no-libtool --macro-prefix=gl dirname fsusage getaddrinfo gethostname getloadavg getopt gettext mountlist regex vasprintf vsnprintf | ||
19 | |||
20 | # Specification in the form of a few gnulib-tool.m4 macro invocations: | ||
21 | gl_LOCAL_DIR([]) | ||
22 | gl_MODULES([dirname fsusage getaddrinfo gethostname getloadavg getopt gettext mountlist regex vasprintf vsnprintf]) | ||
23 | gl_AVOID([]) | ||
24 | gl_SOURCE_BASE([gl]) | ||
25 | gl_M4_BASE([gl/m4]) | ||
26 | gl_DOC_BASE([doc]) | ||
27 | gl_TESTS_BASE([tests]) | ||
28 | gl_LIB([libgnu]) | ||
29 | gl_MAKEFILE_NAME([]) | ||
30 | gl_MACRO_PREFIX([gl]) | ||
diff --git a/gl/m4/gnulib-common.m4 b/gl/m4/gnulib-common.m4 new file mode 100644 index 00000000..53980108 --- /dev/null +++ b/gl/m4/gnulib-common.m4 | |||
@@ -0,0 +1,22 @@ | |||
1 | # gnulib-common.m4 serial 2 | ||
2 | dnl Copyright (C) 2007 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | # gl_MODULE_INDICATOR([modulename]) | ||
8 | # defines a C macro indicating the presence of the given module. | ||
9 | AC_DEFUN([gl_MODULE_INDICATOR], | ||
10 | [ | ||
11 | AC_DEFINE([GNULIB_]translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1], | ||
12 | [Define to 1 when using the gnulib module ]$1[.]) | ||
13 | ]) | ||
14 | |||
15 | # AC_PROG_MKDIR_P | ||
16 | # is a backport of autoconf-2.60's AC_PROG_MKDIR_P. | ||
17 | # Remove this macro when we can assume autoconf >= 2.60. | ||
18 | m4_ifdef([AC_PROG_MKDIR_P], [], [ | ||
19 | AC_DEFUN([AC_PROG_MKDIR_P], | ||
20 | [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake | ||
21 | MKDIR_P='$(mkdir_p)' | ||
22 | AC_SUBST([MKDIR_P])])]) | ||
diff --git a/gl/m4/gnulib-comp.m4 b/gl/m4/gnulib-comp.m4 new file mode 100644 index 00000000..ed4da7d9 --- /dev/null +++ b/gl/m4/gnulib-comp.m4 | |||
@@ -0,0 +1,326 @@ | |||
1 | # DO NOT EDIT! GENERATED AUTOMATICALLY! | ||
2 | # Copyright (C) 2004-2007 Free Software Foundation, Inc. | ||
3 | # | ||
4 | # This file is free software, distributed under the terms of the GNU | ||
5 | # General Public License. As a special exception to the GNU General | ||
6 | # Public License, this file may be distributed as part of a program | ||
7 | # that contains a configuration script generated by Autoconf, under | ||
8 | # the same distribution terms as the rest of that program. | ||
9 | # | ||
10 | # Generated by gnulib-tool. | ||
11 | # | ||
12 | # This file represents the compiled summary of the specification in | ||
13 | # gnulib-cache.m4. It lists the computed macro invocations that need | ||
14 | # to be invoked from configure.ac. | ||
15 | # In projects using CVS, this file can be treated like other built files. | ||
16 | |||
17 | |||
18 | # This macro should be invoked from ./configure.in, in the section | ||
19 | # "Checks for programs", right after AC_PROG_CC, and certainly before | ||
20 | # any checks for libraries, header files, types and library functions. | ||
21 | AC_DEFUN([gl_EARLY], | ||
22 | [ | ||
23 | m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace | ||
24 | m4_pattern_allow([^gl_ES$])dnl a valid locale name | ||
25 | m4_pattern_allow([^gl_LIBOBJS$])dnl a variable | ||
26 | m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable | ||
27 | AC_REQUIRE([AC_PROG_RANLIB]) | ||
28 | AC_REQUIRE([AC_GNU_SOURCE]) | ||
29 | AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) | ||
30 | AC_REQUIRE([gl_LOCK_EARLY]) | ||
31 | ]) | ||
32 | |||
33 | # This macro should be invoked from ./configure.in, in the section | ||
34 | # "Check for header files, types and library functions". | ||
35 | AC_DEFUN([gl_INIT], | ||
36 | [ | ||
37 | m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ])) | ||
38 | m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS])) | ||
39 | m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES])) | ||
40 | AM_CONDITIONAL([GL_COND_LIBTOOL], [false]) | ||
41 | gl_cond_libtool=false | ||
42 | gl_libdeps= | ||
43 | gl_ltlibdeps= | ||
44 | gl_source_base='gl' | ||
45 | gl_FUNC_ALLOCA | ||
46 | gl_HEADER_ARPA_INET | ||
47 | gl_C_STRTOD | ||
48 | gl_CLOEXEC | ||
49 | gl_DIRNAME | ||
50 | gl_DOUBLE_SLASH_ROOT | ||
51 | gl_ERROR | ||
52 | gl_EXITFAIL | ||
53 | dnl gl_USE_SYSTEM_EXTENSIONS must be added quite early to configure.ac. | ||
54 | gl_FCNTL_SAFER | ||
55 | gl_MODULE_INDICATOR([fcntl-safer]) | ||
56 | gl_FSUSAGE | ||
57 | gl_GETADDRINFO | ||
58 | gl_FUNC_GETHOSTNAME | ||
59 | gl_GETLOADAVG([$gl_source_base]) | ||
60 | gl_GETOPT | ||
61 | dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac. | ||
62 | AM_GNU_GETTEXT_VERSION([0.15]) | ||
63 | gl_INET_NTOP | ||
64 | gl_INLINE | ||
65 | AC_FUNC_MALLOC | ||
66 | gl_MBCHAR | ||
67 | gl_MBITER | ||
68 | gl_FUNC_MEMCHR | ||
69 | gl_MINMAX | ||
70 | gl_MOUNTLIST | ||
71 | gl_HEADER_NETINET_IN | ||
72 | gl_REGEX | ||
73 | gl_SAFE_READ | ||
74 | gl_SAFE_WRITE | ||
75 | gl_SIZE_MAX | ||
76 | gl_FUNC_SNPRINTF | ||
77 | gl_TYPE_SOCKLEN_T | ||
78 | gt_TYPE_SSIZE_T | ||
79 | AM_STDBOOL_H | ||
80 | gl_STDINT_H | ||
81 | gl_STRCASE | ||
82 | gl_FUNC_STRDUP | ||
83 | gl_FUNC_STRNDUP | ||
84 | gl_FUNC_STRNLEN | ||
85 | gl_HEADER_SYS_SOCKET | ||
86 | AC_PROG_MKDIR_P | ||
87 | gl_HEADER_UNISTD | ||
88 | gl_UNISTD_SAFER | ||
89 | gl_FUNC_VASNPRINTF | ||
90 | gl_FUNC_VASPRINTF | ||
91 | gl_FUNC_VSNPRINTF | ||
92 | gl_WCHAR_H | ||
93 | gl_WCTYPE_H | ||
94 | gl_FUNC_WCWIDTH | ||
95 | gl_XALLOC | ||
96 | gl_XSIZE | ||
97 | gl_XSTRNDUP | ||
98 | LIBGNU_LIBDEPS="$gl_libdeps" | ||
99 | AC_SUBST([LIBGNU_LIBDEPS]) | ||
100 | LIBGNU_LTLIBDEPS="$gl_ltlibdeps" | ||
101 | AC_SUBST([LIBGNU_LTLIBDEPS]) | ||
102 | m4_popdef([AC_LIBSOURCES]) | ||
103 | m4_popdef([AC_REPLACE_FUNCS]) | ||
104 | m4_popdef([AC_LIBOBJ]) | ||
105 | AC_CONFIG_COMMANDS_PRE([ | ||
106 | gl_libobjs= | ||
107 | gl_ltlibobjs= | ||
108 | if test -n "$gl_LIBOBJS"; then | ||
109 | # Remove the extension. | ||
110 | sed_drop_objext='s/\.o$//;s/\.obj$//' | ||
111 | for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do | ||
112 | gl_libobjs="$gl_libobjs $i.$ac_objext" | ||
113 | gl_ltlibobjs="$gl_ltlibobjs $i.lo" | ||
114 | done | ||
115 | fi | ||
116 | AC_SUBST([gl_LIBOBJS], [$gl_libobjs]) | ||
117 | AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs]) | ||
118 | ]) | ||
119 | ]) | ||
120 | |||
121 | # Like AC_LIBOBJ, except that the module name goes | ||
122 | # into gl_LIBOBJS instead of into LIBOBJS. | ||
123 | AC_DEFUN([gl_LIBOBJ], | ||
124 | [gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext"]) | ||
125 | |||
126 | # Like AC_REPLACE_FUNCS, except that the module name goes | ||
127 | # into gl_LIBOBJS instead of into LIBOBJS. | ||
128 | AC_DEFUN([gl_REPLACE_FUNCS], | ||
129 | [AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)])]) | ||
130 | |||
131 | # Like AC_LIBSOURCES, except that it does nothing. | ||
132 | # We rely on EXTRA_lib..._SOURCES instead. | ||
133 | AC_DEFUN([gl_LIBSOURCES], | ||
134 | []) | ||
135 | |||
136 | # This macro records the list of files which have been installed by | ||
137 | # gnulib-tool and may be removed by future gnulib-tool invocations. | ||
138 | AC_DEFUN([gl_FILE_LIST], [ | ||
139 | build-aux/config.rpath | ||
140 | lib/alloca.c | ||
141 | lib/alloca_.h | ||
142 | lib/asnprintf.c | ||
143 | lib/asprintf.c | ||
144 | lib/basename.c | ||
145 | lib/c-strtod.c | ||
146 | lib/c-strtod.h | ||
147 | lib/cloexec.c | ||
148 | lib/cloexec.h | ||
149 | lib/creat-safer.c | ||
150 | lib/dirname.c | ||
151 | lib/dirname.h | ||
152 | lib/dup-safer.c | ||
153 | lib/error.c | ||
154 | lib/error.h | ||
155 | lib/exit.h | ||
156 | lib/exitfail.c | ||
157 | lib/exitfail.h | ||
158 | lib/fcntl--.h | ||
159 | lib/fcntl-safer.h | ||
160 | lib/fd-safer.c | ||
161 | lib/fsusage.c | ||
162 | lib/fsusage.h | ||
163 | lib/full-read.c | ||
164 | lib/full-read.h | ||
165 | lib/full-write.c | ||
166 | lib/full-write.h | ||
167 | lib/gai_strerror.c | ||
168 | lib/getaddrinfo.c | ||
169 | lib/getaddrinfo.h | ||
170 | lib/gethostname.c | ||
171 | lib/getloadavg.c | ||
172 | lib/getopt.c | ||
173 | lib/getopt1.c | ||
174 | lib/getopt_.h | ||
175 | lib/getopt_int.h | ||
176 | lib/gettext.h | ||
177 | lib/inet_ntop.c | ||
178 | lib/inet_ntop.h | ||
179 | lib/intprops.h | ||
180 | lib/malloc.c | ||
181 | lib/mbchar.c | ||
182 | lib/mbchar.h | ||
183 | lib/mbuiter.h | ||
184 | lib/memchr.c | ||
185 | lib/minmax.h | ||
186 | lib/mountlist.c | ||
187 | lib/mountlist.h | ||
188 | lib/open-safer.c | ||
189 | lib/pipe-safer.c | ||
190 | lib/printf-args.c | ||
191 | lib/printf-args.h | ||
192 | lib/printf-parse.c | ||
193 | lib/printf-parse.h | ||
194 | lib/regcomp.c | ||
195 | lib/regex.c | ||
196 | lib/regex.h | ||
197 | lib/regex_internal.c | ||
198 | lib/regex_internal.h | ||
199 | lib/regexec.c | ||
200 | lib/safe-read.c | ||
201 | lib/safe-read.h | ||
202 | lib/safe-write.c | ||
203 | lib/safe-write.h | ||
204 | lib/size_max.h | ||
205 | lib/snprintf.c | ||
206 | lib/snprintf.h | ||
207 | lib/socket_.h | ||
208 | lib/stdbool_.h | ||
209 | lib/stdint_.h | ||
210 | lib/strcase.h | ||
211 | lib/strcasecmp.c | ||
212 | lib/strdup.c | ||
213 | lib/strdup.h | ||
214 | lib/stripslash.c | ||
215 | lib/strncasecmp.c | ||
216 | lib/strndup.c | ||
217 | lib/strndup.h | ||
218 | lib/strnlen.c | ||
219 | lib/strnlen.h | ||
220 | lib/strnlen1.c | ||
221 | lib/strnlen1.h | ||
222 | lib/unistd--.h | ||
223 | lib/unistd-safer.h | ||
224 | lib/unistd_.h | ||
225 | lib/vasnprintf.c | ||
226 | lib/vasnprintf.h | ||
227 | lib/vasprintf.c | ||
228 | lib/vasprintf.h | ||
229 | lib/vsnprintf.c | ||
230 | lib/vsnprintf.h | ||
231 | lib/wchar_.h | ||
232 | lib/wctype_.h | ||
233 | lib/wcwidth.h | ||
234 | lib/xalloc-die.c | ||
235 | lib/xalloc.h | ||
236 | lib/xmalloc.c | ||
237 | lib/xsize.h | ||
238 | lib/xstrndup.c | ||
239 | lib/xstrndup.h | ||
240 | m4/absolute-header.m4 | ||
241 | m4/alloca.m4 | ||
242 | m4/arpa_inet_h.m4 | ||
243 | m4/c-strtod.m4 | ||
244 | m4/cloexec.m4 | ||
245 | m4/codeset.m4 | ||
246 | m4/dirname.m4 | ||
247 | m4/dos.m4 | ||
248 | m4/double-slash-root.m4 | ||
249 | m4/eoverflow.m4 | ||
250 | m4/error.m4 | ||
251 | m4/exitfail.m4 | ||
252 | m4/extensions.m4 | ||
253 | m4/fcntl-safer.m4 | ||
254 | m4/fstypename.m4 | ||
255 | m4/fsusage.m4 | ||
256 | m4/getaddrinfo.m4 | ||
257 | m4/gethostname.m4 | ||
258 | m4/getloadavg.m4 | ||
259 | m4/getopt.m4 | ||
260 | m4/gettext.m4 | ||
261 | m4/glibc2.m4 | ||
262 | m4/glibc21.m4 | ||
263 | m4/gnulib-common.m4 | ||
264 | m4/iconv.m4 | ||
265 | m4/inet_ntop.m4 | ||
266 | m4/inline.m4 | ||
267 | m4/intdiv0.m4 | ||
268 | m4/intl.m4 | ||
269 | m4/intldir.m4 | ||
270 | m4/intmax.m4 | ||
271 | m4/intmax_t.m4 | ||
272 | m4/inttypes-pri.m4 | ||
273 | m4/inttypes_h.m4 | ||
274 | m4/lcmessage.m4 | ||
275 | m4/lib-ld.m4 | ||
276 | m4/lib-link.m4 | ||
277 | m4/lib-prefix.m4 | ||
278 | m4/lock.m4 | ||
279 | m4/longdouble.m4 | ||
280 | m4/longlong.m4 | ||
281 | m4/ls-mntd-fs.m4 | ||
282 | m4/mbchar.m4 | ||
283 | m4/mbiter.m4 | ||
284 | m4/mbrtowc.m4 | ||
285 | m4/memchr.m4 | ||
286 | m4/minmax.m4 | ||
287 | m4/mountlist.m4 | ||
288 | m4/netinet_in_h.m4 | ||
289 | m4/nls.m4 | ||
290 | m4/onceonly_2_57.m4 | ||
291 | m4/po.m4 | ||
292 | m4/printf-posix.m4 | ||
293 | m4/progtest.m4 | ||
294 | m4/regex.m4 | ||
295 | m4/safe-read.m4 | ||
296 | m4/safe-write.m4 | ||
297 | m4/size_max.m4 | ||
298 | m4/snprintf.m4 | ||
299 | m4/socklen.m4 | ||
300 | m4/sockpfaf.m4 | ||
301 | m4/ssize_t.m4 | ||
302 | m4/stdbool.m4 | ||
303 | m4/stdint.m4 | ||
304 | m4/stdint_h.m4 | ||
305 | m4/strcase.m4 | ||
306 | m4/strdup.m4 | ||
307 | m4/strndup.m4 | ||
308 | m4/strnlen.m4 | ||
309 | m4/sys_socket_h.m4 | ||
310 | m4/uintmax_t.m4 | ||
311 | m4/ulonglong.m4 | ||
312 | m4/unistd-safer.m4 | ||
313 | m4/unistd_h.m4 | ||
314 | m4/vasnprintf.m4 | ||
315 | m4/vasprintf.m4 | ||
316 | m4/visibility.m4 | ||
317 | m4/vsnprintf.m4 | ||
318 | m4/wchar.m4 | ||
319 | m4/wchar_t.m4 | ||
320 | m4/wctype.m4 | ||
321 | m4/wcwidth.m4 | ||
322 | m4/wint_t.m4 | ||
323 | m4/xalloc.m4 | ||
324 | m4/xsize.m4 | ||
325 | m4/xstrndup.m4 | ||
326 | ]) | ||
diff --git a/gl/m4/gnulib-tool.m4 b/gl/m4/gnulib-tool.m4 new file mode 100644 index 00000000..ef593203 --- /dev/null +++ b/gl/m4/gnulib-tool.m4 | |||
@@ -0,0 +1,33 @@ | |||
1 | # gnulib-tool.m4 serial 1 | ||
2 | dnl Copyright (C) 2004-2005 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl The following macros need not be invoked explicitly. | ||
8 | dnl Invoking them does nothing except to declare default arguments | ||
9 | dnl for "gnulib-tool --import". | ||
10 | |||
11 | dnl Usage: gl_MODULES([module1 module2 ...]) | ||
12 | AC_DEFUN([gl_MODULES], []) | ||
13 | |||
14 | dnl Usage: gl_AVOID([module1 module2 ...]) | ||
15 | AC_DEFUN([gl_AVOID], []) | ||
16 | |||
17 | dnl Usage: gl_SOURCE_BASE([DIR]) | ||
18 | AC_DEFUN([gl_SOURCE_BASE], []) | ||
19 | |||
20 | dnl Usage: gl_M4_BASE([DIR]) | ||
21 | AC_DEFUN([gl_M4_BASE], []) | ||
22 | |||
23 | dnl Usage: gl_LIB([LIBNAME]) | ||
24 | AC_DEFUN([gl_LIB], []) | ||
25 | |||
26 | dnl Usage: gl_LGPL | ||
27 | AC_DEFUN([gl_LGPL], []) | ||
28 | |||
29 | dnl Usage: gl_LIBTOOL | ||
30 | AC_DEFUN([gl_LIBTOOL], []) | ||
31 | |||
32 | dnl Usage: gl_MACRO_PREFIX([PREFIX]) | ||
33 | AC_DEFUN([gl_MACRO_PREFIX], []) | ||
diff --git a/gl/m4/iconv.m4 b/gl/m4/iconv.m4 new file mode 100644 index 00000000..654c4158 --- /dev/null +++ b/gl/m4/iconv.m4 | |||
@@ -0,0 +1,101 @@ | |||
1 | # iconv.m4 serial AM4 (gettext-0.11.3) | ||
2 | dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Bruno Haible. | ||
8 | |||
9 | AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], | ||
10 | [ | ||
11 | dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. | ||
12 | AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) | ||
13 | AC_REQUIRE([AC_LIB_RPATH]) | ||
14 | |||
15 | dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV | ||
16 | dnl accordingly. | ||
17 | AC_LIB_LINKFLAGS_BODY([iconv]) | ||
18 | ]) | ||
19 | |||
20 | AC_DEFUN([AM_ICONV_LINK], | ||
21 | [ | ||
22 | dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and | ||
23 | dnl those with the standalone portable GNU libiconv installed). | ||
24 | |||
25 | dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV | ||
26 | dnl accordingly. | ||
27 | AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) | ||
28 | |||
29 | dnl Add $INCICONV to CPPFLAGS before performing the following checks, | ||
30 | dnl because if the user has installed libiconv and not disabled its use | ||
31 | dnl via --without-libiconv-prefix, he wants to use it. The first | ||
32 | dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. | ||
33 | am_save_CPPFLAGS="$CPPFLAGS" | ||
34 | AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) | ||
35 | |||
36 | AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ | ||
37 | am_cv_func_iconv="no, consider installing GNU libiconv" | ||
38 | am_cv_lib_iconv=no | ||
39 | AC_TRY_LINK([#include <stdlib.h> | ||
40 | #include <iconv.h>], | ||
41 | [iconv_t cd = iconv_open("",""); | ||
42 | iconv(cd,NULL,NULL,NULL,NULL); | ||
43 | iconv_close(cd);], | ||
44 | am_cv_func_iconv=yes) | ||
45 | if test "$am_cv_func_iconv" != yes; then | ||
46 | am_save_LIBS="$LIBS" | ||
47 | LIBS="$LIBS $LIBICONV" | ||
48 | AC_TRY_LINK([#include <stdlib.h> | ||
49 | #include <iconv.h>], | ||
50 | [iconv_t cd = iconv_open("",""); | ||
51 | iconv(cd,NULL,NULL,NULL,NULL); | ||
52 | iconv_close(cd);], | ||
53 | am_cv_lib_iconv=yes | ||
54 | am_cv_func_iconv=yes) | ||
55 | LIBS="$am_save_LIBS" | ||
56 | fi | ||
57 | ]) | ||
58 | if test "$am_cv_func_iconv" = yes; then | ||
59 | AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) | ||
60 | fi | ||
61 | if test "$am_cv_lib_iconv" = yes; then | ||
62 | AC_MSG_CHECKING([how to link with libiconv]) | ||
63 | AC_MSG_RESULT([$LIBICONV]) | ||
64 | else | ||
65 | dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV | ||
66 | dnl either. | ||
67 | CPPFLAGS="$am_save_CPPFLAGS" | ||
68 | LIBICONV= | ||
69 | LTLIBICONV= | ||
70 | fi | ||
71 | AC_SUBST(LIBICONV) | ||
72 | AC_SUBST(LTLIBICONV) | ||
73 | ]) | ||
74 | |||
75 | AC_DEFUN([AM_ICONV], | ||
76 | [ | ||
77 | AM_ICONV_LINK | ||
78 | if test "$am_cv_func_iconv" = yes; then | ||
79 | AC_MSG_CHECKING([for iconv declaration]) | ||
80 | AC_CACHE_VAL(am_cv_proto_iconv, [ | ||
81 | AC_TRY_COMPILE([ | ||
82 | #include <stdlib.h> | ||
83 | #include <iconv.h> | ||
84 | extern | ||
85 | #ifdef __cplusplus | ||
86 | "C" | ||
87 | #endif | ||
88 | #if defined(__STDC__) || defined(__cplusplus) | ||
89 | size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); | ||
90 | #else | ||
91 | size_t iconv(); | ||
92 | #endif | ||
93 | ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") | ||
94 | am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) | ||
95 | am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` | ||
96 | AC_MSG_RESULT([$]{ac_t:- | ||
97 | }[$]am_cv_proto_iconv) | ||
98 | AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, | ||
99 | [Define as const if the declaration of iconv() needs const.]) | ||
100 | fi | ||
101 | ]) | ||
diff --git a/gl/m4/inet_ntop.m4 b/gl/m4/inet_ntop.m4 new file mode 100644 index 00000000..bb02d229 --- /dev/null +++ b/gl/m4/inet_ntop.m4 | |||
@@ -0,0 +1,19 @@ | |||
1 | # inet_ntop.m4 serial 3 | ||
2 | dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_INET_NTOP], | ||
8 | [ | ||
9 | AC_REPLACE_FUNCS(inet_ntop) | ||
10 | gl_PREREQ_INET_NTOP | ||
11 | ]) | ||
12 | |||
13 | # Prerequisites of lib/inet_ntop.h and lib/inet_ntop.c. | ||
14 | AC_DEFUN([gl_PREREQ_INET_NTOP], [ | ||
15 | AC_CHECK_HEADERS_ONCE([netinet/in.h arpa/inet.h]) | ||
16 | AC_CHECK_DECLS([inet_ntop],,,[#include <arpa/inet.h>]) | ||
17 | AC_REQUIRE([gl_SOCKET_FAMILIES]) | ||
18 | AC_REQUIRE([AC_C_RESTRICT]) | ||
19 | ]) | ||
diff --git a/gl/m4/inline.m4 b/gl/m4/inline.m4 new file mode 100644 index 00000000..a07076cd --- /dev/null +++ b/gl/m4/inline.m4 | |||
@@ -0,0 +1,40 @@ | |||
1 | # inline.m4 serial 3 | ||
2 | dnl Copyright (C) 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl Test for the 'inline' keyword or equivalent. | ||
8 | dnl Define 'inline' to a supported equivalent, or to nothing if not supported, | ||
9 | dnl like AC_C_INLINE does. Also, define HAVE_INLINE if 'inline' or an | ||
10 | dnl equivalent is effectively supported, i.e. if the compiler is likely to | ||
11 | dnl drop unused 'static inline' functions. | ||
12 | AC_DEFUN([gl_INLINE], | ||
13 | [ | ||
14 | AC_REQUIRE([AC_C_INLINE]) | ||
15 | AC_CACHE_CHECK([whether the compiler generally respects inline], | ||
16 | [gl_cv_c_inline_effective], | ||
17 | [if test $ac_cv_c_inline = no; then | ||
18 | gl_cv_c_inline_effective=no | ||
19 | else | ||
20 | dnl GCC defines __NO_INLINE__ if not optimizing or if -fno-inline is | ||
21 | dnl specified. | ||
22 | dnl Use AC_COMPILE_IFELSE here, not AC_EGREP_CPP, because the result | ||
23 | dnl depends on optimization flags, which can be in CFLAGS. | ||
24 | dnl (AC_EGREP_CPP looks only at the CPPFLAGS.) | ||
25 | AC_COMPILE_IFELSE( | ||
26 | [AC_LANG_PROGRAM([[]], | ||
27 | [[#ifdef __NO_INLINE__ | ||
28 | #error "inline is not effective" | ||
29 | #endif]])], | ||
30 | [gl_cv_c_inline_effective=yes], | ||
31 | [gl_cv_c_inline_effective=no]) | ||
32 | fi | ||
33 | ]) | ||
34 | if test $gl_cv_c_inline_effective = yes; then | ||
35 | AC_DEFINE([HAVE_INLINE], 1, | ||
36 | [Define to 1 if the compiler supports one of the keywords | ||
37 | 'inline', '__inline__', '__inline' and effectively inlines | ||
38 | functions marked as such.]) | ||
39 | fi | ||
40 | ]) | ||
diff --git a/gl/m4/intdiv0.m4 b/gl/m4/intdiv0.m4 new file mode 100644 index 00000000..b8d78176 --- /dev/null +++ b/gl/m4/intdiv0.m4 | |||
@@ -0,0 +1,70 @@ | |||
1 | # intdiv0.m4 serial 1 (gettext-0.11.3) | ||
2 | dnl Copyright (C) 2002 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Bruno Haible. | ||
8 | |||
9 | AC_DEFUN([gt_INTDIV0], | ||
10 | [ | ||
11 | AC_REQUIRE([AC_PROG_CC])dnl | ||
12 | AC_REQUIRE([AC_CANONICAL_HOST])dnl | ||
13 | |||
14 | AC_CACHE_CHECK([whether integer division by zero raises SIGFPE], | ||
15 | gt_cv_int_divbyzero_sigfpe, | ||
16 | [ | ||
17 | AC_TRY_RUN([ | ||
18 | #include <stdlib.h> | ||
19 | #include <signal.h> | ||
20 | |||
21 | static void | ||
22 | #ifdef __cplusplus | ||
23 | sigfpe_handler (int sig) | ||
24 | #else | ||
25 | sigfpe_handler (sig) int sig; | ||
26 | #endif | ||
27 | { | ||
28 | /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ | ||
29 | exit (sig != SIGFPE); | ||
30 | } | ||
31 | |||
32 | int x = 1; | ||
33 | int y = 0; | ||
34 | int z; | ||
35 | int nan; | ||
36 | |||
37 | int main () | ||
38 | { | ||
39 | signal (SIGFPE, sigfpe_handler); | ||
40 | /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ | ||
41 | #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) | ||
42 | signal (SIGTRAP, sigfpe_handler); | ||
43 | #endif | ||
44 | /* Linux/SPARC yields signal SIGILL. */ | ||
45 | #if defined (__sparc__) && defined (__linux__) | ||
46 | signal (SIGILL, sigfpe_handler); | ||
47 | #endif | ||
48 | |||
49 | z = x / y; | ||
50 | nan = y / y; | ||
51 | exit (1); | ||
52 | } | ||
53 | ], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no, | ||
54 | [ | ||
55 | # Guess based on the CPU. | ||
56 | case "$host_cpu" in | ||
57 | alpha* | i[34567]86 | m68k | s390*) | ||
58 | gt_cv_int_divbyzero_sigfpe="guessing yes";; | ||
59 | *) | ||
60 | gt_cv_int_divbyzero_sigfpe="guessing no";; | ||
61 | esac | ||
62 | ]) | ||
63 | ]) | ||
64 | case "$gt_cv_int_divbyzero_sigfpe" in | ||
65 | *yes) value=1;; | ||
66 | *) value=0;; | ||
67 | esac | ||
68 | AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value, | ||
69 | [Define if integer division by zero raises signal SIGFPE.]) | ||
70 | ]) | ||
diff --git a/gl/m4/intl.m4 b/gl/m4/intl.m4 new file mode 100644 index 00000000..dcefb118 --- /dev/null +++ b/gl/m4/intl.m4 | |||
@@ -0,0 +1,259 @@ | |||
1 | # intl.m4 serial 3 (gettext-0.16) | ||
2 | dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | dnl | ||
7 | dnl This file can can be used in projects which are not available under | ||
8 | dnl the GNU General Public License or the GNU Library General Public | ||
9 | dnl License but which still want to provide support for the GNU gettext | ||
10 | dnl functionality. | ||
11 | dnl Please note that the actual code of the GNU gettext library is covered | ||
12 | dnl by the GNU Library General Public License, and the rest of the GNU | ||
13 | dnl gettext package package is covered by the GNU General Public License. | ||
14 | dnl They are *not* in the public domain. | ||
15 | |||
16 | dnl Authors: | ||
17 | dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. | ||
18 | dnl Bruno Haible <haible@clisp.cons.org>, 2000-2006. | ||
19 | |||
20 | AC_PREREQ(2.52) | ||
21 | |||
22 | dnl Checks for all prerequisites of the intl subdirectory, | ||
23 | dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, | ||
24 | dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. | ||
25 | AC_DEFUN([AM_INTL_SUBDIR], | ||
26 | [ | ||
27 | AC_REQUIRE([AC_PROG_INSTALL])dnl | ||
28 | AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake | ||
29 | AC_REQUIRE([AC_PROG_CC])dnl | ||
30 | AC_REQUIRE([AC_CANONICAL_HOST])dnl | ||
31 | AC_REQUIRE([gt_GLIBC2])dnl | ||
32 | AC_REQUIRE([AC_PROG_RANLIB])dnl | ||
33 | AC_REQUIRE([gl_VISIBILITY])dnl | ||
34 | AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl | ||
35 | AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl | ||
36 | AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl | ||
37 | AC_REQUIRE([gt_TYPE_WCHAR_T])dnl | ||
38 | AC_REQUIRE([gt_TYPE_WINT_T])dnl | ||
39 | AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) | ||
40 | AC_REQUIRE([gt_TYPE_INTMAX_T]) | ||
41 | AC_REQUIRE([gt_PRINTF_POSIX]) | ||
42 | AC_REQUIRE([gl_GLIBC21])dnl | ||
43 | AC_REQUIRE([gl_XSIZE])dnl | ||
44 | AC_REQUIRE([gt_INTL_MACOSX])dnl | ||
45 | |||
46 | AC_CHECK_TYPE([ptrdiff_t], , | ||
47 | [AC_DEFINE([ptrdiff_t], [long], | ||
48 | [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) | ||
49 | ]) | ||
50 | AC_CHECK_HEADERS([stddef.h stdlib.h string.h]) | ||
51 | AC_CHECK_FUNCS([asprintf fwprintf putenv setenv setlocale snprintf wcslen]) | ||
52 | |||
53 | dnl Use the _snprintf function only if it is declared (because on NetBSD it | ||
54 | dnl is defined as a weak alias of snprintf; we prefer to use the latter). | ||
55 | gt_CHECK_DECL(_snprintf, [#include <stdio.h>]) | ||
56 | gt_CHECK_DECL(_snwprintf, [#include <stdio.h>]) | ||
57 | |||
58 | dnl Use the *_unlocked functions only if they are declared. | ||
59 | dnl (because some of them were defined without being declared in Solaris | ||
60 | dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built | ||
61 | dnl on Solaris 2.5.1 to run on Solaris 2.6). | ||
62 | dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. | ||
63 | gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>]) | ||
64 | |||
65 | case $gt_cv_func_printf_posix in | ||
66 | *yes) HAVE_POSIX_PRINTF=1 ;; | ||
67 | *) HAVE_POSIX_PRINTF=0 ;; | ||
68 | esac | ||
69 | AC_SUBST([HAVE_POSIX_PRINTF]) | ||
70 | if test "$ac_cv_func_asprintf" = yes; then | ||
71 | HAVE_ASPRINTF=1 | ||
72 | else | ||
73 | HAVE_ASPRINTF=0 | ||
74 | fi | ||
75 | AC_SUBST([HAVE_ASPRINTF]) | ||
76 | if test "$ac_cv_func_snprintf" = yes; then | ||
77 | HAVE_SNPRINTF=1 | ||
78 | else | ||
79 | HAVE_SNPRINTF=0 | ||
80 | fi | ||
81 | AC_SUBST([HAVE_SNPRINTF]) | ||
82 | if test "$ac_cv_func_wprintf" = yes; then | ||
83 | HAVE_WPRINTF=1 | ||
84 | else | ||
85 | HAVE_WPRINTF=0 | ||
86 | fi | ||
87 | AC_SUBST([HAVE_WPRINTF]) | ||
88 | |||
89 | AM_LANGINFO_CODESET | ||
90 | gt_LC_MESSAGES | ||
91 | |||
92 | dnl Compilation on mingw and Cygwin needs special Makefile rules, because | ||
93 | dnl 1. when we install a shared library, we must arrange to export | ||
94 | dnl auxiliary pointer variables for every exported variable, | ||
95 | dnl 2. when we install a shared library and a static library simultaneously, | ||
96 | dnl the include file specifies __declspec(dllimport) and therefore we | ||
97 | dnl must arrange to define the auxiliary pointer variables for the | ||
98 | dnl exported variables _also_ in the static library. | ||
99 | if test "$enable_shared" = yes; then | ||
100 | case "$host_os" in | ||
101 | cygwin*) is_woe32dll=yes ;; | ||
102 | *) is_woe32dll=no ;; | ||
103 | esac | ||
104 | else | ||
105 | is_woe32dll=no | ||
106 | fi | ||
107 | WOE32DLL=$is_woe32dll | ||
108 | AC_SUBST([WOE32DLL]) | ||
109 | |||
110 | dnl Rename some macros and functions used for locking. | ||
111 | AH_BOTTOM([ | ||
112 | #define __libc_lock_t gl_lock_t | ||
113 | #define __libc_lock_define gl_lock_define | ||
114 | #define __libc_lock_define_initialized gl_lock_define_initialized | ||
115 | #define __libc_lock_init gl_lock_init | ||
116 | #define __libc_lock_lock gl_lock_lock | ||
117 | #define __libc_lock_unlock gl_lock_unlock | ||
118 | #define __libc_lock_recursive_t gl_recursive_lock_t | ||
119 | #define __libc_lock_define_recursive gl_recursive_lock_define | ||
120 | #define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized | ||
121 | #define __libc_lock_init_recursive gl_recursive_lock_init | ||
122 | #define __libc_lock_lock_recursive gl_recursive_lock_lock | ||
123 | #define __libc_lock_unlock_recursive gl_recursive_lock_unlock | ||
124 | #define glthread_in_use libintl_thread_in_use | ||
125 | #define glthread_lock_init libintl_lock_init | ||
126 | #define glthread_lock_lock libintl_lock_lock | ||
127 | #define glthread_lock_unlock libintl_lock_unlock | ||
128 | #define glthread_lock_destroy libintl_lock_destroy | ||
129 | #define glthread_rwlock_init libintl_rwlock_init | ||
130 | #define glthread_rwlock_rdlock libintl_rwlock_rdlock | ||
131 | #define glthread_rwlock_wrlock libintl_rwlock_wrlock | ||
132 | #define glthread_rwlock_unlock libintl_rwlock_unlock | ||
133 | #define glthread_rwlock_destroy libintl_rwlock_destroy | ||
134 | #define glthread_recursive_lock_init libintl_recursive_lock_init | ||
135 | #define glthread_recursive_lock_lock libintl_recursive_lock_lock | ||
136 | #define glthread_recursive_lock_unlock libintl_recursive_lock_unlock | ||
137 | #define glthread_recursive_lock_destroy libintl_recursive_lock_destroy | ||
138 | #define glthread_once libintl_once | ||
139 | #define glthread_once_call libintl_once_call | ||
140 | #define glthread_once_singlethreaded libintl_once_singlethreaded | ||
141 | ]) | ||
142 | ]) | ||
143 | |||
144 | |||
145 | dnl Checks for the core files of the intl subdirectory: | ||
146 | dnl dcigettext.c | ||
147 | dnl eval-plural.h | ||
148 | dnl explodename.c | ||
149 | dnl finddomain.c | ||
150 | dnl gettextP.h | ||
151 | dnl gmo.h | ||
152 | dnl hash-string.h hash-string.c | ||
153 | dnl l10nflist.c | ||
154 | dnl libgnuintl.h.in (except the *printf stuff) | ||
155 | dnl loadinfo.h | ||
156 | dnl loadmsgcat.c | ||
157 | dnl localealias.c | ||
158 | dnl log.c | ||
159 | dnl plural-exp.h plural-exp.c | ||
160 | dnl plural.y | ||
161 | dnl Used by libglocale. | ||
162 | AC_DEFUN([gt_INTL_SUBDIR_CORE], | ||
163 | [ | ||
164 | AC_REQUIRE([AC_C_INLINE])dnl | ||
165 | AC_REQUIRE([AC_TYPE_SIZE_T])dnl | ||
166 | AC_REQUIRE([gl_AC_HEADER_STDINT_H]) | ||
167 | AC_REQUIRE([AC_FUNC_ALLOCA])dnl | ||
168 | AC_REQUIRE([AC_FUNC_MMAP])dnl | ||
169 | AC_REQUIRE([gt_INTDIV0])dnl | ||
170 | AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl | ||
171 | AC_REQUIRE([gt_INTTYPES_PRI])dnl | ||
172 | AC_REQUIRE([gl_LOCK])dnl | ||
173 | |||
174 | AC_TRY_LINK( | ||
175 | [int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }], | ||
176 | [], | ||
177 | [AC_DEFINE([HAVE_BUILTIN_EXPECT], 1, | ||
178 | [Define to 1 if the compiler understands __builtin_expect.])]) | ||
179 | |||
180 | AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h]) | ||
181 | AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \ | ||
182 | stpcpy strcasecmp strdup strtoul tsearch argz_count argz_stringify \ | ||
183 | argz_next __fsetlocking]) | ||
184 | |||
185 | dnl Use the *_unlocked functions only if they are declared. | ||
186 | dnl (because some of them were defined without being declared in Solaris | ||
187 | dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built | ||
188 | dnl on Solaris 2.5.1 to run on Solaris 2.6). | ||
189 | dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. | ||
190 | gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>]) | ||
191 | gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>]) | ||
192 | |||
193 | AM_ICONV | ||
194 | |||
195 | dnl glibc >= 2.4 has a NL_LOCALE_NAME macro when _GNU_SOURCE is defined, | ||
196 | dnl and a _NL_LOCALE_NAME macro always. | ||
197 | AC_CACHE_CHECK([for NL_LOCALE_NAME macro], gt_cv_nl_locale_name, | ||
198 | [AC_TRY_LINK([#include <langinfo.h> | ||
199 | #include <locale.h>], | ||
200 | [char* cs = nl_langinfo(_NL_LOCALE_NAME(LC_MESSAGES));], | ||
201 | gt_cv_nl_locale_name=yes, | ||
202 | gt_cv_nl_locale_name=no) | ||
203 | ]) | ||
204 | if test $gt_cv_nl_locale_name = yes; then | ||
205 | AC_DEFINE(HAVE_NL_LOCALE_NAME, 1, | ||
206 | [Define if you have <langinfo.h> and it defines the NL_LOCALE_NAME macro if _GNU_SOURCE is defined.]) | ||
207 | fi | ||
208 | |||
209 | dnl intl/plural.c is generated from intl/plural.y. It requires bison, | ||
210 | dnl because plural.y uses bison specific features. It requires at least | ||
211 | dnl bison-1.26 because earlier versions generate a plural.c that doesn't | ||
212 | dnl compile. | ||
213 | dnl bison is only needed for the maintainer (who touches plural.y). But in | ||
214 | dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put | ||
215 | dnl the rule in general Makefile. Now, some people carelessly touch the | ||
216 | dnl files or have a broken "make" program, hence the plural.c rule will | ||
217 | dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not | ||
218 | dnl present or too old. | ||
219 | AC_CHECK_PROGS([INTLBISON], [bison]) | ||
220 | if test -z "$INTLBISON"; then | ||
221 | ac_verc_fail=yes | ||
222 | else | ||
223 | dnl Found it, now check the version. | ||
224 | AC_MSG_CHECKING([version of bison]) | ||
225 | changequote(<<,>>)dnl | ||
226 | ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` | ||
227 | case $ac_prog_version in | ||
228 | '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; | ||
229 | 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) | ||
230 | changequote([,])dnl | ||
231 | ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; | ||
232 | *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; | ||
233 | esac | ||
234 | AC_MSG_RESULT([$ac_prog_version]) | ||
235 | fi | ||
236 | if test $ac_verc_fail = yes; then | ||
237 | INTLBISON=: | ||
238 | fi | ||
239 | ]) | ||
240 | |||
241 | |||
242 | dnl gt_CHECK_DECL(FUNC, INCLUDES) | ||
243 | dnl Check whether a function is declared. | ||
244 | AC_DEFUN([gt_CHECK_DECL], | ||
245 | [ | ||
246 | AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1, | ||
247 | [AC_TRY_COMPILE([$2], [ | ||
248 | #ifndef $1 | ||
249 | char *p = (char *) $1; | ||
250 | #endif | ||
251 | ], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)]) | ||
252 | if test $ac_cv_have_decl_$1 = yes; then | ||
253 | gt_value=1 | ||
254 | else | ||
255 | gt_value=0 | ||
256 | fi | ||
257 | AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value], | ||
258 | [Define to 1 if you have the declaration of `$1', and to 0 if you don't.]) | ||
259 | ]) | ||
diff --git a/gl/m4/intldir.m4 b/gl/m4/intldir.m4 new file mode 100644 index 00000000..7a28843f --- /dev/null +++ b/gl/m4/intldir.m4 | |||
@@ -0,0 +1,19 @@ | |||
1 | # intldir.m4 serial 1 (gettext-0.16) | ||
2 | dnl Copyright (C) 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | dnl | ||
7 | dnl This file can can be used in projects which are not available under | ||
8 | dnl the GNU General Public License or the GNU Library General Public | ||
9 | dnl License but which still want to provide support for the GNU gettext | ||
10 | dnl functionality. | ||
11 | dnl Please note that the actual code of the GNU gettext library is covered | ||
12 | dnl by the GNU Library General Public License, and the rest of the GNU | ||
13 | dnl gettext package package is covered by the GNU General Public License. | ||
14 | dnl They are *not* in the public domain. | ||
15 | |||
16 | AC_PREREQ(2.52) | ||
17 | |||
18 | dnl Tells the AM_GNU_GETTEXT macro to consider an intl/ directory. | ||
19 | AC_DEFUN([AM_GNU_GETTEXT_INTL_SUBDIR], []) | ||
diff --git a/gl/m4/intmax.m4 b/gl/m4/intmax.m4 new file mode 100644 index 00000000..ce7a8a49 --- /dev/null +++ b/gl/m4/intmax.m4 | |||
@@ -0,0 +1,33 @@ | |||
1 | # intmax.m4 serial 3 (gettext-0.16) | ||
2 | dnl Copyright (C) 2002-2005 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Bruno Haible. | ||
8 | dnl Test whether the system has the 'intmax_t' type, but don't attempt to | ||
9 | dnl find a replacement if it is lacking. | ||
10 | |||
11 | AC_DEFUN([gt_TYPE_INTMAX_T], | ||
12 | [ | ||
13 | AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) | ||
14 | AC_REQUIRE([gl_AC_HEADER_STDINT_H]) | ||
15 | AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t, | ||
16 | [AC_TRY_COMPILE([ | ||
17 | #include <stddef.h> | ||
18 | #include <stdlib.h> | ||
19 | #if HAVE_STDINT_H_WITH_UINTMAX | ||
20 | #include <stdint.h> | ||
21 | #endif | ||
22 | #if HAVE_INTTYPES_H_WITH_UINTMAX | ||
23 | #include <inttypes.h> | ||
24 | #endif | ||
25 | ], [intmax_t x = -1; | ||
26 | return !x;], | ||
27 | gt_cv_c_intmax_t=yes, | ||
28 | gt_cv_c_intmax_t=no)]) | ||
29 | if test $gt_cv_c_intmax_t = yes; then | ||
30 | AC_DEFINE(HAVE_INTMAX_T, 1, | ||
31 | [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.]) | ||
32 | fi | ||
33 | ]) | ||
diff --git a/gl/m4/intmax_t.m4 b/gl/m4/intmax_t.m4 new file mode 100644 index 00000000..17c7b0ae --- /dev/null +++ b/gl/m4/intmax_t.m4 | |||
@@ -0,0 +1,61 @@ | |||
1 | # intmax_t.m4 serial 5 | ||
2 | dnl Copyright (C) 1997-2004, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Paul Eggert. | ||
8 | |||
9 | AC_PREREQ(2.13) | ||
10 | |||
11 | # Define intmax_t to 'long' or 'long long' | ||
12 | # if it is not already defined in <stdint.h> or <inttypes.h>. | ||
13 | |||
14 | AC_DEFUN([gl_AC_TYPE_INTMAX_T], | ||
15 | [ | ||
16 | dnl For simplicity, we assume that a header file defines 'intmax_t' if and | ||
17 | dnl only if it defines 'uintmax_t'. | ||
18 | AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) | ||
19 | AC_REQUIRE([gl_AC_HEADER_STDINT_H]) | ||
20 | if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then | ||
21 | AC_REQUIRE([gl_AC_TYPE_LONG_LONG]) | ||
22 | test $ac_cv_type_long_long = yes \ | ||
23 | && ac_type='long long' \ | ||
24 | || ac_type='long' | ||
25 | AC_DEFINE_UNQUOTED(intmax_t, $ac_type, | ||
26 | [Define to long or long long if <inttypes.h> and <stdint.h> don't define.]) | ||
27 | else | ||
28 | AC_DEFINE(HAVE_INTMAX_T, 1, | ||
29 | [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.]) | ||
30 | fi | ||
31 | ]) | ||
32 | |||
33 | dnl An alternative would be to explicitly test for 'intmax_t'. | ||
34 | |||
35 | AC_DEFUN([gt_AC_TYPE_INTMAX_T], | ||
36 | [ | ||
37 | AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) | ||
38 | AC_REQUIRE([gl_AC_HEADER_STDINT_H]) | ||
39 | AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t, | ||
40 | [AC_TRY_COMPILE([ | ||
41 | #include <stddef.h> | ||
42 | #include <stdlib.h> | ||
43 | #if HAVE_STDINT_H_WITH_UINTMAX | ||
44 | #include <stdint.h> | ||
45 | #endif | ||
46 | #if HAVE_INTTYPES_H_WITH_UINTMAX | ||
47 | #include <inttypes.h> | ||
48 | #endif | ||
49 | ], [intmax_t x = -1; return !x;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)]) | ||
50 | if test $gt_cv_c_intmax_t = yes; then | ||
51 | AC_DEFINE(HAVE_INTMAX_T, 1, | ||
52 | [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.]) | ||
53 | else | ||
54 | AC_REQUIRE([gl_AC_TYPE_LONG_LONG]) | ||
55 | test $ac_cv_type_long_long = yes \ | ||
56 | && ac_type='long long' \ | ||
57 | || ac_type='long' | ||
58 | AC_DEFINE_UNQUOTED(intmax_t, $ac_type, | ||
59 | [Define to long or long long if <stdint.h> and <inttypes.h> don't define.]) | ||
60 | fi | ||
61 | ]) | ||
diff --git a/gl/m4/inttypes-pri.m4 b/gl/m4/inttypes-pri.m4 new file mode 100644 index 00000000..7c7f8940 --- /dev/null +++ b/gl/m4/inttypes-pri.m4 | |||
@@ -0,0 +1,36 @@ | |||
1 | # inttypes-pri.m4 serial 4 (gettext-0.16) | ||
2 | dnl Copyright (C) 1997-2002, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Bruno Haible. | ||
8 | |||
9 | AC_PREREQ(2.52) | ||
10 | |||
11 | # Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI* | ||
12 | # macros to non-string values. This is the case on AIX 4.3.3. | ||
13 | |||
14 | AC_DEFUN([gt_INTTYPES_PRI], | ||
15 | [ | ||
16 | AC_CHECK_HEADERS([inttypes.h]) | ||
17 | if test $ac_cv_header_inttypes_h = yes; then | ||
18 | AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], | ||
19 | gt_cv_inttypes_pri_broken, | ||
20 | [ | ||
21 | AC_TRY_COMPILE([#include <inttypes.h> | ||
22 | #ifdef PRId32 | ||
23 | char *p = PRId32; | ||
24 | #endif | ||
25 | ], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes) | ||
26 | ]) | ||
27 | fi | ||
28 | if test "$gt_cv_inttypes_pri_broken" = yes; then | ||
29 | AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1, | ||
30 | [Define if <inttypes.h> exists and defines unusable PRI* macros.]) | ||
31 | PRI_MACROS_BROKEN=1 | ||
32 | else | ||
33 | PRI_MACROS_BROKEN=0 | ||
34 | fi | ||
35 | AC_SUBST([PRI_MACROS_BROKEN]) | ||
36 | ]) | ||
diff --git a/gl/m4/inttypes_h.m4 b/gl/m4/inttypes_h.m4 new file mode 100644 index 00000000..edc8ecb2 --- /dev/null +++ b/gl/m4/inttypes_h.m4 | |||
@@ -0,0 +1,26 @@ | |||
1 | # inttypes_h.m4 serial 7 | ||
2 | dnl Copyright (C) 1997-2004, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Paul Eggert. | ||
8 | |||
9 | # Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists, | ||
10 | # doesn't clash with <sys/types.h>, and declares uintmax_t. | ||
11 | |||
12 | AC_DEFUN([gl_AC_HEADER_INTTYPES_H], | ||
13 | [ | ||
14 | AC_CACHE_CHECK([for inttypes.h], gl_cv_header_inttypes_h, | ||
15 | [AC_TRY_COMPILE( | ||
16 | [#include <sys/types.h> | ||
17 | #include <inttypes.h>], | ||
18 | [uintmax_t i = (uintmax_t) -1; return !i;], | ||
19 | gl_cv_header_inttypes_h=yes, | ||
20 | gl_cv_header_inttypes_h=no)]) | ||
21 | if test $gl_cv_header_inttypes_h = yes; then | ||
22 | AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1, | ||
23 | [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>, | ||
24 | and declares uintmax_t. ]) | ||
25 | fi | ||
26 | ]) | ||
diff --git a/gl/m4/lcmessage.m4 b/gl/m4/lcmessage.m4 new file mode 100644 index 00000000..19aa77e4 --- /dev/null +++ b/gl/m4/lcmessage.m4 | |||
@@ -0,0 +1,30 @@ | |||
1 | # lcmessage.m4 serial 4 (gettext-0.14.2) | ||
2 | dnl Copyright (C) 1995-2002, 2004-2005 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | dnl | ||
7 | dnl This file can can be used in projects which are not available under | ||
8 | dnl the GNU General Public License or the GNU Library General Public | ||
9 | dnl License but which still want to provide support for the GNU gettext | ||
10 | dnl functionality. | ||
11 | dnl Please note that the actual code of the GNU gettext library is covered | ||
12 | dnl by the GNU Library General Public License, and the rest of the GNU | ||
13 | dnl gettext package package is covered by the GNU General Public License. | ||
14 | dnl They are *not* in the public domain. | ||
15 | |||
16 | dnl Authors: | ||
17 | dnl Ulrich Drepper <drepper@cygnus.com>, 1995. | ||
18 | |||
19 | # Check whether LC_MESSAGES is available in <locale.h>. | ||
20 | |||
21 | AC_DEFUN([gt_LC_MESSAGES], | ||
22 | [ | ||
23 | AC_CACHE_CHECK([for LC_MESSAGES], gt_cv_val_LC_MESSAGES, | ||
24 | [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], | ||
25 | gt_cv_val_LC_MESSAGES=yes, gt_cv_val_LC_MESSAGES=no)]) | ||
26 | if test $gt_cv_val_LC_MESSAGES = yes; then | ||
27 | AC_DEFINE(HAVE_LC_MESSAGES, 1, | ||
28 | [Define if your <locale.h> file defines LC_MESSAGES.]) | ||
29 | fi | ||
30 | ]) | ||
diff --git a/gl/m4/lib-ld.m4 b/gl/m4/lib-ld.m4 new file mode 100644 index 00000000..96c4e2c3 --- /dev/null +++ b/gl/m4/lib-ld.m4 | |||
@@ -0,0 +1,110 @@ | |||
1 | # lib-ld.m4 serial 3 (gettext-0.13) | ||
2 | dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl Subroutines of libtool.m4, | ||
8 | dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision | ||
9 | dnl with libtool.m4. | ||
10 | |||
11 | dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. | ||
12 | AC_DEFUN([AC_LIB_PROG_LD_GNU], | ||
13 | [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, | ||
14 | [# I'd rather use --version here, but apparently some GNU ld's only accept -v. | ||
15 | case `$LD -v 2>&1 </dev/null` in | ||
16 | *GNU* | *'with BFD'*) | ||
17 | acl_cv_prog_gnu_ld=yes ;; | ||
18 | *) | ||
19 | acl_cv_prog_gnu_ld=no ;; | ||
20 | esac]) | ||
21 | with_gnu_ld=$acl_cv_prog_gnu_ld | ||
22 | ]) | ||
23 | |||
24 | dnl From libtool-1.4. Sets the variable LD. | ||
25 | AC_DEFUN([AC_LIB_PROG_LD], | ||
26 | [AC_ARG_WITH(gnu-ld, | ||
27 | [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], | ||
28 | test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) | ||
29 | AC_REQUIRE([AC_PROG_CC])dnl | ||
30 | AC_REQUIRE([AC_CANONICAL_HOST])dnl | ||
31 | # Prepare PATH_SEPARATOR. | ||
32 | # The user is always right. | ||
33 | if test "${PATH_SEPARATOR+set}" != set; then | ||
34 | echo "#! /bin/sh" >conf$$.sh | ||
35 | echo "exit 0" >>conf$$.sh | ||
36 | chmod +x conf$$.sh | ||
37 | if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then | ||
38 | PATH_SEPARATOR=';' | ||
39 | else | ||
40 | PATH_SEPARATOR=: | ||
41 | fi | ||
42 | rm -f conf$$.sh | ||
43 | fi | ||
44 | ac_prog=ld | ||
45 | if test "$GCC" = yes; then | ||
46 | # Check if gcc -print-prog-name=ld gives a path. | ||
47 | AC_MSG_CHECKING([for ld used by GCC]) | ||
48 | case $host in | ||
49 | *-*-mingw*) | ||
50 | # gcc leaves a trailing carriage return which upsets mingw | ||
51 | ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; | ||
52 | *) | ||
53 | ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; | ||
54 | esac | ||
55 | case $ac_prog in | ||
56 | # Accept absolute paths. | ||
57 | [[\\/]* | [A-Za-z]:[\\/]*)] | ||
58 | [re_direlt='/[^/][^/]*/\.\./'] | ||
59 | # Canonicalize the path of ld | ||
60 | ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` | ||
61 | while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do | ||
62 | ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` | ||
63 | done | ||
64 | test -z "$LD" && LD="$ac_prog" | ||
65 | ;; | ||
66 | "") | ||
67 | # If it fails, then pretend we aren't using GCC. | ||
68 | ac_prog=ld | ||
69 | ;; | ||
70 | *) | ||
71 | # If it is relative, then search for the first ld in PATH. | ||
72 | with_gnu_ld=unknown | ||
73 | ;; | ||
74 | esac | ||
75 | elif test "$with_gnu_ld" = yes; then | ||
76 | AC_MSG_CHECKING([for GNU ld]) | ||
77 | else | ||
78 | AC_MSG_CHECKING([for non-GNU ld]) | ||
79 | fi | ||
80 | AC_CACHE_VAL(acl_cv_path_LD, | ||
81 | [if test -z "$LD"; then | ||
82 | IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" | ||
83 | for ac_dir in $PATH; do | ||
84 | test -z "$ac_dir" && ac_dir=. | ||
85 | if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then | ||
86 | acl_cv_path_LD="$ac_dir/$ac_prog" | ||
87 | # Check to see if the program is GNU ld. I'd rather use --version, | ||
88 | # but apparently some GNU ld's only accept -v. | ||
89 | # Break only if it was the GNU/non-GNU ld that we prefer. | ||
90 | case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in | ||
91 | *GNU* | *'with BFD'*) | ||
92 | test "$with_gnu_ld" != no && break ;; | ||
93 | *) | ||
94 | test "$with_gnu_ld" != yes && break ;; | ||
95 | esac | ||
96 | fi | ||
97 | done | ||
98 | IFS="$ac_save_ifs" | ||
99 | else | ||
100 | acl_cv_path_LD="$LD" # Let the user override the test with a path. | ||
101 | fi]) | ||
102 | LD="$acl_cv_path_LD" | ||
103 | if test -n "$LD"; then | ||
104 | AC_MSG_RESULT($LD) | ||
105 | else | ||
106 | AC_MSG_RESULT(no) | ||
107 | fi | ||
108 | test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) | ||
109 | AC_LIB_PROG_LD_GNU | ||
110 | ]) | ||
diff --git a/gl/m4/lib-link.m4 b/gl/m4/lib-link.m4 new file mode 100644 index 00000000..f157d983 --- /dev/null +++ b/gl/m4/lib-link.m4 | |||
@@ -0,0 +1,709 @@ | |||
1 | # lib-link.m4 serial 13 (gettext-0.16.2) | ||
2 | dnl Copyright (C) 2001-2007 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Bruno Haible. | ||
8 | |||
9 | AC_PREREQ(2.54) | ||
10 | |||
11 | dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and | ||
12 | dnl the libraries corresponding to explicit and implicit dependencies. | ||
13 | dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and | ||
14 | dnl augments the CPPFLAGS variable. | ||
15 | dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname | ||
16 | dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. | ||
17 | AC_DEFUN([AC_LIB_LINKFLAGS], | ||
18 | [ | ||
19 | AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) | ||
20 | AC_REQUIRE([AC_LIB_RPATH]) | ||
21 | define([Name],[translit([$1],[./-], [___])]) | ||
22 | define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], | ||
23 | [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) | ||
24 | AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ | ||
25 | AC_LIB_LINKFLAGS_BODY([$1], [$2]) | ||
26 | ac_cv_lib[]Name[]_libs="$LIB[]NAME" | ||
27 | ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" | ||
28 | ac_cv_lib[]Name[]_cppflags="$INC[]NAME" | ||
29 | ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" | ||
30 | ]) | ||
31 | LIB[]NAME="$ac_cv_lib[]Name[]_libs" | ||
32 | LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" | ||
33 | INC[]NAME="$ac_cv_lib[]Name[]_cppflags" | ||
34 | LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" | ||
35 | AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) | ||
36 | AC_SUBST([LIB]NAME) | ||
37 | AC_SUBST([LTLIB]NAME) | ||
38 | AC_SUBST([LIB]NAME[_PREFIX]) | ||
39 | dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the | ||
40 | dnl results of this search when this library appears as a dependency. | ||
41 | HAVE_LIB[]NAME=yes | ||
42 | undefine([Name]) | ||
43 | undefine([NAME]) | ||
44 | ]) | ||
45 | |||
46 | dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) | ||
47 | dnl searches for libname and the libraries corresponding to explicit and | ||
48 | dnl implicit dependencies, together with the specified include files and | ||
49 | dnl the ability to compile and link the specified testcode. If found, it | ||
50 | dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and | ||
51 | dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and | ||
52 | dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs | ||
53 | dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. | ||
54 | dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname | ||
55 | dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. | ||
56 | AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], | ||
57 | [ | ||
58 | AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) | ||
59 | AC_REQUIRE([AC_LIB_RPATH]) | ||
60 | define([Name],[translit([$1],[./-], [___])]) | ||
61 | define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], | ||
62 | [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) | ||
63 | |||
64 | dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME | ||
65 | dnl accordingly. | ||
66 | AC_LIB_LINKFLAGS_BODY([$1], [$2]) | ||
67 | |||
68 | dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, | ||
69 | dnl because if the user has installed lib[]Name and not disabled its use | ||
70 | dnl via --without-lib[]Name-prefix, he wants to use it. | ||
71 | ac_save_CPPFLAGS="$CPPFLAGS" | ||
72 | AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) | ||
73 | |||
74 | AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ | ||
75 | ac_save_LIBS="$LIBS" | ||
76 | LIBS="$LIBS $LIB[]NAME" | ||
77 | AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) | ||
78 | LIBS="$ac_save_LIBS" | ||
79 | ]) | ||
80 | if test "$ac_cv_lib[]Name" = yes; then | ||
81 | HAVE_LIB[]NAME=yes | ||
82 | AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) | ||
83 | AC_MSG_CHECKING([how to link with lib[]$1]) | ||
84 | AC_MSG_RESULT([$LIB[]NAME]) | ||
85 | else | ||
86 | HAVE_LIB[]NAME=no | ||
87 | dnl If $LIB[]NAME didn't lead to a usable library, we don't need | ||
88 | dnl $INC[]NAME either. | ||
89 | CPPFLAGS="$ac_save_CPPFLAGS" | ||
90 | LIB[]NAME= | ||
91 | LTLIB[]NAME= | ||
92 | LIB[]NAME[]_PREFIX= | ||
93 | fi | ||
94 | AC_SUBST([HAVE_LIB]NAME) | ||
95 | AC_SUBST([LIB]NAME) | ||
96 | AC_SUBST([LTLIB]NAME) | ||
97 | AC_SUBST([LIB]NAME[_PREFIX]) | ||
98 | undefine([Name]) | ||
99 | undefine([NAME]) | ||
100 | ]) | ||
101 | |||
102 | dnl Determine the platform dependent parameters needed to use rpath: | ||
103 | dnl acl_libext, | ||
104 | dnl acl_shlibext, | ||
105 | dnl acl_hardcode_libdir_flag_spec, | ||
106 | dnl acl_hardcode_libdir_separator, | ||
107 | dnl acl_hardcode_direct, | ||
108 | dnl acl_hardcode_minus_L. | ||
109 | AC_DEFUN([AC_LIB_RPATH], | ||
110 | [ | ||
111 | dnl Tell automake >= 1.10 to complain if config.rpath is missing. | ||
112 | m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) | ||
113 | AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS | ||
114 | AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld | ||
115 | AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host | ||
116 | AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir | ||
117 | AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ | ||
118 | CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ | ||
119 | ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh | ||
120 | . ./conftest.sh | ||
121 | rm -f ./conftest.sh | ||
122 | acl_cv_rpath=done | ||
123 | ]) | ||
124 | wl="$acl_cv_wl" | ||
125 | acl_libext="$acl_cv_libext" | ||
126 | acl_shlibext="$acl_cv_shlibext" | ||
127 | acl_libname_spec="$acl_cv_libname_spec" | ||
128 | acl_library_names_spec="$acl_cv_library_names_spec" | ||
129 | acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" | ||
130 | acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" | ||
131 | acl_hardcode_direct="$acl_cv_hardcode_direct" | ||
132 | acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" | ||
133 | dnl Determine whether the user wants rpath handling at all. | ||
134 | AC_ARG_ENABLE(rpath, | ||
135 | [ --disable-rpath do not hardcode runtime library paths], | ||
136 | :, enable_rpath=yes) | ||
137 | ]) | ||
138 | |||
139 | dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and | ||
140 | dnl the libraries corresponding to explicit and implicit dependencies. | ||
141 | dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. | ||
142 | dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found | ||
143 | dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. | ||
144 | AC_DEFUN([AC_LIB_LINKFLAGS_BODY], | ||
145 | [ | ||
146 | AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) | ||
147 | define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], | ||
148 | [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) | ||
149 | dnl Autoconf >= 2.61 supports dots in --with options. | ||
150 | define([N_A_M_E],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit([$1],[.],[_])],[$1])]) | ||
151 | dnl By default, look in $includedir and $libdir. | ||
152 | use_additional=yes | ||
153 | AC_LIB_WITH_FINAL_PREFIX([ | ||
154 | eval additional_includedir=\"$includedir\" | ||
155 | eval additional_libdir=\"$libdir\" | ||
156 | ]) | ||
157 | AC_LIB_ARG_WITH([lib]N_A_M_E[-prefix], | ||
158 | [ --with-lib]N_A_M_E[-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib | ||
159 | --without-lib]N_A_M_E[-prefix don't search for lib$1 in includedir and libdir], | ||
160 | [ | ||
161 | if test "X$withval" = "Xno"; then | ||
162 | use_additional=no | ||
163 | else | ||
164 | if test "X$withval" = "X"; then | ||
165 | AC_LIB_WITH_FINAL_PREFIX([ | ||
166 | eval additional_includedir=\"$includedir\" | ||
167 | eval additional_libdir=\"$libdir\" | ||
168 | ]) | ||
169 | else | ||
170 | additional_includedir="$withval/include" | ||
171 | additional_libdir="$withval/$acl_libdirstem" | ||
172 | fi | ||
173 | fi | ||
174 | ]) | ||
175 | dnl Search the library and its dependencies in $additional_libdir and | ||
176 | dnl $LDFLAGS. Using breadth-first-seach. | ||
177 | LIB[]NAME= | ||
178 | LTLIB[]NAME= | ||
179 | INC[]NAME= | ||
180 | LIB[]NAME[]_PREFIX= | ||
181 | rpathdirs= | ||
182 | ltrpathdirs= | ||
183 | names_already_handled= | ||
184 | names_next_round='$1 $2' | ||
185 | while test -n "$names_next_round"; do | ||
186 | names_this_round="$names_next_round" | ||
187 | names_next_round= | ||
188 | for name in $names_this_round; do | ||
189 | already_handled= | ||
190 | for n in $names_already_handled; do | ||
191 | if test "$n" = "$name"; then | ||
192 | already_handled=yes | ||
193 | break | ||
194 | fi | ||
195 | done | ||
196 | if test -z "$already_handled"; then | ||
197 | names_already_handled="$names_already_handled $name" | ||
198 | dnl See if it was already located by an earlier AC_LIB_LINKFLAGS | ||
199 | dnl or AC_LIB_HAVE_LINKFLAGS call. | ||
200 | uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` | ||
201 | eval value=\"\$HAVE_LIB$uppername\" | ||
202 | if test -n "$value"; then | ||
203 | if test "$value" = yes; then | ||
204 | eval value=\"\$LIB$uppername\" | ||
205 | test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" | ||
206 | eval value=\"\$LTLIB$uppername\" | ||
207 | test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" | ||
208 | else | ||
209 | dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined | ||
210 | dnl that this library doesn't exist. So just drop it. | ||
211 | : | ||
212 | fi | ||
213 | else | ||
214 | dnl Search the library lib$name in $additional_libdir and $LDFLAGS | ||
215 | dnl and the already constructed $LIBNAME/$LTLIBNAME. | ||
216 | found_dir= | ||
217 | found_la= | ||
218 | found_so= | ||
219 | found_a= | ||
220 | eval libname=\"$acl_libname_spec\" # typically: libname=lib$name | ||
221 | if test -n "$acl_shlibext"; then | ||
222 | shrext=".$acl_shlibext" # typically: shrext=.so | ||
223 | else | ||
224 | shrext= | ||
225 | fi | ||
226 | if test $use_additional = yes; then | ||
227 | dir="$additional_libdir" | ||
228 | dnl The same code as in the loop below: | ||
229 | dnl First look for a shared library. | ||
230 | if test -n "$acl_shlibext"; then | ||
231 | if test -f "$dir/$libname$shrext"; then | ||
232 | found_dir="$dir" | ||
233 | found_so="$dir/$libname$shrext" | ||
234 | else | ||
235 | if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then | ||
236 | ver=`(cd "$dir" && \ | ||
237 | for f in "$libname$shrext".*; do echo "$f"; done \ | ||
238 | | sed -e "s,^$libname$shrext\\\\.,," \ | ||
239 | | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | ||
240 | | sed 1q ) 2>/dev/null` | ||
241 | if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then | ||
242 | found_dir="$dir" | ||
243 | found_so="$dir/$libname$shrext.$ver" | ||
244 | fi | ||
245 | else | ||
246 | eval library_names=\"$acl_library_names_spec\" | ||
247 | for f in $library_names; do | ||
248 | if test -f "$dir/$f"; then | ||
249 | found_dir="$dir" | ||
250 | found_so="$dir/$f" | ||
251 | break | ||
252 | fi | ||
253 | done | ||
254 | fi | ||
255 | fi | ||
256 | fi | ||
257 | dnl Then look for a static library. | ||
258 | if test "X$found_dir" = "X"; then | ||
259 | if test -f "$dir/$libname.$acl_libext"; then | ||
260 | found_dir="$dir" | ||
261 | found_a="$dir/$libname.$acl_libext" | ||
262 | fi | ||
263 | fi | ||
264 | if test "X$found_dir" != "X"; then | ||
265 | if test -f "$dir/$libname.la"; then | ||
266 | found_la="$dir/$libname.la" | ||
267 | fi | ||
268 | fi | ||
269 | fi | ||
270 | if test "X$found_dir" = "X"; then | ||
271 | for x in $LDFLAGS $LTLIB[]NAME; do | ||
272 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | ||
273 | case "$x" in | ||
274 | -L*) | ||
275 | dir=`echo "X$x" | sed -e 's/^X-L//'` | ||
276 | dnl First look for a shared library. | ||
277 | if test -n "$acl_shlibext"; then | ||
278 | if test -f "$dir/$libname$shrext"; then | ||
279 | found_dir="$dir" | ||
280 | found_so="$dir/$libname$shrext" | ||
281 | else | ||
282 | if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then | ||
283 | ver=`(cd "$dir" && \ | ||
284 | for f in "$libname$shrext".*; do echo "$f"; done \ | ||
285 | | sed -e "s,^$libname$shrext\\\\.,," \ | ||
286 | | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | ||
287 | | sed 1q ) 2>/dev/null` | ||
288 | if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then | ||
289 | found_dir="$dir" | ||
290 | found_so="$dir/$libname$shrext.$ver" | ||
291 | fi | ||
292 | else | ||
293 | eval library_names=\"$acl_library_names_spec\" | ||
294 | for f in $library_names; do | ||
295 | if test -f "$dir/$f"; then | ||
296 | found_dir="$dir" | ||
297 | found_so="$dir/$f" | ||
298 | break | ||
299 | fi | ||
300 | done | ||
301 | fi | ||
302 | fi | ||
303 | fi | ||
304 | dnl Then look for a static library. | ||
305 | if test "X$found_dir" = "X"; then | ||
306 | if test -f "$dir/$libname.$acl_libext"; then | ||
307 | found_dir="$dir" | ||
308 | found_a="$dir/$libname.$acl_libext" | ||
309 | fi | ||
310 | fi | ||
311 | if test "X$found_dir" != "X"; then | ||
312 | if test -f "$dir/$libname.la"; then | ||
313 | found_la="$dir/$libname.la" | ||
314 | fi | ||
315 | fi | ||
316 | ;; | ||
317 | esac | ||
318 | if test "X$found_dir" != "X"; then | ||
319 | break | ||
320 | fi | ||
321 | done | ||
322 | fi | ||
323 | if test "X$found_dir" != "X"; then | ||
324 | dnl Found the library. | ||
325 | LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" | ||
326 | if test "X$found_so" != "X"; then | ||
327 | dnl Linking with a shared library. We attempt to hardcode its | ||
328 | dnl directory into the executable's runpath, unless it's the | ||
329 | dnl standard /usr/lib. | ||
330 | if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then | ||
331 | dnl No hardcoding is needed. | ||
332 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" | ||
333 | else | ||
334 | dnl Use an explicit option to hardcode DIR into the resulting | ||
335 | dnl binary. | ||
336 | dnl Potentially add DIR to ltrpathdirs. | ||
337 | dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. | ||
338 | haveit= | ||
339 | for x in $ltrpathdirs; do | ||
340 | if test "X$x" = "X$found_dir"; then | ||
341 | haveit=yes | ||
342 | break | ||
343 | fi | ||
344 | done | ||
345 | if test -z "$haveit"; then | ||
346 | ltrpathdirs="$ltrpathdirs $found_dir" | ||
347 | fi | ||
348 | dnl The hardcoding into $LIBNAME is system dependent. | ||
349 | if test "$acl_hardcode_direct" = yes; then | ||
350 | dnl Using DIR/libNAME.so during linking hardcodes DIR into the | ||
351 | dnl resulting binary. | ||
352 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" | ||
353 | else | ||
354 | if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then | ||
355 | dnl Use an explicit option to hardcode DIR into the resulting | ||
356 | dnl binary. | ||
357 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" | ||
358 | dnl Potentially add DIR to rpathdirs. | ||
359 | dnl The rpathdirs will be appended to $LIBNAME at the end. | ||
360 | haveit= | ||
361 | for x in $rpathdirs; do | ||
362 | if test "X$x" = "X$found_dir"; then | ||
363 | haveit=yes | ||
364 | break | ||
365 | fi | ||
366 | done | ||
367 | if test -z "$haveit"; then | ||
368 | rpathdirs="$rpathdirs $found_dir" | ||
369 | fi | ||
370 | else | ||
371 | dnl Rely on "-L$found_dir". | ||
372 | dnl But don't add it if it's already contained in the LDFLAGS | ||
373 | dnl or the already constructed $LIBNAME | ||
374 | haveit= | ||
375 | for x in $LDFLAGS $LIB[]NAME; do | ||
376 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | ||
377 | if test "X$x" = "X-L$found_dir"; then | ||
378 | haveit=yes | ||
379 | break | ||
380 | fi | ||
381 | done | ||
382 | if test -z "$haveit"; then | ||
383 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" | ||
384 | fi | ||
385 | if test "$acl_hardcode_minus_L" != no; then | ||
386 | dnl FIXME: Not sure whether we should use | ||
387 | dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" | ||
388 | dnl here. | ||
389 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" | ||
390 | else | ||
391 | dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH | ||
392 | dnl here, because this doesn't fit in flags passed to the | ||
393 | dnl compiler. So give up. No hardcoding. This affects only | ||
394 | dnl very old systems. | ||
395 | dnl FIXME: Not sure whether we should use | ||
396 | dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" | ||
397 | dnl here. | ||
398 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" | ||
399 | fi | ||
400 | fi | ||
401 | fi | ||
402 | fi | ||
403 | else | ||
404 | if test "X$found_a" != "X"; then | ||
405 | dnl Linking with a static library. | ||
406 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" | ||
407 | else | ||
408 | dnl We shouldn't come here, but anyway it's good to have a | ||
409 | dnl fallback. | ||
410 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" | ||
411 | fi | ||
412 | fi | ||
413 | dnl Assume the include files are nearby. | ||
414 | additional_includedir= | ||
415 | case "$found_dir" in | ||
416 | */$acl_libdirstem | */$acl_libdirstem/) | ||
417 | basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` | ||
418 | LIB[]NAME[]_PREFIX="$basedir" | ||
419 | additional_includedir="$basedir/include" | ||
420 | ;; | ||
421 | esac | ||
422 | if test "X$additional_includedir" != "X"; then | ||
423 | dnl Potentially add $additional_includedir to $INCNAME. | ||
424 | dnl But don't add it | ||
425 | dnl 1. if it's the standard /usr/include, | ||
426 | dnl 2. if it's /usr/local/include and we are using GCC on Linux, | ||
427 | dnl 3. if it's already present in $CPPFLAGS or the already | ||
428 | dnl constructed $INCNAME, | ||
429 | dnl 4. if it doesn't exist as a directory. | ||
430 | if test "X$additional_includedir" != "X/usr/include"; then | ||
431 | haveit= | ||
432 | if test "X$additional_includedir" = "X/usr/local/include"; then | ||
433 | if test -n "$GCC"; then | ||
434 | case $host_os in | ||
435 | linux* | gnu* | k*bsd*-gnu) haveit=yes;; | ||
436 | esac | ||
437 | fi | ||
438 | fi | ||
439 | if test -z "$haveit"; then | ||
440 | for x in $CPPFLAGS $INC[]NAME; do | ||
441 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | ||
442 | if test "X$x" = "X-I$additional_includedir"; then | ||
443 | haveit=yes | ||
444 | break | ||
445 | fi | ||
446 | done | ||
447 | if test -z "$haveit"; then | ||
448 | if test -d "$additional_includedir"; then | ||
449 | dnl Really add $additional_includedir to $INCNAME. | ||
450 | INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" | ||
451 | fi | ||
452 | fi | ||
453 | fi | ||
454 | fi | ||
455 | fi | ||
456 | dnl Look for dependencies. | ||
457 | if test -n "$found_la"; then | ||
458 | dnl Read the .la file. It defines the variables | ||
459 | dnl dlname, library_names, old_library, dependency_libs, current, | ||
460 | dnl age, revision, installed, dlopen, dlpreopen, libdir. | ||
461 | save_libdir="$libdir" | ||
462 | case "$found_la" in | ||
463 | */* | *\\*) . "$found_la" ;; | ||
464 | *) . "./$found_la" ;; | ||
465 | esac | ||
466 | libdir="$save_libdir" | ||
467 | dnl We use only dependency_libs. | ||
468 | for dep in $dependency_libs; do | ||
469 | case "$dep" in | ||
470 | -L*) | ||
471 | additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` | ||
472 | dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. | ||
473 | dnl But don't add it | ||
474 | dnl 1. if it's the standard /usr/lib, | ||
475 | dnl 2. if it's /usr/local/lib and we are using GCC on Linux, | ||
476 | dnl 3. if it's already present in $LDFLAGS or the already | ||
477 | dnl constructed $LIBNAME, | ||
478 | dnl 4. if it doesn't exist as a directory. | ||
479 | if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then | ||
480 | haveit= | ||
481 | if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then | ||
482 | if test -n "$GCC"; then | ||
483 | case $host_os in | ||
484 | linux* | gnu* | k*bsd*-gnu) haveit=yes;; | ||
485 | esac | ||
486 | fi | ||
487 | fi | ||
488 | if test -z "$haveit"; then | ||
489 | haveit= | ||
490 | for x in $LDFLAGS $LIB[]NAME; do | ||
491 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | ||
492 | if test "X$x" = "X-L$additional_libdir"; then | ||
493 | haveit=yes | ||
494 | break | ||
495 | fi | ||
496 | done | ||
497 | if test -z "$haveit"; then | ||
498 | if test -d "$additional_libdir"; then | ||
499 | dnl Really add $additional_libdir to $LIBNAME. | ||
500 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" | ||
501 | fi | ||
502 | fi | ||
503 | haveit= | ||
504 | for x in $LDFLAGS $LTLIB[]NAME; do | ||
505 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | ||
506 | if test "X$x" = "X-L$additional_libdir"; then | ||
507 | haveit=yes | ||
508 | break | ||
509 | fi | ||
510 | done | ||
511 | if test -z "$haveit"; then | ||
512 | if test -d "$additional_libdir"; then | ||
513 | dnl Really add $additional_libdir to $LTLIBNAME. | ||
514 | LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" | ||
515 | fi | ||
516 | fi | ||
517 | fi | ||
518 | fi | ||
519 | ;; | ||
520 | -R*) | ||
521 | dir=`echo "X$dep" | sed -e 's/^X-R//'` | ||
522 | if test "$enable_rpath" != no; then | ||
523 | dnl Potentially add DIR to rpathdirs. | ||
524 | dnl The rpathdirs will be appended to $LIBNAME at the end. | ||
525 | haveit= | ||
526 | for x in $rpathdirs; do | ||
527 | if test "X$x" = "X$dir"; then | ||
528 | haveit=yes | ||
529 | break | ||
530 | fi | ||
531 | done | ||
532 | if test -z "$haveit"; then | ||
533 | rpathdirs="$rpathdirs $dir" | ||
534 | fi | ||
535 | dnl Potentially add DIR to ltrpathdirs. | ||
536 | dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. | ||
537 | haveit= | ||
538 | for x in $ltrpathdirs; do | ||
539 | if test "X$x" = "X$dir"; then | ||
540 | haveit=yes | ||
541 | break | ||
542 | fi | ||
543 | done | ||
544 | if test -z "$haveit"; then | ||
545 | ltrpathdirs="$ltrpathdirs $dir" | ||
546 | fi | ||
547 | fi | ||
548 | ;; | ||
549 | -l*) | ||
550 | dnl Handle this in the next round. | ||
551 | names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` | ||
552 | ;; | ||
553 | *.la) | ||
554 | dnl Handle this in the next round. Throw away the .la's | ||
555 | dnl directory; it is already contained in a preceding -L | ||
556 | dnl option. | ||
557 | names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` | ||
558 | ;; | ||
559 | *) | ||
560 | dnl Most likely an immediate library name. | ||
561 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" | ||
562 | LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" | ||
563 | ;; | ||
564 | esac | ||
565 | done | ||
566 | fi | ||
567 | else | ||
568 | dnl Didn't find the library; assume it is in the system directories | ||
569 | dnl known to the linker and runtime loader. (All the system | ||
570 | dnl directories known to the linker should also be known to the | ||
571 | dnl runtime loader, otherwise the system is severely misconfigured.) | ||
572 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" | ||
573 | LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" | ||
574 | fi | ||
575 | fi | ||
576 | fi | ||
577 | done | ||
578 | done | ||
579 | if test "X$rpathdirs" != "X"; then | ||
580 | if test -n "$acl_hardcode_libdir_separator"; then | ||
581 | dnl Weird platform: only the last -rpath option counts, the user must | ||
582 | dnl pass all path elements in one option. We can arrange that for a | ||
583 | dnl single library, but not when more than one $LIBNAMEs are used. | ||
584 | alldirs= | ||
585 | for found_dir in $rpathdirs; do | ||
586 | alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" | ||
587 | done | ||
588 | dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. | ||
589 | acl_save_libdir="$libdir" | ||
590 | libdir="$alldirs" | ||
591 | eval flag=\"$acl_hardcode_libdir_flag_spec\" | ||
592 | libdir="$acl_save_libdir" | ||
593 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" | ||
594 | else | ||
595 | dnl The -rpath options are cumulative. | ||
596 | for found_dir in $rpathdirs; do | ||
597 | acl_save_libdir="$libdir" | ||
598 | libdir="$found_dir" | ||
599 | eval flag=\"$acl_hardcode_libdir_flag_spec\" | ||
600 | libdir="$acl_save_libdir" | ||
601 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" | ||
602 | done | ||
603 | fi | ||
604 | fi | ||
605 | if test "X$ltrpathdirs" != "X"; then | ||
606 | dnl When using libtool, the option that works for both libraries and | ||
607 | dnl executables is -R. The -R options are cumulative. | ||
608 | for found_dir in $ltrpathdirs; do | ||
609 | LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" | ||
610 | done | ||
611 | fi | ||
612 | ]) | ||
613 | |||
614 | dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, | ||
615 | dnl unless already present in VAR. | ||
616 | dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes | ||
617 | dnl contains two or three consecutive elements that belong together. | ||
618 | AC_DEFUN([AC_LIB_APPENDTOVAR], | ||
619 | [ | ||
620 | for element in [$2]; do | ||
621 | haveit= | ||
622 | for x in $[$1]; do | ||
623 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | ||
624 | if test "X$x" = "X$element"; then | ||
625 | haveit=yes | ||
626 | break | ||
627 | fi | ||
628 | done | ||
629 | if test -z "$haveit"; then | ||
630 | [$1]="${[$1]}${[$1]:+ }$element" | ||
631 | fi | ||
632 | done | ||
633 | ]) | ||
634 | |||
635 | dnl For those cases where a variable contains several -L and -l options | ||
636 | dnl referring to unknown libraries and directories, this macro determines the | ||
637 | dnl necessary additional linker options for the runtime path. | ||
638 | dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) | ||
639 | dnl sets LDADDVAR to linker options needed together with LIBSVALUE. | ||
640 | dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, | ||
641 | dnl otherwise linking without libtool is assumed. | ||
642 | AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], | ||
643 | [ | ||
644 | AC_REQUIRE([AC_LIB_RPATH]) | ||
645 | AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) | ||
646 | $1= | ||
647 | if test "$enable_rpath" != no; then | ||
648 | if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then | ||
649 | dnl Use an explicit option to hardcode directories into the resulting | ||
650 | dnl binary. | ||
651 | rpathdirs= | ||
652 | next= | ||
653 | for opt in $2; do | ||
654 | if test -n "$next"; then | ||
655 | dir="$next" | ||
656 | dnl No need to hardcode the standard /usr/lib. | ||
657 | if test "X$dir" != "X/usr/$acl_libdirstem"; then | ||
658 | rpathdirs="$rpathdirs $dir" | ||
659 | fi | ||
660 | next= | ||
661 | else | ||
662 | case $opt in | ||
663 | -L) next=yes ;; | ||
664 | -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` | ||
665 | dnl No need to hardcode the standard /usr/lib. | ||
666 | if test "X$dir" != "X/usr/$acl_libdirstem"; then | ||
667 | rpathdirs="$rpathdirs $dir" | ||
668 | fi | ||
669 | next= ;; | ||
670 | *) next= ;; | ||
671 | esac | ||
672 | fi | ||
673 | done | ||
674 | if test "X$rpathdirs" != "X"; then | ||
675 | if test -n ""$3""; then | ||
676 | dnl libtool is used for linking. Use -R options. | ||
677 | for dir in $rpathdirs; do | ||
678 | $1="${$1}${$1:+ }-R$dir" | ||
679 | done | ||
680 | else | ||
681 | dnl The linker is used for linking directly. | ||
682 | if test -n "$acl_hardcode_libdir_separator"; then | ||
683 | dnl Weird platform: only the last -rpath option counts, the user | ||
684 | dnl must pass all path elements in one option. | ||
685 | alldirs= | ||
686 | for dir in $rpathdirs; do | ||
687 | alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" | ||
688 | done | ||
689 | acl_save_libdir="$libdir" | ||
690 | libdir="$alldirs" | ||
691 | eval flag=\"$acl_hardcode_libdir_flag_spec\" | ||
692 | libdir="$acl_save_libdir" | ||
693 | $1="$flag" | ||
694 | else | ||
695 | dnl The -rpath options are cumulative. | ||
696 | for dir in $rpathdirs; do | ||
697 | acl_save_libdir="$libdir" | ||
698 | libdir="$dir" | ||
699 | eval flag=\"$acl_hardcode_libdir_flag_spec\" | ||
700 | libdir="$acl_save_libdir" | ||
701 | $1="${$1}${$1:+ }$flag" | ||
702 | done | ||
703 | fi | ||
704 | fi | ||
705 | fi | ||
706 | fi | ||
707 | fi | ||
708 | AC_SUBST([$1]) | ||
709 | ]) | ||
diff --git a/gl/m4/lib-prefix.m4 b/gl/m4/lib-prefix.m4 new file mode 100644 index 00000000..a8684e17 --- /dev/null +++ b/gl/m4/lib-prefix.m4 | |||
@@ -0,0 +1,185 @@ | |||
1 | # lib-prefix.m4 serial 5 (gettext-0.15) | ||
2 | dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Bruno Haible. | ||
8 | |||
9 | dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and | ||
10 | dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't | ||
11 | dnl require excessive bracketing. | ||
12 | ifdef([AC_HELP_STRING], | ||
13 | [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], | ||
14 | [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) | ||
15 | |||
16 | dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed | ||
17 | dnl to access previously installed libraries. The basic assumption is that | ||
18 | dnl a user will want packages to use other packages he previously installed | ||
19 | dnl with the same --prefix option. | ||
20 | dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate | ||
21 | dnl libraries, but is otherwise very convenient. | ||
22 | AC_DEFUN([AC_LIB_PREFIX], | ||
23 | [ | ||
24 | AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) | ||
25 | AC_REQUIRE([AC_PROG_CC]) | ||
26 | AC_REQUIRE([AC_CANONICAL_HOST]) | ||
27 | AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) | ||
28 | AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) | ||
29 | dnl By default, look in $includedir and $libdir. | ||
30 | use_additional=yes | ||
31 | AC_LIB_WITH_FINAL_PREFIX([ | ||
32 | eval additional_includedir=\"$includedir\" | ||
33 | eval additional_libdir=\"$libdir\" | ||
34 | ]) | ||
35 | AC_LIB_ARG_WITH([lib-prefix], | ||
36 | [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib | ||
37 | --without-lib-prefix don't search for libraries in includedir and libdir], | ||
38 | [ | ||
39 | if test "X$withval" = "Xno"; then | ||
40 | use_additional=no | ||
41 | else | ||
42 | if test "X$withval" = "X"; then | ||
43 | AC_LIB_WITH_FINAL_PREFIX([ | ||
44 | eval additional_includedir=\"$includedir\" | ||
45 | eval additional_libdir=\"$libdir\" | ||
46 | ]) | ||
47 | else | ||
48 | additional_includedir="$withval/include" | ||
49 | additional_libdir="$withval/$acl_libdirstem" | ||
50 | fi | ||
51 | fi | ||
52 | ]) | ||
53 | if test $use_additional = yes; then | ||
54 | dnl Potentially add $additional_includedir to $CPPFLAGS. | ||
55 | dnl But don't add it | ||
56 | dnl 1. if it's the standard /usr/include, | ||
57 | dnl 2. if it's already present in $CPPFLAGS, | ||
58 | dnl 3. if it's /usr/local/include and we are using GCC on Linux, | ||
59 | dnl 4. if it doesn't exist as a directory. | ||
60 | if test "X$additional_includedir" != "X/usr/include"; then | ||
61 | haveit= | ||
62 | for x in $CPPFLAGS; do | ||
63 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | ||
64 | if test "X$x" = "X-I$additional_includedir"; then | ||
65 | haveit=yes | ||
66 | break | ||
67 | fi | ||
68 | done | ||
69 | if test -z "$haveit"; then | ||
70 | if test "X$additional_includedir" = "X/usr/local/include"; then | ||
71 | if test -n "$GCC"; then | ||
72 | case $host_os in | ||
73 | linux* | gnu* | k*bsd*-gnu) haveit=yes;; | ||
74 | esac | ||
75 | fi | ||
76 | fi | ||
77 | if test -z "$haveit"; then | ||
78 | if test -d "$additional_includedir"; then | ||
79 | dnl Really add $additional_includedir to $CPPFLAGS. | ||
80 | CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" | ||
81 | fi | ||
82 | fi | ||
83 | fi | ||
84 | fi | ||
85 | dnl Potentially add $additional_libdir to $LDFLAGS. | ||
86 | dnl But don't add it | ||
87 | dnl 1. if it's the standard /usr/lib, | ||
88 | dnl 2. if it's already present in $LDFLAGS, | ||
89 | dnl 3. if it's /usr/local/lib and we are using GCC on Linux, | ||
90 | dnl 4. if it doesn't exist as a directory. | ||
91 | if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then | ||
92 | haveit= | ||
93 | for x in $LDFLAGS; do | ||
94 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | ||
95 | if test "X$x" = "X-L$additional_libdir"; then | ||
96 | haveit=yes | ||
97 | break | ||
98 | fi | ||
99 | done | ||
100 | if test -z "$haveit"; then | ||
101 | if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then | ||
102 | if test -n "$GCC"; then | ||
103 | case $host_os in | ||
104 | linux*) haveit=yes;; | ||
105 | esac | ||
106 | fi | ||
107 | fi | ||
108 | if test -z "$haveit"; then | ||
109 | if test -d "$additional_libdir"; then | ||
110 | dnl Really add $additional_libdir to $LDFLAGS. | ||
111 | LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" | ||
112 | fi | ||
113 | fi | ||
114 | fi | ||
115 | fi | ||
116 | fi | ||
117 | ]) | ||
118 | |||
119 | dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, | ||
120 | dnl acl_final_exec_prefix, containing the values to which $prefix and | ||
121 | dnl $exec_prefix will expand at the end of the configure script. | ||
122 | AC_DEFUN([AC_LIB_PREPARE_PREFIX], | ||
123 | [ | ||
124 | dnl Unfortunately, prefix and exec_prefix get only finally determined | ||
125 | dnl at the end of configure. | ||
126 | if test "X$prefix" = "XNONE"; then | ||
127 | acl_final_prefix="$ac_default_prefix" | ||
128 | else | ||
129 | acl_final_prefix="$prefix" | ||
130 | fi | ||
131 | if test "X$exec_prefix" = "XNONE"; then | ||
132 | acl_final_exec_prefix='${prefix}' | ||
133 | else | ||
134 | acl_final_exec_prefix="$exec_prefix" | ||
135 | fi | ||
136 | acl_save_prefix="$prefix" | ||
137 | prefix="$acl_final_prefix" | ||
138 | eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" | ||
139 | prefix="$acl_save_prefix" | ||
140 | ]) | ||
141 | |||
142 | dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the | ||
143 | dnl variables prefix and exec_prefix bound to the values they will have | ||
144 | dnl at the end of the configure script. | ||
145 | AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], | ||
146 | [ | ||
147 | acl_save_prefix="$prefix" | ||
148 | prefix="$acl_final_prefix" | ||
149 | acl_save_exec_prefix="$exec_prefix" | ||
150 | exec_prefix="$acl_final_exec_prefix" | ||
151 | $1 | ||
152 | exec_prefix="$acl_save_exec_prefix" | ||
153 | prefix="$acl_save_prefix" | ||
154 | ]) | ||
155 | |||
156 | dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing | ||
157 | dnl the basename of the libdir, either "lib" or "lib64". | ||
158 | AC_DEFUN([AC_LIB_PREPARE_MULTILIB], | ||
159 | [ | ||
160 | dnl There is no formal standard regarding lib and lib64. The current | ||
161 | dnl practice is that on a system supporting 32-bit and 64-bit instruction | ||
162 | dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit | ||
163 | dnl libraries go under $prefix/lib. We determine the compiler's default | ||
164 | dnl mode by looking at the compiler's library search path. If at least | ||
165 | dnl of its elements ends in /lib64 or points to a directory whose absolute | ||
166 | dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the | ||
167 | dnl default, namely "lib". | ||
168 | acl_libdirstem=lib | ||
169 | searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` | ||
170 | if test -n "$searchpath"; then | ||
171 | acl_save_IFS="${IFS= }"; IFS=":" | ||
172 | for searchdir in $searchpath; do | ||
173 | if test -d "$searchdir"; then | ||
174 | case "$searchdir" in | ||
175 | */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; | ||
176 | *) searchdir=`cd "$searchdir" && pwd` | ||
177 | case "$searchdir" in | ||
178 | */lib64 ) acl_libdirstem=lib64 ;; | ||
179 | esac ;; | ||
180 | esac | ||
181 | fi | ||
182 | done | ||
183 | IFS="$acl_save_IFS" | ||
184 | fi | ||
185 | ]) | ||
diff --git a/gl/m4/lock.m4 b/gl/m4/lock.m4 new file mode 100644 index 00000000..0224f2ff --- /dev/null +++ b/gl/m4/lock.m4 | |||
@@ -0,0 +1,311 @@ | |||
1 | # lock.m4 serial 6 (gettext-0.16) | ||
2 | dnl Copyright (C) 2005-2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Bruno Haible. | ||
8 | |||
9 | dnl Tests for a multithreading library to be used. | ||
10 | dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS, | ||
11 | dnl USE_PTH_THREADS, USE_WIN32_THREADS | ||
12 | dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use | ||
13 | dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with | ||
14 | dnl libtool). | ||
15 | dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for | ||
16 | dnl programs that really need multithread functionality. The difference | ||
17 | dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak | ||
18 | dnl symbols, typically LIBTHREAD="" whereas LIBMULTITHREAD="-lpthread". | ||
19 | dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for | ||
20 | dnl multithread-safe programs. | ||
21 | |||
22 | AC_DEFUN([gl_LOCK_EARLY], | ||
23 | [ | ||
24 | AC_REQUIRE([gl_LOCK_EARLY_BODY]) | ||
25 | ]) | ||
26 | |||
27 | dnl The guts of gl_LOCK_EARLY. Needs to be expanded only once. | ||
28 | |||
29 | AC_DEFUN([gl_LOCK_EARLY_BODY], | ||
30 | [ | ||
31 | dnl Ordering constraints: This macro modifies CPPFLAGS in a way that | ||
32 | dnl influences the result of the autoconf tests that test for *_unlocked | ||
33 | dnl declarations, on AIX 5 at least. Therefore it must come early. | ||
34 | AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl | ||
35 | AC_BEFORE([$0], [gl_ARGP])dnl | ||
36 | |||
37 | AC_REQUIRE([AC_CANONICAL_HOST]) | ||
38 | AC_REQUIRE([AC_GNU_SOURCE]) dnl needed for pthread_rwlock_t on glibc systems | ||
39 | dnl Check for multithreading. | ||
40 | AC_ARG_ENABLE(threads, | ||
41 | AC_HELP_STRING([--enable-threads={posix|solaris|pth|win32}], [specify multithreading API]) | ||
42 | AC_HELP_STRING([--disable-threads], [build without multithread safety]), | ||
43 | [gl_use_threads=$enableval], | ||
44 | [case "$host_os" in | ||
45 | dnl Disable multithreading by default on OSF/1, because it interferes | ||
46 | dnl with fork()/exec(): When msgexec is linked with -lpthread, its child | ||
47 | dnl process gets an endless segmentation fault inside execvp(). | ||
48 | osf*) gl_use_threads=no ;; | ||
49 | *) gl_use_threads=yes ;; | ||
50 | esac | ||
51 | ]) | ||
52 | if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then | ||
53 | # For using <pthread.h>: | ||
54 | case "$host_os" in | ||
55 | osf*) | ||
56 | # On OSF/1, the compiler needs the flag -D_REENTRANT so that it | ||
57 | # groks <pthread.h>. cc also understands the flag -pthread, but | ||
58 | # we don't use it because 1. gcc-2.95 doesn't understand -pthread, | ||
59 | # 2. putting a flag into CPPFLAGS that has an effect on the linker | ||
60 | # causes the AC_TRY_LINK test below to succeed unexpectedly, | ||
61 | # leading to wrong values of LIBTHREAD and LTLIBTHREAD. | ||
62 | CPPFLAGS="$CPPFLAGS -D_REENTRANT" | ||
63 | ;; | ||
64 | esac | ||
65 | # Some systems optimize for single-threaded programs by default, and | ||
66 | # need special flags to disable these optimizations. For example, the | ||
67 | # definition of 'errno' in <errno.h>. | ||
68 | case "$host_os" in | ||
69 | aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; | ||
70 | solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; | ||
71 | esac | ||
72 | fi | ||
73 | ]) | ||
74 | |||
75 | dnl The guts of gl_LOCK. Needs to be expanded only once. | ||
76 | |||
77 | AC_DEFUN([gl_LOCK_BODY], | ||
78 | [ | ||
79 | AC_REQUIRE([gl_LOCK_EARLY_BODY]) | ||
80 | gl_threads_api=none | ||
81 | LIBTHREAD= | ||
82 | LTLIBTHREAD= | ||
83 | LIBMULTITHREAD= | ||
84 | LTLIBMULTITHREAD= | ||
85 | if test "$gl_use_threads" != no; then | ||
86 | dnl Check whether the compiler and linker support weak declarations. | ||
87 | AC_MSG_CHECKING([whether imported symbols can be declared weak]) | ||
88 | gl_have_weak=no | ||
89 | AC_TRY_LINK([extern void xyzzy (); | ||
90 | #pragma weak xyzzy], [xyzzy();], [gl_have_weak=yes]) | ||
91 | AC_MSG_RESULT([$gl_have_weak]) | ||
92 | if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then | ||
93 | # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that | ||
94 | # it groks <pthread.h>. It's added above, in gl_LOCK_EARLY_BODY. | ||
95 | AC_CHECK_HEADER(pthread.h, gl_have_pthread_h=yes, gl_have_pthread_h=no) | ||
96 | if test "$gl_have_pthread_h" = yes; then | ||
97 | # Other possible tests: | ||
98 | # -lpthreads (FSU threads, PCthreads) | ||
99 | # -lgthreads | ||
100 | gl_have_pthread= | ||
101 | # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist | ||
102 | # in libc. IRIX 6.5 has the first one in both libc and libpthread, but | ||
103 | # the second one only in libpthread, and lock.c needs it. | ||
104 | AC_TRY_LINK([#include <pthread.h>], | ||
105 | [pthread_mutex_lock((pthread_mutex_t*)0); | ||
106 | pthread_mutexattr_init((pthread_mutexattr_t*)0);], | ||
107 | [gl_have_pthread=yes]) | ||
108 | # Test for libpthread by looking for pthread_kill. (Not pthread_self, | ||
109 | # since it is defined as a macro on OSF/1.) | ||
110 | if test -n "$gl_have_pthread"; then | ||
111 | # The program links fine without libpthread. But it may actually | ||
112 | # need to link with libpthread in order to create multiple threads. | ||
113 | AC_CHECK_LIB(pthread, pthread_kill, | ||
114 | [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread | ||
115 | # On Solaris and HP-UX, most pthread functions exist also in libc. | ||
116 | # Therefore pthread_in_use() needs to actually try to create a | ||
117 | # thread: pthread_create from libc will fail, whereas | ||
118 | # pthread_create will actually create a thread. | ||
119 | case "$host_os" in | ||
120 | solaris* | hpux*) | ||
121 | AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], 1, | ||
122 | [Define if the pthread_in_use() detection is hard.]) | ||
123 | esac | ||
124 | ]) | ||
125 | else | ||
126 | # Some library is needed. Try libpthread and libc_r. | ||
127 | AC_CHECK_LIB(pthread, pthread_kill, | ||
128 | [gl_have_pthread=yes | ||
129 | LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread | ||
130 | LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread]) | ||
131 | if test -z "$gl_have_pthread"; then | ||
132 | # For FreeBSD 4. | ||
133 | AC_CHECK_LIB(c_r, pthread_kill, | ||
134 | [gl_have_pthread=yes | ||
135 | LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r | ||
136 | LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r]) | ||
137 | fi | ||
138 | fi | ||
139 | if test -n "$gl_have_pthread"; then | ||
140 | gl_threads_api=posix | ||
141 | AC_DEFINE([USE_POSIX_THREADS], 1, | ||
142 | [Define if the POSIX multithreading library can be used.]) | ||
143 | if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then | ||
144 | if test $gl_have_weak = yes; then | ||
145 | AC_DEFINE([USE_POSIX_THREADS_WEAK], 1, | ||
146 | [Define if references to the POSIX multithreading library should be made weak.]) | ||
147 | LIBTHREAD= | ||
148 | LTLIBTHREAD= | ||
149 | fi | ||
150 | fi | ||
151 | # OSF/1 4.0 and MacOS X 10.1 lack the pthread_rwlock_t type and the | ||
152 | # pthread_rwlock_* functions. | ||
153 | AC_CHECK_TYPE([pthread_rwlock_t], | ||
154 | [AC_DEFINE([HAVE_PTHREAD_RWLOCK], 1, | ||
155 | [Define if the POSIX multithreading library has read/write locks.])], | ||
156 | [], | ||
157 | [#include <pthread.h>]) | ||
158 | # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. | ||
159 | AC_TRY_COMPILE([#include <pthread.h>], | ||
160 | [#if __FreeBSD__ == 4 | ||
161 | error "No, in FreeBSD 4.0 recursive mutexes actually don't work." | ||
162 | #else | ||
163 | int x = (int)PTHREAD_MUTEX_RECURSIVE; | ||
164 | return !x; | ||
165 | #endif], | ||
166 | [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], 1, | ||
167 | [Define if the <pthread.h> defines PTHREAD_MUTEX_RECURSIVE.])]) | ||
168 | fi | ||
169 | fi | ||
170 | fi | ||
171 | if test -z "$gl_have_pthread"; then | ||
172 | if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then | ||
173 | gl_have_solaristhread= | ||
174 | gl_save_LIBS="$LIBS" | ||
175 | LIBS="$LIBS -lthread" | ||
176 | AC_TRY_LINK([#include <thread.h> | ||
177 | #include <synch.h>], | ||
178 | [thr_self();], | ||
179 | [gl_have_solaristhread=yes]) | ||
180 | LIBS="$gl_save_LIBS" | ||
181 | if test -n "$gl_have_solaristhread"; then | ||
182 | gl_threads_api=solaris | ||
183 | LIBTHREAD=-lthread | ||
184 | LTLIBTHREAD=-lthread | ||
185 | LIBMULTITHREAD="$LIBTHREAD" | ||
186 | LTLIBMULTITHREAD="$LTLIBTHREAD" | ||
187 | AC_DEFINE([USE_SOLARIS_THREADS], 1, | ||
188 | [Define if the old Solaris multithreading library can be used.]) | ||
189 | if test $gl_have_weak = yes; then | ||
190 | AC_DEFINE([USE_SOLARIS_THREADS_WEAK], 1, | ||
191 | [Define if references to the old Solaris multithreading library should be made weak.]) | ||
192 | LIBTHREAD= | ||
193 | LTLIBTHREAD= | ||
194 | fi | ||
195 | fi | ||
196 | fi | ||
197 | fi | ||
198 | if test "$gl_use_threads" = pth; then | ||
199 | gl_save_CPPFLAGS="$CPPFLAGS" | ||
200 | AC_LIB_LINKFLAGS(pth) | ||
201 | gl_have_pth= | ||
202 | gl_save_LIBS="$LIBS" | ||
203 | LIBS="$LIBS -lpth" | ||
204 | AC_TRY_LINK([#include <pth.h>], [pth_self();], gl_have_pth=yes) | ||
205 | LIBS="$gl_save_LIBS" | ||
206 | if test -n "$gl_have_pth"; then | ||
207 | gl_threads_api=pth | ||
208 | LIBTHREAD="$LIBPTH" | ||
209 | LTLIBTHREAD="$LTLIBPTH" | ||
210 | LIBMULTITHREAD="$LIBTHREAD" | ||
211 | LTLIBMULTITHREAD="$LTLIBTHREAD" | ||
212 | AC_DEFINE([USE_PTH_THREADS], 1, | ||
213 | [Define if the GNU Pth multithreading library can be used.]) | ||
214 | if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then | ||
215 | if test $gl_have_weak = yes; then | ||
216 | AC_DEFINE([USE_PTH_THREADS_WEAK], 1, | ||
217 | [Define if references to the GNU Pth multithreading library should be made weak.]) | ||
218 | LIBTHREAD= | ||
219 | LTLIBTHREAD= | ||
220 | fi | ||
221 | fi | ||
222 | else | ||
223 | CPPFLAGS="$gl_save_CPPFLAGS" | ||
224 | fi | ||
225 | fi | ||
226 | if test -z "$gl_have_pthread"; then | ||
227 | if test "$gl_use_threads" = yes || test "$gl_use_threads" = win32; then | ||
228 | if { case "$host_os" in | ||
229 | mingw*) true;; | ||
230 | *) false;; | ||
231 | esac | ||
232 | }; then | ||
233 | gl_threads_api=win32 | ||
234 | AC_DEFINE([USE_WIN32_THREADS], 1, | ||
235 | [Define if the Win32 multithreading API can be used.]) | ||
236 | fi | ||
237 | fi | ||
238 | fi | ||
239 | fi | ||
240 | AC_MSG_CHECKING([for multithread API to use]) | ||
241 | AC_MSG_RESULT([$gl_threads_api]) | ||
242 | AC_SUBST(LIBTHREAD) | ||
243 | AC_SUBST(LTLIBTHREAD) | ||
244 | AC_SUBST(LIBMULTITHREAD) | ||
245 | AC_SUBST(LTLIBMULTITHREAD) | ||
246 | ]) | ||
247 | |||
248 | AC_DEFUN([gl_LOCK], | ||
249 | [ | ||
250 | AC_REQUIRE([gl_LOCK_EARLY]) | ||
251 | AC_REQUIRE([gl_LOCK_BODY]) | ||
252 | gl_PREREQ_LOCK | ||
253 | ]) | ||
254 | |||
255 | # Prerequisites of lib/lock.c. | ||
256 | AC_DEFUN([gl_PREREQ_LOCK], [ | ||
257 | AC_REQUIRE([AC_C_INLINE]) | ||
258 | ]) | ||
259 | |||
260 | dnl Survey of platforms: | ||
261 | dnl | ||
262 | dnl Platform Available Compiler Supports test-lock | ||
263 | dnl flavours option weak result | ||
264 | dnl --------------- --------- --------- -------- --------- | ||
265 | dnl Linux 2.4/glibc posix -lpthread Y OK | ||
266 | dnl | ||
267 | dnl GNU Hurd/glibc posix | ||
268 | dnl | ||
269 | dnl FreeBSD 5.3 posix -lc_r Y | ||
270 | dnl posix -lkse ? Y | ||
271 | dnl posix -lpthread ? Y | ||
272 | dnl posix -lthr Y | ||
273 | dnl | ||
274 | dnl FreeBSD 5.2 posix -lc_r Y | ||
275 | dnl posix -lkse Y | ||
276 | dnl posix -lthr Y | ||
277 | dnl | ||
278 | dnl FreeBSD 4.0,4.10 posix -lc_r Y OK | ||
279 | dnl | ||
280 | dnl NetBSD 1.6 -- | ||
281 | dnl | ||
282 | dnl OpenBSD 3.4 posix -lpthread Y OK | ||
283 | dnl | ||
284 | dnl MacOS X 10.[123] posix -lpthread Y OK | ||
285 | dnl | ||
286 | dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK | ||
287 | dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK | ||
288 | dnl | ||
289 | dnl HP-UX 11 posix -lpthread N (cc) OK | ||
290 | dnl Y (gcc) | ||
291 | dnl | ||
292 | dnl IRIX 6.5 posix -lpthread Y 0.5 | ||
293 | dnl | ||
294 | dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK | ||
295 | dnl | ||
296 | dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK | ||
297 | dnl -lpthread (gcc) Y | ||
298 | dnl | ||
299 | dnl Cygwin posix -lpthread Y OK | ||
300 | dnl | ||
301 | dnl Any of the above pth -lpth 0.0 | ||
302 | dnl | ||
303 | dnl Mingw win32 N OK | ||
304 | dnl | ||
305 | dnl BeOS 5 -- | ||
306 | dnl | ||
307 | dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is | ||
308 | dnl turned off: | ||
309 | dnl OK if all three tests terminate OK, | ||
310 | dnl 0.5 if the first test terminates OK but the second one loops endlessly, | ||
311 | dnl 0.0 if the first test already loops endlessly. | ||
diff --git a/gl/m4/longdouble.m4 b/gl/m4/longdouble.m4 new file mode 100644 index 00000000..25590f47 --- /dev/null +++ b/gl/m4/longdouble.m4 | |||
@@ -0,0 +1,31 @@ | |||
1 | # longdouble.m4 serial 2 (gettext-0.15) | ||
2 | dnl Copyright (C) 2002-2003, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Bruno Haible. | ||
8 | dnl Test whether the compiler supports the 'long double' type. | ||
9 | dnl Prerequisite: AC_PROG_CC | ||
10 | |||
11 | dnl This file is only needed in autoconf <= 2.59. Newer versions of autoconf | ||
12 | dnl have a macro AC_TYPE_LONG_DOUBLE with identical semantics. | ||
13 | |||
14 | AC_DEFUN([gt_TYPE_LONGDOUBLE], | ||
15 | [ | ||
16 | AC_CACHE_CHECK([for long double], gt_cv_c_long_double, | ||
17 | [if test "$GCC" = yes; then | ||
18 | gt_cv_c_long_double=yes | ||
19 | else | ||
20 | AC_TRY_COMPILE([ | ||
21 | /* The Stardent Vistra knows sizeof(long double), but does not support it. */ | ||
22 | long double foo = 0.0; | ||
23 | /* On Ultrix 4.3 cc, long double is 4 and double is 8. */ | ||
24 | int array [2*(sizeof(long double) >= sizeof(double)) - 1]; | ||
25 | ], , | ||
26 | gt_cv_c_long_double=yes, gt_cv_c_long_double=no) | ||
27 | fi]) | ||
28 | if test $gt_cv_c_long_double = yes; then | ||
29 | AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.]) | ||
30 | fi | ||
31 | ]) | ||
diff --git a/gl/m4/longlong.m4 b/gl/m4/longlong.m4 new file mode 100644 index 00000000..1f9e862e --- /dev/null +++ b/gl/m4/longlong.m4 | |||
@@ -0,0 +1,72 @@ | |||
1 | # longlong.m4 serial 10 | ||
2 | dnl Copyright (C) 1999-2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Paul Eggert. | ||
8 | |||
9 | # Define HAVE_LONG_LONG_INT if 'long long int' works. | ||
10 | # This fixes a bug in Autoconf 2.60, but can be removed once we | ||
11 | # assume 2.61 everywhere. | ||
12 | |||
13 | # Note: If the type 'long long int' exists but is only 32 bits large | ||
14 | # (as on some very old compilers), HAVE_LONG_LONG_INT will not be | ||
15 | # defined. In this case you can treat 'long long int' like 'long int'. | ||
16 | |||
17 | AC_DEFUN([AC_TYPE_LONG_LONG_INT], | ||
18 | [ | ||
19 | AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], | ||
20 | [AC_LINK_IFELSE( | ||
21 | [AC_LANG_PROGRAM( | ||
22 | [[long long int ll = 9223372036854775807ll; | ||
23 | long long int nll = -9223372036854775807LL; | ||
24 | typedef int a[((-9223372036854775807LL < 0 | ||
25 | && 0 < 9223372036854775807ll) | ||
26 | ? 1 : -1)]; | ||
27 | int i = 63;]], | ||
28 | [[long long int llmax = 9223372036854775807ll; | ||
29 | return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | ||
30 | | (llmax / ll) | (llmax % ll));]])], | ||
31 | [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. | ||
32 | dnl If cross compiling, assume the bug isn't important, since | ||
33 | dnl nobody cross compiles for this platform as far as we know. | ||
34 | AC_RUN_IFELSE( | ||
35 | [AC_LANG_PROGRAM( | ||
36 | [[@%:@include <limits.h> | ||
37 | @%:@ifndef LLONG_MAX | ||
38 | @%:@ define HALF \ | ||
39 | (1LL << (sizeof (long long int) * CHAR_BIT - 2)) | ||
40 | @%:@ define LLONG_MAX (HALF - 1 + HALF) | ||
41 | @%:@endif]], | ||
42 | [[long long int n = 1; | ||
43 | int i; | ||
44 | for (i = 0; ; i++) | ||
45 | { | ||
46 | long long int m = n << i; | ||
47 | if (m >> i != n) | ||
48 | return 1; | ||
49 | if (LLONG_MAX / 2 < m) | ||
50 | break; | ||
51 | } | ||
52 | return 0;]])], | ||
53 | [ac_cv_type_long_long_int=yes], | ||
54 | [ac_cv_type_long_long_int=no], | ||
55 | [ac_cv_type_long_long_int=yes])], | ||
56 | [ac_cv_type_long_long_int=no])]) | ||
57 | if test $ac_cv_type_long_long_int = yes; then | ||
58 | AC_DEFINE([HAVE_LONG_LONG_INT], 1, | ||
59 | [Define to 1 if the system has the type `long long int'.]) | ||
60 | fi | ||
61 | ]) | ||
62 | |||
63 | # This macro is obsolescent and should go away soon. | ||
64 | AC_DEFUN([gl_AC_TYPE_LONG_LONG], | ||
65 | [ | ||
66 | AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) | ||
67 | ac_cv_type_long_long=$ac_cv_type_long_long_int | ||
68 | if test $ac_cv_type_long_long = yes; then | ||
69 | AC_DEFINE(HAVE_LONG_LONG, 1, | ||
70 | [Define if you have the 'long long' type.]) | ||
71 | fi | ||
72 | ]) | ||
diff --git a/gl/m4/ls-mntd-fs.m4 b/gl/m4/ls-mntd-fs.m4 new file mode 100644 index 00000000..21ac4e74 --- /dev/null +++ b/gl/m4/ls-mntd-fs.m4 | |||
@@ -0,0 +1,337 @@ | |||
1 | #serial 26 | ||
2 | # How to list mounted file systems. | ||
3 | |||
4 | # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006 Free Software | ||
5 | # Foundation, Inc. | ||
6 | # | ||
7 | # This file is free software; the Free Software Foundation | ||
8 | # gives unlimited permission to copy and/or distribute it, | ||
9 | # with or without modifications, as long as this notice is preserved. | ||
10 | |||
11 | dnl From Jim Meyering. | ||
12 | dnl | ||
13 | dnl This is not pretty. I've just taken the autoconf code and wrapped | ||
14 | dnl it in an AC_DEFUN and made some other fixes. | ||
15 | dnl | ||
16 | |||
17 | # Replace Autoconf's AC_FUNC_GETMNTENT to work around a bug in Autoconf | ||
18 | # through Autoconf 2.59. We can remove this once we assume Autoconf 2.60 | ||
19 | # or later. | ||
20 | AC_DEFUN([AC_FUNC_GETMNTENT], | ||
21 | [# getmntent is in the standard C library on UNICOS, in -lsun on Irix 4, | ||
22 | # -lseq on Dynix/PTX, -lgen on Unixware. | ||
23 | AC_SEARCH_LIBS(getmntent, [sun seq gen]) | ||
24 | AC_CHECK_FUNCS(getmntent) | ||
25 | ]) | ||
26 | |||
27 | # gl_LIST_MOUNTED_FILE_SYSTEMS([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) | ||
28 | AC_DEFUN([gl_LIST_MOUNTED_FILE_SYSTEMS], | ||
29 | [ | ||
30 | AC_CHECK_FUNCS(listmntent getmntinfo) | ||
31 | AC_CHECK_HEADERS_ONCE(sys/param.h sys/statvfs.h) | ||
32 | |||
33 | # We must include grp.h before ucred.h on OSF V4.0, since ucred.h uses | ||
34 | # NGROUPS (as the array dimension for a struct member) without a definition. | ||
35 | AC_CHECK_HEADERS(sys/ucred.h, [], [], [#include <grp.h>]) | ||
36 | |||
37 | AC_CHECK_HEADERS(sys/mount.h, [], [], | ||
38 | [AC_INCLUDES_DEFAULT | ||
39 | [#if HAVE_SYS_PARAM_H | ||
40 | #include <sys/param.h> | ||
41 | #endif]]) | ||
42 | |||
43 | AC_CHECK_HEADERS(mntent.h sys/fs_types.h) | ||
44 | getfsstat_includes="\ | ||
45 | $ac_includes_default | ||
46 | #if HAVE_SYS_PARAM_H | ||
47 | # include <sys/param.h> /* needed by powerpc-apple-darwin1.3.7 */ | ||
48 | #endif | ||
49 | #if HAVE_SYS_UCRED_H | ||
50 | # include <grp.h> /* needed for definition of NGROUPS */ | ||
51 | # include <sys/ucred.h> /* needed by powerpc-apple-darwin1.3.7 */ | ||
52 | #endif | ||
53 | #if HAVE_SYS_MOUNT_H | ||
54 | # include <sys/mount.h> | ||
55 | #endif | ||
56 | #if HAVE_SYS_FS_TYPES_H | ||
57 | # include <sys/fs_types.h> /* needed by powerpc-apple-darwin1.3.7 */ | ||
58 | #endif | ||
59 | " | ||
60 | AC_CHECK_MEMBERS([struct fsstat.f_fstypename],,,[$getfsstat_includes]) | ||
61 | |||
62 | # Determine how to get the list of mounted file systems. | ||
63 | ac_list_mounted_fs= | ||
64 | |||
65 | # If the getmntent function is available but not in the standard library, | ||
66 | # make sure LIBS contains the appropriate -l option. | ||
67 | AC_FUNC_GETMNTENT | ||
68 | |||
69 | # This test must precede the ones for getmntent because Unicos-9 is | ||
70 | # reported to have the getmntent function, but its support is incompatible | ||
71 | # with other getmntent implementations. | ||
72 | |||
73 | # NOTE: Normally, I wouldn't use a check for system type as I've done for | ||
74 | # `CRAY' below since that goes against the whole autoconf philosophy. But | ||
75 | # I think there is too great a chance that some non-Cray system has a | ||
76 | # function named listmntent to risk the false positive. | ||
77 | |||
78 | if test -z "$ac_list_mounted_fs"; then | ||
79 | # Cray UNICOS 9 | ||
80 | AC_MSG_CHECKING([for listmntent of Cray/Unicos-9]) | ||
81 | AC_CACHE_VAL(fu_cv_sys_mounted_cray_listmntent, | ||
82 | [fu_cv_sys_mounted_cray_listmntent=no | ||
83 | AC_EGREP_CPP(yes, | ||
84 | [#ifdef _CRAY | ||
85 | yes | ||
86 | #endif | ||
87 | ], [test $ac_cv_func_listmntent = yes \ | ||
88 | && fu_cv_sys_mounted_cray_listmntent=yes] | ||
89 | ) | ||
90 | ] | ||
91 | ) | ||
92 | AC_MSG_RESULT($fu_cv_sys_mounted_cray_listmntent) | ||
93 | if test $fu_cv_sys_mounted_cray_listmntent = yes; then | ||
94 | ac_list_mounted_fs=found | ||
95 | AC_DEFINE(MOUNTED_LISTMNTENT, 1, | ||
96 | [Define if there is a function named listmntent that can be used to | ||
97 | list all mounted file systems. (UNICOS)]) | ||
98 | fi | ||
99 | fi | ||
100 | |||
101 | if test -z "$ac_list_mounted_fs"; then | ||
102 | # AIX. | ||
103 | AC_MSG_CHECKING([for mntctl function and struct vmount]) | ||
104 | AC_CACHE_VAL(fu_cv_sys_mounted_vmount, | ||
105 | [AC_TRY_CPP([#include <fshelp.h>], | ||
106 | fu_cv_sys_mounted_vmount=yes, | ||
107 | fu_cv_sys_mounted_vmount=no)]) | ||
108 | AC_MSG_RESULT($fu_cv_sys_mounted_vmount) | ||
109 | if test $fu_cv_sys_mounted_vmount = yes; then | ||
110 | ac_list_mounted_fs=found | ||
111 | AC_DEFINE(MOUNTED_VMOUNT, 1, | ||
112 | [Define if there is a function named mntctl that can be used to read | ||
113 | the list of mounted file systems, and there is a system header file | ||
114 | that declares `struct vmount.' (AIX)]) | ||
115 | fi | ||
116 | fi | ||
117 | |||
118 | if test $ac_cv_func_getmntent = yes; then | ||
119 | |||
120 | # This system has the getmntent function. | ||
121 | # Determine whether it's the one-argument variant or the two-argument one. | ||
122 | |||
123 | if test -z "$ac_list_mounted_fs"; then | ||
124 | # 4.3BSD, SunOS, HP-UX, Dynix, Irix | ||
125 | AC_MSG_CHECKING([for one-argument getmntent function]) | ||
126 | AC_CACHE_VAL(fu_cv_sys_mounted_getmntent1, | ||
127 | [AC_TRY_COMPILE([ | ||
128 | /* SunOS 4.1.x /usr/include/mntent.h needs this for FILE */ | ||
129 | #include <stdio.h> | ||
130 | |||
131 | #include <mntent.h> | ||
132 | #if !defined MOUNTED | ||
133 | # if defined _PATH_MOUNTED /* GNU libc */ | ||
134 | # define MOUNTED _PATH_MOUNTED | ||
135 | # endif | ||
136 | # if defined MNT_MNTTAB /* HP-UX. */ | ||
137 | # define MOUNTED MNT_MNTTAB | ||
138 | # endif | ||
139 | # if defined MNTTABNAME /* Dynix. */ | ||
140 | # define MOUNTED MNTTABNAME | ||
141 | # endif | ||
142 | #endif | ||
143 | ], | ||
144 | [ struct mntent *mnt = 0; char *table = MOUNTED; | ||
145 | if (sizeof mnt && sizeof table) return 0;], | ||
146 | fu_cv_sys_mounted_getmntent1=yes, | ||
147 | fu_cv_sys_mounted_getmntent1=no)]) | ||
148 | AC_MSG_RESULT($fu_cv_sys_mounted_getmntent1) | ||
149 | if test $fu_cv_sys_mounted_getmntent1 = yes; then | ||
150 | ac_list_mounted_fs=found | ||
151 | AC_DEFINE(MOUNTED_GETMNTENT1, 1, | ||
152 | [Define if there is a function named getmntent for reading the list | ||
153 | of mounted file systems, and that function takes a single argument. | ||
154 | (4.3BSD, SunOS, HP-UX, Dynix, Irix)]) | ||
155 | fi | ||
156 | fi | ||
157 | |||
158 | if test -z "$ac_list_mounted_fs"; then | ||
159 | # SVR4 | ||
160 | AC_MSG_CHECKING([for two-argument getmntent function]) | ||
161 | AC_CACHE_VAL(fu_cv_sys_mounted_getmntent2, | ||
162 | [AC_EGREP_HEADER(getmntent, sys/mnttab.h, | ||
163 | fu_cv_sys_mounted_getmntent2=yes, | ||
164 | fu_cv_sys_mounted_getmntent2=no)]) | ||
165 | AC_MSG_RESULT($fu_cv_sys_mounted_getmntent2) | ||
166 | if test $fu_cv_sys_mounted_getmntent2 = yes; then | ||
167 | ac_list_mounted_fs=found | ||
168 | AC_DEFINE(MOUNTED_GETMNTENT2, 1, | ||
169 | [Define if there is a function named getmntent for reading the list of | ||
170 | mounted file systems, and that function takes two arguments. (SVR4)]) | ||
171 | AC_CHECK_FUNCS(hasmntopt) | ||
172 | fi | ||
173 | fi | ||
174 | |||
175 | fi | ||
176 | |||
177 | if test -z "$ac_list_mounted_fs"; then | ||
178 | # DEC Alpha running OSF/1, and Apple Darwin 1.3. | ||
179 | # powerpc-apple-darwin1.3.7 needs sys/param.h sys/ucred.h sys/fs_types.h | ||
180 | |||
181 | AC_MSG_CHECKING([for getfsstat function]) | ||
182 | AC_CACHE_VAL(fu_cv_sys_mounted_getfsstat, | ||
183 | [AC_TRY_LINK([ | ||
184 | #include <sys/types.h> | ||
185 | #if HAVE_STRUCT_FSSTAT_F_FSTYPENAME | ||
186 | # define FS_TYPE(Ent) ((Ent).f_fstypename) | ||
187 | #else | ||
188 | # define FS_TYPE(Ent) mnt_names[(Ent).f_type] | ||
189 | #endif | ||
190 | ]$getfsstat_includes | ||
191 | , | ||
192 | [struct statfs *stats; | ||
193 | int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT); | ||
194 | char *t = FS_TYPE (*stats); ], | ||
195 | fu_cv_sys_mounted_getfsstat=yes, | ||
196 | fu_cv_sys_mounted_getfsstat=no)]) | ||
197 | AC_MSG_RESULT($fu_cv_sys_mounted_getfsstat) | ||
198 | if test $fu_cv_sys_mounted_getfsstat = yes; then | ||
199 | ac_list_mounted_fs=found | ||
200 | AC_DEFINE(MOUNTED_GETFSSTAT, 1, | ||
201 | [Define if there is a function named getfsstat for reading the | ||
202 | list of mounted file systems. (DEC Alpha running OSF/1)]) | ||
203 | fi | ||
204 | fi | ||
205 | |||
206 | if test -z "$ac_list_mounted_fs"; then | ||
207 | # SVR3 | ||
208 | AC_MSG_CHECKING([for FIXME existence of three headers]) | ||
209 | AC_CACHE_VAL(fu_cv_sys_mounted_fread_fstyp, | ||
210 | [AC_TRY_CPP([ | ||
211 | #include <sys/statfs.h> | ||
212 | #include <sys/fstyp.h> | ||
213 | #include <mnttab.h>], | ||
214 | fu_cv_sys_mounted_fread_fstyp=yes, | ||
215 | fu_cv_sys_mounted_fread_fstyp=no)]) | ||
216 | AC_MSG_RESULT($fu_cv_sys_mounted_fread_fstyp) | ||
217 | if test $fu_cv_sys_mounted_fread_fstyp = yes; then | ||
218 | ac_list_mounted_fs=found | ||
219 | AC_DEFINE(MOUNTED_FREAD_FSTYP, 1, | ||
220 | [Define if (like SVR2) there is no specific function for reading the | ||
221 | list of mounted file systems, and your system has these header files: | ||
222 | <sys/fstyp.h> and <sys/statfs.h>. (SVR3)]) | ||
223 | fi | ||
224 | fi | ||
225 | |||
226 | if test -z "$ac_list_mounted_fs"; then | ||
227 | # 4.4BSD and DEC OSF/1. | ||
228 | AC_MSG_CHECKING([for getmntinfo function]) | ||
229 | AC_CACHE_VAL(fu_cv_sys_mounted_getmntinfo, | ||
230 | [ | ||
231 | test "$ac_cv_func_getmntinfo" = yes \ | ||
232 | && fu_cv_sys_mounted_getmntinfo=yes \ | ||
233 | || fu_cv_sys_mounted_getmntinfo=no | ||
234 | ]) | ||
235 | AC_MSG_RESULT($fu_cv_sys_mounted_getmntinfo) | ||
236 | if test $fu_cv_sys_mounted_getmntinfo = yes; then | ||
237 | AC_MSG_CHECKING([whether getmntinfo returns statvfs structures]) | ||
238 | AC_CACHE_VAL(fu_cv_sys_mounted_getmntinfo2, | ||
239 | [ | ||
240 | AC_TRY_COMPILE([ | ||
241 | #if HAVE_SYS_PARAM_H | ||
242 | # include <sys/param.h> | ||
243 | #endif | ||
244 | #include <sys/types.h> | ||
245 | #if HAVE_SYS_MOUNT_H | ||
246 | # include <sys/mount.h> | ||
247 | #endif | ||
248 | #if HAVE_SYS_STATVFS_H | ||
249 | # include <sys/statvfs.h> | ||
250 | #endif | ||
251 | extern int getmntinfo (struct statfs **, int); | ||
252 | ], [], | ||
253 | [fu_cv_sys_mounted_getmntinfo2=no], | ||
254 | [fu_cv_sys_mounted_getmntinfo2=yes]) | ||
255 | ]) | ||
256 | AC_MSG_RESULT([$fu_cv_sys_mounted_getmntinfo2]) | ||
257 | if test $fu_cv_sys_mounted_getmntinfo2 = no; then | ||
258 | ac_list_mounted_fs=found | ||
259 | AC_DEFINE(MOUNTED_GETMNTINFO, 1, | ||
260 | [Define if there is a function named getmntinfo for reading the | ||
261 | list of mounted file systems and it returns an array of | ||
262 | 'struct statfs'. (4.4BSD, Darwin)]) | ||
263 | else | ||
264 | ac_list_mounted_fs=found | ||
265 | AC_DEFINE(MOUNTED_GETMNTINFO2, 1, | ||
266 | [Define if there is a function named getmntinfo for reading the | ||
267 | list of mounted file systems and it returns an array of | ||
268 | 'struct statvfs'. (NetBSD 3.0)]) | ||
269 | fi | ||
270 | fi | ||
271 | fi | ||
272 | |||
273 | if test -z "$ac_list_mounted_fs"; then | ||
274 | # Ultrix | ||
275 | AC_MSG_CHECKING([for getmnt function]) | ||
276 | AC_CACHE_VAL(fu_cv_sys_mounted_getmnt, | ||
277 | [AC_TRY_CPP([ | ||
278 | #include <sys/fs_types.h> | ||
279 | #include <sys/mount.h>], | ||
280 | fu_cv_sys_mounted_getmnt=yes, | ||
281 | fu_cv_sys_mounted_getmnt=no)]) | ||
282 | AC_MSG_RESULT($fu_cv_sys_mounted_getmnt) | ||
283 | if test $fu_cv_sys_mounted_getmnt = yes; then | ||
284 | ac_list_mounted_fs=found | ||
285 | AC_DEFINE(MOUNTED_GETMNT, 1, | ||
286 | [Define if there is a function named getmnt for reading the list of | ||
287 | mounted file systems. (Ultrix)]) | ||
288 | fi | ||
289 | fi | ||
290 | |||
291 | if test -z "$ac_list_mounted_fs"; then | ||
292 | # BeOS | ||
293 | AC_CHECK_FUNCS(next_dev fs_stat_dev) | ||
294 | AC_CHECK_HEADERS(fs_info.h) | ||
295 | AC_MSG_CHECKING([for BEOS mounted file system support functions]) | ||
296 | if test $ac_cv_header_fs_info_h = yes \ | ||
297 | && test $ac_cv_func_next_dev = yes \ | ||
298 | && test $ac_cv_func_fs_stat_dev = yes; then | ||
299 | fu_result=yes | ||
300 | else | ||
301 | fu_result=no | ||
302 | fi | ||
303 | AC_MSG_RESULT($fu_result) | ||
304 | if test $fu_result = yes; then | ||
305 | ac_list_mounted_fs=found | ||
306 | AC_DEFINE(MOUNTED_FS_STAT_DEV, 1, | ||
307 | [Define if there are functions named next_dev and fs_stat_dev for | ||
308 | reading the list of mounted file systems. (BeOS)]) | ||
309 | fi | ||
310 | fi | ||
311 | |||
312 | if test -z "$ac_list_mounted_fs"; then | ||
313 | # SVR2 | ||
314 | AC_MSG_CHECKING([whether it is possible to resort to fread on /etc/mnttab]) | ||
315 | AC_CACHE_VAL(fu_cv_sys_mounted_fread, | ||
316 | [AC_TRY_CPP([#include <mnttab.h>], | ||
317 | fu_cv_sys_mounted_fread=yes, | ||
318 | fu_cv_sys_mounted_fread=no)]) | ||
319 | AC_MSG_RESULT($fu_cv_sys_mounted_fread) | ||
320 | if test $fu_cv_sys_mounted_fread = yes; then | ||
321 | ac_list_mounted_fs=found | ||
322 | AC_DEFINE(MOUNTED_FREAD, 1, | ||
323 | [Define if there is no specific function for reading the list of | ||
324 | mounted file systems. fread will be used to read /etc/mnttab. | ||
325 | (SVR2) ]) | ||
326 | fi | ||
327 | fi | ||
328 | |||
329 | if test -z "$ac_list_mounted_fs"; then | ||
330 | AC_MSG_ERROR([could not determine how to read list of mounted file systems]) | ||
331 | # FIXME -- no need to abort building the whole package | ||
332 | # Can't build mountlist.c or anything that needs its functions | ||
333 | fi | ||
334 | |||
335 | AS_IF([test $ac_list_mounted_fs = found], [$1], [$2]) | ||
336 | |||
337 | ]) | ||
diff --git a/gl/m4/mbchar.m4 b/gl/m4/mbchar.m4 new file mode 100644 index 00000000..5380941b --- /dev/null +++ b/gl/m4/mbchar.m4 | |||
@@ -0,0 +1,14 @@ | |||
1 | # mbchar.m4 serial 5 | ||
2 | dnl Copyright (C) 2005-2007 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl autoconf tests required for use of mbchar.m4 | ||
8 | dnl From Bruno Haible. | ||
9 | |||
10 | AC_DEFUN([gl_MBCHAR], | ||
11 | [ | ||
12 | AC_REQUIRE([AC_GNU_SOURCE]) | ||
13 | AC_LIBOBJ([mbchar]) | ||
14 | ]) | ||
diff --git a/gl/m4/mbiter.m4 b/gl/m4/mbiter.m4 new file mode 100644 index 00000000..7d51af10 --- /dev/null +++ b/gl/m4/mbiter.m4 | |||
@@ -0,0 +1,17 @@ | |||
1 | # mbiter.m4 serial 2 | ||
2 | dnl Copyright (C) 2005 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl autoconf tests required for use of mbiter.h | ||
8 | dnl From Bruno Haible. | ||
9 | |||
10 | AC_DEFUN([gl_MBITER], | ||
11 | [ | ||
12 | AC_REQUIRE([AC_TYPE_MBSTATE_T]) | ||
13 | dnl The following line is that so the user can test HAVE_MBRTOWC before | ||
14 | dnl #include "mbiter.h" or "mbuiter.h". | ||
15 | AC_REQUIRE([gl_FUNC_MBRTOWC]) | ||
16 | : | ||
17 | ]) | ||
diff --git a/gl/m4/mbrtowc.m4 b/gl/m4/mbrtowc.m4 new file mode 100644 index 00000000..a3bd9114 --- /dev/null +++ b/gl/m4/mbrtowc.m4 | |||
@@ -0,0 +1,31 @@ | |||
1 | # mbrtowc.m4 serial 8 | ||
2 | dnl Copyright (C) 2001-2002, 2004-2005 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Paul Eggert | ||
8 | |||
9 | dnl This file can be removed, and gl_FUNC_MBRTOWC replaced with | ||
10 | dnl AC_FUNC_MBRTOWC, when autoconf 2.60 can be assumed everywhere. | ||
11 | |||
12 | AC_DEFUN([gl_FUNC_MBRTOWC], | ||
13 | [ | ||
14 | dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60. | ||
15 | AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared], | ||
16 | gl_cv_func_mbrtowc, | ||
17 | [AC_LINK_IFELSE( | ||
18 | [AC_LANG_PROGRAM( | ||
19 | [[#include <wchar.h>]], | ||
20 | [[wchar_t wc; | ||
21 | char const s[] = ""; | ||
22 | size_t n = 1; | ||
23 | mbstate_t state; | ||
24 | return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));]])], | ||
25 | gl_cv_func_mbrtowc=yes, | ||
26 | gl_cv_func_mbrtowc=no)]) | ||
27 | if test $gl_cv_func_mbrtowc = yes; then | ||
28 | AC_DEFINE([HAVE_MBRTOWC], 1, | ||
29 | [Define to 1 if mbrtowc and mbstate_t are properly declared.]) | ||
30 | fi | ||
31 | ]) | ||
diff --git a/gl/m4/memchr.m4 b/gl/m4/memchr.m4 new file mode 100644 index 00000000..91b8636e --- /dev/null +++ b/gl/m4/memchr.m4 | |||
@@ -0,0 +1,18 @@ | |||
1 | # memchr.m4 serial 4 | ||
2 | dnl Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_FUNC_MEMCHR], | ||
8 | [ | ||
9 | AC_REPLACE_FUNCS(memchr) | ||
10 | if test $ac_cv_func_memchr = no; then | ||
11 | gl_PREREQ_MEMCHR | ||
12 | fi | ||
13 | ]) | ||
14 | |||
15 | # Prerequisites of lib/memchr.c. | ||
16 | AC_DEFUN([gl_PREREQ_MEMCHR], [ | ||
17 | AC_CHECK_HEADERS(bp-sym.h) | ||
18 | ]) | ||
diff --git a/gl/m4/minmax.m4 b/gl/m4/minmax.m4 new file mode 100644 index 00000000..bbd1ba0b --- /dev/null +++ b/gl/m4/minmax.m4 | |||
@@ -0,0 +1,41 @@ | |||
1 | # minmax.m4 serial 2 | ||
2 | dnl Copyright (C) 2005 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_PREREQ(2.52) | ||
8 | |||
9 | AC_DEFUN([gl_MINMAX], | ||
10 | [ | ||
11 | AC_REQUIRE([gl_PREREQ_MINMAX]) | ||
12 | ]) | ||
13 | |||
14 | # Prerequisites of lib/minmax.h. | ||
15 | AC_DEFUN([gl_PREREQ_MINMAX], | ||
16 | [ | ||
17 | gl_MINMAX_IN_HEADER([limits.h]) | ||
18 | gl_MINMAX_IN_HEADER([sys/param.h]) | ||
19 | ]) | ||
20 | |||
21 | dnl gl_MINMAX_IN_HEADER(HEADER) | ||
22 | dnl The parameter has to be a literal header name; it cannot be macro, | ||
23 | dnl nor a shell variable. (Because autoheader collects only AC_DEFINE | ||
24 | dnl invocations with a literal macro name.) | ||
25 | AC_DEFUN([gl_MINMAX_IN_HEADER], | ||
26 | [ | ||
27 | m4_pushdef([header], AS_TR_SH([$1])) | ||
28 | m4_pushdef([HEADER], AS_TR_CPP([$1])) | ||
29 | AC_CACHE_CHECK([whether <$1> defines MIN and MAX], | ||
30 | [gl_cv_minmax_in_]header, | ||
31 | [AC_TRY_COMPILE([#include <$1> | ||
32 | int x = MIN (42, 17);], [], | ||
33 | [gl_cv_minmax_in_]header[=yes], | ||
34 | [gl_cv_minmax_in_]header[=no])]) | ||
35 | if test $gl_cv_minmax_in_[]header = yes; then | ||
36 | AC_DEFINE([HAVE_MINMAX_IN_]HEADER, 1, | ||
37 | [Define to 1 if <$1> defines the MIN and MAX macros.]) | ||
38 | fi | ||
39 | m4_popdef([HEADER]) | ||
40 | m4_popdef([header]) | ||
41 | ]) | ||
diff --git a/gl/m4/mountlist.m4 b/gl/m4/mountlist.m4 new file mode 100644 index 00000000..c25f44e7 --- /dev/null +++ b/gl/m4/mountlist.m4 | |||
@@ -0,0 +1,23 @@ | |||
1 | #serial 9 | ||
2 | dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_MOUNTLIST], | ||
8 | [ | ||
9 | gl_LIST_MOUNTED_FILE_SYSTEMS([gl_cv_list_mounted_fs=yes], | ||
10 | [gl_cv_list_mounted_fs=no]) | ||
11 | if test $gl_cv_list_mounted_fs = yes; then | ||
12 | AC_LIBOBJ(mountlist) | ||
13 | gl_PREREQ_MOUNTLIST_EXTRA | ||
14 | fi | ||
15 | ]) | ||
16 | |||
17 | # Prerequisites of lib/mountlist.c not done by gl_LIST_MOUNTED_FILE_SYSTEMS. | ||
18 | AC_DEFUN([gl_PREREQ_MOUNTLIST_EXTRA], | ||
19 | [ | ||
20 | dnl Note gl_LIST_MOUNTED_FILE_SYSTEMS checks for mntent.h, not sys/mntent.h. | ||
21 | AC_CHECK_HEADERS(sys/mntent.h) | ||
22 | gl_FSTYPENAME | ||
23 | ]) | ||
diff --git a/gl/m4/netinet_in_h.m4 b/gl/m4/netinet_in_h.m4 new file mode 100644 index 00000000..d73531a0 --- /dev/null +++ b/gl/m4/netinet_in_h.m4 | |||
@@ -0,0 +1,18 @@ | |||
1 | # netinet_in_h.m4 serial 1 | ||
2 | dnl Copyright (C) 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl Written by Simon Josefsson | ||
8 | |||
9 | AC_DEFUN([gl_HEADER_NETINET_IN], | ||
10 | [ | ||
11 | AC_CHECK_HEADERS_ONCE([netinet/in.h]) | ||
12 | if test $ac_cv_header_netinet_in_h = yes; then | ||
13 | NETINET_IN_H='' | ||
14 | else | ||
15 | NETINET_IN_H='netinet/in.h' | ||
16 | fi | ||
17 | AC_SUBST(NETINET_IN_H) | ||
18 | ]) | ||
diff --git a/gl/m4/nls.m4 b/gl/m4/nls.m4 new file mode 100644 index 00000000..7967cc2f --- /dev/null +++ b/gl/m4/nls.m4 | |||
@@ -0,0 +1,31 @@ | |||
1 | # nls.m4 serial 3 (gettext-0.15) | ||
2 | dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | dnl | ||
7 | dnl This file can can be used in projects which are not available under | ||
8 | dnl the GNU General Public License or the GNU Library General Public | ||
9 | dnl License but which still want to provide support for the GNU gettext | ||
10 | dnl functionality. | ||
11 | dnl Please note that the actual code of the GNU gettext library is covered | ||
12 | dnl by the GNU Library General Public License, and the rest of the GNU | ||
13 | dnl gettext package package is covered by the GNU General Public License. | ||
14 | dnl They are *not* in the public domain. | ||
15 | |||
16 | dnl Authors: | ||
17 | dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. | ||
18 | dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. | ||
19 | |||
20 | AC_PREREQ(2.50) | ||
21 | |||
22 | AC_DEFUN([AM_NLS], | ||
23 | [ | ||
24 | AC_MSG_CHECKING([whether NLS is requested]) | ||
25 | dnl Default is enabled NLS | ||
26 | AC_ARG_ENABLE(nls, | ||
27 | [ --disable-nls do not use Native Language Support], | ||
28 | USE_NLS=$enableval, USE_NLS=yes) | ||
29 | AC_MSG_RESULT($USE_NLS) | ||
30 | AC_SUBST(USE_NLS) | ||
31 | ]) | ||
diff --git a/gl/m4/onceonly_2_57.m4 b/gl/m4/onceonly_2_57.m4 new file mode 100644 index 00000000..15884b3e --- /dev/null +++ b/gl/m4/onceonly_2_57.m4 | |||
@@ -0,0 +1,86 @@ | |||
1 | # onceonly_2_57.m4 serial 4 | ||
2 | dnl Copyright (C) 2002-2003, 2005-2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software, distributed under the terms of the GNU | ||
4 | dnl General Public License. As a special exception to the GNU General | ||
5 | dnl Public License, this file may be distributed as part of a program | ||
6 | dnl that contains a configuration script generated by Autoconf, under | ||
7 | dnl the same distribution terms as the rest of that program. | ||
8 | |||
9 | dnl This file defines some "once only" variants of standard autoconf macros. | ||
10 | dnl AC_CHECK_HEADERS_ONCE like AC_CHECK_HEADERS | ||
11 | dnl AC_CHECK_FUNCS_ONCE like AC_CHECK_FUNCS | ||
12 | dnl AC_CHECK_DECLS_ONCE like AC_CHECK_DECLS | ||
13 | dnl AC_REQUIRE([AC_FUNC_STRCOLL]) like AC_FUNC_STRCOLL | ||
14 | dnl The advantage is that the check for each of the headers/functions/decls | ||
15 | dnl will be put only once into the 'configure' file. It keeps the size of | ||
16 | dnl the 'configure' file down, and avoids redundant output when 'configure' | ||
17 | dnl is run. | ||
18 | dnl The drawback is that the checks cannot be conditionalized. If you write | ||
19 | dnl if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi | ||
20 | dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to | ||
21 | dnl empty, and the check will be inserted before the body of the AC_DEFUNed | ||
22 | dnl function. | ||
23 | |||
24 | dnl This is like onceonly.m4, except that it uses diversions to named sections | ||
25 | dnl DEFAULTS and INIT_PREPARE in order to check all requested headers at once, | ||
26 | dnl thus reducing the size of 'configure'. Works with autoconf-2.57. The | ||
27 | dnl size reduction is ca. 9%. | ||
28 | |||
29 | dnl Autoconf version 2.57 or newer is recommended. | ||
30 | AC_PREREQ(2.57) | ||
31 | |||
32 | # AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of | ||
33 | # AC_CHECK_HEADERS(HEADER1 HEADER2 ...). | ||
34 | AC_DEFUN([AC_CHECK_HEADERS_ONCE], [ | ||
35 | : | ||
36 | AC_FOREACH([gl_HEADER_NAME], [$1], [ | ||
37 | AC_DEFUN([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME, | ||
38 | [./-], [___])), [ | ||
39 | m4_divert_text([INIT_PREPARE], | ||
40 | [gl_header_list="$gl_header_list gl_HEADER_NAME"]) | ||
41 | gl_HEADERS_EXPANSION | ||
42 | AH_TEMPLATE(AS_TR_CPP([HAVE_]m4_defn([gl_HEADER_NAME])), | ||
43 | [Define to 1 if you have the <]m4_defn([gl_HEADER_NAME])[> header file.]) | ||
44 | ]) | ||
45 | AC_REQUIRE([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME, | ||
46 | [./-], [___]))) | ||
47 | ]) | ||
48 | ]) | ||
49 | m4_define([gl_HEADERS_EXPANSION], [ | ||
50 | m4_divert_text([DEFAULTS], [gl_header_list=]) | ||
51 | AC_CHECK_HEADERS([$gl_header_list]) | ||
52 | m4_define([gl_HEADERS_EXPANSION], []) | ||
53 | ]) | ||
54 | |||
55 | # AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of | ||
56 | # AC_CHECK_FUNCS(FUNC1 FUNC2 ...). | ||
57 | AC_DEFUN([AC_CHECK_FUNCS_ONCE], [ | ||
58 | : | ||
59 | AC_FOREACH([gl_FUNC_NAME], [$1], [ | ||
60 | AC_DEFUN([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]), [ | ||
61 | m4_divert_text([INIT_PREPARE], | ||
62 | [gl_func_list="$gl_func_list gl_FUNC_NAME"]) | ||
63 | gl_FUNCS_EXPANSION | ||
64 | AH_TEMPLATE(AS_TR_CPP([HAVE_]m4_defn([gl_FUNC_NAME])), | ||
65 | [Define to 1 if you have the `]m4_defn([gl_FUNC_NAME])[' function.]) | ||
66 | ]) | ||
67 | AC_REQUIRE([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME])) | ||
68 | ]) | ||
69 | ]) | ||
70 | m4_define([gl_FUNCS_EXPANSION], [ | ||
71 | m4_divert_text([DEFAULTS], [gl_func_list=]) | ||
72 | AC_CHECK_FUNCS([$gl_func_list]) | ||
73 | m4_define([gl_FUNCS_EXPANSION], []) | ||
74 | ]) | ||
75 | |||
76 | # AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of | ||
77 | # AC_CHECK_DECLS(DECL1, DECL2, ...). | ||
78 | AC_DEFUN([AC_CHECK_DECLS_ONCE], [ | ||
79 | : | ||
80 | AC_FOREACH([gl_DECL_NAME], [$1], [ | ||
81 | AC_DEFUN([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]), [ | ||
82 | AC_CHECK_DECLS(m4_defn([gl_DECL_NAME])) | ||
83 | ]) | ||
84 | AC_REQUIRE([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME])) | ||
85 | ]) | ||
86 | ]) | ||
diff --git a/gl/m4/po.m4 b/gl/m4/po.m4 new file mode 100644 index 00000000..00133ef3 --- /dev/null +++ b/gl/m4/po.m4 | |||
@@ -0,0 +1,428 @@ | |||
1 | # po.m4 serial 13 (gettext-0.15) | ||
2 | dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | dnl | ||
7 | dnl This file can can be used in projects which are not available under | ||
8 | dnl the GNU General Public License or the GNU Library General Public | ||
9 | dnl License but which still want to provide support for the GNU gettext | ||
10 | dnl functionality. | ||
11 | dnl Please note that the actual code of the GNU gettext library is covered | ||
12 | dnl by the GNU Library General Public License, and the rest of the GNU | ||
13 | dnl gettext package package is covered by the GNU General Public License. | ||
14 | dnl They are *not* in the public domain. | ||
15 | |||
16 | dnl Authors: | ||
17 | dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. | ||
18 | dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. | ||
19 | |||
20 | AC_PREREQ(2.50) | ||
21 | |||
22 | dnl Checks for all prerequisites of the po subdirectory. | ||
23 | AC_DEFUN([AM_PO_SUBDIRS], | ||
24 | [ | ||
25 | AC_REQUIRE([AC_PROG_MAKE_SET])dnl | ||
26 | AC_REQUIRE([AC_PROG_INSTALL])dnl | ||
27 | AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake | ||
28 | AC_REQUIRE([AM_NLS])dnl | ||
29 | |||
30 | dnl Perform the following tests also if --disable-nls has been given, | ||
31 | dnl because they are needed for "make dist" to work. | ||
32 | |||
33 | dnl Search for GNU msgfmt in the PATH. | ||
34 | dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. | ||
35 | dnl The second test excludes FreeBSD msgfmt. | ||
36 | AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, | ||
37 | [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && | ||
38 | (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], | ||
39 | :) | ||
40 | AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) | ||
41 | |||
42 | dnl Test whether it is GNU msgfmt >= 0.15. | ||
43 | changequote(,)dnl | ||
44 | case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in | ||
45 | '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; | ||
46 | *) MSGFMT_015=$MSGFMT ;; | ||
47 | esac | ||
48 | changequote([,])dnl | ||
49 | AC_SUBST([MSGFMT_015]) | ||
50 | changequote(,)dnl | ||
51 | case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in | ||
52 | '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; | ||
53 | *) GMSGFMT_015=$GMSGFMT ;; | ||
54 | esac | ||
55 | changequote([,])dnl | ||
56 | AC_SUBST([GMSGFMT_015]) | ||
57 | |||
58 | dnl Search for GNU xgettext 0.12 or newer in the PATH. | ||
59 | dnl The first test excludes Solaris xgettext and early GNU xgettext versions. | ||
60 | dnl The second test excludes FreeBSD xgettext. | ||
61 | AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, | ||
62 | [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && | ||
63 | (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], | ||
64 | :) | ||
65 | dnl Remove leftover from FreeBSD xgettext call. | ||
66 | rm -f messages.po | ||
67 | |||
68 | dnl Test whether it is GNU xgettext >= 0.15. | ||
69 | changequote(,)dnl | ||
70 | case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in | ||
71 | '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; | ||
72 | *) XGETTEXT_015=$XGETTEXT ;; | ||
73 | esac | ||
74 | changequote([,])dnl | ||
75 | AC_SUBST([XGETTEXT_015]) | ||
76 | |||
77 | dnl Search for GNU msgmerge 0.11 or newer in the PATH. | ||
78 | AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, | ||
79 | [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) | ||
80 | |||
81 | dnl Installation directories. | ||
82 | dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we | ||
83 | dnl have to define it here, so that it can be used in po/Makefile. | ||
84 | test -n "$localedir" || localedir='${datadir}/locale' | ||
85 | AC_SUBST([localedir]) | ||
86 | |||
87 | AC_CONFIG_COMMANDS([po-directories], [[ | ||
88 | for ac_file in $CONFIG_FILES; do | ||
89 | # Support "outfile[:infile[:infile...]]" | ||
90 | case "$ac_file" in | ||
91 | *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; | ||
92 | esac | ||
93 | # PO directories have a Makefile.in generated from Makefile.in.in. | ||
94 | case "$ac_file" in */Makefile.in) | ||
95 | # Adjust a relative srcdir. | ||
96 | ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` | ||
97 | ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" | ||
98 | ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` | ||
99 | # In autoconf-2.13 it is called $ac_given_srcdir. | ||
100 | # In autoconf-2.50 it is called $srcdir. | ||
101 | test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" | ||
102 | case "$ac_given_srcdir" in | ||
103 | .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; | ||
104 | /*) top_srcdir="$ac_given_srcdir" ;; | ||
105 | *) top_srcdir="$ac_dots$ac_given_srcdir" ;; | ||
106 | esac | ||
107 | # Treat a directory as a PO directory if and only if it has a | ||
108 | # POTFILES.in file. This allows packages to have multiple PO | ||
109 | # directories under different names or in different locations. | ||
110 | if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then | ||
111 | rm -f "$ac_dir/POTFILES" | ||
112 | test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" | ||
113 | cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" | ||
114 | POMAKEFILEDEPS="POTFILES.in" | ||
115 | # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend | ||
116 | # on $ac_dir but don't depend on user-specified configuration | ||
117 | # parameters. | ||
118 | if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then | ||
119 | # The LINGUAS file contains the set of available languages. | ||
120 | if test -n "$OBSOLETE_ALL_LINGUAS"; then | ||
121 | test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" | ||
122 | fi | ||
123 | ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` | ||
124 | # Hide the ALL_LINGUAS assigment from automake < 1.5. | ||
125 | eval 'ALL_LINGUAS''=$ALL_LINGUAS_' | ||
126 | POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" | ||
127 | else | ||
128 | # The set of available languages was given in configure.in. | ||
129 | # Hide the ALL_LINGUAS assigment from automake < 1.5. | ||
130 | eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' | ||
131 | fi | ||
132 | # Compute POFILES | ||
133 | # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) | ||
134 | # Compute UPDATEPOFILES | ||
135 | # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) | ||
136 | # Compute DUMMYPOFILES | ||
137 | # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) | ||
138 | # Compute GMOFILES | ||
139 | # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) | ||
140 | case "$ac_given_srcdir" in | ||
141 | .) srcdirpre= ;; | ||
142 | *) srcdirpre='$(srcdir)/' ;; | ||
143 | esac | ||
144 | POFILES= | ||
145 | UPDATEPOFILES= | ||
146 | DUMMYPOFILES= | ||
147 | GMOFILES= | ||
148 | for lang in $ALL_LINGUAS; do | ||
149 | POFILES="$POFILES $srcdirpre$lang.po" | ||
150 | UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" | ||
151 | DUMMYPOFILES="$DUMMYPOFILES $lang.nop" | ||
152 | GMOFILES="$GMOFILES $srcdirpre$lang.gmo" | ||
153 | done | ||
154 | # CATALOGS depends on both $ac_dir and the user's LINGUAS | ||
155 | # environment variable. | ||
156 | INST_LINGUAS= | ||
157 | if test -n "$ALL_LINGUAS"; then | ||
158 | for presentlang in $ALL_LINGUAS; do | ||
159 | useit=no | ||
160 | if test "%UNSET%" != "$LINGUAS"; then | ||
161 | desiredlanguages="$LINGUAS" | ||
162 | else | ||
163 | desiredlanguages="$ALL_LINGUAS" | ||
164 | fi | ||
165 | for desiredlang in $desiredlanguages; do | ||
166 | # Use the presentlang catalog if desiredlang is | ||
167 | # a. equal to presentlang, or | ||
168 | # b. a variant of presentlang (because in this case, | ||
169 | # presentlang can be used as a fallback for messages | ||
170 | # which are not translated in the desiredlang catalog). | ||
171 | case "$desiredlang" in | ||
172 | "$presentlang"*) useit=yes;; | ||
173 | esac | ||
174 | done | ||
175 | if test $useit = yes; then | ||
176 | INST_LINGUAS="$INST_LINGUAS $presentlang" | ||
177 | fi | ||
178 | done | ||
179 | fi | ||
180 | CATALOGS= | ||
181 | if test -n "$INST_LINGUAS"; then | ||
182 | for lang in $INST_LINGUAS; do | ||
183 | CATALOGS="$CATALOGS $lang.gmo" | ||
184 | done | ||
185 | fi | ||
186 | test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" | ||
187 | sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" | ||
188 | for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do | ||
189 | if test -f "$f"; then | ||
190 | case "$f" in | ||
191 | *.orig | *.bak | *~) ;; | ||
192 | *) cat "$f" >> "$ac_dir/Makefile" ;; | ||
193 | esac | ||
194 | fi | ||
195 | done | ||
196 | fi | ||
197 | ;; | ||
198 | esac | ||
199 | done]], | ||
200 | [# Capture the value of obsolete ALL_LINGUAS because we need it to compute | ||
201 | # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it | ||
202 | # from automake < 1.5. | ||
203 | eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' | ||
204 | # Capture the value of LINGUAS because we need it to compute CATALOGS. | ||
205 | LINGUAS="${LINGUAS-%UNSET%}" | ||
206 | ]) | ||
207 | ]) | ||
208 | |||
209 | dnl Postprocesses a Makefile in a directory containing PO files. | ||
210 | AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], | ||
211 | [ | ||
212 | # When this code is run, in config.status, two variables have already been | ||
213 | # set: | ||
214 | # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, | ||
215 | # - LINGUAS is the value of the environment variable LINGUAS at configure | ||
216 | # time. | ||
217 | |||
218 | changequote(,)dnl | ||
219 | # Adjust a relative srcdir. | ||
220 | ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` | ||
221 | ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" | ||
222 | ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` | ||
223 | # In autoconf-2.13 it is called $ac_given_srcdir. | ||
224 | # In autoconf-2.50 it is called $srcdir. | ||
225 | test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" | ||
226 | case "$ac_given_srcdir" in | ||
227 | .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; | ||
228 | /*) top_srcdir="$ac_given_srcdir" ;; | ||
229 | *) top_srcdir="$ac_dots$ac_given_srcdir" ;; | ||
230 | esac | ||
231 | |||
232 | # Find a way to echo strings without interpreting backslash. | ||
233 | if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then | ||
234 | gt_echo='echo' | ||
235 | else | ||
236 | if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then | ||
237 | gt_echo='printf %s\n' | ||
238 | else | ||
239 | echo_func () { | ||
240 | cat <<EOT | ||
241 | $* | ||
242 | EOT | ||
243 | } | ||
244 | gt_echo='echo_func' | ||
245 | fi | ||
246 | fi | ||
247 | |||
248 | # A sed script that extracts the value of VARIABLE from a Makefile. | ||
249 | sed_x_variable=' | ||
250 | # Test if the hold space is empty. | ||
251 | x | ||
252 | s/P/P/ | ||
253 | x | ||
254 | ta | ||
255 | # Yes it was empty. Look if we have the expected variable definition. | ||
256 | /^[ ]*VARIABLE[ ]*=/{ | ||
257 | # Seen the first line of the variable definition. | ||
258 | s/^[ ]*VARIABLE[ ]*=// | ||
259 | ba | ||
260 | } | ||
261 | bd | ||
262 | :a | ||
263 | # Here we are processing a line from the variable definition. | ||
264 | # Remove comment, more precisely replace it with a space. | ||
265 | s/#.*$/ / | ||
266 | # See if the line ends in a backslash. | ||
267 | tb | ||
268 | :b | ||
269 | s/\\$// | ||
270 | # Print the line, without the trailing backslash. | ||
271 | p | ||
272 | tc | ||
273 | # There was no trailing backslash. The end of the variable definition is | ||
274 | # reached. Clear the hold space. | ||
275 | s/^.*$// | ||
276 | x | ||
277 | bd | ||
278 | :c | ||
279 | # A trailing backslash means that the variable definition continues in the | ||
280 | # next line. Put a nonempty string into the hold space to indicate this. | ||
281 | s/^.*$/P/ | ||
282 | x | ||
283 | :d | ||
284 | ' | ||
285 | changequote([,])dnl | ||
286 | |||
287 | # Set POTFILES to the value of the Makefile variable POTFILES. | ||
288 | sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'` | ||
289 | POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"` | ||
290 | # Compute POTFILES_DEPS as | ||
291 | # $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) | ||
292 | POTFILES_DEPS= | ||
293 | for file in $POTFILES; do | ||
294 | POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file" | ||
295 | done | ||
296 | POMAKEFILEDEPS="" | ||
297 | |||
298 | if test -n "$OBSOLETE_ALL_LINGUAS"; then | ||
299 | test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" | ||
300 | fi | ||
301 | if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then | ||
302 | # The LINGUAS file contains the set of available languages. | ||
303 | ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` | ||
304 | POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" | ||
305 | else | ||
306 | # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS. | ||
307 | sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'` | ||
308 | ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"` | ||
309 | fi | ||
310 | # Hide the ALL_LINGUAS assigment from automake < 1.5. | ||
311 | eval 'ALL_LINGUAS''=$ALL_LINGUAS_' | ||
312 | # Compute POFILES | ||
313 | # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) | ||
314 | # Compute UPDATEPOFILES | ||
315 | # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) | ||
316 | # Compute DUMMYPOFILES | ||
317 | # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) | ||
318 | # Compute GMOFILES | ||
319 | # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) | ||
320 | # Compute PROPERTIESFILES | ||
321 | # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties) | ||
322 | # Compute CLASSFILES | ||
323 | # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class) | ||
324 | # Compute QMFILES | ||
325 | # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm) | ||
326 | # Compute MSGFILES | ||
327 | # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg) | ||
328 | # Compute RESOURCESDLLFILES | ||
329 | # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll) | ||
330 | case "$ac_given_srcdir" in | ||
331 | .) srcdirpre= ;; | ||
332 | *) srcdirpre='$(srcdir)/' ;; | ||
333 | esac | ||
334 | POFILES= | ||
335 | UPDATEPOFILES= | ||
336 | DUMMYPOFILES= | ||
337 | GMOFILES= | ||
338 | PROPERTIESFILES= | ||
339 | CLASSFILES= | ||
340 | QMFILES= | ||
341 | MSGFILES= | ||
342 | RESOURCESDLLFILES= | ||
343 | for lang in $ALL_LINGUAS; do | ||
344 | POFILES="$POFILES $srcdirpre$lang.po" | ||
345 | UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" | ||
346 | DUMMYPOFILES="$DUMMYPOFILES $lang.nop" | ||
347 | GMOFILES="$GMOFILES $srcdirpre$lang.gmo" | ||
348 | PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties" | ||
349 | CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class" | ||
350 | QMFILES="$QMFILES $srcdirpre$lang.qm" | ||
351 | frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` | ||
352 | MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg" | ||
353 | frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` | ||
354 | RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll" | ||
355 | done | ||
356 | # CATALOGS depends on both $ac_dir and the user's LINGUAS | ||
357 | # environment variable. | ||
358 | INST_LINGUAS= | ||
359 | if test -n "$ALL_LINGUAS"; then | ||
360 | for presentlang in $ALL_LINGUAS; do | ||
361 | useit=no | ||
362 | if test "%UNSET%" != "$LINGUAS"; then | ||
363 | desiredlanguages="$LINGUAS" | ||
364 | else | ||
365 | desiredlanguages="$ALL_LINGUAS" | ||
366 | fi | ||
367 | for desiredlang in $desiredlanguages; do | ||
368 | # Use the presentlang catalog if desiredlang is | ||
369 | # a. equal to presentlang, or | ||
370 | # b. a variant of presentlang (because in this case, | ||
371 | # presentlang can be used as a fallback for messages | ||
372 | # which are not translated in the desiredlang catalog). | ||
373 | case "$desiredlang" in | ||
374 | "$presentlang"*) useit=yes;; | ||
375 | esac | ||
376 | done | ||
377 | if test $useit = yes; then | ||
378 | INST_LINGUAS="$INST_LINGUAS $presentlang" | ||
379 | fi | ||
380 | done | ||
381 | fi | ||
382 | CATALOGS= | ||
383 | JAVACATALOGS= | ||
384 | QTCATALOGS= | ||
385 | TCLCATALOGS= | ||
386 | CSHARPCATALOGS= | ||
387 | if test -n "$INST_LINGUAS"; then | ||
388 | for lang in $INST_LINGUAS; do | ||
389 | CATALOGS="$CATALOGS $lang.gmo" | ||
390 | JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties" | ||
391 | QTCATALOGS="$QTCATALOGS $lang.qm" | ||
392 | frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` | ||
393 | TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg" | ||
394 | frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` | ||
395 | CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll" | ||
396 | done | ||
397 | fi | ||
398 | |||
399 | sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp" | ||
400 | if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then | ||
401 | # Add dependencies that cannot be formulated as a simple suffix rule. | ||
402 | for lang in $ALL_LINGUAS; do | ||
403 | frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` | ||
404 | cat >> "$ac_file.tmp" <<EOF | ||
405 | $frobbedlang.msg: $lang.po | ||
406 | @echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \ | ||
407 | \$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } | ||
408 | EOF | ||
409 | done | ||
410 | fi | ||
411 | if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then | ||
412 | # Add dependencies that cannot be formulated as a simple suffix rule. | ||
413 | for lang in $ALL_LINGUAS; do | ||
414 | frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` | ||
415 | cat >> "$ac_file.tmp" <<EOF | ||
416 | $frobbedlang/\$(DOMAIN).resources.dll: $lang.po | ||
417 | @echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \ | ||
418 | \$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } | ||
419 | EOF | ||
420 | done | ||
421 | fi | ||
422 | if test -n "$POMAKEFILEDEPS"; then | ||
423 | cat >> "$ac_file.tmp" <<EOF | ||
424 | Makefile: $POMAKEFILEDEPS | ||
425 | EOF | ||
426 | fi | ||
427 | mv "$ac_file.tmp" "$ac_file" | ||
428 | ]) | ||
diff --git a/gl/m4/printf-posix.m4 b/gl/m4/printf-posix.m4 new file mode 100644 index 00000000..af10170a --- /dev/null +++ b/gl/m4/printf-posix.m4 | |||
@@ -0,0 +1,44 @@ | |||
1 | # printf-posix.m4 serial 2 (gettext-0.13.1) | ||
2 | dnl Copyright (C) 2003 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Bruno Haible. | ||
8 | dnl Test whether the printf() function supports POSIX/XSI format strings with | ||
9 | dnl positions. | ||
10 | |||
11 | AC_DEFUN([gt_PRINTF_POSIX], | ||
12 | [ | ||
13 | AC_REQUIRE([AC_PROG_CC]) | ||
14 | AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings], | ||
15 | gt_cv_func_printf_posix, | ||
16 | [ | ||
17 | AC_TRY_RUN([ | ||
18 | #include <stdio.h> | ||
19 | #include <string.h> | ||
20 | /* The string "%2$d %1$d", with dollar characters protected from the shell's | ||
21 | dollar expansion (possibly an autoconf bug). */ | ||
22 | static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; | ||
23 | static char buf[100]; | ||
24 | int main () | ||
25 | { | ||
26 | sprintf (buf, format, 33, 55); | ||
27 | return (strcmp (buf, "55 33") != 0); | ||
28 | }], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no, | ||
29 | [ | ||
30 | AC_EGREP_CPP(notposix, [ | ||
31 | #if defined __NetBSD__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__ | ||
32 | notposix | ||
33 | #endif | ||
34 | ], gt_cv_func_printf_posix="guessing no", | ||
35 | gt_cv_func_printf_posix="guessing yes") | ||
36 | ]) | ||
37 | ]) | ||
38 | case $gt_cv_func_printf_posix in | ||
39 | *yes) | ||
40 | AC_DEFINE(HAVE_POSIX_PRINTF, 1, | ||
41 | [Define if your printf() function supports format strings with positions.]) | ||
42 | ;; | ||
43 | esac | ||
44 | ]) | ||
diff --git a/gl/m4/progtest.m4 b/gl/m4/progtest.m4 new file mode 100644 index 00000000..a56365cd --- /dev/null +++ b/gl/m4/progtest.m4 | |||
@@ -0,0 +1,92 @@ | |||
1 | # progtest.m4 serial 4 (gettext-0.14.2) | ||
2 | dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | dnl | ||
7 | dnl This file can can be used in projects which are not available under | ||
8 | dnl the GNU General Public License or the GNU Library General Public | ||
9 | dnl License but which still want to provide support for the GNU gettext | ||
10 | dnl functionality. | ||
11 | dnl Please note that the actual code of the GNU gettext library is covered | ||
12 | dnl by the GNU Library General Public License, and the rest of the GNU | ||
13 | dnl gettext package package is covered by the GNU General Public License. | ||
14 | dnl They are *not* in the public domain. | ||
15 | |||
16 | dnl Authors: | ||
17 | dnl Ulrich Drepper <drepper@cygnus.com>, 1996. | ||
18 | |||
19 | AC_PREREQ(2.50) | ||
20 | |||
21 | # Search path for a program which passes the given test. | ||
22 | |||
23 | dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, | ||
24 | dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) | ||
25 | AC_DEFUN([AM_PATH_PROG_WITH_TEST], | ||
26 | [ | ||
27 | # Prepare PATH_SEPARATOR. | ||
28 | # The user is always right. | ||
29 | if test "${PATH_SEPARATOR+set}" != set; then | ||
30 | echo "#! /bin/sh" >conf$$.sh | ||
31 | echo "exit 0" >>conf$$.sh | ||
32 | chmod +x conf$$.sh | ||
33 | if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then | ||
34 | PATH_SEPARATOR=';' | ||
35 | else | ||
36 | PATH_SEPARATOR=: | ||
37 | fi | ||
38 | rm -f conf$$.sh | ||
39 | fi | ||
40 | |||
41 | # Find out how to test for executable files. Don't use a zero-byte file, | ||
42 | # as systems may use methods other than mode bits to determine executability. | ||
43 | cat >conf$$.file <<_ASEOF | ||
44 | #! /bin/sh | ||
45 | exit 0 | ||
46 | _ASEOF | ||
47 | chmod +x conf$$.file | ||
48 | if test -x conf$$.file >/dev/null 2>&1; then | ||
49 | ac_executable_p="test -x" | ||
50 | else | ||
51 | ac_executable_p="test -f" | ||
52 | fi | ||
53 | rm -f conf$$.file | ||
54 | |||
55 | # Extract the first word of "$2", so it can be a program name with args. | ||
56 | set dummy $2; ac_word=[$]2 | ||
57 | AC_MSG_CHECKING([for $ac_word]) | ||
58 | AC_CACHE_VAL(ac_cv_path_$1, | ||
59 | [case "[$]$1" in | ||
60 | [[\\/]]* | ?:[[\\/]]*) | ||
61 | ac_cv_path_$1="[$]$1" # Let the user override the test with a path. | ||
62 | ;; | ||
63 | *) | ||
64 | ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR | ||
65 | for ac_dir in ifelse([$5], , $PATH, [$5]); do | ||
66 | IFS="$ac_save_IFS" | ||
67 | test -z "$ac_dir" && ac_dir=. | ||
68 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
69 | if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then | ||
70 | echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD | ||
71 | if [$3]; then | ||
72 | ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" | ||
73 | break 2 | ||
74 | fi | ||
75 | fi | ||
76 | done | ||
77 | done | ||
78 | IFS="$ac_save_IFS" | ||
79 | dnl If no 4th arg is given, leave the cache variable unset, | ||
80 | dnl so AC_PATH_PROGS will keep looking. | ||
81 | ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" | ||
82 | ])dnl | ||
83 | ;; | ||
84 | esac])dnl | ||
85 | $1="$ac_cv_path_$1" | ||
86 | if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then | ||
87 | AC_MSG_RESULT([$]$1) | ||
88 | else | ||
89 | AC_MSG_RESULT(no) | ||
90 | fi | ||
91 | AC_SUBST($1)dnl | ||
92 | ]) | ||
diff --git a/gl/m4/regex.m4 b/gl/m4/regex.m4 new file mode 100644 index 00000000..25da645e --- /dev/null +++ b/gl/m4/regex.m4 | |||
@@ -0,0 +1,198 @@ | |||
1 | #serial 42 | ||
2 | |||
3 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, | ||
4 | # 2006, 2007 Free Software Foundation, Inc. | ||
5 | # | ||
6 | # This file is free software; the Free Software Foundation | ||
7 | # gives unlimited permission to copy and/or distribute it, | ||
8 | # with or without modifications, as long as this notice is preserved. | ||
9 | |||
10 | dnl Initially derived from code in GNU grep. | ||
11 | dnl Mostly written by Jim Meyering. | ||
12 | |||
13 | AC_PREREQ([2.50]) | ||
14 | |||
15 | AC_DEFUN([gl_REGEX], | ||
16 | [ | ||
17 | AC_CHECK_HEADERS_ONCE([locale.h]) | ||
18 | |||
19 | AC_ARG_WITH([included-regex], | ||
20 | [AC_HELP_STRING([--without-included-regex], | ||
21 | [don't compile regex; this is the default on | ||
22 | systems with recent-enough versions of the GNU C | ||
23 | Library (use with caution on other systems)])]) | ||
24 | |||
25 | case $with_included_regex in #( | ||
26 | yes|no) ac_use_included_regex=$with_included_regex | ||
27 | ;; | ||
28 | '') | ||
29 | # If the system regex support is good enough that it passes the | ||
30 | # following run test, then default to *not* using the included regex.c. | ||
31 | # If cross compiling, assume the test would fail and use the included | ||
32 | # regex.c. The first failing regular expression is from `Spencer ere | ||
33 | # test #75' in grep-2.3. | ||
34 | AC_CACHE_CHECK([for working re_compile_pattern], | ||
35 | [gl_cv_func_re_compile_pattern_working], | ||
36 | [AC_RUN_IFELSE( | ||
37 | [AC_LANG_PROGRAM( | ||
38 | [AC_INCLUDES_DEFAULT | ||
39 | #if HAVE_LOCALE_H | ||
40 | #include <locale.h> | ||
41 | #endif | ||
42 | #include <limits.h> | ||
43 | #include <regex.h> | ||
44 | ], | ||
45 | [[static struct re_pattern_buffer regex; | ||
46 | unsigned char folded_chars[UCHAR_MAX + 1]; | ||
47 | int i; | ||
48 | const char *s; | ||
49 | struct re_registers regs; | ||
50 | |||
51 | #if HAVE_LOCALE_H | ||
52 | /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html | ||
53 | This test needs valgrind to catch the bug on Debian | ||
54 | GNU/Linux 3.1 x86, but it might catch the bug better | ||
55 | on other platforms and it shouldn't hurt to try the | ||
56 | test here. */ | ||
57 | if (setlocale (LC_ALL, "en_US.UTF-8")) | ||
58 | { | ||
59 | static char const pat[] = "insert into"; | ||
60 | static char const data[] = | ||
61 | "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK"; | ||
62 | re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE | ||
63 | | RE_ICASE); | ||
64 | memset (®ex, 0, sizeof regex); | ||
65 | s = re_compile_pattern (pat, sizeof pat - 1, ®ex); | ||
66 | if (s) | ||
67 | return 1; | ||
68 | if (re_search (®ex, data, sizeof data - 1, | ||
69 | 0, sizeof data - 1, ®s) | ||
70 | != -1) | ||
71 | return 1; | ||
72 | if (! setlocale (LC_ALL, "C")) | ||
73 | return 1; | ||
74 | } | ||
75 | #endif | ||
76 | |||
77 | re_set_syntax (RE_SYNTAX_POSIX_EGREP); | ||
78 | memset (®ex, 0, sizeof (regex)); | ||
79 | for (i = 0; i <= UCHAR_MAX; i++) | ||
80 | folded_chars[i] = i; | ||
81 | regex.translate = folded_chars; | ||
82 | s = re_compile_pattern ("a[[:@:>@:]]b\n", 11, ®ex); | ||
83 | /* This should fail with _Invalid character class name_ error. */ | ||
84 | if (!s) | ||
85 | exit (1); | ||
86 | |||
87 | /* This should succeed, but does not for e.g. glibc-2.1.3. */ | ||
88 | memset (®ex, 0, sizeof (regex)); | ||
89 | s = re_compile_pattern ("{1", 2, ®ex); | ||
90 | |||
91 | if (s) | ||
92 | exit (1); | ||
93 | |||
94 | /* The following example is derived from a problem report | ||
95 | against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>. */ | ||
96 | memset (®ex, 0, sizeof (regex)); | ||
97 | s = re_compile_pattern ("[an\371]*n", 7, ®ex); | ||
98 | if (s) | ||
99 | exit (1); | ||
100 | |||
101 | /* This should match, but does not for e.g. glibc-2.2.1. */ | ||
102 | if (re_match (®ex, "an", 2, 0, ®s) != 2) | ||
103 | exit (1); | ||
104 | |||
105 | memset (®ex, 0, sizeof (regex)); | ||
106 | s = re_compile_pattern ("x", 1, ®ex); | ||
107 | if (s) | ||
108 | exit (1); | ||
109 | |||
110 | /* The version of regex.c in e.g. GNU libc-2.2.93 did not | ||
111 | work with a negative RANGE argument. */ | ||
112 | if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) | ||
113 | exit (1); | ||
114 | |||
115 | /* The version of regex.c in older versions of gnulib | ||
116 | ignored RE_ICASE. Detect that problem too. */ | ||
117 | memset (®ex, 0, sizeof (regex)); | ||
118 | re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE); | ||
119 | s = re_compile_pattern ("x", 1, ®ex); | ||
120 | if (s) | ||
121 | exit (1); | ||
122 | |||
123 | if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) | ||
124 | exit (1); | ||
125 | |||
126 | /* REG_STARTEND was added to glibc on 2004-01-15. | ||
127 | Reject older versions. */ | ||
128 | if (! REG_STARTEND) | ||
129 | exit (1); | ||
130 | |||
131 | /* Reject hosts whose regoff_t values are too narrow. | ||
132 | These include glibc 2.3.5 on hosts with 64-bit ptrdiff_t | ||
133 | and 32-bit int. */ | ||
134 | if (sizeof (regoff_t) < sizeof (ptrdiff_t) | ||
135 | || sizeof (regoff_t) < sizeof (ssize_t)) | ||
136 | exit (1); | ||
137 | |||
138 | exit (0);]])], | ||
139 | [gl_cv_func_re_compile_pattern_working=yes], | ||
140 | [gl_cv_func_re_compile_pattern_working=no], | ||
141 | dnl When crosscompiling, assume it is not working. | ||
142 | [gl_cv_func_re_compile_pattern_working=no])]) | ||
143 | case $gl_cv_func_re_compile_pattern_working in #( | ||
144 | yes) ac_use_included_regex=no;; #( | ||
145 | no) ac_use_included_regex=yes;; | ||
146 | esac | ||
147 | ;; | ||
148 | *) AC_MSG_ERROR([Invalid value for --with-included-regex: $with_included_regex]) | ||
149 | ;; | ||
150 | esac | ||
151 | |||
152 | if test $ac_use_included_regex = yes; then | ||
153 | AC_DEFINE([_REGEX_LARGE_OFFSETS], 1, | ||
154 | [Define if you want regoff_t to be at least as wide POSIX requires.]) | ||
155 | AC_DEFINE([re_syntax_options], [rpl_re_syntax_options], | ||
156 | [Define to rpl_re_syntax_options if the replacement should be used.]) | ||
157 | AC_DEFINE([re_set_syntax], [rpl_re_set_syntax], | ||
158 | [Define to rpl_re_set_syntax if the replacement should be used.]) | ||
159 | AC_DEFINE([re_compile_pattern], [rpl_re_compile_pattern], | ||
160 | [Define to rpl_re_compile_pattern if the replacement should be used.]) | ||
161 | AC_DEFINE([re_compile_fastmap], [rpl_re_compile_fastmap], | ||
162 | [Define to rpl_re_compile_fastmap if the replacement should be used.]) | ||
163 | AC_DEFINE([re_search], [rpl_re_search], | ||
164 | [Define to rpl_re_search if the replacement should be used.]) | ||
165 | AC_DEFINE([re_search_2], [rpl_re_search_2], | ||
166 | [Define to rpl_re_search_2 if the replacement should be used.]) | ||
167 | AC_DEFINE([re_match], [rpl_re_match], | ||
168 | [Define to rpl_re_match if the replacement should be used.]) | ||
169 | AC_DEFINE([re_match_2], [rpl_re_match_2], | ||
170 | [Define to rpl_re_match_2 if the replacement should be used.]) | ||
171 | AC_DEFINE([re_set_registers], [rpl_re_set_registers], | ||
172 | [Define to rpl_re_set_registers if the replacement should be used.]) | ||
173 | AC_DEFINE([re_comp], [rpl_re_comp], | ||
174 | [Define to rpl_re_comp if the replacement should be used.]) | ||
175 | AC_DEFINE([re_exec], [rpl_re_exec], | ||
176 | [Define to rpl_re_exec if the replacement should be used.]) | ||
177 | AC_DEFINE([regcomp], [rpl_regcomp], | ||
178 | [Define to rpl_regcomp if the replacement should be used.]) | ||
179 | AC_DEFINE([regexec], [rpl_regexec], | ||
180 | [Define to rpl_regexec if the replacement should be used.]) | ||
181 | AC_DEFINE([regerror], [rpl_regerror], | ||
182 | [Define to rpl_regerror if the replacement should be used.]) | ||
183 | AC_DEFINE([regfree], [rpl_regfree], | ||
184 | [Define to rpl_regfree if the replacement should be used.]) | ||
185 | AC_LIBOBJ([regex]) | ||
186 | gl_PREREQ_REGEX | ||
187 | fi | ||
188 | ]) | ||
189 | |||
190 | # Prerequisites of lib/regex.c and lib/regex_internal.c. | ||
191 | AC_DEFUN([gl_PREREQ_REGEX], | ||
192 | [ | ||
193 | AC_REQUIRE([AC_GNU_SOURCE]) | ||
194 | AC_REQUIRE([AC_C_RESTRICT]) | ||
195 | AC_REQUIRE([AM_LANGINFO_CODESET]) | ||
196 | AC_CHECK_FUNCS_ONCE([iswctype mbrtowc mempcpy wcrtomb wcscoll]) | ||
197 | AC_CHECK_DECLS([isblank], [], [], [#include <ctype.h>]) | ||
198 | ]) | ||
diff --git a/gl/m4/safe-read.m4 b/gl/m4/safe-read.m4 new file mode 100644 index 00000000..7a89d0a6 --- /dev/null +++ b/gl/m4/safe-read.m4 | |||
@@ -0,0 +1,18 @@ | |||
1 | # safe-read.m4 serial 5 | ||
2 | dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_SAFE_READ], | ||
8 | [ | ||
9 | AC_LIBOBJ([safe-read]) | ||
10 | |||
11 | gl_PREREQ_SAFE_READ | ||
12 | ]) | ||
13 | |||
14 | # Prerequisites of lib/safe-read.c. | ||
15 | AC_DEFUN([gl_PREREQ_SAFE_READ], | ||
16 | [ | ||
17 | AC_REQUIRE([gt_TYPE_SSIZE_T]) | ||
18 | ]) | ||
diff --git a/gl/m4/safe-write.m4 b/gl/m4/safe-write.m4 new file mode 100644 index 00000000..db119ffa --- /dev/null +++ b/gl/m4/safe-write.m4 | |||
@@ -0,0 +1,18 @@ | |||
1 | # safe-write.m4 serial 3 | ||
2 | dnl Copyright (C) 2002, 2005, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_SAFE_WRITE], | ||
8 | [ | ||
9 | AC_LIBOBJ([safe-write]) | ||
10 | |||
11 | gl_PREREQ_SAFE_WRITE | ||
12 | ]) | ||
13 | |||
14 | # Prerequisites of lib/safe-write.c. | ||
15 | AC_DEFUN([gl_PREREQ_SAFE_WRITE], | ||
16 | [ | ||
17 | gl_PREREQ_SAFE_READ | ||
18 | ]) | ||
diff --git a/gl/m4/size_max.m4 b/gl/m4/size_max.m4 new file mode 100644 index 00000000..6cb48689 --- /dev/null +++ b/gl/m4/size_max.m4 | |||
@@ -0,0 +1,68 @@ | |||
1 | # size_max.m4 serial 6 | ||
2 | dnl Copyright (C) 2003, 2005-2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Bruno Haible. | ||
8 | |||
9 | AC_DEFUN([gl_SIZE_MAX], | ||
10 | [ | ||
11 | AC_CHECK_HEADERS(stdint.h) | ||
12 | dnl First test whether the system already has SIZE_MAX. | ||
13 | AC_MSG_CHECKING([for SIZE_MAX]) | ||
14 | AC_CACHE_VAL([gl_cv_size_max], [ | ||
15 | gl_cv_size_max= | ||
16 | AC_EGREP_CPP([Found it], [ | ||
17 | #include <limits.h> | ||
18 | #if HAVE_STDINT_H | ||
19 | #include <stdint.h> | ||
20 | #endif | ||
21 | #ifdef SIZE_MAX | ||
22 | Found it | ||
23 | #endif | ||
24 | ], gl_cv_size_max=yes) | ||
25 | if test -z "$gl_cv_size_max"; then | ||
26 | dnl Define it ourselves. Here we assume that the type 'size_t' is not wider | ||
27 | dnl than the type 'unsigned long'. Try hard to find a definition that can | ||
28 | dnl be used in a preprocessor #if, i.e. doesn't contain a cast. | ||
29 | AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1], | ||
30 | [#include <stddef.h> | ||
31 | #include <limits.h>], size_t_bits_minus_1=) | ||
32 | AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)], | ||
33 | [#include <stddef.h>], fits_in_uint=) | ||
34 | if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then | ||
35 | if test $fits_in_uint = 1; then | ||
36 | dnl Even though SIZE_MAX fits in an unsigned int, it must be of type | ||
37 | dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'. | ||
38 | AC_TRY_COMPILE([#include <stddef.h> | ||
39 | extern size_t foo; | ||
40 | extern unsigned long foo; | ||
41 | ], [], fits_in_uint=0) | ||
42 | fi | ||
43 | dnl We cannot use 'expr' to simplify this expression, because 'expr' | ||
44 | dnl works only with 'long' integers in the host environment, while we | ||
45 | dnl might be cross-compiling from a 32-bit platform to a 64-bit platform. | ||
46 | if test $fits_in_uint = 1; then | ||
47 | gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" | ||
48 | else | ||
49 | gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" | ||
50 | fi | ||
51 | else | ||
52 | dnl Shouldn't happen, but who knows... | ||
53 | gl_cv_size_max='((size_t)~(size_t)0)' | ||
54 | fi | ||
55 | fi | ||
56 | ]) | ||
57 | AC_MSG_RESULT([$gl_cv_size_max]) | ||
58 | if test "$gl_cv_size_max" != yes; then | ||
59 | AC_DEFINE_UNQUOTED([SIZE_MAX], [$gl_cv_size_max], | ||
60 | [Define as the maximum value of type 'size_t', if the system doesn't define it.]) | ||
61 | fi | ||
62 | ]) | ||
63 | |||
64 | dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. | ||
65 | dnl Remove this when we can assume autoconf >= 2.61. | ||
66 | m4_ifdef([AC_COMPUTE_INT], [], [ | ||
67 | AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) | ||
68 | ]) | ||
diff --git a/gl/m4/snprintf.m4 b/gl/m4/snprintf.m4 new file mode 100644 index 00000000..432e0375 --- /dev/null +++ b/gl/m4/snprintf.m4 | |||
@@ -0,0 +1,15 @@ | |||
1 | # snprintf.m4 serial 2 | ||
2 | dnl Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_FUNC_SNPRINTF], | ||
8 | [ | ||
9 | AC_REPLACE_FUNCS(snprintf) | ||
10 | AC_CHECK_DECLS_ONCE(snprintf) | ||
11 | gl_PREREQ_SNPRINTF | ||
12 | ]) | ||
13 | |||
14 | # Prerequisites of lib/snprintf.c. | ||
15 | AC_DEFUN([gl_PREREQ_SNPRINTF], [:]) | ||
diff --git a/gl/m4/socklen.m4 b/gl/m4/socklen.m4 new file mode 100644 index 00000000..5e3765a6 --- /dev/null +++ b/gl/m4/socklen.m4 | |||
@@ -0,0 +1,52 @@ | |||
1 | # socklen.m4 serial 4 | ||
2 | dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Albert Chin, Windows fixes from Simon Josefsson. | ||
8 | |||
9 | dnl Check for socklen_t: historically on BSD it is an int, and in | ||
10 | dnl POSIX 1g it is a type of its own, but some platforms use different | ||
11 | dnl types for the argument to getsockopt, getpeername, etc. So we | ||
12 | dnl have to test to find something that will work. | ||
13 | |||
14 | dnl On mingw32, socklen_t is in ws2tcpip.h ('int'), so we try to find | ||
15 | dnl it there first. That file is included by gnulib's socket_.h, which | ||
16 | dnl all users of this module should include. Cygwin must not include | ||
17 | dnl ws2tcpip.h. | ||
18 | AC_DEFUN([gl_TYPE_SOCKLEN_T], | ||
19 | [AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl | ||
20 | AC_CHECK_TYPE([socklen_t], , | ||
21 | [AC_MSG_CHECKING([for socklen_t equivalent]) | ||
22 | AC_CACHE_VAL([gl_cv_gl_cv_socklen_t_equiv], | ||
23 | [# Systems have either "struct sockaddr *" or | ||
24 | # "void *" as the second argument to getpeername | ||
25 | gl_cv_socklen_t_equiv= | ||
26 | for arg2 in "struct sockaddr" void; do | ||
27 | for t in int size_t "unsigned int" "long int" "unsigned long int"; do | ||
28 | AC_TRY_COMPILE( | ||
29 | [#include <sys/types.h> | ||
30 | #include <sys/socket.h> | ||
31 | |||
32 | int getpeername (int, $arg2 *, $t *);], | ||
33 | [$t len; | ||
34 | getpeername (0, 0, &len);], | ||
35 | [gl_cv_socklen_t_equiv="$t"]) | ||
36 | test "$gl_cv_socklen_t_equiv" != "" && break | ||
37 | done | ||
38 | test "$gl_cv_socklen_t_equiv" != "" && break | ||
39 | done | ||
40 | ]) | ||
41 | if test "$gl_cv_socklen_t_equiv" = ""; then | ||
42 | AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) | ||
43 | fi | ||
44 | AC_MSG_RESULT([$gl_cv_socklen_t_equiv]) | ||
45 | AC_DEFINE_UNQUOTED([socklen_t], [$gl_cv_socklen_t_equiv], | ||
46 | [type to use in place of socklen_t if not defined])], | ||
47 | [#include <sys/types.h> | ||
48 | #if HAVE_SYS_SOCKET_H | ||
49 | # include <sys/socket.h> | ||
50 | #elif HAVE_WS2TCPIP_H | ||
51 | # include <ws2tcpip.h> | ||
52 | #endif])]) | ||
diff --git a/gl/m4/sockpfaf.m4 b/gl/m4/sockpfaf.m4 new file mode 100644 index 00000000..25d9755c --- /dev/null +++ b/gl/m4/sockpfaf.m4 | |||
@@ -0,0 +1,58 @@ | |||
1 | # sockpfaf.m4 serial 5 | ||
2 | dnl Copyright (C) 2004, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl Test for some common socket protocol families (PF_INET, PF_INET6, ...) | ||
8 | dnl and some common address families (AF_INET, AF_INET6, ...). | ||
9 | dnl This test assumes that a system supports an address family if and only if | ||
10 | dnl it supports the corresponding protocol family. | ||
11 | |||
12 | dnl From Bruno Haible. | ||
13 | |||
14 | AC_DEFUN([gl_SOCKET_FAMILIES], | ||
15 | [ | ||
16 | AC_REQUIRE([gl_HEADER_SYS_SOCKET]) | ||
17 | AC_CHECK_HEADERS_ONCE([netinet/in.h]) | ||
18 | |||
19 | AC_MSG_CHECKING(for IPv4 sockets) | ||
20 | AC_CACHE_VAL(gl_cv_socket_ipv4, | ||
21 | [AC_TRY_COMPILE([#include <sys/types.h> | ||
22 | #ifdef HAVE_SYS_SOCKET_H | ||
23 | #include <sys/socket.h> | ||
24 | #endif | ||
25 | #ifdef HAVE_NETINET_IN_H | ||
26 | #include <netinet/in.h> | ||
27 | #endif | ||
28 | #ifdef HAVE_WINSOCK2_H | ||
29 | #include <winsock2.h> | ||
30 | #endif], | ||
31 | [int x = AF_INET; struct in_addr y; struct sockaddr_in z; | ||
32 | if (&x && &y && &z) return 0;], | ||
33 | gl_cv_socket_ipv4=yes, gl_cv_socket_ipv4=no)]) | ||
34 | AC_MSG_RESULT($gl_cv_socket_ipv4) | ||
35 | if test $gl_cv_socket_ipv4 = yes; then | ||
36 | AC_DEFINE(HAVE_IPV4, 1, [Define to 1 if <sys/socket.h> defines AF_INET.]) | ||
37 | fi | ||
38 | |||
39 | AC_MSG_CHECKING(for IPv6 sockets) | ||
40 | AC_CACHE_VAL(gl_cv_socket_ipv6, | ||
41 | [AC_TRY_COMPILE([#include <sys/types.h> | ||
42 | #ifdef HAVE_SYS_SOCKET_H | ||
43 | #include <sys/socket.h> | ||
44 | #endif | ||
45 | #ifdef HAVE_NETINET_IN_H | ||
46 | #include <netinet/in.h> | ||
47 | #endif | ||
48 | #ifdef HAVE_WINSOCK2_H | ||
49 | #include <winsock2.h> | ||
50 | #endif], | ||
51 | [int x = AF_INET6; struct in6_addr y; struct sockaddr_in6 z; | ||
52 | if (&x && &y && &z) return 0;], | ||
53 | gl_cv_socket_ipv6=yes, gl_cv_socket_ipv6=no)]) | ||
54 | AC_MSG_RESULT($gl_cv_socket_ipv6) | ||
55 | if test $gl_cv_socket_ipv6 = yes; then | ||
56 | AC_DEFINE(HAVE_IPV6, 1, [Define to 1 if <sys/socket.h> defines AF_INET6.]) | ||
57 | fi | ||
58 | ]) | ||
diff --git a/gl/m4/ssize_t.m4 b/gl/m4/ssize_t.m4 new file mode 100644 index 00000000..4eaef93c --- /dev/null +++ b/gl/m4/ssize_t.m4 | |||
@@ -0,0 +1,21 @@ | |||
1 | # ssize_t.m4 serial 4 (gettext-0.15) | ||
2 | dnl Copyright (C) 2001-2003, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Bruno Haible. | ||
8 | dnl Test whether ssize_t is defined. | ||
9 | |||
10 | AC_DEFUN([gt_TYPE_SSIZE_T], | ||
11 | [ | ||
12 | AC_CACHE_CHECK([for ssize_t], [gt_cv_ssize_t], | ||
13 | [AC_TRY_COMPILE([#include <sys/types.h>], | ||
14 | [int x = sizeof (ssize_t *) + sizeof (ssize_t); | ||
15 | return !x;], | ||
16 | [gt_cv_ssize_t=yes], [gt_cv_ssize_t=no])]) | ||
17 | if test $gt_cv_ssize_t = no; then | ||
18 | AC_DEFINE([ssize_t], [int], | ||
19 | [Define as a signed type of the same size as size_t.]) | ||
20 | fi | ||
21 | ]) | ||
diff --git a/gl/m4/stdbool.m4 b/gl/m4/stdbool.m4 new file mode 100644 index 00000000..2204ecd9 --- /dev/null +++ b/gl/m4/stdbool.m4 | |||
@@ -0,0 +1,115 @@ | |||
1 | # Check for stdbool.h that conforms to C99. | ||
2 | |||
3 | dnl Copyright (C) 2002-2006 Free Software Foundation, Inc. | ||
4 | dnl This file is free software; the Free Software Foundation | ||
5 | dnl gives unlimited permission to copy and/or distribute it, | ||
6 | dnl with or without modifications, as long as this notice is preserved. | ||
7 | |||
8 | # Prepare for substituting <stdbool.h> if it is not supported. | ||
9 | |||
10 | AC_DEFUN([AM_STDBOOL_H], | ||
11 | [ | ||
12 | AC_REQUIRE([AC_HEADER_STDBOOL]) | ||
13 | |||
14 | # Define two additional variables used in the Makefile substitution. | ||
15 | |||
16 | if test "$ac_cv_header_stdbool_h" = yes; then | ||
17 | STDBOOL_H='' | ||
18 | else | ||
19 | STDBOOL_H='stdbool.h' | ||
20 | fi | ||
21 | AC_SUBST([STDBOOL_H]) | ||
22 | |||
23 | if test "$ac_cv_type__Bool" = yes; then | ||
24 | HAVE__BOOL=1 | ||
25 | else | ||
26 | HAVE__BOOL=0 | ||
27 | fi | ||
28 | AC_SUBST([HAVE__BOOL]) | ||
29 | ]) | ||
30 | |||
31 | # AM_STDBOOL_H will be renamed to gl_STDBOOL_H in the future. | ||
32 | AC_DEFUN([gl_STDBOOL_H], [AM_STDBOOL_H]) | ||
33 | |||
34 | # This macro is only needed in autoconf <= 2.59. Newer versions of autoconf | ||
35 | # have this macro built-in. | ||
36 | |||
37 | AC_DEFUN([AC_HEADER_STDBOOL], | ||
38 | [AC_CACHE_CHECK([for stdbool.h that conforms to C99], | ||
39 | [ac_cv_header_stdbool_h], | ||
40 | [AC_TRY_COMPILE( | ||
41 | [ | ||
42 | #include <stdbool.h> | ||
43 | #ifndef bool | ||
44 | "error: bool is not defined" | ||
45 | #endif | ||
46 | #ifndef false | ||
47 | "error: false is not defined" | ||
48 | #endif | ||
49 | #if false | ||
50 | "error: false is not 0" | ||
51 | #endif | ||
52 | #ifndef true | ||
53 | "error: true is not defined" | ||
54 | #endif | ||
55 | #if true != 1 | ||
56 | "error: true is not 1" | ||
57 | #endif | ||
58 | #ifndef __bool_true_false_are_defined | ||
59 | "error: __bool_true_false_are_defined is not defined" | ||
60 | #endif | ||
61 | |||
62 | struct s { _Bool s: 1; _Bool t; } s; | ||
63 | |||
64 | char a[true == 1 ? 1 : -1]; | ||
65 | char b[false == 0 ? 1 : -1]; | ||
66 | char c[__bool_true_false_are_defined == 1 ? 1 : -1]; | ||
67 | char d[(bool) 0.5 == true ? 1 : -1]; | ||
68 | bool e = &s; | ||
69 | char f[(_Bool) 0.0 == false ? 1 : -1]; | ||
70 | char g[true]; | ||
71 | char h[sizeof (_Bool)]; | ||
72 | char i[sizeof s.t]; | ||
73 | enum { j = false, k = true, l = false * true, m = true * 256 }; | ||
74 | _Bool n[m]; | ||
75 | char o[sizeof n == m * sizeof n[0] ? 1 : -1]; | ||
76 | char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; | ||
77 | #if defined __xlc__ || defined __GNUC__ | ||
78 | /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0 | ||
79 | reported by James Lemley on 2005-10-05; see | ||
80 | http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html | ||
81 | This test is not quite right, since xlc is allowed to | ||
82 | reject this program, as the initializer for xlcbug is | ||
83 | not one of the forms that C requires support for. | ||
84 | However, doing the test right would require a run-time | ||
85 | test, and that would make cross-compilation harder. | ||
86 | Let us hope that IBM fixes the xlc bug, and also adds | ||
87 | support for this kind of constant expression. In the | ||
88 | meantime, this test will reject xlc, which is OK, since | ||
89 | our stdbool.h substitute should suffice. We also test | ||
90 | this with GCC, where it should work, to detect more | ||
91 | quickly whether someone messes up the test in the | ||
92 | future. */ | ||
93 | char digs[] = "0123456789"; | ||
94 | int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1); | ||
95 | #endif | ||
96 | /* Catch a bug in an HP-UX C compiler. See | ||
97 | http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html | ||
98 | http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html | ||
99 | */ | ||
100 | _Bool q = true; | ||
101 | _Bool *pq = &q; | ||
102 | ], | ||
103 | [ | ||
104 | *pq |= q; | ||
105 | *pq |= ! q; | ||
106 | /* Refer to every declared value, to avoid compiler optimizations. */ | ||
107 | return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l | ||
108 | + !m + !n + !o + !p + !q + !pq); | ||
109 | ], | ||
110 | [ac_cv_header_stdbool_h=yes], | ||
111 | [ac_cv_header_stdbool_h=no])]) | ||
112 | AC_CHECK_TYPES([_Bool]) | ||
113 | if test $ac_cv_header_stdbool_h = yes; then | ||
114 | AC_DEFINE(HAVE_STDBOOL_H, 1, [Define to 1 if stdbool.h conforms to C99.]) | ||
115 | fi]) | ||
diff --git a/gl/m4/stdint.m4 b/gl/m4/stdint.m4 new file mode 100644 index 00000000..1a4b4a6a --- /dev/null +++ b/gl/m4/stdint.m4 | |||
@@ -0,0 +1,369 @@ | |||
1 | # stdint.m4 serial 22 | ||
2 | dnl Copyright (C) 2001-2002, 2004-2007 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Paul Eggert and Bruno Haible. | ||
8 | dnl Test whether <stdint.h> is supported or must be substituted. | ||
9 | |||
10 | AC_DEFUN([gl_STDINT_H], | ||
11 | [ | ||
12 | AC_PREREQ(2.59)dnl | ||
13 | |||
14 | dnl Check for long long int and unsigned long long int. | ||
15 | AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) | ||
16 | if test $ac_cv_type_long_long_int = yes; then | ||
17 | HAVE_LONG_LONG_INT=1 | ||
18 | else | ||
19 | HAVE_LONG_LONG_INT=0 | ||
20 | fi | ||
21 | AC_SUBST([HAVE_LONG_LONG_INT]) | ||
22 | AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) | ||
23 | if test $ac_cv_type_unsigned_long_long_int = yes; then | ||
24 | HAVE_UNSIGNED_LONG_LONG_INT=1 | ||
25 | else | ||
26 | HAVE_UNSIGNED_LONG_LONG_INT=0 | ||
27 | fi | ||
28 | AC_SUBST([HAVE_UNSIGNED_LONG_LONG_INT]) | ||
29 | |||
30 | dnl Check for <inttypes.h>. | ||
31 | dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_inttypes_h. | ||
32 | if test $ac_cv_header_inttypes_h = yes; then | ||
33 | HAVE_INTTYPES_H=1 | ||
34 | else | ||
35 | HAVE_INTTYPES_H=0 | ||
36 | fi | ||
37 | AC_SUBST([HAVE_INTTYPES_H]) | ||
38 | |||
39 | dnl Check for <sys/types.h>. | ||
40 | dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_sys_types_h. | ||
41 | if test $ac_cv_header_sys_types_h = yes; then | ||
42 | HAVE_SYS_TYPES_H=1 | ||
43 | else | ||
44 | HAVE_SYS_TYPES_H=0 | ||
45 | fi | ||
46 | AC_SUBST([HAVE_SYS_TYPES_H]) | ||
47 | |||
48 | dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_stdint_h. | ||
49 | if test $ac_cv_header_stdint_h = yes; then | ||
50 | gl_ABSOLUTE_HEADER([stdint.h]) | ||
51 | ABSOLUTE_STDINT_H=\"$gl_cv_absolute_stdint_h\" | ||
52 | HAVE_STDINT_H=1 | ||
53 | else | ||
54 | ABSOLUTE_STDINT_H=\"no/such/file/stdint.h\" | ||
55 | HAVE_STDINT_H=0 | ||
56 | fi | ||
57 | AC_SUBST([ABSOLUTE_STDINT_H]) | ||
58 | AC_SUBST([HAVE_STDINT_H]) | ||
59 | |||
60 | dnl Now see whether we need a substitute <stdint.h>. Use | ||
61 | dnl ABSOLUTE_STDINT_H, not <stdint.h>, so that it also works during | ||
62 | dnl a "config.status --recheck" if a stdint.h has been | ||
63 | dnl created in the build directory. | ||
64 | if test $ac_cv_header_stdint_h = yes; then | ||
65 | AC_CACHE_CHECK([whether stdint.h conforms to C99], | ||
66 | [gl_cv_header_working_stdint_h], | ||
67 | [gl_cv_header_working_stdint_h=no | ||
68 | AC_COMPILE_IFELSE([ | ||
69 | AC_LANG_PROGRAM([[ | ||
70 | #include <stddef.h> | ||
71 | #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ | ||
72 | #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ | ||
73 | #include ABSOLUTE_STDINT_H | ||
74 | #ifdef INT8_MAX | ||
75 | int8_t a1 = INT8_MAX; | ||
76 | int8_t a1min = INT8_MIN; | ||
77 | #endif | ||
78 | #ifdef INT16_MAX | ||
79 | int16_t a2 = INT16_MAX; | ||
80 | int16_t a2min = INT16_MIN; | ||
81 | #endif | ||
82 | #ifdef INT32_MAX | ||
83 | int32_t a3 = INT32_MAX; | ||
84 | int32_t a3min = INT32_MIN; | ||
85 | #endif | ||
86 | #ifdef INT64_MAX | ||
87 | int64_t a4 = INT64_MAX; | ||
88 | int64_t a4min = INT64_MIN; | ||
89 | #endif | ||
90 | #ifdef UINT8_MAX | ||
91 | uint8_t b1 = UINT8_MAX; | ||
92 | #else | ||
93 | typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; | ||
94 | #endif | ||
95 | #ifdef UINT16_MAX | ||
96 | uint16_t b2 = UINT16_MAX; | ||
97 | #endif | ||
98 | #ifdef UINT32_MAX | ||
99 | uint32_t b3 = UINT32_MAX; | ||
100 | #endif | ||
101 | #ifdef UINT64_MAX | ||
102 | uint64_t b4 = UINT64_MAX; | ||
103 | #endif | ||
104 | int_least8_t c1 = INT8_C (0x7f); | ||
105 | int_least8_t c1max = INT_LEAST8_MAX; | ||
106 | int_least8_t c1min = INT_LEAST8_MIN; | ||
107 | int_least16_t c2 = INT16_C (0x7fff); | ||
108 | int_least16_t c2max = INT_LEAST16_MAX; | ||
109 | int_least16_t c2min = INT_LEAST16_MIN; | ||
110 | int_least32_t c3 = INT32_C (0x7fffffff); | ||
111 | int_least32_t c3max = INT_LEAST32_MAX; | ||
112 | int_least32_t c3min = INT_LEAST32_MIN; | ||
113 | int_least64_t c4 = INT64_C (0x7fffffffffffffff); | ||
114 | int_least64_t c4max = INT_LEAST64_MAX; | ||
115 | int_least64_t c4min = INT_LEAST64_MIN; | ||
116 | uint_least8_t d1 = UINT8_C (0xff); | ||
117 | uint_least8_t d1max = UINT_LEAST8_MAX; | ||
118 | uint_least16_t d2 = UINT16_C (0xffff); | ||
119 | uint_least16_t d2max = UINT_LEAST16_MAX; | ||
120 | uint_least32_t d3 = UINT32_C (0xffffffff); | ||
121 | uint_least32_t d3max = UINT_LEAST32_MAX; | ||
122 | uint_least64_t d4 = UINT64_C (0xffffffffffffffff); | ||
123 | uint_least64_t d4max = UINT_LEAST64_MAX; | ||
124 | int_fast8_t e1 = INT_FAST8_MAX; | ||
125 | int_fast8_t e1min = INT_FAST8_MIN; | ||
126 | int_fast16_t e2 = INT_FAST16_MAX; | ||
127 | int_fast16_t e2min = INT_FAST16_MIN; | ||
128 | int_fast32_t e3 = INT_FAST32_MAX; | ||
129 | int_fast32_t e3min = INT_FAST32_MIN; | ||
130 | int_fast64_t e4 = INT_FAST64_MAX; | ||
131 | int_fast64_t e4min = INT_FAST64_MIN; | ||
132 | uint_fast8_t f1 = UINT_FAST8_MAX; | ||
133 | uint_fast16_t f2 = UINT_FAST16_MAX; | ||
134 | uint_fast32_t f3 = UINT_FAST32_MAX; | ||
135 | uint_fast64_t f4 = UINT_FAST64_MAX; | ||
136 | #ifdef INTPTR_MAX | ||
137 | intptr_t g = INTPTR_MAX; | ||
138 | intptr_t gmin = INTPTR_MIN; | ||
139 | #endif | ||
140 | #ifdef UINTPTR_MAX | ||
141 | uintptr_t h = UINTPTR_MAX; | ||
142 | #endif | ||
143 | intmax_t i = INTMAX_MAX; | ||
144 | uintmax_t j = UINTMAX_MAX; | ||
145 | struct s { | ||
146 | int check_PTRDIFF: PTRDIFF_MIN < 0 && 0 < PTRDIFF_MAX ? 1 : -1; | ||
147 | int check_SIG_ATOMIC: SIG_ATOMIC_MIN <= 0 && 0 < SIG_ATOMIC_MAX ? 1 : -1; | ||
148 | int check_SIZE: 0 < SIZE_MAX ? 1 : -1; | ||
149 | int check_WCHAR: WCHAR_MIN <= 0 && 0 < WCHAR_MAX ? 1 : -1; | ||
150 | int check_WINT: WINT_MIN <= 0 && 0 < WINT_MAX ? 1 : -1; | ||
151 | |||
152 | /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ | ||
153 | int check_UINT8_C: | ||
154 | (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; | ||
155 | int check_UINT16_C: | ||
156 | (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; | ||
157 | |||
158 | /* Detect bugs in OpenBSD 3.9 stdint.h. */ | ||
159 | #ifdef UINT8_MAX | ||
160 | int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; | ||
161 | #endif | ||
162 | #ifdef UINT16_MAX | ||
163 | int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; | ||
164 | #endif | ||
165 | #ifdef UINT32_MAX | ||
166 | int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; | ||
167 | #endif | ||
168 | #ifdef UINT64_MAX | ||
169 | int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; | ||
170 | #endif | ||
171 | int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; | ||
172 | int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; | ||
173 | int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; | ||
174 | int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; | ||
175 | int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; | ||
176 | int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; | ||
177 | int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; | ||
178 | int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; | ||
179 | int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; | ||
180 | int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; | ||
181 | int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; | ||
182 | }; | ||
183 | ]])], | ||
184 | [gl_cv_header_working_stdint_h=yes])]) | ||
185 | fi | ||
186 | if test "$gl_cv_header_working_stdint_h" = yes; then | ||
187 | STDINT_H= | ||
188 | else | ||
189 | dnl Check for <sys/inttypes.h>, and for | ||
190 | dnl <sys/bitypes.h> (used in Linux libc4 >= 4.6.7 and libc5). | ||
191 | AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h]) | ||
192 | if test $ac_cv_header_sys_inttypes_h = yes; then | ||
193 | HAVE_SYS_INTTYPES_H=1 | ||
194 | else | ||
195 | HAVE_SYS_INTTYPES_H=0 | ||
196 | fi | ||
197 | AC_SUBST([HAVE_SYS_INTTYPES_H]) | ||
198 | if test $ac_cv_header_sys_bitypes_h = yes; then | ||
199 | HAVE_SYS_BITYPES_H=1 | ||
200 | else | ||
201 | HAVE_SYS_BITYPES_H=0 | ||
202 | fi | ||
203 | AC_SUBST([HAVE_SYS_BITYPES_H]) | ||
204 | |||
205 | gl_STDINT_TYPE_PROPERTIES | ||
206 | STDINT_H=stdint.h | ||
207 | fi | ||
208 | AC_SUBST(STDINT_H) | ||
209 | ]) | ||
210 | |||
211 | dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES) | ||
212 | dnl Determine the size of each of the given types in bits. | ||
213 | AC_DEFUN([gl_STDINT_BITSIZEOF], | ||
214 | [ | ||
215 | dnl Use a shell loop, to avoid bloating configure, and | ||
216 | dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into | ||
217 | dnl config.h.in, | ||
218 | dnl - extra AC_SUBST calls, so that the right substitutions are made. | ||
219 | AC_FOREACH([gltype], [$1], | ||
220 | [AH_TEMPLATE([BITSIZEOF_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), | ||
221 | [Define to the number of bits in type ']gltype['.])]) | ||
222 | for gltype in $1 ; do | ||
223 | AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}], | ||
224 | [AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT], | ||
225 | [$2 | ||
226 | #include <limits.h>], [result=unknown]) | ||
227 | eval gl_cv_bitsizeof_${gltype}=\$result | ||
228 | ]) | ||
229 | eval result=\$gl_cv_bitsizeof_${gltype} | ||
230 | if test $result = unknown; then | ||
231 | dnl Use a nonempty default, because some compilers, such as IRIX 5 cc, | ||
232 | dnl do a syntax check even on unused #if conditions and give an error | ||
233 | dnl on valid C code like this: | ||
234 | dnl #if 0 | ||
235 | dnl # if > 32 | ||
236 | dnl # endif | ||
237 | dnl #endif | ||
238 | result=0 | ||
239 | fi | ||
240 | GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` | ||
241 | AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result]) | ||
242 | eval BITSIZEOF_${GLTYPE}=\$result | ||
243 | done | ||
244 | AC_FOREACH([gltype], [$1], | ||
245 | [AC_SUBST([BITSIZEOF_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) | ||
246 | ]) | ||
247 | |||
248 | dnl gl_CHECK_TYPES_SIGNED(TYPES, INCLUDES) | ||
249 | dnl Determine the signedness of each of the given types. | ||
250 | dnl Define HAVE_SIGNED_TYPE if type is signed. | ||
251 | AC_DEFUN([gl_CHECK_TYPES_SIGNED], | ||
252 | [ | ||
253 | dnl Use a shell loop, to avoid bloating configure, and | ||
254 | dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into | ||
255 | dnl config.h.in, | ||
256 | dnl - extra AC_SUBST calls, so that the right substitutions are made. | ||
257 | AC_FOREACH([gltype], [$1], | ||
258 | [AH_TEMPLATE([HAVE_SIGNED_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), | ||
259 | [Define to 1 if ']gltype[' is a signed integer type.])]) | ||
260 | for gltype in $1 ; do | ||
261 | AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed], | ||
262 | [AC_COMPILE_IFELSE( | ||
263 | [AC_LANG_PROGRAM([$2[ | ||
264 | int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];]])], | ||
265 | result=yes, result=no) | ||
266 | eval gl_cv_type_${gltype}_signed=\$result | ||
267 | ]) | ||
268 | eval result=\$gl_cv_type_${gltype}_signed | ||
269 | GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` | ||
270 | if test "$result" = yes; then | ||
271 | AC_DEFINE_UNQUOTED([HAVE_SIGNED_${GLTYPE}], 1) | ||
272 | eval HAVE_SIGNED_${GLTYPE}=1 | ||
273 | else | ||
274 | eval HAVE_SIGNED_${GLTYPE}=0 | ||
275 | fi | ||
276 | done | ||
277 | AC_FOREACH([gltype], [$1], | ||
278 | [AC_SUBST([HAVE_SIGNED_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) | ||
279 | ]) | ||
280 | |||
281 | dnl gl_INTEGER_TYPE_SUFFIX(TYPES, INCLUDES) | ||
282 | dnl Determine the suffix to use for integer constants of the given types. | ||
283 | dnl Define t_SUFFIX for each such type. | ||
284 | AC_DEFUN([gl_INTEGER_TYPE_SUFFIX], | ||
285 | [ | ||
286 | dnl Use a shell loop, to avoid bloating configure, and | ||
287 | dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into | ||
288 | dnl config.h.in, | ||
289 | dnl - extra AC_SUBST calls, so that the right substitutions are made. | ||
290 | AC_FOREACH([gltype], [$1], | ||
291 | [AH_TEMPLATE(translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX], | ||
292 | [Define to l, ll, u, ul, ull, etc., as suitable for | ||
293 | constants of type ']gltype['.])]) | ||
294 | for gltype in $1 ; do | ||
295 | AC_CACHE_CHECK([for $gltype integer literal suffix], | ||
296 | [gl_cv_type_${gltype}_suffix], | ||
297 | [eval gl_cv_type_${gltype}_suffix=no | ||
298 | eval result=\$gl_cv_type_${gltype}_signed | ||
299 | if test "$result" = yes; then | ||
300 | glsufu= | ||
301 | else | ||
302 | glsufu=u | ||
303 | fi | ||
304 | for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do | ||
305 | case $glsuf in | ||
306 | '') gltype1='int';; | ||
307 | l) gltype1='long int';; | ||
308 | ll) gltype1='long long int';; | ||
309 | i64) gltype1='__int64';; | ||
310 | u) gltype1='unsigned int';; | ||
311 | ul) gltype1='unsigned long int';; | ||
312 | ull) gltype1='unsigned long long int';; | ||
313 | ui64)gltype1='unsigned __int64';; | ||
314 | esac | ||
315 | AC_COMPILE_IFELSE( | ||
316 | [AC_LANG_PROGRAM([$2 | ||
317 | extern $gltype foo; | ||
318 | extern $gltype1 foo;])], | ||
319 | [eval gl_cv_type_${gltype}_suffix=\$glsuf]) | ||
320 | eval result=\$gl_cv_type_${gltype}_suffix | ||
321 | test "$result" != no && break | ||
322 | done]) | ||
323 | GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` | ||
324 | eval result=\$gl_cv_type_${gltype}_suffix | ||
325 | test "$result" = no && result= | ||
326 | eval ${GLTYPE}_SUFFIX=\$result | ||
327 | AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], $result) | ||
328 | done | ||
329 | AC_FOREACH([gltype], [$1], | ||
330 | [AC_SUBST(translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])]) | ||
331 | ]) | ||
332 | |||
333 | dnl gl_STDINT_INCLUDES | ||
334 | AC_DEFUN([gl_STDINT_INCLUDES], | ||
335 | [[ | ||
336 | /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be | ||
337 | included before <wchar.h>. */ | ||
338 | #include <stddef.h> | ||
339 | #include <signal.h> | ||
340 | #include <stdio.h> | ||
341 | #include <time.h> | ||
342 | #include <wchar.h> | ||
343 | ]]) | ||
344 | |||
345 | dnl gl_STDINT_TYPE_PROPERTIES | ||
346 | dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t | ||
347 | dnl of interest to stdint_.h. | ||
348 | AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], | ||
349 | [ | ||
350 | gl_STDINT_BITSIZEOF([ptrdiff_t sig_atomic_t size_t wchar_t wint_t], | ||
351 | [gl_STDINT_INCLUDES]) | ||
352 | gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t], | ||
353 | [gl_STDINT_INCLUDES]) | ||
354 | gl_cv_type_ptrdiff_t_signed=yes | ||
355 | gl_cv_type_size_t_signed=no | ||
356 | gl_INTEGER_TYPE_SUFFIX([ptrdiff_t sig_atomic_t size_t wchar_t wint_t], | ||
357 | [gl_STDINT_INCLUDES]) | ||
358 | ]) | ||
359 | |||
360 | dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. | ||
361 | dnl Remove this when we can assume autoconf >= 2.61. | ||
362 | m4_ifdef([AC_COMPUTE_INT], [], [ | ||
363 | AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) | ||
364 | ]) | ||
365 | |||
366 | # Hey Emacs! | ||
367 | # Local Variables: | ||
368 | # indent-tabs-mode: nil | ||
369 | # End: | ||
diff --git a/gl/m4/stdint_h.m4 b/gl/m4/stdint_h.m4 new file mode 100644 index 00000000..db9a8ac4 --- /dev/null +++ b/gl/m4/stdint_h.m4 | |||
@@ -0,0 +1,26 @@ | |||
1 | # stdint_h.m4 serial 6 | ||
2 | dnl Copyright (C) 1997-2004, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Paul Eggert. | ||
8 | |||
9 | # Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists, | ||
10 | # doesn't clash with <sys/types.h>, and declares uintmax_t. | ||
11 | |||
12 | AC_DEFUN([gl_AC_HEADER_STDINT_H], | ||
13 | [ | ||
14 | AC_CACHE_CHECK([for stdint.h], gl_cv_header_stdint_h, | ||
15 | [AC_TRY_COMPILE( | ||
16 | [#include <sys/types.h> | ||
17 | #include <stdint.h>], | ||
18 | [uintmax_t i = (uintmax_t) -1; return !i;], | ||
19 | gl_cv_header_stdint_h=yes, | ||
20 | gl_cv_header_stdint_h=no)]) | ||
21 | if test $gl_cv_header_stdint_h = yes; then | ||
22 | AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1, | ||
23 | [Define if <stdint.h> exists, doesn't clash with <sys/types.h>, | ||
24 | and declares uintmax_t. ]) | ||
25 | fi | ||
26 | ]) | ||
diff --git a/gl/m4/strcase.m4 b/gl/m4/strcase.m4 new file mode 100644 index 00000000..ae827907 --- /dev/null +++ b/gl/m4/strcase.m4 | |||
@@ -0,0 +1,39 @@ | |||
1 | # strcase.m4 serial 4 | ||
2 | dnl Copyright (C) 2002, 2005-2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_STRCASE], | ||
8 | [ | ||
9 | gl_FUNC_STRCASECMP | ||
10 | gl_FUNC_STRNCASECMP | ||
11 | ]) | ||
12 | |||
13 | AC_DEFUN([gl_FUNC_STRCASECMP], | ||
14 | [ | ||
15 | dnl No known system has a strcasecmp() function that works correctly in | ||
16 | dnl multibyte locales. Therefore we use our version always. | ||
17 | AC_LIBOBJ(strcasecmp) | ||
18 | gl_PREREQ_STRCASECMP | ||
19 | ]) | ||
20 | |||
21 | AC_DEFUN([gl_FUNC_STRNCASECMP], | ||
22 | [ | ||
23 | AC_REPLACE_FUNCS(strncasecmp) | ||
24 | AC_CHECK_DECLS(strncasecmp) | ||
25 | if test $ac_cv_func_strncasecmp = no; then | ||
26 | gl_PREREQ_STRNCASECMP | ||
27 | fi | ||
28 | ]) | ||
29 | |||
30 | # Prerequisites of lib/strcasecmp.c. | ||
31 | AC_DEFUN([gl_PREREQ_STRCASECMP], [ | ||
32 | AC_REQUIRE([gl_FUNC_MBRTOWC]) | ||
33 | : | ||
34 | ]) | ||
35 | |||
36 | # Prerequisites of lib/strncasecmp.c. | ||
37 | AC_DEFUN([gl_PREREQ_STRNCASECMP], [ | ||
38 | : | ||
39 | ]) | ||
diff --git a/gl/m4/strdup.m4 b/gl/m4/strdup.m4 new file mode 100644 index 00000000..f7786e94 --- /dev/null +++ b/gl/m4/strdup.m4 | |||
@@ -0,0 +1,15 @@ | |||
1 | # strdup.m4 serial 7 | ||
2 | dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_FUNC_STRDUP], | ||
8 | [ | ||
9 | AC_REPLACE_FUNCS(strdup) | ||
10 | AC_CHECK_DECLS_ONCE(strdup) | ||
11 | gl_PREREQ_STRDUP | ||
12 | ]) | ||
13 | |||
14 | # Prerequisites of lib/strdup.c. | ||
15 | AC_DEFUN([gl_PREREQ_STRDUP], [:]) | ||
diff --git a/gl/m4/strndup.m4 b/gl/m4/strndup.m4 new file mode 100644 index 00000000..dd5780b6 --- /dev/null +++ b/gl/m4/strndup.m4 | |||
@@ -0,0 +1,48 @@ | |||
1 | # strndup.m4 serial 11 | ||
2 | dnl Copyright (C) 2002-2003, 2005-2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_FUNC_STRNDUP], | ||
8 | [ | ||
9 | dnl Persuade glibc <string.h> to declare strndup(). | ||
10 | AC_REQUIRE([AC_GNU_SOURCE]) | ||
11 | |||
12 | AC_CHECK_DECLS_ONCE([strndup]) | ||
13 | |||
14 | # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. | ||
15 | AC_CACHE_CHECK([for working strndup], gl_cv_func_strndup, | ||
16 | [AC_RUN_IFELSE([ | ||
17 | AC_LANG_PROGRAM([#include <string.h> | ||
18 | #include <stdlib.h>], [[ | ||
19 | #ifndef HAVE_DECL_STRNDUP | ||
20 | extern char *strndup (const char *, size_t); | ||
21 | #endif | ||
22 | char *s; | ||
23 | s = strndup ("some longer string", 15); | ||
24 | free (s); | ||
25 | s = strndup ("shorter string", 13); | ||
26 | return s[13] != '\0';]])], | ||
27 | [gl_cv_func_strndup=yes], | ||
28 | [gl_cv_func_strndup=no], | ||
29 | [AC_CHECK_FUNC([strndup], | ||
30 | [AC_EGREP_CPP([too risky], [ | ||
31 | #ifdef _AIX | ||
32 | too risky | ||
33 | #endif | ||
34 | ], | ||
35 | [gl_cv_func_strndup=no], | ||
36 | [gl_cv_func_strndup=yes])], | ||
37 | [gl_cv_func_strndup=no])])]) | ||
38 | if test $gl_cv_func_strndup = yes; then | ||
39 | AC_DEFINE([HAVE_STRNDUP], 1, | ||
40 | [Define if you have the strndup() function and it works.]) | ||
41 | else | ||
42 | AC_LIBOBJ([strndup]) | ||
43 | gl_PREREQ_STRNDUP | ||
44 | fi | ||
45 | ]) | ||
46 | |||
47 | # Prerequisites of lib/strndup.c. | ||
48 | AC_DEFUN([gl_PREREQ_STRNDUP], [:]) | ||
diff --git a/gl/m4/strnlen.m4 b/gl/m4/strnlen.m4 new file mode 100644 index 00000000..0213a8ae --- /dev/null +++ b/gl/m4/strnlen.m4 | |||
@@ -0,0 +1,27 @@ | |||
1 | # strnlen.m4 serial 6 | ||
2 | dnl Copyright (C) 2002-2003, 2005, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_FUNC_STRNLEN], | ||
8 | [ | ||
9 | dnl Persuade glibc <string.h> to declare strnlen(). | ||
10 | AC_REQUIRE([AC_GNU_SOURCE]) | ||
11 | |||
12 | AC_FUNC_STRNLEN | ||
13 | if test $ac_cv_func_strnlen_working = no; then | ||
14 | # This is necessary because automake-1.6.1 doens't understand | ||
15 | # that the above use of AC_FUNC_STRNLEN means we may have to use | ||
16 | # lib/strnlen.c. | ||
17 | #AC_LIBOBJ(strnlen) | ||
18 | AC_DEFINE(strnlen, rpl_strnlen, | ||
19 | [Define to rpl_strnlen if the replacement function should be used.]) | ||
20 | gl_PREREQ_STRNLEN | ||
21 | fi | ||
22 | ]) | ||
23 | |||
24 | # Prerequisites of lib/strnlen.c. | ||
25 | AC_DEFUN([gl_PREREQ_STRNLEN], [ | ||
26 | AC_CHECK_DECLS_ONCE(strnlen) | ||
27 | ]) | ||
diff --git a/gl/m4/sys_socket_h.m4 b/gl/m4/sys_socket_h.m4 new file mode 100644 index 00000000..d3e45b48 --- /dev/null +++ b/gl/m4/sys_socket_h.m4 | |||
@@ -0,0 +1,23 @@ | |||
1 | # sys_socket_h.m4 serial 2 | ||
2 | dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Simon Josefsson. | ||
8 | |||
9 | AC_DEFUN([gl_HEADER_SYS_SOCKET], | ||
10 | [ | ||
11 | AC_CHECK_HEADERS_ONCE([sys/socket.h]) | ||
12 | if test $ac_cv_header_sys_socket_h = yes; then | ||
13 | SYS_SOCKET_H='' | ||
14 | else | ||
15 | dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make | ||
16 | dnl the check for those headers unconditional; yet cygwin reports | ||
17 | dnl that the headers are present but cannot be compiled (since on | ||
18 | dnl cygwin, all socket information should come from sys/socket.h). | ||
19 | AC_CHECK_HEADERS([winsock2.h ws2tcpip.h]) | ||
20 | SYS_SOCKET_H='sys/socket.h' | ||
21 | fi | ||
22 | AC_SUBST(SYS_SOCKET_H) | ||
23 | ]) | ||
diff --git a/gl/m4/uintmax_t.m4 b/gl/m4/uintmax_t.m4 new file mode 100644 index 00000000..bf83ed74 --- /dev/null +++ b/gl/m4/uintmax_t.m4 | |||
@@ -0,0 +1,30 @@ | |||
1 | # uintmax_t.m4 serial 9 | ||
2 | dnl Copyright (C) 1997-2004 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Paul Eggert. | ||
8 | |||
9 | AC_PREREQ(2.13) | ||
10 | |||
11 | # Define uintmax_t to 'unsigned long' or 'unsigned long long' | ||
12 | # if it is not already defined in <stdint.h> or <inttypes.h>. | ||
13 | |||
14 | AC_DEFUN([gl_AC_TYPE_UINTMAX_T], | ||
15 | [ | ||
16 | AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) | ||
17 | AC_REQUIRE([gl_AC_HEADER_STDINT_H]) | ||
18 | if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then | ||
19 | AC_REQUIRE([gl_AC_TYPE_UNSIGNED_LONG_LONG]) | ||
20 | test $ac_cv_type_unsigned_long_long = yes \ | ||
21 | && ac_type='unsigned long long' \ | ||
22 | || ac_type='unsigned long' | ||
23 | AC_DEFINE_UNQUOTED(uintmax_t, $ac_type, | ||
24 | [Define to unsigned long or unsigned long long | ||
25 | if <stdint.h> and <inttypes.h> don't define.]) | ||
26 | else | ||
27 | AC_DEFINE(HAVE_UINTMAX_T, 1, | ||
28 | [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.]) | ||
29 | fi | ||
30 | ]) | ||
diff --git a/gl/m4/ulonglong.m4 b/gl/m4/ulonglong.m4 new file mode 100644 index 00000000..9fae98e3 --- /dev/null +++ b/gl/m4/ulonglong.m4 | |||
@@ -0,0 +1,48 @@ | |||
1 | # ulonglong.m4 serial 6 | ||
2 | dnl Copyright (C) 1999-2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Paul Eggert. | ||
8 | |||
9 | # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. | ||
10 | # This fixes a bug in Autoconf 2.60, but can be removed once we | ||
11 | # assume 2.61 everywhere. | ||
12 | |||
13 | # Note: If the type 'unsigned long long int' exists but is only 32 bits | ||
14 | # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT | ||
15 | # will not be defined. In this case you can treat 'unsigned long long int' | ||
16 | # like 'unsigned long int'. | ||
17 | |||
18 | AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], | ||
19 | [ | ||
20 | AC_CACHE_CHECK([for unsigned long long int], | ||
21 | [ac_cv_type_unsigned_long_long_int], | ||
22 | [AC_LINK_IFELSE( | ||
23 | [AC_LANG_PROGRAM( | ||
24 | [[unsigned long long int ull = 18446744073709551615ULL; | ||
25 | typedef int a[(18446744073709551615ULL <= (unsigned long long int) -1 | ||
26 | ? 1 : -1)]; | ||
27 | int i = 63;]], | ||
28 | [[unsigned long long int ullmax = 18446744073709551615ull; | ||
29 | return (ull << 63 | ull >> 63 | ull << i | ull >> i | ||
30 | | ullmax / ull | ullmax % ull);]])], | ||
31 | [ac_cv_type_unsigned_long_long_int=yes], | ||
32 | [ac_cv_type_unsigned_long_long_int=no])]) | ||
33 | if test $ac_cv_type_unsigned_long_long_int = yes; then | ||
34 | AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1, | ||
35 | [Define to 1 if the system has the type `unsigned long long int'.]) | ||
36 | fi | ||
37 | ]) | ||
38 | |||
39 | # This macro is obsolescent and should go away soon. | ||
40 | AC_DEFUN([gl_AC_TYPE_UNSIGNED_LONG_LONG], | ||
41 | [ | ||
42 | AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) | ||
43 | ac_cv_type_unsigned_long_long=$ac_cv_type_unsigned_long_long_int | ||
44 | if test $ac_cv_type_unsigned_long_long = yes; then | ||
45 | AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, | ||
46 | [Define if you have the 'unsigned long long' type.]) | ||
47 | fi | ||
48 | ]) | ||
diff --git a/gl/m4/unistd-safer.m4 b/gl/m4/unistd-safer.m4 new file mode 100644 index 00000000..09adf931 --- /dev/null +++ b/gl/m4/unistd-safer.m4 | |||
@@ -0,0 +1,13 @@ | |||
1 | #serial 8 | ||
2 | dnl Copyright (C) 2002, 2005, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_UNISTD_SAFER], | ||
8 | [ | ||
9 | AC_CHECK_FUNCS_ONCE([pipe]) | ||
10 | AC_LIBOBJ([dup-safer]) | ||
11 | AC_LIBOBJ([fd-safer]) | ||
12 | AC_LIBOBJ([pipe-safer]) | ||
13 | ]) | ||
diff --git a/gl/m4/unistd_h.m4 b/gl/m4/unistd_h.m4 new file mode 100644 index 00000000..9d499dfe --- /dev/null +++ b/gl/m4/unistd_h.m4 | |||
@@ -0,0 +1,32 @@ | |||
1 | # unistd_h.m4 serial 3 | ||
2 | dnl Copyright (C) 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl Written by Simon Josefsson | ||
8 | |||
9 | AC_DEFUN([gl_HEADER_UNISTD], | ||
10 | [ | ||
11 | AC_CHECK_HEADERS([unistd.h], [ | ||
12 | UNISTD_H='' | ||
13 | ], [ | ||
14 | UNISTD_H='unistd.h' | ||
15 | ]) | ||
16 | AC_SUBST(UNISTD_H) | ||
17 | dnl This module decides to build unistd.h if it is missing. | ||
18 | dnl The fchdir module decides to build unistd.h if fchdir() is missing. | ||
19 | dnl Therefore check for the prerequisites of lib/unistd.h always. | ||
20 | gl_PREREQ_UNISTD | ||
21 | ]) | ||
22 | |||
23 | dnl Prerequisites of lib/unistd.h. | ||
24 | AC_DEFUN([gl_PREREQ_UNISTD], | ||
25 | [ | ||
26 | AC_CHECK_HEADERS_ONCE([unistd.h]) | ||
27 | if test $ac_cv_header_unistd_h = yes; then | ||
28 | gl_ABSOLUTE_HEADER([unistd.h]) | ||
29 | ABSOLUTE_UNISTD_H=\"$gl_cv_absolute_unistd_h\" | ||
30 | fi | ||
31 | AC_SUBST([ABSOLUTE_UNISTD_H]) | ||
32 | ]) | ||
diff --git a/gl/m4/vasnprintf.m4 b/gl/m4/vasnprintf.m4 new file mode 100644 index 00000000..72c9a13e --- /dev/null +++ b/gl/m4/vasnprintf.m4 | |||
@@ -0,0 +1,57 @@ | |||
1 | # vasnprintf.m4 serial 7 | ||
2 | dnl Copyright (C) 2002-2004, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_FUNC_VASNPRINTF], | ||
8 | [ | ||
9 | AC_REQUIRE([gl_EOVERFLOW]) | ||
10 | AC_REPLACE_FUNCS(vasnprintf) | ||
11 | if test $ac_cv_func_vasnprintf = no; then | ||
12 | AC_LIBOBJ(printf-args) | ||
13 | AC_LIBOBJ(printf-parse) | ||
14 | AC_LIBOBJ(asnprintf) | ||
15 | gl_PREREQ_PRINTF_ARGS | ||
16 | gl_PREREQ_PRINTF_PARSE | ||
17 | gl_PREREQ_VASNPRINTF | ||
18 | gl_PREREQ_ASNPRINTF | ||
19 | fi | ||
20 | ]) | ||
21 | |||
22 | # Prequisites of lib/printf-args.h, lib/printf-args.c. | ||
23 | AC_DEFUN([gl_PREREQ_PRINTF_ARGS], | ||
24 | [ | ||
25 | AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) | ||
26 | AC_REQUIRE([gt_TYPE_LONGDOUBLE]) | ||
27 | AC_REQUIRE([gt_TYPE_WCHAR_T]) | ||
28 | AC_REQUIRE([gt_TYPE_WINT_T]) | ||
29 | ]) | ||
30 | |||
31 | # Prequisites of lib/printf-parse.h, lib/printf-parse.c. | ||
32 | AC_DEFUN([gl_PREREQ_PRINTF_PARSE], | ||
33 | [ | ||
34 | AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) | ||
35 | AC_REQUIRE([gt_TYPE_LONGDOUBLE]) | ||
36 | AC_REQUIRE([gt_TYPE_WCHAR_T]) | ||
37 | AC_REQUIRE([gt_TYPE_WINT_T]) | ||
38 | AC_REQUIRE([AC_TYPE_SIZE_T]) | ||
39 | AC_CHECK_TYPES(ptrdiff_t) | ||
40 | AC_REQUIRE([gt_AC_TYPE_INTMAX_T]) | ||
41 | ]) | ||
42 | |||
43 | # Prerequisites of lib/vasnprintf.c. | ||
44 | AC_DEFUN([gl_PREREQ_VASNPRINTF], | ||
45 | [ | ||
46 | AC_REQUIRE([AC_FUNC_ALLOCA]) | ||
47 | AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) | ||
48 | AC_REQUIRE([gt_TYPE_LONGDOUBLE]) | ||
49 | AC_REQUIRE([gt_TYPE_WCHAR_T]) | ||
50 | AC_REQUIRE([gt_TYPE_WINT_T]) | ||
51 | AC_CHECK_FUNCS(snprintf wcslen) | ||
52 | ]) | ||
53 | |||
54 | # Prerequisites of lib/asnprintf.c. | ||
55 | AC_DEFUN([gl_PREREQ_ASNPRINTF], | ||
56 | [ | ||
57 | ]) | ||
diff --git a/gl/m4/vasprintf.m4 b/gl/m4/vasprintf.m4 new file mode 100644 index 00000000..18ca6327 --- /dev/null +++ b/gl/m4/vasprintf.m4 | |||
@@ -0,0 +1,33 @@ | |||
1 | # vasprintf.m4 serial 2 | ||
2 | dnl Copyright (C) 2002-2003, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_FUNC_VASPRINTF], | ||
8 | [ | ||
9 | AC_REPLACE_FUNCS(vasprintf) | ||
10 | if test $ac_cv_func_vasprintf = no; then | ||
11 | AC_LIBOBJ(asprintf) | ||
12 | gl_PREREQ_VASPRINTF_H | ||
13 | gl_PREREQ_VASPRINTF | ||
14 | gl_PREREQ_ASPRINTF | ||
15 | fi | ||
16 | ]) | ||
17 | |||
18 | # Prerequisites of lib/vasprintf.h. | ||
19 | AC_DEFUN([gl_PREREQ_VASPRINTF_H], | ||
20 | [ | ||
21 | dnl Persuade glibc <stdio.h> to declare asprintf() and vasprintf(). | ||
22 | AC_REQUIRE([AC_GNU_SOURCE]) | ||
23 | ]) | ||
24 | |||
25 | # Prerequisites of lib/vasprintf.c. | ||
26 | AC_DEFUN([gl_PREREQ_VASPRINTF], | ||
27 | [ | ||
28 | ]) | ||
29 | |||
30 | # Prerequisites of lib/asprintf.c. | ||
31 | AC_DEFUN([gl_PREREQ_ASPRINTF], | ||
32 | [ | ||
33 | ]) | ||
diff --git a/gl/m4/visibility.m4 b/gl/m4/visibility.m4 new file mode 100644 index 00000000..2ff6330a --- /dev/null +++ b/gl/m4/visibility.m4 | |||
@@ -0,0 +1,52 @@ | |||
1 | # visibility.m4 serial 1 (gettext-0.15) | ||
2 | dnl Copyright (C) 2005 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Bruno Haible. | ||
8 | |||
9 | dnl Tests whether the compiler supports the command-line option | ||
10 | dnl -fvisibility=hidden and the function and variable attributes | ||
11 | dnl __attribute__((__visibility__("hidden"))) and | ||
12 | dnl __attribute__((__visibility__("default"))). | ||
13 | dnl Does *not* test for __visibility__("protected") - which has tricky | ||
14 | dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on | ||
15 | dnl MacOS X. | ||
16 | dnl Does *not* test for __visibility__("internal") - which has processor | ||
17 | dnl dependent semantics. | ||
18 | dnl Does *not* test for #pragma GCC visibility push(hidden) - which is | ||
19 | dnl "really only recommended for legacy code". | ||
20 | dnl Set the variable CFLAG_VISIBILITY. | ||
21 | dnl Defines and sets the variable HAVE_VISIBILITY. | ||
22 | |||
23 | AC_DEFUN([gl_VISIBILITY], | ||
24 | [ | ||
25 | AC_REQUIRE([AC_PROG_CC]) | ||
26 | CFLAG_VISIBILITY= | ||
27 | HAVE_VISIBILITY=0 | ||
28 | if test -n "$GCC"; then | ||
29 | AC_MSG_CHECKING([for simple visibility declarations]) | ||
30 | AC_CACHE_VAL(gl_cv_cc_visibility, [ | ||
31 | gl_save_CFLAGS="$CFLAGS" | ||
32 | CFLAGS="$CFLAGS -fvisibility=hidden" | ||
33 | AC_TRY_COMPILE( | ||
34 | [extern __attribute__((__visibility__("hidden"))) int hiddenvar; | ||
35 | extern __attribute__((__visibility__("default"))) int exportedvar; | ||
36 | extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); | ||
37 | extern __attribute__((__visibility__("default"))) int exportedfunc (void);], | ||
38 | [], | ||
39 | gl_cv_cc_visibility=yes, | ||
40 | gl_cv_cc_visibility=no) | ||
41 | CFLAGS="$gl_save_CFLAGS"]) | ||
42 | AC_MSG_RESULT([$gl_cv_cc_visibility]) | ||
43 | if test $gl_cv_cc_visibility = yes; then | ||
44 | CFLAG_VISIBILITY="-fvisibility=hidden" | ||
45 | HAVE_VISIBILITY=1 | ||
46 | fi | ||
47 | fi | ||
48 | AC_SUBST([CFLAG_VISIBILITY]) | ||
49 | AC_SUBST([HAVE_VISIBILITY]) | ||
50 | AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], | ||
51 | [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) | ||
52 | ]) | ||
diff --git a/gl/m4/vsnprintf.m4 b/gl/m4/vsnprintf.m4 new file mode 100644 index 00000000..cb8a9b18 --- /dev/null +++ b/gl/m4/vsnprintf.m4 | |||
@@ -0,0 +1,15 @@ | |||
1 | # vsnprintf.m4 serial 2 | ||
2 | dnl Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_FUNC_VSNPRINTF], | ||
8 | [ | ||
9 | AC_REPLACE_FUNCS(vsnprintf) | ||
10 | AC_CHECK_DECLS_ONCE(vsnprintf) | ||
11 | gl_PREREQ_VSNPRINTF | ||
12 | ]) | ||
13 | |||
14 | # Prerequisites of lib/vsnprintf.c. | ||
15 | AC_DEFUN([gl_PREREQ_VSNPRINTF], [:]) | ||
diff --git a/gl/m4/wchar.m4 b/gl/m4/wchar.m4 new file mode 100644 index 00000000..068f22d3 --- /dev/null +++ b/gl/m4/wchar.m4 | |||
@@ -0,0 +1,29 @@ | |||
1 | dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues. | ||
2 | |||
3 | dnl Copyright (C) 2007 Free Software Foundation, Inc. | ||
4 | dnl This file is free software; the Free Software Foundation | ||
5 | dnl gives unlimited permission to copy and/or distribute it, | ||
6 | dnl with or without modifications, as long as this notice is preserved. | ||
7 | |||
8 | dnl Written by Eric Blake. | ||
9 | |||
10 | # wchar.m4 serial 1 | ||
11 | |||
12 | AC_DEFUN([gl_WCHAR_H], | ||
13 | [ | ||
14 | AC_CACHE_CHECK([whether <wchar.h> is standalone], | ||
15 | [gl_cv_header_wchar_h_standalone], | ||
16 | [AC_COMPILE_IFELSE([[#include <wchar.h> | ||
17 | wchar_t w;]], | ||
18 | [gl_cv_header_wchar_h_standalone=yes], | ||
19 | [gl_cv_header_wchar_h_standalone=no])]) | ||
20 | if test $gl_cv_header_wchar_h_standalone = yes; then | ||
21 | WCHAR_H= | ||
22 | else | ||
23 | gl_ABSOLUTE_HEADER([wchar.h]) | ||
24 | ABSOLUTE_WCHAR_H=\"$gl_cv_absolute_wchar_h\" | ||
25 | WCHAR_H=wchar.h | ||
26 | fi | ||
27 | AC_SUBST([ABSOLUTE_WCHAR_H]) | ||
28 | AC_SUBST([WCHAR_H]) | ||
29 | ]) | ||
diff --git a/gl/m4/wchar_t.m4 b/gl/m4/wchar_t.m4 new file mode 100644 index 00000000..cde2129a --- /dev/null +++ b/gl/m4/wchar_t.m4 | |||
@@ -0,0 +1,20 @@ | |||
1 | # wchar_t.m4 serial 1 (gettext-0.12) | ||
2 | dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Bruno Haible. | ||
8 | dnl Test whether <stddef.h> has the 'wchar_t' type. | ||
9 | dnl Prerequisite: AC_PROG_CC | ||
10 | |||
11 | AC_DEFUN([gt_TYPE_WCHAR_T], | ||
12 | [ | ||
13 | AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t, | ||
14 | [AC_TRY_COMPILE([#include <stddef.h> | ||
15 | wchar_t foo = (wchar_t)'\0';], , | ||
16 | gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)]) | ||
17 | if test $gt_cv_c_wchar_t = yes; then | ||
18 | AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.]) | ||
19 | fi | ||
20 | ]) | ||
diff --git a/gl/m4/wctype.m4 b/gl/m4/wctype.m4 new file mode 100644 index 00000000..62994c62 --- /dev/null +++ b/gl/m4/wctype.m4 | |||
@@ -0,0 +1,41 @@ | |||
1 | dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it. | ||
2 | |||
3 | dnl Copyright (C) 2006, 2007 Free Software Foundation, Inc. | ||
4 | dnl This file is free software; the Free Software Foundation | ||
5 | dnl gives unlimited permission to copy and/or distribute it, | ||
6 | dnl with or without modifications, as long as this notice is preserved. | ||
7 | |||
8 | dnl Written by Paul Eggert. | ||
9 | |||
10 | AC_DEFUN([gl_WCTYPE_H], | ||
11 | [ | ||
12 | AC_CHECK_FUNCS_ONCE([iswcntrl]) | ||
13 | AC_CHECK_HEADERS_ONCE([wctype.h]) | ||
14 | AC_REQUIRE([AC_C_INLINE]) | ||
15 | |||
16 | AC_REQUIRE([gt_TYPE_WINT_T]) | ||
17 | if test $gt_cv_c_wint_t = yes; then | ||
18 | HAVE_WINT_T=1 | ||
19 | else | ||
20 | HAVE_WINT_T=0 | ||
21 | fi | ||
22 | AC_SUBST([HAVE_WINT_T]) | ||
23 | |||
24 | WCTYPE_H=wctype.h | ||
25 | if test $ac_cv_header_wctype_h = yes; then | ||
26 | if test "$ac_cv_func_iswcntrl" = yes; then | ||
27 | WCTYPE_H= | ||
28 | fi | ||
29 | dnl Compute ABSOLUTE_WCTYPE_H even if WCTYPE_H is empty, | ||
30 | dnl for the benefit of builds from non-distclean directories. | ||
31 | gl_ABSOLUTE_HEADER([wctype.h]) | ||
32 | ABSOLUTE_WCTYPE_H=\"$gl_cv_absolute_wctype_h\" | ||
33 | HAVE_WCTYPE_H=1 | ||
34 | else | ||
35 | ABSOLUTE_WCTYPE_H=\"no/such/file/wctype.h\" | ||
36 | HAVE_WCTYPE_H=0 | ||
37 | fi | ||
38 | AC_SUBST([ABSOLUTE_WCTYPE_H]) | ||
39 | AC_SUBST([HAVE_WCTYPE_H]) | ||
40 | AC_SUBST([WCTYPE_H]) | ||
41 | ]) | ||
diff --git a/gl/m4/wcwidth.m4 b/gl/m4/wcwidth.m4 new file mode 100644 index 00000000..b4834991 --- /dev/null +++ b/gl/m4/wcwidth.m4 | |||
@@ -0,0 +1,30 @@ | |||
1 | # wcwidth.m4 serial 8 | ||
2 | dnl Copyright (C) 2006, 2007 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_FUNC_WCWIDTH], | ||
8 | [ | ||
9 | dnl Persuade glibc <wchar.h> to declare wcwidth(). | ||
10 | AC_REQUIRE([AC_GNU_SOURCE]) | ||
11 | |||
12 | AC_REQUIRE([AC_C_INLINE]) | ||
13 | AC_REQUIRE([gt_TYPE_WCHAR_T]) | ||
14 | AC_REQUIRE([gt_TYPE_WINT_T]) | ||
15 | |||
16 | AC_CHECK_HEADERS_ONCE([wchar.h]) | ||
17 | AC_CHECK_FUNCS_ONCE([wcwidth]) | ||
18 | |||
19 | AC_CHECK_DECLS([wcwidth], [], [], [ | ||
20 | /* AIX 3.2.5 declares wcwidth in <string.h>. */ | ||
21 | #include <string.h> | ||
22 | /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before | ||
23 | <wchar.h>. | ||
24 | BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included | ||
25 | before <wchar.h>. */ | ||
26 | #include <stddef.h> | ||
27 | #include <stdio.h> | ||
28 | #include <time.h> | ||
29 | #include <wchar.h> | ||
30 | ])]) | ||
diff --git a/gl/m4/wint_t.m4 b/gl/m4/wint_t.m4 new file mode 100644 index 00000000..3706c047 --- /dev/null +++ b/gl/m4/wint_t.m4 | |||
@@ -0,0 +1,28 @@ | |||
1 | # wint_t.m4 serial 2 (gettext-0.12) | ||
2 | dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | dnl From Bruno Haible. | ||
8 | dnl Test whether <wchar.h> has the 'wint_t' type. | ||
9 | dnl Prerequisite: AC_PROG_CC | ||
10 | |||
11 | AC_DEFUN([gt_TYPE_WINT_T], | ||
12 | [ | ||
13 | AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t, | ||
14 | [AC_TRY_COMPILE([ | ||
15 | /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before | ||
16 | <wchar.h>. | ||
17 | BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included | ||
18 | before <wchar.h>. */ | ||
19 | #include <stddef.h> | ||
20 | #include <stdio.h> | ||
21 | #include <time.h> | ||
22 | #include <wchar.h> | ||
23 | wint_t foo = (wchar_t)'\0';], , | ||
24 | gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)]) | ||
25 | if test $gt_cv_c_wint_t = yes; then | ||
26 | AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.]) | ||
27 | fi | ||
28 | ]) | ||
diff --git a/gl/m4/xalloc.m4 b/gl/m4/xalloc.m4 new file mode 100644 index 00000000..837a948c --- /dev/null +++ b/gl/m4/xalloc.m4 | |||
@@ -0,0 +1,24 @@ | |||
1 | # xalloc.m4 serial 16 | ||
2 | dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_XALLOC], | ||
8 | [ | ||
9 | AC_LIBOBJ([xmalloc]) | ||
10 | |||
11 | gl_PREREQ_XALLOC | ||
12 | gl_PREREQ_XMALLOC | ||
13 | ]) | ||
14 | |||
15 | # Prerequisites of lib/xalloc.h. | ||
16 | AC_DEFUN([gl_PREREQ_XALLOC], [ | ||
17 | AC_REQUIRE([gl_INLINE]) | ||
18 | : | ||
19 | ]) | ||
20 | |||
21 | # Prerequisites of lib/xmalloc.c. | ||
22 | AC_DEFUN([gl_PREREQ_XMALLOC], [ | ||
23 | : | ||
24 | ]) | ||
diff --git a/gl/m4/xsize.m4 b/gl/m4/xsize.m4 new file mode 100644 index 00000000..85bb721e --- /dev/null +++ b/gl/m4/xsize.m4 | |||
@@ -0,0 +1,13 @@ | |||
1 | # xsize.m4 serial 3 | ||
2 | dnl Copyright (C) 2003-2004 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_XSIZE], | ||
8 | [ | ||
9 | dnl Prerequisites of lib/xsize.h. | ||
10 | AC_REQUIRE([gl_SIZE_MAX]) | ||
11 | AC_REQUIRE([AC_C_INLINE]) | ||
12 | AC_CHECK_HEADERS(stdint.h) | ||
13 | ]) | ||
diff --git a/gl/m4/xstrndup.m4 b/gl/m4/xstrndup.m4 new file mode 100644 index 00000000..8a30ab15 --- /dev/null +++ b/gl/m4/xstrndup.m4 | |||
@@ -0,0 +1,15 @@ | |||
1 | # xstrndup.m4 serial 2 | ||
2 | dnl Copyright (C) 2003 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | ||
4 | dnl gives unlimited permission to copy and/or distribute it, | ||
5 | dnl with or without modifications, as long as this notice is preserved. | ||
6 | |||
7 | AC_DEFUN([gl_XSTRNDUP], | ||
8 | [ | ||
9 | gl_PREREQ_XSTRNDUP | ||
10 | ]) | ||
11 | |||
12 | # Prerequisites of lib/xstrndup.c. | ||
13 | AC_DEFUN([gl_PREREQ_XSTRNDUP], [ | ||
14 | : | ||
15 | ]) | ||