summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Miedema <thomasmiedema@gmail.com>2015-07-10 18:38:02 +0200
committerThomas Miedema <thomasmiedema@gmail.com>2015-07-13 21:07:42 +0200
commitec197d390e18a6cfaa420009f5c5f143237f5a9f (patch)
treeb4b12c0a364cf4f6b50597d8044fc5347c2c1add
parent2e52057adaab6d29c55a87fa9e52cdae4b9e3182 (diff)
downloadhaskell-ec197d390e18a6cfaa420009f5c5f143237f5a9f.tar.gz
Build system: add `make show!` command (#7810)
A normal `make show` starts a build of the ghc-stage1 compiler, to create package-data.mk files. This version doesn't read those, so it will work right after ./configure. Differential Revision: https://phabricator.haskell.org/D1064
-rw-r--r--MAKEHELP.md5
-rw-r--r--Makefile5
-rw-r--r--mk/sub-makefile.mk4
3 files changed, 12 insertions, 2 deletions
diff --git a/MAKEHELP.md b/MAKEHELP.md
index ff0e4340a5..3b58292600 100644
--- a/MAKEHELP.md
+++ b/MAKEHELP.md
@@ -36,6 +36,11 @@ Common commands:
Displays the value of make variable <var>
+ - `make show! VALUE=<var>`
+
+ Same as `make show`, but works right after ./configure (it skips reading
+ package-data.mk files).
+
- make clean
- make distclean
- make maintainer-clean
diff --git a/Makefile b/Makefile
index c08ccc5154..b1b1742eb3 100644
--- a/Makefile
+++ b/Makefile
@@ -78,6 +78,7 @@ REALGOALS=$(filter-out \
distclean \
maintainer-clean \
show \
+ show! \
echo \
help \
test \
@@ -142,6 +143,10 @@ $(filter clean_%, $(MAKECMDGOALS)) : clean_% :
bootstrapping-files show echo:
$(MAKE) --no-print-directory -f ghc.mk $@
+.PHONY: show!
+show!:
+ $(MAKE) --no-print-directory -f ghc.mk show NO_INCLUDE_PKGDATA=YES
+
ifeq "$(darwin_TARGET_OS)" "1"
.PHONY: framework-pkg
framework-pkg:
diff --git a/mk/sub-makefile.mk b/mk/sub-makefile.mk
index 12f47f0f45..73d98c992c 100644
--- a/mk/sub-makefile.mk
+++ b/mk/sub-makefile.mk
@@ -42,7 +42,7 @@ endif
.NOTPARALLEL:
STD_TARGETS = all clean distclean maintainer_clean install html ps pdf
-DIRECTORY_INDEPENDENT_TARGETS = show
+DIRECTORY_INDEPENDENT_TARGETS = show show!
# The + tells make that we're recursively invoking make, otherwise 'make -j2'
# goes wrong.
@@ -52,7 +52,7 @@ $(STD_TARGETS):
$(DIRECTORY_INDEPENDENT_TARGETS):
+$(TOPMAKE) $@ $(EXTRA_MAKE_OPTS)
-OTHERTARGETS=$(filter-out fast help show $(STD_TARGETS) $(SPEC_TARGETS),$(MAKECMDGOALS))
+OTHERTARGETS=$(filter-out fast help $(DIRECTORY_INDEPENDENT_TARGETS) $(STD_TARGETS) $(SPEC_TARGETS),$(MAKECMDGOALS))
.PHONY: $(OTHERTARGETS)
$(OTHERTARGETS):
+$(TOPMAKE) $(dir)/$@ $(EXTRA_MAKE_OPTS)