blob: f110aa99bc5d0af69e362818a091636d5fbe7e2d [file] [log] [blame]
## -*- makefile-automake -*-
## Copyright (C) 1995-2025 Free Software Foundation, Inc.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2, or (at your option)
## any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <https://www.gnu.org/licenses/>.
## ---------------- ##
## Documentation. ##
## ---------------- ##
info_TEXINFOS = %D%/automake.texi %D%/automake-history.texi
doc_automake_TEXINFOS = %D%/fdl.texi
doc_automake_history_TEXINFOS = %D%/fdl.texi
man1_MANS = \
%D%/aclocal.1 \
%D%/automake.1 \
%D%/aclocal-$(APIVERSION).1 \
%D%/automake-$(APIVERSION).1
$(man1_MANS): $(top_srcdir)/configure.ac
CLEANFILES += $(man1_MANS)
# In automake, users generate man pages as part of a normal build from
# release tarballs. This is ok because we also distribute the help2man
# script, as given below.
#
# Autoconf handles this in an alternative way, of including the man
# pages in the tarballs and thus not requiring help2man to be run by
# users (q.v.). Neither is better or worse than the other.
#
# See the "Errors with distclean" node in the manual for more info.
# XXX: The help2man script we include in the Automake distribution
# should be updated with 'fetch' target, but isn't. Instead, you must
# build help2man normally and copy it in manually. Keep the first line as:
# #!/usr/bin/perl -w
# whatever it might have ended up as on your system.
EXTRA_DIST += %D%/help2man
update_mans = \
$(MKDIR_P) %D% \
&& AUTOMAKE_HELP2MAN=true ./pre-inst-env \
$(PERL) $(srcdir)/%D%/help2man --output=$@ --info-page=automake \
--name="$${HELP2MAN_NAME}"
%D%/aclocal.1 %D%/automake.1:
$(AM_V_GEN): \
&& $(MKDIR_P) %D% \
&& f=`echo $@ | sed 's|.*/||; s|\.1$$||; $(transform)'` \
&& echo ".so man1/$$f-$(APIVERSION).1" > $@
%D%/aclocal-$(APIVERSION).1: $(aclocal_script) lib/Automake/Config.pm
$(AM_V_GEN):; HELP2MAN_NAME="Generate aclocal.m4 by scanning configure.ac"; export HELP2MAN_NAME; $(update_mans) $(aclocal_script)
%D%/automake-$(APIVERSION).1: $(automake_script) lib/Automake/Config.pm
$(AM_V_GEN):; HELP2MAN_NAME="Generate Makefile.in files for configure from Makefile.am"; export HELP2MAN_NAME; $(update_mans) $(automake_script)
## This checklinkx target is not invoked as a dependency of anything.
## It exists merely to make checking the links in automake.texi (that is,
## automake.html) more convenient. We use a slightly-enhanced version of
## W3C checklink to do this. We intentionally do not have automake.html
## as a dependency, as it seems more convenient to have its regeneration
## under manual control. See https://debbugs.gnu.org/10371.
##
checklinkx = $(top_srcdir)/contrib/checklinkx
# that particular sleep seems to be what gnu.org likes.
chlx_args = -v --sleep 8 #--exclude-url-file=/tmp/xf
# Explanation of excludes:
# - w3.org dtds, they are fine (and slow).
# - mailto urls, they are always forbidden.
# - vala, redirects to a Gnome subpage and returns 403 to us.
# - cfortran, forbidden by site's robots.txt.
# - debbugs.gnu.org/automake, forbidden by robots.txt.
# - autoconf.html, forbidden by robots.txt (since served from savannah).
# - https://fsf.org redirects to https://www.fsf.org and nothing to do
# (it's in the FDL). --suppress-redirect options do not suppress the msg.
#
chlx_excludes = \
-X 'http.*w3\.org/.*dtd' \
-X 'mailto:.*' \
-X 'https://www\.vala-project\.org/' \
-X 'https://www-zeus\.desy\.de/~burow/cfortran/' \
-X 'https://debbugs\.gnu\.org/automake' \
-X 'https://www\.gnu\.org/software/autoconf/manual/autoconf\.html' \
-X 'https://fsf\.org/'
chlx_file = $(top_srcdir)/doc/automake.html
.PHONY: checklinkx
checklinkx:
$(checklinkx) $(chlx_args) $(chlx_excludes) $(chlx_file)
## ---------------------------- ##
## Example package "amhello". ##
## ---------------------------- ##
amhello_sources = \
%D%/amhello/configure.ac \
%D%/amhello/Makefile.am \
%D%/amhello/README \
%D%/amhello/src/main.c \
%D%/amhello/src/Makefile.am
amhello_configury = \
aclocal.m4 \
autom4te.cache \
Makefile.in \
config.h.in \
configure \
depcomp \
install-sh \
missing \
src/Makefile.in
dist_noinst_DATA += $(amhello_sources)
dist_doc_DATA = $(srcdir)/%D%/amhello-1.0.tar.gz
setup_autotools_paths = { \
ACLOCAL=aclocal-$(APIVERSION) && export ACLOCAL \
&& AUTOMAKE=automake-$(APIVERSION) && export AUTOMAKE \
&& AUTOCONF='$(am_AUTOCONF)' && export AUTOCONF \
&& AUTOM4TE='$(am_AUTOM4TE)' && export AUTOM4TE \
&& AUTORECONF='$(am_AUTORECONF)' && export AUTORECONF \
&& AUTOHEADER='$(am_AUTOHEADER)' && export AUTOHEADER \
&& AUTOUPDATE='$(am_AUTOUPDATE)' && export AUTOUPDATE \
&& true; \
}
# We depend on configure.ac so that we regenerate the tarball
# whenever the Automake version changes.
$(srcdir)/%D%/amhello-1.0.tar.gz: $(amhello_sources) $(srcdir)/configure.ac
$(AM_V_GEN)tmp=amhello-output.tmp \
&& $(am__cd) $(srcdir)/%D%/amhello \
&& : Make our aclocal and automake available before system ones. \
&& $(setup_autotools_paths) \
&& ( \
{ $(AM_V_P) || exec 5>&2 >$$tmp 2>&1; } \
&& $(abs_builddir)/pre-inst-env $(am_AUTORECONF) -vfi \
&& ./configure \
&& $(MAKE) $(AM_MAKEFLAGS) distcheck \
&& $(MAKE) $(AM_MAKEFLAGS) distclean \
|| { \
if $(AM_V_P); then :; else \
echo "$@: recipe failed." >&5; \
echo "See file '`pwd`/$$tmp' for details" >&5; \
fi; \
exit 1; \
} \
) \
&& rm -rf $(amhello_configury) $$tmp \
&& mv -f amhello-1.0.tar.gz ..
# vim: ft=automake noet