import Distribution.Simple
import Distribution.Simple.Setup
import Distribution.PackageDescription
import Distribution.Simple.LocalBuildInfo
import Config
myconfigHook = simpleUserHooks { confHook = hookfunction }
hookfunction x y = do
binfo <- confHook simpleUserHooks x y
r_pbi <- config binfo
let pkg_descr = localPkgDescr binfo
let newbinfo = case r_pbi of
Just pbi -> binfo { localPkgDescr = updatePackageDescription pbi pkg_descr }
Nothing -> do
let r_lib = library pkg_descr
case r_lib of
Just lib ->
let binfo2 = libBuildInfo lib
newlib = lib { libBuildInfo = binfo2 { cSources = [] }}
in binfo { localPkgDescr = pkg_descr { library = Just newlib }}
Nothing -> error "some library setting is wrong."
-- putStrLn (show (localPkgDescr newbinfo))
return newbinfo
main = defaultMainWithHooks myconfigHook