#!/usr/bin/env runghc
> import Data.List
> import Distribution.Simple
> import System.IO (hGetContents)
> import System.Process (waitForProcess, runInteractiveCommand)
>
> main :: IO ()
> main = writeBuildInfo >> defaultMainWithHooks defaultUserHooks
>
> writeBuildInfo :: IO ()
> writeBuildInfo = do
> (_,out,_,pid) <- runInteractiveCommand "sdl-config --prefix --libs --cflags"
> res <- hGetContents out
> length res `seq` waitForProcess pid
> case lines res of
> (prefix@(_:_):libs@(_:_):cflags@(_:_):_) -> do
> let x `isSubStringOf` s = or [ x `isPrefixOf` t | t <- tails s ]
> writeFile "TimePiece.buildinfo" $ unlines
> [ "Include-Dirs: " ++ prefix ++ "/include"
> , "Extra-Lib-Dirs: " ++ prefix ++ "/lib"
> , "CC-Options: " ++ cflags
> , "GHC-Options: " ++ unwords (map ("-optc"++) $ words cflags)
> ] ++ if "SDLmain" `isSubStringOf` libs
> then "Extra-Libraries: SDLmain\n"
> else ""
> _ -> return ()