On Jan 5, 2007, at 11:54 AM, Simon Marlow wrote:
Peter Tanski wrote:
On Jan 5, 2007, at 11:25 AM, Krasimir Angelov wrote:
but having different fields for CL and GCC will tell to Cabal to use
the cl-options field for Windows and cc-options for Linux. With
cc-flavour you will force Cabal to always use CL which is unavailable
under Linux.

I don't understand the scenario.  From what I imagined, cc-flavour
might specify the CL or GCC (or other) compiler and would be set
differently on different systems: this would be handled by the Cabal
'configure' step, so the choices in the end would be

cc-flavour:     cl      Win-GHC
cc-flavour:     gcc     MinGW/CygWin
cc-flavour:     gcc     Linux, OS X, etc.
...

Does this make sense?

The problem is that we want to write Cabal packages that work both with Windows and Linux, so there should be a way to have both flavours of options. Eg.

foo.cabal:
   ...
   cc-options: -DENABLE_WOOZLES
   cl-options: /D:ENABLE_WOOZLES

If you're forced to choose a ccflavour up front, you can't do this.

Good point. There really should be both cc-options/cl-options and cc- flavour; Cabal should check for consistency (i.e., cc-options with cc- flavour = cl --> error).

On the other hand, it's too much to expect everyone writing packages to come up with all the different flavours of C compiler options, so perhaps there should be automatic translation... ewww. But most packages don't have any cc-options, so it's not so bad.

The Cabal 'configure' step should handle the automatic translation... This is part of the problem for Win-GHC, since Cabal does not itself support Windows (it is dependent on the 'make' system). A possible solution would be to modify Cabal work with CMake and let CMake do the translation to make/nmake/Visual Studio project files. An alternative might be to use Perforce-- we have been over this before. The most aesthetic solution would be to build the capability right into Cabal but I simply don't have the time to take on yet another project like that right now. It *would* be a relatively easy project, since it is almost entirely in Haskell. (Sometime now I have to get GHC working commercially so I can use it to write programs with Haskell for money but being the perfectionist sort I would rather finish the job well for everybody than hack my own little solution!)

Cheers,
Pete

_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to