diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,2 +1,14 @@
 import Distribution.Simple
-main = defaultMain
+import Distribution.Types.HookedBuildInfo
+import Distribution.Simple.Setup
+import Distribution.Simple.Utils (rawSystemExit)
+
+main :: IO ()
+main = defaultMainWithHooks simpleUserHooks {
+          preBuild = preBuildApron
+       }
+
+preBuildApron :: Args -> BuildFlags -> IO HookedBuildInfo
+preBuildApron args flags = do
+  rawSystemExit (fromFlag $ buildVerbosity flags) "env" ["make", "deps/boolector-dist"]
+  preBuild simpleUserHooks args flags
diff --git a/boolector.cabal b/boolector.cabal
--- a/boolector.cabal
+++ b/boolector.cabal
@@ -1,5 +1,5 @@
 name:                boolector
-version:             0.0.0.11
+version:             0.0.0.12
 synopsis:            Haskell bindings for the Boolector SMT solver
 description:
 
@@ -15,7 +15,7 @@
 author:              Deian Stefan, Johannes Waldmann, Armin Biere
 maintainer:          Deian Stefan <deian@cs.ucsd.edu>
 category:            Math, SMT, Theorem Provers, Formal Methods, Bit vectors
-build-type:          Simple
+build-type:          Custom
 cabal-version:       >= 1.10
 homepage:       https://github.com/plsyssec/haskell-boolector
 bug-reports:    https://github.com/plsyssec/haskell-boolector/issues
@@ -24,6 +24,11 @@
   type:     git
   location: https://github.com/PLSysSec/haskell-boolector.git
 
+custom-setup
+  setup-depends:
+        base >=4.7 && <5,
+        Cabal
+
 library
   hs-source-dirs: src
   default-language: Haskell2010
@@ -43,8 +48,8 @@
   ghc-options: -Wall -fno-warn-orphans
   build-tools:      c2hs
 
-  extra-libraries:  boolector
-  includes:         boolector.h
+  -- extra-libraries:  boolector
+  -- includes:         boolector.h
 
 Test-Suite API_Usage_Example
   default-language: Haskell2010
