Blame GNUmakefile

Packit Service 4684c1
# Having a separate GNUmakefile lets me 'include' the dynamically
Packit Service 4684c1
# generated rules created via cfg.mk (package-local configuration)
Packit Service 4684c1
# as well as maint.mk (generic maintainer rules).
Packit Service 4684c1
# This makefile is used only if you run GNU Make.
Packit Service 4684c1
# It is necessary if you want to build targets usually of interest
Packit Service 4684c1
# only to the maintainer.
Packit Service 4684c1
Packit Service 4684c1
# Copyright (C) 2001, 2003, 2006-2020 Free Software Foundation, Inc.
Packit Service 4684c1
Packit Service 4684c1
# This program is free software: you can redistribute it and/or modify
Packit Service 4684c1
# it under the terms of the GNU General Public License as published by
Packit Service 4684c1
# the Free Software Foundation, either version 3 of the License, or
Packit Service 4684c1
# (at your option) any later version.
Packit Service 4684c1
Packit Service 4684c1
# This program is distributed in the hope that it will be useful,
Packit Service 4684c1
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 4684c1
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 4684c1
# GNU General Public License for more details.
Packit Service 4684c1
Packit Service 4684c1
# You should have received a copy of the GNU General Public License
Packit Service 4684c1
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
Packit Service 4684c1
Packit Service 4684c1
# If the user runs GNU make but has not yet run ./configure,
Packit Service 4684c1
# give them a diagnostic.
Packit Service 4684c1
_gl-Makefile := $(wildcard [M]akefile)
Packit Service 4684c1
ifneq ($(_gl-Makefile),)
Packit Service 4684c1
Packit Service 4684c1
# Make tar archive easier to reproduce.
Packit Service 4684c1
export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
Packit Service 4684c1
Packit Service 4684c1
# Allow the user to add to this in the Makefile.
Packit Service 4684c1
ALL_RECURSIVE_TARGETS =
Packit Service 4684c1
Packit Service 4684c1
include Makefile
Packit Service 4684c1
Packit Service 4684c1
# Some projects override e.g., _autoreconf here.
Packit Service 4684c1
-include $(srcdir)/cfg.mk
Packit Service 4684c1
Packit Service 4684c1
# Allow cfg.mk to override these.
Packit Service 4684c1
_build-aux ?= build-aux
Packit Service 4684c1
_autoreconf ?= autoreconf -v
Packit Service 4684c1
Packit Service 4684c1
include $(srcdir)/maint.mk
Packit Service 4684c1
Packit Service 4684c1
# Ensure that $(VERSION) is up to date for dist-related targets, but not
Packit Service 4684c1
# for others: rerunning autoreconf and recompiling everything isn't cheap.
Packit Service 4684c1
_have-git-version-gen := \
Packit Service 4684c1
  $(shell test -f $(srcdir)/$(_build-aux)/git-version-gen && echo yes)
Packit Service 4684c1
ifeq ($(_have-git-version-gen)0,yes$(MAKELEVEL))
Packit Service 4684c1
  _is-dist-target ?= $(filter-out %clean, \
Packit Service 4684c1
    $(filter maintainer-% dist% alpha beta stable,$(MAKECMDGOALS)))
Packit Service 4684c1
  _is-install-target ?= $(filter-out %check, $(filter install%,$(MAKECMDGOALS)))
Packit Service 4684c1
  ifneq (,$(_is-dist-target)$(_is-install-target))
Packit Service 4684c1
    _curr-ver := $(shell cd $(srcdir)				\
Packit Service 4684c1
                   && $(_build-aux)/git-version-gen		\
Packit Service 4684c1
                         .tarball-version			\
Packit Service 4684c1
                         $(git-version-gen-tag-sed-script))
Packit Service 4684c1
    ifneq ($(_curr-ver),$(VERSION))
Packit Service 4684c1
      ifeq ($(_curr-ver),UNKNOWN)
Packit Service 4684c1
        $(info WARNING: unable to verify if $(VERSION) is the correct version)
Packit Service 4684c1
      else
Packit Service 4684c1
        ifneq (,$(_is-install-target))
