Cabal-1.18.1.1: doc/API/Cabal/Distribution-Simple-Program-GHC.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Program.GHC</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Distribution-Simple-Program-GHC.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-1.18.1.1: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Distribution.Simple.Program.GHC</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:GhcOptions">GhcOptions</a> = <a href="#v:GhcOptions">GhcOptions</a> {<ul class="subs"><li><a href="#v:ghcOptMode">ghcOptMode</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcMode">GhcMode</a></li><li><a href="#v:ghcOptExtra">ghcOptExtra</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a>]</li><li><a href="#v:ghcOptExtraDefault">ghcOptExtraDefault</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a>]</li><li><a href="#v:ghcOptInputFiles">ghcOptInputFiles</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:ghcOptInputModules">ghcOptInputModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li><a href="#v:ghcOptOutputFile">ghcOptOutputFile</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptOutputDynFile">ghcOptOutputDynFile</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptSourcePathClear">ghcOptSourcePathClear</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptSourcePath">ghcOptSourcePath</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:ghcOptPackageName">ghcOptPackageName</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Package.html#t:PackageId">PackageId</a></li><li><a href="#v:ghcOptPackageDBs">ghcOptPackageDBs</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a></li><li><a href="#v:ghcOptPackages">ghcOptPackages</a> :: [(<a href="Distribution-Package.html#t:InstalledPackageId">InstalledPackageId</a>, <a href="Distribution-Package.html#t:PackageId">PackageId</a>)]</li><li><a href="#v:ghcOptHideAllPackages">ghcOptHideAllPackages</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptNoAutoLinkPackages">ghcOptNoAutoLinkPackages</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptLinkLibs">ghcOptLinkLibs</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:ghcOptLinkLibPath">ghcOptLinkLibPath</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:ghcOptLinkOptions">ghcOptLinkOptions</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a>]</li><li><a href="#v:ghcOptLinkFrameworks">ghcOptLinkFrameworks</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a>]</li><li><a href="#v:ghcOptNoLink">ghcOptNoLink</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptLinkNoHsMain">ghcOptLinkNoHsMain</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptCcOptions">ghcOptCcOptions</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a>]</li><li><a href="#v:ghcOptCppOptions">ghcOptCppOptions</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a>]</li><li><a href="#v:ghcOptCppIncludePath">ghcOptCppIncludePath</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:ghcOptCppIncludes">ghcOptCppIncludes</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:ghcOptFfiIncludes">ghcOptFfiIncludes</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:ghcOptLanguage">ghcOptLanguage</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></li><li><a href="#v:ghcOptExtensions">ghcOptExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li><a href="#v:ghcOptExtensionMap">ghcOptExtensionMap</a> :: [(<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>, <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a>)]</li><li><a href="#v:ghcOptOptimisation">ghcOptOptimisation</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">GhcOptimisation</a></li><li><a href="#v:ghcOptProfilingMode">ghcOptProfilingMode</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptSplitObjs">ghcOptSplitObjs</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptGHCiScripts">ghcOptGHCiScripts</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:ghcOptHiSuffix">ghcOptHiSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptObjSuffix">ghcOptObjSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptDynHiSuffix">ghcOptDynHiSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptDynObjSuffix">ghcOptDynObjSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptHiDir">ghcOptHiDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptObjDir">ghcOptObjDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptOutputDir">ghcOptOutputDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptStubDir">ghcOptStubDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptDynLinkMode">ghcOptDynLinkMode</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">GhcDynLinkMode</a></li><li><a href="#v:ghcOptShared">ghcOptShared</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptFPic">ghcOptFPic</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptDylibName">ghcOptDylibName</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptVerbosity">ghcOptVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li><a href="#v:ghcOptCabal">ghcOptCabal</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:GhcMode">GhcMode</a> <ul class="subs"><li>= <a href="#v:GhcModeCompile">GhcModeCompile</a> </li><li>| <a href="#v:GhcModeLink">GhcModeLink</a> </li><li>| <a href="#v:GhcModeMake">GhcModeMake</a> </li><li>| <a href="#v:GhcModeInteractive">GhcModeInteractive</a> </li><li>| <a href="#v:GhcModeAbiHash">GhcModeAbiHash</a> </li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:GhcOptimisation">GhcOptimisation</a> <ul class="subs"><li>= <a href="#v:GhcNoOptimisation">GhcNoOptimisation</a> </li><li>| <a href="#v:GhcNormalOptimisation">GhcNormalOptimisation</a> </li><li>| <a href="#v:GhcMaximumOptimisation">GhcMaximumOptimisation</a> </li><li>| <a href="#v:GhcSpecialOptimisation">GhcSpecialOptimisation</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a> </li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:GhcDynLinkMode">GhcDynLinkMode</a> <ul class="subs"><li>= <a href="#v:GhcStaticOnly">GhcStaticOnly</a> </li><li>| <a href="#v:GhcDynamicOnly">GhcDynamicOnly</a> </li><li>| <a href="#v:GhcStaticAndDynamic">GhcStaticAndDynamic</a> </li></ul></li><li class="src short"><a href="#v:ghcInvocation">ghcInvocation</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a></li><li class="src short"><a href="#v:renderGhcOptions">renderGhcOptions</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:runGHC">runGHC</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:GhcOptions" class="def">GhcOptions</a> </p><div class="doc"><p>A structured set of GHC options/flags
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:GhcOptions" class="def">GhcOptions</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:ghcOptMode" class="def">ghcOptMode</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcMode">GhcMode</a></dt><dd class="doc"><p>The major mode for the ghc invocation.
</p></dd><dt class="src"><a name="v:ghcOptExtra" class="def">ghcOptExtra</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a>]</dt><dd class="doc"><p>Any extra options to pass directly to ghc. These go at the end and hence
override other stuff.
</p></dd><dt class="src"><a name="v:ghcOptExtraDefault" class="def">ghcOptExtraDefault</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a>]</dt><dd class="doc"><p>Extra default flags to pass directly to ghc. These go at the beginning
and so can be overridden by other stuff.
</p></dd><dt class="src"><a name="v:ghcOptInputFiles" class="def">ghcOptInputFiles</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc"><p>The main input files; could be .hs, .hi, .c, .o, depending on mode.
</p></dd><dt class="src"><a name="v:ghcOptInputModules" class="def">ghcOptInputModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</dt><dd class="doc"><p>The names of input Haskell modules, mainly for <code>--make</code> mode.
</p></dd><dt class="src"><a name="v:ghcOptOutputFile" class="def">ghcOptOutputFile</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></dt><dd class="doc"><p>Location for output file; the <code>ghc -o</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptOutputDynFile" class="def">ghcOptOutputDynFile</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></dt><dd class="doc"><p>Location for dynamic output file in <code><a href="Distribution-Simple-Program-GHC.html#v:GhcStaticAndDynamic">GhcStaticAndDynamic</a></code> mode;
the <code>ghc -dyno</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptSourcePathClear" class="def">ghcOptSourcePathClear</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Start with an empty search path for Haskell source files;
the <code>ghc -i</code> flag (<code>-i</code> on it's own with no path argument).
</p></dd><dt class="src"><a name="v:ghcOptSourcePath" class="def">ghcOptSourcePath</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc"><p>Search path for Haskell source files; the <code>ghc -i</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptPackageName" class="def">ghcOptPackageName</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Package.html#t:PackageId">PackageId</a></dt><dd class="doc"><p>The package name the modules will belong to; the <code>ghc -package-name</code> flag
</p></dd><dt class="src"><a name="v:ghcOptPackageDBs" class="def">ghcOptPackageDBs</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a></dt><dd class="doc"><p>GHC package databases to use, the <code>ghc -package-conf</code> flag
</p></dd><dt class="src"><a name="v:ghcOptPackages" class="def">ghcOptPackages</a> :: [(<a href="Distribution-Package.html#t:InstalledPackageId">InstalledPackageId</a>, <a href="Distribution-Package.html#t:PackageId">PackageId</a>)]</dt><dd class="doc"><p>The GHC packages to use. For compatability with old and new ghc, this
requires both the short and long form of the package id;
the <code>ghc -package</code> or <code>ghc -package-id</code> flags.
</p></dd><dt class="src"><a name="v:ghcOptHideAllPackages" class="def">ghcOptHideAllPackages</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Start with a clean package set; the <code>ghc -hide-all-packages</code> flag
</p></dd><dt class="src"><a name="v:ghcOptNoAutoLinkPackages" class="def">ghcOptNoAutoLinkPackages</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Don't automatically link in Haskell98 etc; the <code>ghc -no-auto-link-packages</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptLinkLibs" class="def">ghcOptLinkLibs</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc"><p>Names of libraries to link in; the <code>ghc -l</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptLinkLibPath" class="def">ghcOptLinkLibPath</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc"><p>Search path for libraries to link in; the <code>ghc -L</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptLinkOptions" class="def">ghcOptLinkOptions</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a>]</dt><dd class="doc"><p>Options to pass through to the linker; the <code>ghc -optl</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptLinkFrameworks" class="def">ghcOptLinkFrameworks</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a>]</dt><dd class="doc"><p>OSX only: frameworks to link in; the <code>ghc -framework</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptNoLink" class="def">ghcOptNoLink</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Don't do the link step, useful in make mode; the <code>ghc -no-link</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptLinkNoHsMain" class="def">ghcOptLinkNoHsMain</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Don't link in the normal RTS <code>main</code> entry point; the <code>ghc -no-hs-main</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptCcOptions" class="def">ghcOptCcOptions</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a>]</dt><dd class="doc"><p>Options to pass through to the C compiler; the <code>ghc -optc</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptCppOptions" class="def">ghcOptCppOptions</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a>]</dt><dd class="doc"><p>Options to pass through to CPP; the <code>ghc -optP</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptCppIncludePath" class="def">ghcOptCppIncludePath</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc"><p>Search path for CPP includes like header files; the <code>ghc -I</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptCppIncludes" class="def">ghcOptCppIncludes</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc"><p>Extra header files to include at CPP stage; the <code>ghc -optP-include</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptFfiIncludes" class="def">ghcOptFfiIncludes</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc"><p>Extra header files to include for old-style FFI; the <code>ghc -#include</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptLanguage" class="def">ghcOptLanguage</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></dt><dd class="doc"><p>The base language; the <code>ghc -XHaskell98</code> or <code>-XHaskell2010</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptExtensions" class="def">ghcOptExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</dt><dd class="doc"><p>The language extensions; the <code>ghc -X</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptExtensionMap" class="def">ghcOptExtensionMap</a> :: [(<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>, <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a>)]</dt><dd class="doc"><p>A GHC version-dependent mapping of extensions to flags. This must be
set to be able to make use of the <code><a href="Distribution-Simple-Program-GHC.html#v:ghcOptExtensions">ghcOptExtensions</a></code>.
</p></dd><dt class="src"><a name="v:ghcOptOptimisation" class="def">ghcOptOptimisation</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">GhcOptimisation</a></dt><dd class="doc"><p>What optimisation level to use; the <code>ghc -O</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptProfilingMode" class="def">ghcOptProfilingMode</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Compile in profiling mode; the <code>ghc -prof</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptSplitObjs" class="def">ghcOptSplitObjs</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Use the "split object files" feature; the <code>ghc -split-objs</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptGHCiScripts" class="def">ghcOptGHCiScripts</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc"><p>Extra GHCi startup scripts; the <code>-ghci-script</code> flag
</p></dd><dt class="src"><a name="v:ghcOptHiSuffix" class="def">ghcOptHiSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:ghcOptObjSuffix" class="def">ghcOptObjSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:ghcOptDynHiSuffix" class="def">ghcOptDynHiSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a></dt><dd class="doc"><p>only in <code><a href="Distribution-Simple-Program-GHC.html#v:GhcStaticAndDynamic">GhcStaticAndDynamic</a></code> mode
</p></dd><dt class="src"><a name="v:ghcOptDynObjSuffix" class="def">ghcOptDynObjSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a></dt><dd class="doc"><p>only in <code><a href="Distribution-Simple-Program-GHC.html#v:GhcStaticAndDynamic">GhcStaticAndDynamic</a></code> mode
</p></dd><dt class="src"><a name="v:ghcOptHiDir" class="def">ghcOptHiDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:ghcOptObjDir" class="def">ghcOptObjDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:ghcOptOutputDir" class="def">ghcOptOutputDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:ghcOptStubDir" class="def">ghcOptStubDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:ghcOptDynLinkMode" class="def">ghcOptDynLinkMode</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">GhcDynLinkMode</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:ghcOptShared" class="def">ghcOptShared</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:ghcOptFPic" class="def">ghcOptFPic</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:ghcOptDylibName" class="def">ghcOptDylibName</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:ghcOptVerbosity" class="def">ghcOptVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></dt><dd class="doc"><p>Get GHC to be quiet or verbose with what it's doing; the <code>ghc -v</code> flag.
</p></dd><dt class="src"><a name="v:ghcOptCabal" class="def">ghcOptCabal</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Let GHC know that it is Cabal that's calling it.
Modifies some of the GHC error messages.
</p></dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:GhcOptions" class="caption collapser" onclick="toggleSection('i:GhcOptions')">Instances</p><div id="section.i:GhcOptions" class="show"><table><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Monoid.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:GhcMode" class="def">GhcMode</a> </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:GhcModeCompile" class="def">GhcModeCompile</a></td><td class="doc"><pre>ghc -c</pre></td></tr><tr><td class="src"><a name="v:GhcModeLink" class="def">GhcModeLink</a></td><td class="doc"><pre>ghc</pre></td></tr><tr><td class="src"><a name="v:GhcModeMake" class="def">GhcModeMake</a></td><td class="doc"><pre>ghc --make</pre></td></tr><tr><td class="src"><a name="v:GhcModeInteractive" class="def">GhcModeInteractive</a></td><td class="doc"><p><code>ghci</code> / <code>ghc --interactive</code>
</p></td></tr><tr><td class="src"><a name="v:GhcModeAbiHash" class="def">GhcModeAbiHash</a></td><td class="doc"><p><code>ghc --abi-hash</code>
| GhcModeDepAnalysis -- ^ <code>ghc -M</code>
| GhcModeEvaluate -- ^ <code>ghc -e</code>
</p></td></tr></table></div><div class="subs instances"><p id="control.i:GhcMode" class="caption collapser" onclick="toggleSection('i:GhcMode')">Instances</p><div id="section.i:GhcMode" class="show"><table><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcMode">GhcMode</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcMode">GhcMode</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:GhcOptimisation" class="def">GhcOptimisation</a> </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:GhcNoOptimisation" class="def">GhcNoOptimisation</a></td><td class="doc"><pre>-O0</pre></td></tr><tr><td class="src"><a name="v:GhcNormalOptimisation" class="def">GhcNormalOptimisation</a></td><td class="doc"><pre>-O</pre></td></tr><tr><td class="src"><a name="v:GhcMaximumOptimisation" class="def">GhcMaximumOptimisation</a></td><td class="doc"><pre>-O2</pre></td></tr><tr><td class="src"><a name="v:GhcSpecialOptimisation" class="def">GhcSpecialOptimisation</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a></td><td class="doc"><p>e.g. <code>-Odph</code>
</p></td></tr></table></div><div class="subs instances"><p id="control.i:GhcOptimisation" class="caption collapser" onclick="toggleSection('i:GhcOptimisation')">Instances</p><div id="section.i:GhcOptimisation" class="show"><table><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">GhcOptimisation</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">GhcOptimisation</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:GhcDynLinkMode" class="def">GhcDynLinkMode</a> </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:GhcStaticOnly" class="def">GhcStaticOnly</a></td><td class="doc"><pre>-static</pre></td></tr><tr><td class="src"><a name="v:GhcDynamicOnly" class="def">GhcDynamicOnly</a></td><td class="doc"><pre>-dynamic</pre></td></tr><tr><td class="src"><a name="v:GhcStaticAndDynamic" class="def">GhcStaticAndDynamic</a></td><td class="doc"><pre>-static -dynamic-too</pre></td></tr></table></div><div class="subs instances"><p id="control.i:GhcDynLinkMode" class="caption collapser" onclick="toggleSection('i:GhcDynLinkMode')">Instances</p><div id="section.i:GhcDynLinkMode" class="show"><table><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">GhcDynLinkMode</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">GhcDynLinkMode</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:ghcInvocation" class="def">ghcInvocation</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a></p></div><div class="top"><p class="src"><a name="v:renderGhcOptions" class="def">renderGhcOptions</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a>]</p></div><div class="top"><p class="src"><a name="v:runGHC" class="def">runGHC</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.2</p></div></body></html>