Blame lib/freeze.mk

Packit Service 9646c7
# Freeze M4 files.
Packit Service 9646c7
Packit Service 9646c7
# Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation, Inc.
Packit Service 9646c7
Packit Service 9646c7
# This program is free software: you can redistribute it and/or modify
Packit Service 9646c7
# it under the terms of the GNU General Public License as published by
Packit Service 9646c7
# the Free Software Foundation, either version 3 of the License, or
Packit Service 9646c7
# (at your option) any later version.
Packit Service 9646c7
Packit Service 9646c7
# This program is distributed in the hope that it will be useful,
Packit Service 9646c7
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 9646c7
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 9646c7
# GNU General Public License for more details.
Packit Service 9646c7
Packit Service 9646c7
# You should have received a copy of the GNU General Public License
Packit Service 9646c7
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## ----------------- ##
Packit Service 9646c7
## Freeze M4 files.  ##
Packit Service 9646c7
## ----------------- ##
Packit Service 9646c7
Packit Service 9646c7
SUFFIXES = .m4 .m4f
Packit Service 9646c7
Packit Service 9646c7
AUTOM4TE_CFG = $(top_builddir)/lib/autom4te.cfg
Packit Service 9646c7
$(AUTOM4TE_CFG): $(top_srcdir)/lib/autom4te.in
Packit Service 9646c7
	cd $(top_builddir)/lib && $(MAKE) $(AM_MAKEFLAGS) autom4te.cfg
Packit Service 9646c7
Packit Service 9646c7
# Do not use AUTOM4TE here, since maint.mk (my-distcheck)
Packit Service 9646c7
# checks if we are independent of Autoconf by defining AUTOM4TE (and
Packit Service 9646c7
# others) to `false'.  Autoconf provides autom4te, so that doesn't
Packit Service 9646c7
# apply to us.
Packit Service 9646c7
MY_AUTOM4TE =									\
Packit Service 9646c7
	autom4te_perllibdir='$(top_srcdir)'/lib					\
Packit Service 9646c7
	AUTOM4TE_CFG='$(AUTOM4TE_CFG)'         $(top_builddir)/bin/autom4te	\
Packit Service 9646c7
		-B '$(top_builddir)'/lib -B '$(top_srcdir)'/lib        # keep ` '
Packit Service 9646c7
Packit Service 9646c7
# When processing the file with diversion disabled, there must be no
Packit Service 9646c7
# output but comments and empty lines.
Packit Service 9646c7
# If freezing produces output, something went wrong: a bad `divert',
Packit Service 9646c7
# or an improper paren etc.
Packit Service 9646c7
# It may happen that the output does not end with an end of line, hence
Packit Service 9646c7
# force an end of line when reporting errors.
Packit Service 9646c7
.m4.m4f:
Packit Service 9646c7
	$(MY_AUTOM4TE)				\
Packit Service 9646c7
		--language=$*			\
Packit Service 9646c7
		--freeze			\
Packit Service 9646c7
		--output=$@
Packit Service 9646c7
Packit Service 9646c7
# Factor the dependencies between all the frozen files.
Packit Service 9646c7
# Some day we should explain to Automake how to use autom4te to compute
Packit Service 9646c7
# the dependencies...
Packit Service 9646c7
src_libdir   = $(top_srcdir)/lib
Packit Service 9646c7
build_libdir = $(top_builddir)/lib
Packit Service 9646c7
Packit Service 9646c7
m4f_dependencies = $(top_builddir)/bin/autom4te $(AUTOM4TE_CFG)
Packit Service 9646c7
Packit Service 9646c7
# For parallel builds.
Packit Service 9646c7
$(build_libdir)/m4sugar/version.m4:
Packit Service 9646c7
	cd $(build_libdir)/m4sugar && $(MAKE) $(AM_MAKEFLAGS) version.m4
Packit Service 9646c7
Packit Service 9646c7
m4sugar_m4f_dependencies =			\
Packit Service 9646c7
	$(m4f_dependencies)			\
Packit Service 9646c7
	$(src_libdir)/m4sugar/m4sugar.m4	\
Packit Service 9646c7
	$(build_libdir)/m4sugar/version.m4
Packit Service 9646c7
Packit Service 9646c7
m4sh_m4f_dependencies =				\
Packit Service 9646c7
	$(m4sugar_m4f_dependencies)		\
Packit Service 9646c7
	$(src_libdir)/m4sugar/m4sh.m4
