On 20 aug 2007, at 20.58, Thomas Hartman wrote:
> Take a look at the Cabal.cabal file, how this is solved, atm.
where is this, how can I take a look at it?
http://darcs.haskell.org/cabal/Cabal.cabal
See below for a little more explaination.
> The next release of Cabal (and the current HEAD) supports
conditionals
I couldn't install head, but since I'm running 6.7, do I already
have it?
Yes, you already have it. It should be in ghc/libraries/Cabal, or
contrib/Cabal
[EMAIL PROTECTED]:~/installs/cabal-head/cabal>runghc Setup.lhs
configure
Distribution/Simple/InstallDirs.hs:267:36:
Not in scope: `dropDrive'
[EMAIL PROTECTED]:~/installs/cabal-head/cabal>ls -l `which ghc`
lrwxrwxrwx 1 root root 31 2007-08-20 11:08 /usr/local/bin/ghc -> /
usr/local/bin/ghc-6.7.20070816
See Neil's reply.
[EMAIL PROTECTED]:~/installs/cabal-head/cabal>ghc-pkg list | grep -
i cabal
Cabal-1.1.7
> Please also note that this might not be the
> best way to use the new features; as I suggested in another thread,
> simulating base-1.0 on systems with base-2.0 is probably best
handled
> with a base.cabal file that imports base-2.0, old-time, etc. and re-
> exports all imported modules to get a "virtual" base-1.0.
I'm interested in seeing how this works, but I couldn't find that
other thread.
There is no formal proposal, yet, and I think the note was in a
recent thread on cabal-devel or libraries. Therefore, I won't
discuss it here. I can tell you the current solution, though.
Where is the documentation for the new functionality in cabal head,
or do you just have to read the source code for now?
Performing (in the Cabal directory) "make doc" should build the
haddocks and the latest user's guide. Performing "make users-guide"
should only build the user's guide, but since that requires some
tools which might be non-trivial to set up on some systems, I didn't
recommend it.
So here's the relevant part of how Cabal.cabal does it:
if flag(small_base) {
-- For ghc 6.2 you need to add 'unix' to Build-Depends:
Build-Depends: base, filepath, pretty, directory, old-time,
process, containers
} else {
Build-Depends: base, filepath
}
Note, that the format changed to a sectioned format, and that it is
quite likely that it will still change slightly before the release.
Consult the Cabal user's guide or (probably easier) take a look at
other .cabal files in the ghc tree. It's quite straightforward,
actually.
The interesting feature here is that unless overridden explicitly,
the flag "small_base" will be assigned to a value appropriate for the
system, thus, if you don't have any of the packages pretty,
directory, etc, it will automatically be assigned to false. (I think
it better should be base >= 2.0, though.)
(Also, the comment can now be replaced by an actual test like: if impl
(ghc <=6.2) ..)
HTH
/ Thomas
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe