chiark / gitweb /
WIP attempt to run config.status with selective tags
[subdirmk.git] / subdirmk / regen.mk.in
1
2 CONFIGURE       ?= configure
3 CONFIGURE_AC    ?= $(CONFIGURE).ac
4 CONFIG_STATUS   ?= config.status
5
6 CONFIGURE_ACS   += $(CONFIGURE_AC)
7 CONFIGURE_ACS   += subdirmk/subdirmk.ac
8
9 $(top_srcdir)/$(CONFIGURE): $(addprefix $(top_srcdir)/,$(CONFIGURE_ACS))
10         cd $(top_srcdir) && autoconf
11
12 $(CONFIG_STATUS): $(top_srcdir)/$(CONFIGURE)
13         ./$(CONFIG_STATUS) --recheck
14
15 MAKEFILES += subdirmk/regen.mk
16
17 main.mk $(MAKEFILES): .config.status.needed
18         ./$<
19 .INTERMEDIATE: .config.status.needed
20 .config.status.needed:                                          \
21                 $(top_srcdir)/subdirmk/generate                 \
22                 $(CONFIG_STATUS)                                \
23                 $(top_srcdir)/Perdir.mk.in                      \
24                 $(foreach m,$(MAKEFILES),$(top_srcdir)/$(m).in)
25         : $?
26         set -e; printf >$@.tmp "#!/bin/sh\nset -e\n%s %s"       \
27                 "./$(CONFIG_STATUS)"                            \
28                 "$(if   $(filter-out %.mk.in, $?),,             \
29                         $(patsubst %.mk.in,%.mk,$?))"   ;       \
30                 chmod +x $@.tmp; mv -f $@.tmp $@
31
32 realclean:: clean
33         $(RM) config.status config.log
34         $(RM) main.mk subdirmk/regen.mk $(MAKEFILES)
35         $(RM) $(addsuffix Makefile,$(dir $(MAKEFILES)))
36
37 -include $(ALL_DEPFILES)