Skip to content
Snippets Groups Projects
Commit 0d20d769 authored by Thomas Miedema's avatar Thomas Miedema
Browse files

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
2b85372c.

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
parent 577d3158
No related branches found
No related tags found
No related merge requests found
......@@ -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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment