diff --git a/Setup.lhs b/Setup.lhs
--- a/Setup.lhs
+++ b/Setup.lhs
@@ -1,3 +1,26 @@
-#!/usr/bin/env runhaskell
+#!/usr/bin/env runghc
+> import Data.List
 > import Distribution.Simple
-> main = defaultMain
+> 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 ()
diff --git a/TimePiece.cabal b/TimePiece.cabal
--- a/TimePiece.cabal
+++ b/TimePiece.cabal
@@ -1,5 +1,5 @@
 Name:               TimePiece
-Version:            0.0.2
+Version:            0.0.3
 Synopsis:           A simple tile-based digital clock screen saver
 Description:        A simple tile-based digital clock screen saver
 License:            BSD3
@@ -8,18 +8,20 @@
 Author:             Audrey Tang
 Maintainer:         Audrey Tang <audreyt@audreyt.org>
 Build-Depends:      base, SDL >= 0.5.4, SDL-image, SDL-ttf, SDL-gfx, containers, random, old-locale, old-time
-Build-Type:         Simple
+Build-Type:         Custom
 Data-Files:         1/10.png 1/20.png 1/30.png 1/40.png 1/50.png 1/60.png 1/70.png 1/80.png 1/90.png
                     2/10.png 2/20.png 2/30.png 2/40.png 2/50.png 2/60.png 2/70.png 2/80.png 2/90.png
                     3/10.png 3/20.png 3/30.png 3/40.png 3/50.png 3/60.png 3/70.png 3/80.png 3/90.png
                     HSMain_stub.c HSMain_stub.h TimePiece.ttf
 Extra-Source-Files: Check.hs
+Cabal-Version:      >= 1.2
+Exposed-Modules:    Main
+Other-Modules:      Cache Image Paths Point Render Tiles Zoom
  
 Executable:         TimePiece
 HS-Source-Dirs:     .
 Main-Is:            HSMain.hs
 GHC-Options:        -no-hs-main -Wall
 C-Sources:          c_main.c
-Extra-Libraries:    SDLmain
 Extensions:         GeneralizedNewtypeDeriving, ForeignFunctionInterface
 Other-Modules:      Cache Image Paths Main Point Render Tiles Zoom
