In that case, make copied the sources.mk from $srcdir, but unless it
existed already, the peculiar workings of VPATH did us in: make
searched for the target, found it in $srcdir, and the dependency
became circular.
Fix by keeping sources.mk in $srcdir always. We can build it there,
because its contents depends only on git state, not on anything in the
build tree. This avoids the need to copy sources.mk alltogether.
# See `Cleanliness' below
mk := subjects.mk
ifeq ($(revctrl),git)
# See `Cleanliness' below
mk := subjects.mk
ifeq ($(revctrl),git)
-mk += sources.mk
-else
-ifneq ($(srcdir),.)
-mk += sources.mk
-endif
+mk += $(srcdir)/sources.mk
endif
# Generated by Autoconf, not distributed:
ac := config.h config.log config.status info.html info.nr lib stamp-h
endif
# Generated by Autoconf, not distributed:
ac := config.h config.log config.status info.html info.nr lib stamp-h
# Removed by distclean:
distclean := $(ac) $(mk)
# Distributed by dist-source from $(srcdir)
# Removed by distclean:
distclean := $(ac) $(mk)
# Distributed by dist-source from $(srcdir)
-src_distgen := $(acdist)
-# Distributed by dist-source from .
-bld_distgen := sources.mk
+src_distgen := $(acdist) sources.mk
# Distributed by dist-client from $(srcdir)/src/client
cli_distgen := $(acdistcli)
# Distributed by dist-client from $(srcdir)/src/client
cli_distgen := $(acdistcli)
-# Note: $(srcdir)/sources.mk is only used when the source tree came
-# from a tarball rather than git. The following rules create a
-# sources.mk to put into the tarball. It is not used otherwise in
-# this build.
-
+# Note: $(srcdir)/sources.mk is only included when the source tree
+# came from a tarball rather than git. The following rule creates a
+# it only for putting it into the tarball. It is not used otherwise
+# in this build.
-.PHONY: sources.mk
-sources.mk:
- echo "src := $(src)" >sources.mk
-else
-ifneq ($(srcdir),.)
-sources.mk: $(srcdir)/sources.mk
- cp -f $^ $@
-endif
+.PHONY: $(srcdir)/sources.mk
+$(srcdir)/sources.mk:
+ echo "src := $(src)" >$@
endif
# Distributing
.PHONY: dist-source
endif
# Distributing
.PHONY: dist-source
-dist-source: $(src_distgen) $(bld_distgen)
- $(tarball) $(TARNAME)-$(VERSION) $(bld_distgen) -C $(srcdir) $(src_distgen) $(src)
+dist-source: $(src_distgen)
+ $(tarball) $(TARNAME)-$(VERSION) -C $(srcdir) $(src_distgen) $(src)
.PHONY: dist-client
dist-client: $(cli_distgen)
.PHONY: dist-client
dist-client: $(cli_distgen)