Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal On branch : master
http://hackage.haskell.org/trac/ghc/changeset/bfc301cbf7cfde3eb492f60b6bc2c3515647c330 >--------------------------------------------------------------- commit bfc301cbf7cfde3eb492f60b6bc2c3515647c330 Author: intractable <[email protected]> Date: Tue Oct 6 05:58:31 2009 +0000 build-tools-extend-namespace >--------------------------------------------------------------- Distribution/Simple/Configure.hs | 34 ++++++++++++++++++++++++++-------- 1 files changed, 26 insertions(+), 8 deletions(-) diff --git a/Distribution/Simple/Configure.hs b/Distribution/Simple/Configure.hs index aa0adf4..0ee3b0a 100644 --- a/Distribution/Simple/Configure.hs +++ b/Distribution/Simple/Configure.hs @@ -91,7 +91,7 @@ import Distribution.Simple.Hpc ( enableCoverage ) import Distribution.Simple.Program ( Program(..), ProgramLocation(..), ConfiguredProgram(..) , ProgramConfiguration, defaultProgramConfiguration - , configureAllKnownPrograms, knownPrograms, lookupKnownProgram + , configureAllKnownPrograms, knownPrograms, lookupKnownProgram, addKnownProgram , userSpecifyArgss, userSpecifyPaths , requireProgram, requireProgramVersion , pkgConfigProgram, gccProgram, rawSystemProgramStdoutConf ) @@ -265,6 +265,7 @@ configure :: (GenericPackageDescription, HookedBuildInfo) -> ConfigFlags -> IO LocalBuildInfo configure (pkg_descr0, pbi) cfg = do let distPref = fromFlag (configDistPref cfg) + buildDir' = distPref </> "build" verbosity = fromFlag (configVerbosity cfg) setupMessage verbosity "Configuring" (packageId pkg_descr0) @@ -425,13 +426,21 @@ configure (pkg_descr0, pbi) cfg ++ "supported by " ++ display (compilerId comp) ++ ": " ++ intercalate ", " (map display exts) + -- configured known/required programs & build tools let requiredBuildTools = concatMap buildTools (allBuildInfo pkg_descr) - programsConfig'' <- - configureAllKnownPrograms (lessVerbose verbosity) programsConfig' + + -- add all exes built by this package ("internal exes") to the program + -- conf; this makes the namespace of build-tools include intrapackage + -- references to executables + let programsConfig'' = foldr (addInternalExe buildDir') programsConfig' + (executables pkg_descr) + + programsConfig''' <- + configureAllKnownPrograms (lessVerbose verbosity) programsConfig'' >>= configureRequiredPrograms verbosity requiredBuildTools - (pkg_descr', programsConfig''') <- configurePkgconfigPackages verbosity - pkg_descr programsConfig'' + (pkg_descr', programsConfig'''') <- + configurePkgconfigPackages verbosity pkg_descr programsConfig''' split_objs <- if not (fromFlag $ configSplitObjs cfg) @@ -475,7 +484,7 @@ configure (pkg_descr0, pbi) cfg -- did they would go here. installDirTemplates = installDirs, compiler = comp, - buildDir = distPref </> "build", + buildDir = buildDir', scratchDir = fromFlagOrDefault (distPref </> "scratch") (configScratchDir cfg), @@ -485,7 +494,7 @@ configure (pkg_descr0, pbi) cfg installedPkgs = packageDependsIndex, pkgDescrFile = Nothing, localPkgDescr = pkg_descr', - withPrograms = programsConfig''', + withPrograms = programsConfig'''', withVanillaLib = fromFlag $ configVanillaLib cfg, withProfLib = fromFlag $ configProfLib cfg, withSharedLib = fromFlag $ configSharedLib cfg, @@ -526,11 +535,20 @@ configure (pkg_descr0, pbi) cfg dirinfo "Documentation" (docdir dirs) (docdir relative) sequence_ [ reportProgram verbosity prog configuredProg - | (prog, configuredProg) <- knownPrograms programsConfig''' ] + | (prog, configuredProg) <- knownPrograms programsConfig'''' ] return lbi where + addInternalExe bd exe = + let nm = exeName exe in + addKnownProgram Program { + programName = nm, + programFindLocation = \_ -> return $ Just $ bd </> nm </> nm, + programFindVersion = \_ _ -> return Nothing, + programPostConf = \_ _ -> return [] + } + addExtraIncludeLibDirs pkg_descr = let extraBi = mempty { extraLibDirs = configExtraLibDirs cfg , PD.includeDirs = configExtraIncludeDirs cfg} _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