Packit Service 4684c1
          # GNU Coding Standards state that 'make install' should not cause
Packit Service 4684c1
          # recompilation after 'make all'.  But as long as changing the version
Packit Service 4684c1
          # string alters config.h, the cost of having 'make all' always have an
Packit Service 4684c1
          # up-to-date version is prohibitive.  So, as a compromise, we merely
Packit Service 4684c1
          # warn when installing a version string that is out of date; the user
Packit Service 4684c1
          # should run 'autoreconf' (or something like 'make distcheck') to
Packit Service 4684c1
          # fix the version, 'make all' to propagate it, then 'make install'.
Packit Service 4684c1
          $(info WARNING: version string $(VERSION) is out of date;)
Packit Service 4684c1
          $(info run '$(MAKE) _version' to fix it)
Packit Service 4684c1
        else
Packit Service 4684c1
          $(info INFO: running autoreconf for new version string: $(_curr-ver))
Packit Service 4684c1
GNUmakefile: _version
Packit Service 4684c1
	touch GNUmakefile
Packit Service 4684c1
        endif
Packit Service 4684c1
      endif
Packit Service 4684c1
    endif
Packit Service 4684c1
  endif
Packit Service 4684c1
endif
Packit Service 4684c1
Packit Service 4684c1
.PHONY: _version
Packit Service 4684c1
_version:
Packit Service 4684c1
	cd $(srcdir) && rm -rf autom4te.cache .version && $(_autoreconf)
Packit Service 4684c1
	$(MAKE) $(AM_MAKEFLAGS) Makefile
Packit Service 4684c1
Packit Service 4684c1
else
Packit Service 4684c1
Packit Service 4684c1
.DEFAULT_GOAL := abort-due-to-no-makefile
Packit Service 4684c1
srcdir = .
Packit Service 4684c1
Packit Service 4684c1
# The package can override .DEFAULT_GOAL to run actions like autoreconf.
Packit Service 4684c1
-include ./cfg.mk
Packit Service 4684c1
Packit Service 4684c1
# Allow cfg.mk to override these.
Packit Service 4684c1
_build-aux ?= build-aux
Packit Service 4684c1
_autoreconf ?= autoreconf -v
Packit Service 4684c1
Packit Service 4684c1
include ./maint.mk
Packit Service 4684c1
Packit Service 4684c1
ifeq ($(.DEFAULT_GOAL),abort-due-to-no-makefile)
Packit Service 4684c1
$(MAKECMDGOALS): abort-due-to-no-makefile
Packit Service 4684c1
endif
Packit Service 4684c1
Packit Service 4684c1
abort-due-to-no-makefile:
Packit Service 4684c1
	@echo There seems to be no Makefile in this directory.   1>&2
Packit Service 4684c1
	@echo "You must run ./configure before running 'make'." 1>&2
Packit Service 4684c1
	@exit 1
Packit Service 4684c1
Packit Service 4684c1
endif
Packit Service 4684c1
Packit Service 4684c1
# Tell version 3.79 and up of GNU make to not build goals in this
Packit Service 4684c1
# directory in parallel, in case someone tries to build multiple
Packit Service 4684c1
# targets, and one of them can cause a recursive target to be invoked.
Packit Service 4684c1
Packit Service 4684c1
# Only set this if Automake doesn't provide it.
Packit Service 4684c1
AM_RECURSIVE_TARGETS ?= $(RECURSIVE_TARGETS:-recursive=) \
Packit Service 4684c1
  $(RECURSIVE_CLEAN_TARGETS:-recursive=) \
Packit Service 4684c1
  dist distcheck tags ctags
Packit Service 4684c1
Packit Service 4684c1
ALL_RECURSIVE_TARGETS += $(AM_RECURSIVE_TARGETS)
Packit Service 4684c1
Packit Service 4684c1
ifneq ($(word 2, $(MAKECMDGOALS)), )
Packit Service 4684c1
ifneq ($(filter $(ALL_RECURSIVE_TARGETS), $(MAKECMDGOALS)), )
Packit Service 4684c1
.NOTPARALLEL:
Packit Service 4684c1
endif
Packit Service 4684c1
endif