From: Ian Jackson Date: Mon, 11 Nov 2019 01:46:10 +0000 (+0000) Subject: WIP X-Git-Tag: subdirmk/0.1~111 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?p=subdirmk.git;a=commitdiff_plain;h=03e85f8934e2a1b68970d762a53c6bd890dd65fc WIP --- diff --git a/Makefile.in b/Makefile.in index f7c845b..dcf875d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -92,19 +92,6 @@ $(call descend-subdirs, $(SUBDIRS)) ###-------------------------------------------------------------------------- ### Maintaining the build system. -$(srcdir)/configure: $(srcdir)/configure.ac - $(call v-tag,AUTOCONF)cd $(srcdir) && autoconf - -config.status: $(srcdir)/configure - $(call v-tag,CONFIG)./config.status --recheck - -Makefile: config.status $(srcdir)/Makefile.in \ - $(foreach d,$(ALL_SUBDIRS), $d/Makefile) - $(call v-tag,SUBST)./config.status Makefile -$(foreach d,$(ALL_SUBDIRS), \ - $(eval $d/Makefile: config.status $$(srcdir)/$d/Makefile.in; \ - $$(call v-tag,SUBST)./config.status $$@)) - ###-------------------------------------------------------------------------- ### More machinery. diff --git a/Subdir.mk.in b/Subdir.mk.in index e29c332..804880f 100644 --- a/Subdir.mk.in +++ b/Subdir.mk.in @@ -23,3 +23,14 @@ COMPILE ?= $(CC) -c -o$@ -MD $(DEFS) $(INCLUDES) $(CFLAGS) %.o: %.c $(COMPILE) $< +&^/configure: &^/configure.ac + cd &^ && autoconf + +config.status: &^/configure + ./config.status --recheck + +subdirs.mk: config.status &^/build-aux/subdirmk-setup + ./config.status $@ + +%/Subdir.mk: &^/%/Subdir.mk.in subdirs.mk + ./config.status $@ diff --git a/build-aux/subdirmk-setup b/build-aux/subdirmk-setup index 000417f..f781325 100755 --- a/build-aux/subdirmk-setup +++ b/build-aux/subdirmk-setup @@ -16,6 +16,8 @@ die unless @ARGV>=2; shift @ARGV; ($srcdir, @subdirs) = @ARGV; +s{/+$}{} foreach @subdirs; + our $root = [ '.', [ ] ]; # each node is [ 'relative subdir name', \@children ] @@ -77,6 +79,7 @@ sub write_makefile ($$) { my $cd = $depth ? join('/', ('..',) x $depth) : '.'; o <