Commit | Line | Data |
---|---|---|
4a626d0a | 1 | # 00gnulib.m4 serial 3 |
c0c3707f | 2 | dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. |
f434ba03 PA |
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 This file must be named something that sorts before all other | |
8 | dnl gnulib-provided .m4 files. It is needed until such time as we can | |
4a626d0a PA |
9 | dnl assume Autoconf 2.64, with its improved AC_DEFUN_ONCE and |
10 | dnl m4_divert semantics. | |
11 | ||
12 | # Until autoconf 2.63, handling of the diversion stack required m4_init | |
13 | # to be called first; but this does not happen with aclocal. Wrapping | |
14 | # the entire execution in another layer of the diversion stack fixes this. | |
15 | # Worse, prior to autoconf 2.62, m4_wrap depended on the underlying m4 | |
16 | # for whether it was FIFO or LIFO; in order to properly balance with | |
17 | # m4_init, we need to undo our push just before anything wrapped within | |
18 | # the m4_init body. The way to ensure this is to wrap both sides of | |
19 | # m4_init with a one-shot macro that does the pop at the right time. | |
20 | m4_ifndef([_m4_divert_diversion], | |
21 | [m4_divert_push([KILL]) | |
22 | m4_define([gl_divert_fixup], [m4_divert_pop()m4_define([$0])]) | |
23 | m4_define([m4_init], | |
24 | [gl_divert_fixup()]m4_defn([m4_init])[gl_divert_fixup()])]) | |
25 | ||
f434ba03 PA |
26 | |
27 | # AC_DEFUN_ONCE([NAME], VALUE) | |
28 | # ---------------------------- | |
29 | # Define NAME to expand to VALUE on the first use (whether by direct | |
30 | # expansion, or by AC_REQUIRE), and to nothing on all subsequent uses. | |
31 | # Avoid bugs in AC_REQUIRE in Autoconf 2.63 and earlier. This | |
32 | # definition is slower than the version in Autoconf 2.64, because it | |
33 | # can only use interfaces that existed since 2.59; but it achieves the | |
34 | # same effect. Quoting is necessary to avoid confusing Automake. | |
35 | m4_version_prereq([2.63.263], [], | |
36 | [m4_define([AC][_DEFUN_ONCE], | |
37 | [AC][_DEFUN([$1], | |
38 | [AC_REQUIRE([_gl_DEFUN_ONCE([$1])], | |
39 | [m4_indir([_gl_DEFUN_ONCE([$1])])])])]dnl | |
40 | [AC][_DEFUN([_gl_DEFUN_ONCE([$1])], [$2])])]) | |
41 | ||
42 | # gl_00GNULIB | |
43 | # ----------- | |
44 | # Witness macro that this file has been included. Needed to force | |
45 | # Automake to include this file prior to all other gnulib .m4 files. | |
46 | AC_DEFUN([gl_00GNULIB]) |