# Copyright 2019 Ian Jackson
# SPDX-License-Identifier: LGPL-2.0-or-later
+# Usage:
+# include subdirmk/regen.mk
+# (probably in toplevel Subdir.sd.mk)
+#
+# Arranges that config.status is automatically rerun to update
+# makefiles from templates, whenever a template *.sd.mk or *.mk.in is
+# edited; and that autoconf is rerun if configure's inputs are edited.
+#
+# If you add includes to configure.ac, add them to CONFIGURE_ACS.
+#
+# Also provides a `realclean::' target at the toplevel which deletes
+# the autoconf output. This may be made into a recursive target
+# by mentioning &TARGETS_realclean in appropriate .sd.mk.
+
CONFIGURE ?= configure
-CONFIGURE_AC ?= $(CONFIGURE).ac
-CONFIG_STATUS ?= config.status
+CONFIGURE_AC ?= $(CONFIGURE).ac
+CONFIG_STATUS ?= config.status
-CONFIGURE_ACS += $(CONFIGURE_AC)
-CONFIGURE_ACS += subdirmk/subdirmk.ac
+CONFIGURE_ACS += $(CONFIGURE_AC)
+CONFIGURE_ACS += subdirmk/subdirmk.ac
$(top_srcdir)/$(CONFIGURE): $(addprefix $(top_srcdir)/,$(CONFIGURE_ACS))
cd $(top_srcdir) && autoconf
$(CONFIG_STATUS): $(top_srcdir)/$(CONFIGURE)
./$(CONFIG_STATUS) --recheck
-MAKEFILE_TEMPLATES += $(top_srcdir)/Perdir.sd.mk
+# Normally, generate will add all the inputs to MAKEFILE_TEMPLATES.
MAKEFILE_TEMPLATES += $(addprefix $(top_srcdir)/, $(addsuffix .in, \
@_SUBDIRMK_MAKEFILES@ \
))
-main.mk $(MAKEFILES): .makefiles.stamp ;
-.makefiles.stamp: \
+main.mk $(SUBDIRMK_MAKEFILES) $(CONFIG_STATUS_OUTPUTS): .makefiles.stamp
+ @:
+.makefiles.stamp: \
$(top_srcdir)/subdirmk/generate \
$(CONFIG_STATUS) \
$(MAKEFILE_TEMPLATES)
realclean:: clean
$(RM) config.status config.log
- $(RM) main.mk subdirmk/regen.mk $(MAKEFILES)
- $(RM) $(addsuffix Makefile,$(dir $(MAKEFILES)))
+ $(RM) main.mk $(SUBDIRMK_MAKEFILES) @_SUBDIRMK_MAKEFILES@
+ $(RM) $(addsuffix Makefile,$(dir $(SUBDIRMK_MAKEFILES)))
-include $(ALL_DEPFILES)