state of the cabal (preprocessors)
ijones at syntaxpolice.org
Mon Oct 18 23:33:38 EDT 2004
Just thought I'd give an update... Cabal now does something  for
preprocessors, though it's perhaps not perfect. I need a real test
case, a smallish program that uses a preprocessor (except for cpp,
which isn't yet supported). Any suggestions? Something that uses
Once I have such an example, and get cpp working nicely, then I'll
Here's the cabal web page:
You can of course see what I have now by using darcs to check out the
repository. On Debian simply:
% apt-get install darcs
% darcs get http://cvs.haskell.org/darcs/cabal
 Foo.y is a happy grammer which, when processed, will produce Foo.hs.
The description file should include the module Foo.
./setup sdist (source distribution): Include Foo.y, not Foo.hs. Maybe
we could add a flag to include Foo.hs as well. This makes sense for
some preprocessors and not for others, but I'm wary of including too
much preprocessor-specific behavior.
./setup clean: Removes Foo.hs if Foo.y exists.
./setup build: Preprocesses Foo.y to Create Foo.hs before any
The issue with cpp is that we can't go by extensions as we do with the
rest of the preprocessors... There is a function in HMake which tests
to see if a file needs to be cpp'd, so we can employ that. I think
we'll probably have to just treat cpp a little differently from the
others, unfortunitely, and I haven't gotten around to it.
More information about the Libraries