3 import Distribution.Simple
4 import Distribution.Simple.LocalBuildInfo
5 import Distribution.PackageDescription
7 import System.Directory(getCurrentDirectory)
11 main = defaultMainWithHooks simpleUserHooks { confHook = myConfHook }
13 myConfHook (pkg0, pbi) flags = do
15 installDir <- buildBoehm
17 lbi <- confHook simpleUserHooks (pkg0, pbi) flags
18 let lpd = localPkgDescr lbi
19 let lib = fromJust (library lpd)
20 let libbi = libBuildInfo lib
21 let custom_bi = customFieldsBI libbi
23 { extraLibDirs = (installDir ++ "/lib") : extraLibDirs libbi,
24 includeDirs = (installDir ++ "/include") : includeDirs libbi
26 let lib' = lib { libBuildInfo = libbi' }
27 let lpd' = lpd { library = Just lib' }
28 return $ lbi { localPkgDescr = lpd' }
30 buildBoehm :: IO String
32 wd <- getCurrentDirectory
33 let installDir = wd ++ "/gc"
34 print ("Installing Boehm to: " ++ installDir)
35 _ <- runCommand ("./makeboehm.sh " ++ installDir) >>= waitForProcess