Blame m4/00gnulib.m4

Packit Service a2489d
# 00gnulib.m4 serial 3
Packit Service a2489d
dnl Copyright (C) 2009-2018 Free Software Foundation, Inc.
Packit Service a2489d
dnl This file is free software; the Free Software Foundation
Packit Service a2489d
dnl gives unlimited permission to copy and/or distribute it,
Packit Service a2489d
dnl with or without modifications, as long as this notice is preserved.
Packit Service a2489d
Packit Service a2489d
dnl This file must be named something that sorts before all other
Packit Service a2489d
dnl gnulib-provided .m4 files.  It is needed until such time as we can
Packit Service a2489d
dnl assume Autoconf 2.64, with its improved AC_DEFUN_ONCE and
Packit Service a2489d
dnl m4_divert semantics.
Packit Service a2489d
Packit Service a2489d
# Until autoconf 2.63, handling of the diversion stack required m4_init
Packit Service a2489d
# to be called first; but this does not happen with aclocal.  Wrapping
Packit Service a2489d
# the entire execution in another layer of the diversion stack fixes this.
Packit Service a2489d
# Worse, prior to autoconf 2.62, m4_wrap depended on the underlying m4
Packit Service a2489d
# for whether it was FIFO or LIFO; in order to properly balance with
Packit Service a2489d
# m4_init, we need to undo our push just before anything wrapped within
Packit Service a2489d
# the m4_init body.  The way to ensure this is to wrap both sides of
Packit Service a2489d
# m4_init with a one-shot macro that does the pop at the right time.
Packit Service a2489d
m4_ifndef([_m4_divert_diversion],
Packit Service a2489d
[m4_divert_push([KILL])
Packit Service a2489d
m4_define([gl_divert_fixup], [m4_divert_pop()m4_define([$0])])
Packit Service a2489d
m4_define([m4_init],
Packit Service a2489d
  [gl_divert_fixup()]m4_defn([m4_init])[gl_divert_fixup()])])
Packit Service a2489d
Packit Service a2489d
Packit Service a2489d
# AC_DEFUN_ONCE([NAME], VALUE)
Packit Service a2489d
# ----------------------------
Packit Service a2489d
# Define NAME to expand to VALUE on the first use (whether by direct
Packit Service a2489d
# expansion, or by AC_REQUIRE), and to nothing on all subsequent uses.
Packit Service a2489d
# Avoid bugs in AC_REQUIRE in Autoconf 2.63 and earlier.  This
Packit Service a2489d
# definition is slower than the version in Autoconf 2.64, because it
Packit Service a2489d
# can only use interfaces that existed since 2.59; but it achieves the
Packit Service a2489d
# same effect.  Quoting is necessary to avoid confusing Automake.
Packit Service a2489d
m4_version_prereq([2.63.263], [],
Packit Service a2489d
[m4_define([AC][_DEFUN_ONCE],
Packit Service a2489d
  [AC][_DEFUN([$1],
Packit Service a2489d
    [AC_REQUIRE([_gl_DEFUN_ONCE([$1])],
Packit Service a2489d
      [m4_indir([_gl_DEFUN_ONCE([$1])])])])]dnl
Packit Service a2489d
[AC][_DEFUN([_gl_DEFUN_ONCE([$1])], [$2])])])
Packit Service a2489d
Packit Service a2489d
# gl_00GNULIB
Packit Service a2489d
# -----------
Packit Service a2489d
# Witness macro that this file has been included.  Needed to force
Packit Service a2489d
# Automake to include this file prior to all other gnulib .m4 files.
Packit Service a2489d
AC_DEFUN([gl_00GNULIB])