summaryrefslogtreecommitdiff
path: root/rules/build-prog.mk
diff options
context:
space:
mode:
authorThomas Miedema <thomasmiedema@gmail.com>2015-05-28 11:57:07 +0200
committerThomas Miedema <thomasmiedema@gmail.com>2015-05-30 17:03:00 +0200
commit0d20d769b2c2aadd62cdbf557f891e9a7bdbc510 (patch)
tree2a2f25fb24d2fc4bbbaad9adf36cde2f74cbc413 /rules/build-prog.mk
parent577d315824440bba5e2f56d2eeba9bd8c5ee17e4 (diff)
downloadhaskell-0d20d769b2c2aadd62cdbf557f891e9a7bdbc510.tar.gz
Build system: make clean in utils/ghc-pkg should not delete inplace/lib/bin
Make sure $1_$2_PROG always gets assigned a value, even when cleaning. The problem with not setting the variable becomes apparent when looking at the following two lines of code: ``` $1_$2_INPLACE = $$(INPLACE_LIB)/bin/$$($1_$2_PROG) $(call clean-target,$1,$2_inplace,$$($1_$2_INPLACE)) ``` So running `make clean` in for example `utils/ghc-pkg` deletes `inplace/lib/bin/` instead of `inplace/lib/bin/ghc-pkg`. The offending code was introduced in commit 2b85372ca18115bb1d6363256fcea6f54e415bed. There is one small implication. When cleaning before configure, the variable $1_$2_PROG will now be assigned a slightly wrong value, because exeext$3 isn't known yet. But I think that's ok, as no files have been build yet, so it will just try to delete a slighly different nonexistent file. [skip ci] Differential Revision: https://phabricator.haskell.org/D916
Diffstat (limited to 'rules/build-prog.mk')
-rw-r--r--rules/build-prog.mk2
1 files changed, 1 insertions, 1 deletions
diff --git a/rules/build-prog.mk b/rules/build-prog.mk
index b32a7a0e6e..10d31c5205 100644
--- a/rules/build-prog.mk
+++ b/rules/build-prog.mk
@@ -29,8 +29,8 @@ endif
ifneq "$$($1_$2_PROG)" ""
$$(error $1_$2_PROG is set)
endif
-$1_$2_PROG = $$($1_$2_PROGNAME)$$(exeext$3)
endif
+$1_$2_PROG = $$($1_$2_PROGNAME)$$(exeext$3)
ifeq "$$(findstring $3,0 1 2)" ""
$$(error $1/$2: stage argument to build-prog should be 0, 1, or 2)