; Improve commentary of Info-default-directory-list
[emacs.git] / m4 / 00gnulib.m4
blobbb3512fd528a18c2dc531a54601925cbb6b34acc
1 # 00gnulib.m4 serial 3
2 dnl Copyright (C) 2009-2017 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.
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.
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()])])
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])])])
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])