--- old-cabal/doc/Cabal.xml 2005-08-19 22:11:45.000000000 -0700
+++ new-cabal/doc/Cabal.xml 2005-08-19 22:36:54.000000000 -0700
@@ -842,14 +842,33 @@
If the package root directory contains a file called
configure, the configure step will
- run that. This configure program may
+ run that. This configure program may
be a script produced by the autoconf
- system, or may be hand-written. This program typically
+ system, or may be hand-written. This program typically
discovers information about the system and records it for
- later steps, e.g. by generating system-dependent header files
- for inclusion in C source files and preprocessed Haskell
- source files. (Clearly this won't work for Windows without
- MSYS or Cygwin: other ideas are needed.)
+ later steps, e.g. by generating system-dependent header
+ files for inclusion in C source files and preprocessed
+ Haskell source files. (Clearly this won't work for Windows
+ without MSYS or Cygwin: other ideas are needed.) N.B.:
+ Although defaultMain doesn't always
+ check for a file named configure, if
+ one such file does exist, it should always be run by
+ Setup.hs rather than vice-versa. So
+ if you are a generic packaging tool, and you see a file
+ named Setup.hs or
+ Setup.lhs as well as a file named
+ configure, then you should invoke
+ Cabal via Setup.[l]hs and not
+ autoconf via
+ configure. Likewise, if you are a
+ programmer putting together a Cabal package, and need to
+ do autoconf configuration, you should
+ do it through Cabal using e.g.
+ defaultMainWithHooks, and ask the user
+ to invoke everything through
+ Setup.lhs - rather than telling the
+ user to run ./configure first and, say,
+ using that to generate a Cabal file.