<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >Distribution.Simple</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_Distribution-Simple.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >Cabal-1.6.0.3: A framework for packaging Haskell software</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >Distribution.Simple</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >portable</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >cabal-devel@haskell.org</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><B >Contents</B ></TD ></TR ><TR ><TD ><DL ><DT ><A HREF="#1" >Simple interface </A ></DT ><DT ><A HREF="#2" >Customization </A ></DT ><DD ><DL ><DT ><A HREF="#3" >Standard sets of hooks </A ></DT ><DT ><A HREF="#4" >Utils </A ></DT ></DL ></DD ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" ><P >This is the command line front end to the Simple build system. When given the parsed command-line args and package information, is able to perform basic commands like configure, build, install, register, etc. </P ><P >This module exports the main functions that Setup.hs scripts use. It re-exports the <TT ><A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A ></TT > type, the standard entry points like <TT ><A HREF="Distribution-Simple.html#v%3AdefaultMain" >defaultMain</A ></TT > and <TT ><A HREF="Distribution-Simple.html#v%3AdefaultMainWithHooks" >defaultMainWithHooks</A ></TT > and the predefined sets of <TT ><A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A ></TT > that custom <TT >Setup.hs</TT > scripts can extend to add their own behaviour. </P ><P >This module isn't called "Simple" because it's simple. Far from it. It's called "Simple" because it does complicated things to simple software. </P ><P >The original idea was that there could be different build systems that all presented the same compatible command line interfaces. There is still a <A HREF="Distribution-Make.html" >Distribution.Make</A > system but in practice no packages use it. </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >module <A HREF="Distribution-Package.html" >Distribution.Package</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" >module <A HREF="Distribution-Version.html" >Distribution.Version</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" >module <A HREF="Distribution-License.html" >Distribution.License</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" >module <A HREF="Distribution-Simple-Compiler.html" >Distribution.Simple.Compiler</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" >module <A HREF="Language-Haskell-Extension.html" >Language.Haskell.Extension</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdefaultMain" >defaultMain</A > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdefaultMainNoRead" >defaultMainNoRead</A > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdefaultMainArgs" >defaultMainArgs</A > :: [<A HREF="../base/Data-Char.html#t%3AString" >String</A >] -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AUserHooks" >UserHooks</A > = <A HREF="#v%3AUserHooks" >UserHooks</A > {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="recfield" ><A HREF="#v%3ArunTests" >runTests</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AreadDesc" >readDesc</A > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > (<A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A >)</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AhookedPreProcessors" >hookedPreProcessors</A > :: [<A HREF="Distribution-Simple-PreProcess.html#t%3APPSuffixHandler" >PPSuffixHandler</A >]</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AhookedPrograms" >hookedPrograms</A > :: [<A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A >]</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApreConf" >preConf</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AConfigFlags" >ConfigFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AconfHook" >confHook</A > :: (<A HREF="../base/Data-Either.html#t%3AEither" >Either</A > <A HREF="Distribution-PackageDescription.html#t%3AGenericPackageDescription" >GenericPackageDescription</A > <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A >, <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A >) -> <A HREF="Distribution-Simple-Setup.html#t%3AConfigFlags" >ConfigFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApostConf" >postConf</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AConfigFlags" >ConfigFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApreBuild" >preBuild</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ABuildFlags" >BuildFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AbuildHook" >buildHook</A > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ABuildFlags" >BuildFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApostBuild" >postBuild</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ABuildFlags" >BuildFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApreMakefile" >preMakefile</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AMakefileFlags" >MakefileFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AmakefileHook" >makefileHook</A > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AMakefileFlags" >MakefileFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApostMakefile" >postMakefile</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AMakefileFlags" >MakefileFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApreClean" >preClean</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ACleanFlags" >CleanFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AcleanHook" >cleanHook</A > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ACleanFlags" >CleanFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApostClean" >postClean</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ACleanFlags" >CleanFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApreCopy" >preCopy</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ACopyFlags" >CopyFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AcopyHook" >copyHook</A > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ACopyFlags" >CopyFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApostCopy" >postCopy</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ACopyFlags" >CopyFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApreInst" >preInst</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AInstallFlags" >InstallFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AinstHook" >instHook</A > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AInstallFlags" >InstallFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApostInst" >postInst</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AInstallFlags" >InstallFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApreSDist" >preSDist</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ASDistFlags" >SDistFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AsDistHook" >sDistHook</A > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ASDistFlags" >SDistFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApostSDist" >postSDist</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ASDistFlags" >SDistFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApreReg" >preReg</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ARegisterFlags" >RegisterFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AregHook" >regHook</A > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ARegisterFlags" >RegisterFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApostReg" >postReg</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ARegisterFlags" >RegisterFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApreUnreg" >preUnreg</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ARegisterFlags" >RegisterFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AunregHook" >unregHook</A > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ARegisterFlags" >RegisterFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApostUnreg" >postUnreg</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ARegisterFlags" >RegisterFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApreHscolour" >preHscolour</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AHscolourFlags" >HscolourFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AhscolourHook" >hscolourHook</A > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AHscolourFlags" >HscolourFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApostHscolour" >postHscolour</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AHscolourFlags" >HscolourFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApreHaddock" >preHaddock</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AHaddockFlags" >HaddockFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AhaddockHook" >haddockHook</A > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AHaddockFlags" >HaddockFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3ApostHaddock" >postHaddock</A > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AHaddockFlags" >HaddockFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ></TABLE >}</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AArgs" >Args</A > = [<A HREF="../base/Data-Char.html#t%3AString" >String</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdefaultMainWithHooks" >defaultMainWithHooks</A > :: <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdefaultMainWithHooksArgs" >defaultMainWithHooksArgs</A > :: <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> [<A HREF="../base/Data-Char.html#t%3AString" >String</A >] -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsimpleUserHooks" >simpleUserHooks</A > :: <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AautoconfUserHooks" >autoconfUserHooks</A > :: <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdefaultUserHooks" >defaultUserHooks</A > :: <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AemptyUserHooks" >emptyUserHooks</A > :: <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdefaultHookedPackageDesc" >defaultHookedPackageDesc</A > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > (<A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A >)</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Documentation</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" >module <A HREF="Distribution-Package.html" >Distribution.Package</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" >module <A HREF="Distribution-Version.html" >Distribution.Version</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" >module <A HREF="Distribution-License.html" >Distribution.License</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" >module <A HREF="Distribution-Simple-Compiler.html" >Distribution.Simple.Compiler</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" >module <A HREF="Language-Haskell-Extension.html" >Language.Haskell.Extension</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="1" ><A NAME="1" >Simple interface </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:defaultMain" ><A NAME="v%3AdefaultMain" ></A ></A ><B >defaultMain</B > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" >A simple implementation of <TT >main</TT > for a Cabal setup script. It reads the package description file using IO, and performs the action specified on the command line. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:defaultMainNoRead" ><A NAME="v%3AdefaultMainNoRead" ></A ></A ><B >defaultMainNoRead</B > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" >Like <TT ><A HREF="Distribution-Simple.html#v%3AdefaultMain" >defaultMain</A ></TT >, but accepts the package description as input rather than using IO to read it. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:defaultMainArgs" ><A NAME="v%3AdefaultMainArgs" ></A ></A ><B >defaultMainArgs</B > :: [<A HREF="../base/Data-Char.html#t%3AString" >String</A >] -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" >A version of <TT ><A HREF="Distribution-Simple.html#v%3AdefaultMain" >defaultMain</A ></TT > that is passed the command line arguments, rather than getting them from the environment. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="2" ><A NAME="2" >Customization </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:UserHooks" ><A NAME="t%3AUserHooks" ></A ></A ><B >UserHooks</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" ><P >Hooks allow authors to add specific functionality before and after a command is run, and also to specify additional preprocessors. </P ><UL ><LI > WARNING: The hooks interface is under rather constant flux as we try to understand users needs. Setup files that depend on this interface may break in future releases. </LI ></UL ></TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:UserHooks" ><A NAME="v%3AUserHooks" ></A ></A ><B >UserHooks</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="body" COLSPAN="2" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:runTests" ><A NAME="v%3ArunTests" ></A ></A ><B >runTests</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Used for <TT >./setup test</TT > </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:readDesc" ><A NAME="v%3AreadDesc" ></A ></A ><B >readDesc</B > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > (<A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A >)</TD ><TD CLASS="rdoc" >Read the description file </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:hookedPreProcessors" ><A NAME="v%3AhookedPreProcessors" ></A ></A ><B >hookedPreProcessors</B > :: [<A HREF="Distribution-Simple-PreProcess.html#t%3APPSuffixHandler" >PPSuffixHandler</A >]</TD ><TD CLASS="rdoc" >Custom preprocessors in addition to and overriding knownSuffixHandlers. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:hookedPrograms" ><A NAME="v%3AhookedPrograms" ></A ></A ><B >hookedPrograms</B > :: [<A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A >]</TD ><TD CLASS="rdoc" >These programs are detected at configure time. Arguments for them are added to the configure command. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:preConf" ><A NAME="v%3ApreConf" ></A ></A ><B >preConf</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AConfigFlags" >ConfigFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ><TD CLASS="rdoc" >Hook to run before configure command </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:confHook" ><A NAME="v%3AconfHook" ></A ></A ><B >confHook</B > :: (<A HREF="../base/Data-Either.html#t%3AEither" >Either</A > <A HREF="Distribution-PackageDescription.html#t%3AGenericPackageDescription" >GenericPackageDescription</A > <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A >, <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A >) -> <A HREF="Distribution-Simple-Setup.html#t%3AConfigFlags" >ConfigFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A ></TD ><TD CLASS="rdoc" >Over-ride this hook to get different behavior during configure. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:postConf" ><A NAME="v%3ApostConf" ></A ></A ><B >postConf</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AConfigFlags" >ConfigFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Hook to run after configure command </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:preBuild" ><A NAME="v%3ApreBuild" ></A ></A ><B >preBuild</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ABuildFlags" >BuildFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ><TD CLASS="rdoc" >Hook to run before build command. Second arg indicates verbosity level. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:buildHook" ><A NAME="v%3AbuildHook" ></A ></A ><B >buildHook</B > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ABuildFlags" >BuildFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Over-ride this hook to gbet different behavior during build. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:postBuild" ><A NAME="v%3ApostBuild" ></A ></A ><B >postBuild</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ABuildFlags" >BuildFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Hook to run after build command. Second arg indicates verbosity level. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:preMakefile" ><A NAME="v%3ApreMakefile" ></A ></A ><B >preMakefile</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AMakefileFlags" >MakefileFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ><TD CLASS="rdoc" >Hook to run before makefile command. Second arg indicates verbosity level. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:makefileHook" ><A NAME="v%3AmakefileHook" ></A ></A ><B >makefileHook</B > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AMakefileFlags" >MakefileFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Over-ride this hook to get different behavior during makefile. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:postMakefile" ><A NAME="v%3ApostMakefile" ></A ></A ><B >postMakefile</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AMakefileFlags" >MakefileFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Hook to run after makefile command. Second arg indicates verbosity level. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:preClean" ><A NAME="v%3ApreClean" ></A ></A ><B >preClean</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ACleanFlags" >CleanFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ><TD CLASS="rdoc" >Hook to run before clean command. Second arg indicates verbosity level. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:cleanHook" ><A NAME="v%3AcleanHook" ></A ></A ><B >cleanHook</B > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ACleanFlags" >CleanFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Over-ride this hook to get different behavior during clean. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:postClean" ><A NAME="v%3ApostClean" ></A ></A ><B >postClean</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ACleanFlags" >CleanFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Hook to run after clean command. Second arg indicates verbosity level. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:preCopy" ><A NAME="v%3ApreCopy" ></A ></A ><B >preCopy</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ACopyFlags" >CopyFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ><TD CLASS="rdoc" >Hook to run before copy command </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:copyHook" ><A NAME="v%3AcopyHook" ></A ></A ><B >copyHook</B > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ACopyFlags" >CopyFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Over-ride this hook to get different behavior during copy. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:postCopy" ><A NAME="v%3ApostCopy" ></A ></A ><B >postCopy</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ACopyFlags" >CopyFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Hook to run after copy command </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:preInst" ><A NAME="v%3ApreInst" ></A ></A ><B >preInst</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AInstallFlags" >InstallFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ><TD CLASS="rdoc" >Hook to run before install command </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:instHook" ><A NAME="v%3AinstHook" ></A ></A ><B >instHook</B > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AInstallFlags" >InstallFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Over-ride this hook to get different behavior during install. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:postInst" ><A NAME="v%3ApostInst" ></A ></A ><B >postInst</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AInstallFlags" >InstallFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Hook to run after install command. postInst should be run on the target, not on the build machine. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:preSDist" ><A NAME="v%3ApreSDist" ></A ></A ><B >preSDist</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ASDistFlags" >SDistFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ><TD CLASS="rdoc" >Hook to run before sdist command. Second arg indicates verbosity level. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:sDistHook" ><A NAME="v%3AsDistHook" ></A ></A ><B >sDistHook</B > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ASDistFlags" >SDistFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Over-ride this hook to get different behavior during sdist. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:postSDist" ><A NAME="v%3ApostSDist" ></A ></A ><B >postSDist</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ASDistFlags" >SDistFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Hook to run after sdist command. Second arg indicates verbosity level. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:preReg" ><A NAME="v%3ApreReg" ></A ></A ><B >preReg</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ARegisterFlags" >RegisterFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ><TD CLASS="rdoc" >Hook to run before register command </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:regHook" ><A NAME="v%3AregHook" ></A ></A ><B >regHook</B > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ARegisterFlags" >RegisterFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Over-ride this hook to get different behavior during registration. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:postReg" ><A NAME="v%3ApostReg" ></A ></A ><B >postReg</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ARegisterFlags" >RegisterFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Hook to run after register command </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:preUnreg" ><A NAME="v%3ApreUnreg" ></A ></A ><B >preUnreg</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ARegisterFlags" >RegisterFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ><TD CLASS="rdoc" >Hook to run before unregister command </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:unregHook" ><A NAME="v%3AunregHook" ></A ></A ><B >unregHook</B > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ARegisterFlags" >RegisterFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Over-ride this hook to get different behavior during registration. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:postUnreg" ><A NAME="v%3ApostUnreg" ></A ></A ><B >postUnreg</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3ARegisterFlags" >RegisterFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Hook to run after unregister command </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:preHscolour" ><A NAME="v%3ApreHscolour" ></A ></A ><B >preHscolour</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AHscolourFlags" >HscolourFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ><TD CLASS="rdoc" >Hook to run before hscolour command. Second arg indicates verbosity level. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:hscolourHook" ><A NAME="v%3AhscolourHook" ></A ></A ><B >hscolourHook</B > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AHscolourFlags" >HscolourFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Over-ride this hook to get different behavior during hscolour. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:postHscolour" ><A NAME="v%3ApostHscolour" ></A ></A ><B >postHscolour</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AHscolourFlags" >HscolourFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Hook to run after hscolour command. Second arg indicates verbosity level. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:preHaddock" ><A NAME="v%3ApreHaddock" ></A ></A ><B >preHaddock</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AHaddockFlags" >HaddockFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-PackageDescription.html#t%3AHookedBuildInfo" >HookedBuildInfo</A ></TD ><TD CLASS="rdoc" >Hook to run before haddock command. Second arg indicates verbosity level. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:haddockHook" ><A NAME="v%3AhaddockHook" ></A ></A ><B >haddockHook</B > :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AHaddockFlags" >HaddockFlags</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Over-ride this hook to get different behavior during haddock. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:postHaddock" ><A NAME="v%3ApostHaddock" ></A ></A ><B >postHaddock</B > :: <A HREF="Distribution-Simple.html#t%3AArgs" >Args</A > -> <A HREF="Distribution-Simple-Setup.html#t%3AHaddockFlags" >HaddockFlags</A > -> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription" >PackageDescription</A > -> <A HREF="Distribution-Simple-LocalBuildInfo.html#t%3ALocalBuildInfo" >LocalBuildInfo</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="rdoc" >Hook to run after haddock command. Second arg indicates verbosity level. </TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:Args" ><A NAME="t%3AArgs" ></A ></A ><B >Args</B > = [<A HREF="../base/Data-Char.html#t%3AString" >String</A >]</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:defaultMainWithHooks" ><A NAME="v%3AdefaultMainWithHooks" ></A ></A ><B >defaultMainWithHooks</B > :: <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" >A customizable version of <TT ><A HREF="Distribution-Simple.html#v%3AdefaultMain" >defaultMain</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:defaultMainWithHooksArgs" ><A NAME="v%3AdefaultMainWithHooksArgs" ></A ></A ><B >defaultMainWithHooksArgs</B > :: <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A > -> [<A HREF="../base/Data-Char.html#t%3AString" >String</A >] -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" >A customizable version of <TT ><A HREF="Distribution-Simple.html#v%3AdefaultMain" >defaultMain</A ></TT > that also takes the command line arguments. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="3" ><A NAME="3" >Standard sets of hooks </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:simpleUserHooks" ><A NAME="v%3AsimpleUserHooks" ></A ></A ><B >simpleUserHooks</B > :: <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A ></TD ></TR ><TR ><TD CLASS="doc" >Hooks that correspond to a plain instantiation of the "simple" build system </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:autoconfUserHooks" ><A NAME="v%3AautoconfUserHooks" ></A ></A ><B >autoconfUserHooks</B > :: <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:defaultUserHooks" ><A NAME="v%3AdefaultUserHooks" ></A ></A ><B >defaultUserHooks</B > :: <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A ></TD ></TR ><TR ><TD CLASS="doc" ><P >Basic autoconf <TT ><A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A ></TT >: </P ><UL ><LI > on non-Windows systems, <TT ><A HREF="Distribution-Simple.html#v%3ApostConf" >postConf</A ></TT > runs <TT >./configure</TT >, if present. </LI ><LI > the pre-hooks <TT ><A HREF="Distribution-Simple.html#v%3ApreBuild" >preBuild</A ></TT >, <TT ><A HREF="Distribution-Simple.html#v%3ApreClean" >preClean</A ></TT >, <TT ><A HREF="Distribution-Simple.html#v%3ApreCopy" >preCopy</A ></TT >, <TT ><A HREF="Distribution-Simple.html#v%3ApreInst" >preInst</A ></TT >, <TT ><A HREF="Distribution-Simple.html#v%3ApreReg" >preReg</A ></TT > and <TT ><A HREF="Distribution-Simple.html#v%3ApreUnreg" >preUnreg</A ></TT > read additional build information from <EM >package</EM ><TT >.buildinfo</TT >, if present. </LI ></UL ><P >Thus <TT >configure</TT > can use local system information to generate <EM >package</EM ><TT >.buildinfo</TT > and possibly other files. </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:emptyUserHooks" ><A NAME="v%3AemptyUserHooks" ></A ></A ><B >emptyUserHooks</B > :: <A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A ></TD ></TR ><TR ><TD CLASS="doc" >Empty <TT ><A HREF="Distribution-Simple.html#t%3AUserHooks" >UserHooks</A ></TT > which do nothing. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="4" ><A NAME="4" >Utils </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:defaultHookedPackageDesc" ><A NAME="v%3AdefaultHookedPackageDesc" ></A ></A ><B >defaultHookedPackageDesc</B > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > (<A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A >)</TD ></TR ><TR ><TD CLASS="doc" >Optional auxiliary package information file (<EM >pkgname</EM ><TT >.buildinfo</TT >) </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.4.2</TD ></TR ></TABLE ></BODY ></HTML >