-.PHONY: reconfig
-reconfig:
- @$(MAKE) $(MFLAGS) -C src reconfig
- @$(MAKE) configure
- @$(MAKE) src/include/autoconf.h.in
-
-configure: configure.in aclocal.m4
- $(AUTOCONF)
-
-.PHONY: src/include/autoconf.h.in
-src/include/autoconf.h.in:
- $(AUTOHEADER)
+CONFIGURE_IN_FILES := $(shell find . -name configure.in -print)
+CONFIGURE_FILES := $(patsubst %.in,%,$(CONFIGURE_IN_FILES))
+
+# Configure files depend on "in" files, and on the top-level macro files
+# If there are headers, run auto-header, too.
+src/%configure: src/%configure.in acinclude.m4 aclocal.m4
+ @echo AUTOCONF $@
+ @cd $(dir $@) && $(AUTOCONF) -I $(top_builddir) -I $(top_builddir)/m4 -I ./m4
+ @if grep AC_CONFIG_HEADERS $@ >/dev/null; then\
+ echo AUTOHEADER $@ \
+ cd $(dir $@) && $(AUTOHEADER); \
+ fi
+
+# "%configure" doesn't match "configure"
+configure: configure.in $(wildcard ac*.m4)
+ @echo AUTOCONF $@
+ @$(AUTOCONF)
+
+src/include/autoconf.h.in: configure.in
+ @echo AUTOHEADER $@
+ @$(AUTOHEADER)
+
+reconfig: $(CONFIGURE_FILES) src/include/autoconf.h.in