llvm-ht-0.7.0.0: Setup.lhs
#!/usr/bin/env runhaskell
> {-# LANGUAGE PatternGuards #-}
> import System.Environment
> import System.Info
> import Control.Monad
> import Data.List
> import Distribution.Simple
> import Distribution.Simple.Setup
>
> main = do
> let hooks = if os == "mingw32" then autoconfUserHooks{ postConf = generateBuildInfo }
> else autoconfUserHooks
> defaultMainWithHooks hooks
>
> -- On Windows we can't count on the configure script, so generate the
> -- llvm.buildinfo from a template.
> generateBuildInfo _ conf _ _ = do
> let args = configConfigureArgs conf
> let pref = "--with-llvm-prefix="
> let path = case [ p | arg <- args, Just p <- [stripPrefix pref arg] ] of
> [p] -> p
> _ -> error $ "Use '--configure-option " ++ pref ++ "PATH' to give LLVM installation path"
> info <- readFile "llvm.buildinfo.windows.in"
> writeFile "llvm.buildinfo" $ subst "@llvm_path@" path info
>
> subst from to [] = []
> subst from to xs | Just r <- stripPrefix from xs = to ++ subst from to r
> subst from to (x:xs) = x : subst from to xs