--- 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.