Build system: make clean in utils/ghc-pkg should not delete inplace/lib/bin
authorThomas Miedema <thomasmiedema@gmail.com>
Thu, 28 May 2015 09:57:07 +0000 (11:57 +0200)
committerThomas Miedema <thomasmiedema@gmail.com>
Sat, 30 May 2015 15:03:00 +0000 (17:03 +0200)
commit0d20d769b2c2aadd62cdbf557f891e9a7bdbc510
tree2a2f25fb24d2fc4bbbaad9adf36cde2f74cbc413
parent577d315824440bba5e2f56d2eeba9bd8c5ee17e4
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
rules/build-prog.mk