| 1 | # 00gnulib.m4 serial 3 |
| 2 | dnl Copyright (C) 2009-2014 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 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 |
| 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 | |
| 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]) |