[Haskell-cafe] Re: ghc6.8: hiding uninstalled package?

Ben Franksen ben.franksen at online.de
Tue Jan 22 14:57:32 EST 2008


Magnus Therning wrote:
> I stumbled on this behaviour because I was writing a
> makefile
> for my unit/quickcheck tests.  I need to make sure that the correct module
> is used, hence I need to hide it if it's installed.  I ended up with the
> following in order to work around the issue:
> 
> ifeq (,$(shell ghc-pkg list dataenc | grep dataenc))
> GHCOPTS = -fhpc -isrc
> else
> GHCOPTS = -fhpc -hide-package dataenc -isrc
> endif
> 
> % : %.hs
>         ghc --make $(GHCOPTS) $<
> 
> Is there a better way to do it?

The 'ghc-pkg list dataenc | grep dataenc' cannot be avoided AFAIK. Using
some make-fu you can avoid the conditional, though, thus making it a bit
more generic:

PACKAGES_TO_HIDE := bla mtl blub base

EXISTING_PACKAGES_TO_HIDE :=\
 $(foreach p,$(PACKAGES_TO_HIDE), $(shell ghc-pkg list $p | grep $p))

GHC_HIDE_PACKAGE_OPTS = $(EXISTING_PACKAGES_TO_HIDE:%=-hide-package %)

GHCOPTS = -fhpc -isrc $(GHC_HIDE_PACKAGE_OPTS)

Cheers
Ben



More information about the Haskell-Cafe mailing list