about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-11-25T10·16+0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-11-25T10·16+0000
commited0a8dd71ad58d16c24d714ab2b9419285d1ffc0 (patch)
tree8845ac8bcfb70f81f1b6e3f2dc3b3a00047f0f9e
parentf980755766e7cd74c0c959eaa2a6d4655980e2ea (diff)
Add a function for instantiating Autoconf *.in files
-rw-r--r--corepkgs/Makefile.new2
-rw-r--r--mk/lib.mk8
-rw-r--r--mk/templates.mk8
3 files changed, 14 insertions, 4 deletions
diff --git a/corepkgs/Makefile.new b/corepkgs/Makefile.new
index d208478259..5b500a679a 100644
--- a/corepkgs/Makefile.new
+++ b/corepkgs/Makefile.new
@@ -1,3 +1,5 @@
 corepkgs_FILES = nar.nix buildenv.nix buildenv.pl unpack-channel.nix derivation.nix fetchurl.nix imported-drv-to-derivation.nix
 
 $(foreach file,config.nix $(corepkgs_FILES),$(eval $(call install-file-in,$(datadir)/nix/corepkgs,$(d)/$(file))))
+
+template_files += $(d)/config.nix
diff --git a/mk/lib.mk b/mk/lib.mk
index 212336cad2..b4a2fb265c 100644
--- a/mk/lib.mk
+++ b/mk/lib.mk
@@ -2,9 +2,7 @@ default: all
 
 
 # Include Autoconf variables.
-Makefile.config: Makefile.config.in
-	./config.status --file $@
-
+template_files += Makefile.config
 include Makefile.config
 
 
@@ -33,6 +31,7 @@ include mk/install.mk
 include mk/libraries.mk
 include mk/programs.mk
 include mk/patterns.mk
+include mk/templates.mk
 
 
 # Include all sub-Makefiles.
@@ -44,9 +43,10 @@ endef
 $(foreach mf, $(SUBS), $(eval $(call include-sub-makefile, $(mf))))
 
 
-# Instantiate libraries and programs.
+# Instantiate stuff.
 $(foreach lib, $(LIBS), $(eval $(call build-library,$(lib))))
 $(foreach prog, $(PROGRAMS), $(eval $(call build-program,$(prog))))
+$(foreach template, $(template_files), $(eval $(call instantiate-template,$(template))))
 
 
 all: $(programs_list)
diff --git a/mk/templates.mk b/mk/templates.mk
new file mode 100644
index 0000000000..3575b6d956
--- /dev/null
+++ b/mk/templates.mk
@@ -0,0 +1,8 @@
+# Create the file $(1) from $(1).in by running config.status (which
+# substitutes all ‘@var@’ variables set by the configure script).
+define instantiate-template =
+
+  $(1): $(1).in
+	./config.status --file $(1)
+
+endef