Peter Tanski wrote:
On Jan 4, 2007, at 4:53 AM, Simon Marlow wrote:
Peter Tanski wrote:
For GHC-default includes and link-libraries, GHC might map the
include-opt or link-opt for the -pgm over them with additional
options, such as mapping str1 or str2 from -opt_dlink str1 and -
opt_dincl str2 over the defaults. The order of the options might
be preserved by maintaining the order of the options used in the
command line.
I don't really mind whether we allow a replacement for the string "-
I" to be specified by an option such as -opt-dinc, or whether we
simply build into GHC multiple "flavours" of the tools and have an
option to select which one is being used. For example, we might have
-ccflavour gcc
-ccflavour cl
to select a different command-line syntax when GHC invokes the C
compiler. If the syntaxes are very different, eg. requiring
different ordering of options, then this method is to be preferred.
On the other hand, if the differences are minor (just renaming
options) then the first method might be better.
For GCC and CL, the differences can be fairly major (although the fact
that CL recognises command line options with a '-' or a '/' is very
convenient). -ccflavour is a great idea.
It might be possible, even preferable, to keep the program names
and default options from Config.hs by storing them in a
configuration file as "Simon" suggested storing them in
package.conf in a comment- note in SysTools.hs. For Win-GHC (as I
am calling Windows-native GHC), it would probably be more
"standard" to store them in the Registry; for other systems they
might be stored in package.conf or a specialised initialisation file.
The registry is a really bad place to keep configuration information
- it runs into trouble when you want to have multiple
installations. A configuration file in a known place relative to
the binary is much better, which is what the package.conf file is.
There are various ways to distinguish things in the Registry but that
involves yet more work and package.conf is also much easier for making
small, manual adjustments. So, package.conf it is; cc-flavour/
cc-flavor (accept both spellings) should be added to data BuildInfo in
Distribution.PackageDescription.
I'm probably being a bit stupid (no coffee yet this morning!), but I can't
immediately see why a new field needs to be added to BuildInfo. Could you explain?
I can imagine that we might need 'cl-options' in addition to 'cc-options',
though.
The basic setup for Win-GHC shouldn't take too long to complete. I was
close to done before Christmas, although I still don't know whether to
scrap MkDLL or modify it to use link.exe and .def files as Esa
suggested. The story is in the source code, somewhere.
Modifying it to use the MS tools seems like the right thing to do. This isn't
on the critical path, though.
Cheers,
Simon
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc