diff options
author | Thomas Miedema <thomasmiedema@gmail.com> | 2015-05-28 11:57:07 +0200 |
---|---|---|
committer | Thomas Miedema <thomasmiedema@gmail.com> | 2015-05-30 17:03:00 +0200 |
commit | 0d20d769b2c2aadd62cdbf557f891e9a7bdbc510 (patch) | |
tree | 2a2f25fb24d2fc4bbbaad9adf36cde2f74cbc413 /rules/build-prog.mk | |
parent | 577d315824440bba5e2f56d2eeba9bd8c5ee17e4 (diff) | |
download | haskell-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.mk | 2 |
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) |