Packit Service 9646c7
Packit Service 9646c7
autotest_m4f_dependencies =			\
Packit Service 9646c7
	$(m4sh_m4f_dependencies)		\
Packit Service 9646c7
	$(src_libdir)/autotest/autotest.m4	\
Packit Service 9646c7
	$(src_libdir)/autotest/general.m4	\
Packit Service 9646c7
	$(src_libdir)/autotest/specific.m4
Packit Service 9646c7
Packit Service 9646c7
autoconf_m4f_dependencies =			\
Packit Service 9646c7
	$(m4sh_m4f_dependencies)		\
Packit Service 9646c7
	$(src_libdir)/autoconf/autoscan.m4	\
Packit Service 9646c7
	$(src_libdir)/autoconf/general.m4	\
Packit Service 9646c7
	$(src_libdir)/autoconf/autoheader.m4	\
Packit Service 9646c7
	$(src_libdir)/autoconf/autoupdate.m4	\
Packit Service 9646c7
	$(src_libdir)/autoconf/autotest.m4	\
Packit Service 9646c7
	$(src_libdir)/autoconf/status.m4	\
Packit Service 9646c7
	$(src_libdir)/autoconf/oldnames.m4	\
Packit Service 9646c7
	$(src_libdir)/autoconf/specific.m4	\
Packit Service 9646c7
	$(src_libdir)/autoconf/lang.m4		\
Packit Service 9646c7
	$(src_libdir)/autoconf/c.m4		\
Packit Service 9646c7
	$(src_libdir)/autoconf/fortran.m4	\
Packit Service 9646c7
	$(src_libdir)/autoconf/erlang.m4	\
Packit Service 9646c7
	$(src_libdir)/autoconf/go.m4		\
Packit Service 9646c7
	$(src_libdir)/autoconf/functions.m4	\
Packit Service 9646c7
	$(src_libdir)/autoconf/headers.m4	\
Packit Service 9646c7
	$(src_libdir)/autoconf/types.m4		\
Packit Service 9646c7
	$(src_libdir)/autoconf/libs.m4		\
Packit Service 9646c7
	$(src_libdir)/autoconf/programs.m4	\
Packit Service 9646c7
	$(src_libdir)/autoconf/autoconf.m4
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## --------------------------- ##
Packit Service 9646c7
## Run ETAGS on some M4 code.  ##
Packit Service 9646c7
## --------------------------- ##
Packit Service 9646c7
Packit Service 9646c7
ETAGS_FOR_M4 = \
Packit Service 9646c7
  --lang=none \
Packit Service 9646c7
  --regex='/\(m4_define\|define\)(\[\([^]]*\)\]/\2/'
Packit Service 9646c7
Packit Service 9646c7
ETAGS_FOR_M4SUGAR = \
Packit Service 9646c7
  $(ETAGS_FOR_M4) \
Packit Service 9646c7
  --regex='/m4_defun(\[\([^]]*\)\]/\1/'
Packit Service 9646c7
Packit Service 9646c7
ETAGS_FOR_AUTOCONF = \
Packit Service 9646c7
  $(ETAGS_FOR_M4SUGAR) \
Packit Service 9646c7
  --regex='/\(A[CU]_DEFUN\|AU_ALIAS\)(\[\([^]]*\)\]/\2/' \
Packit Service 9646c7
  --regex='/AN_\(FUNCTION\|HEADER\|IDENTIFIER\|LIBRARY\|MAKEVAR\|PROGRAM\)(\[\([^]]*\)\]/\2/'
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
## -------------------------------- ##
Packit Service 9646c7
## Looking for forbidden patterns.  ##
Packit Service 9646c7
## -------------------------------- ##
Packit Service 9646c7
Packit Service 9646c7
check-forbidden-patterns:
Packit Service 9646c7
	@if (cd $(srcdir) && \
Packit Service 9646c7
	    $(GREP) $(forbidden_patterns) $(forbidden_patterns_files)) \
Packit Service 9646c7
	    >forbidden.log; then \
Packit Service 9646c7
	  echo "ERROR: forbidden patterns were found:" >&2; \
Packit Service 9646c7
	  sed "s|^|$*.m4: |" <forbidden.log >&2; \
Packit Service 9646c7
	  echo >&2; \
Packit Service 9646c7
	  exit 1; \
Packit Service 9646c7
	else \
Packit Service 9646c7
	  rm -f forbidden.log; \
Packit Service 9646c7
	fi