diff --git a/Makefile b/Makefile
new file mode 100644
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,12 @@
+GHC=~/.stack/programs/x86_64-osx/ghc-8.0.2/bin/ghc 
+
+cabal:
+	cabal sandbox init
+	cabal install --enable-tests -w $(GHC)
+	cabal configure -w $(GHC)
+	cabal test
+
+tags:
+	hasktags -c src/
+	hasktags -e src/
+	hasktags -x -c src/
diff --git a/liquid-fixpoint.cabal b/liquid-fixpoint.cabal
--- a/liquid-fixpoint.cabal
+++ b/liquid-fixpoint.cabal
@@ -1,5 +1,5 @@
 name:                liquid-fixpoint
-version:             0.7.0.1
+version:             0.7.0.2
 Copyright:           2010-17 Ranjit Jhala, University of California, San Diego.
 synopsis:            Predicate Abstraction-based Horn-Clause/Implication Constraint Solver
 homepage:            https://github.com/ucsd-progsys/liquid-fixpoint
@@ -34,6 +34,8 @@
                   , tests/pos/*.fq
                   , unix/Language/Fixpoint/Utils/*.hs
                   , win/Language/Fixpoint/Utils/*.hs
+                  , tests/logs/cur/pin
+                  , Makefile
 
 Source-Repository head
   Type:        git
diff --git a/tests/logs/cur/pin b/tests/logs/cur/pin
new file mode 100644
--- /dev/null
+++ b/tests/logs/cur/pin
@@ -0,0 +1,1 @@
+as 
diff --git a/tests/test.hs b/tests/test.hs
--- a/tests/test.hs
+++ b/tests/test.hs
@@ -30,6 +30,7 @@
 import Test.Tasty.Options
 import Test.Tasty.Runners
 import Test.Tasty.Runners.AntXML
+import Paths_liquid_fixpoint
 
 main :: IO ()
 main    = run =<< group "Tests" [unitTests]
@@ -110,9 +111,8 @@
     test = dir </> file
     log  = let (d,f) = splitFileName file in dir </> d </> ".liquid" </> f <.> "log"
 
-binPath pkgName = do
-  testPath <- getExecutablePath
-  return    $ (takeDirectory $ takeDirectory testPath) </> pkgName </> pkgName
+binPath :: FilePath -> IO FilePath
+binPath pkgName = (</> pkgName) <$> getBinDir
 
 knownToFail = []
 ---------------------------------------------------------------------------
@@ -377,23 +377,27 @@
 
 gitTimestamp :: IO String
 gitTimestamp = do
-   res <- readProcess "git" ["show", "--format=\"%ci\"", "--quiet"] []
+   res <- gitProcess ["show", "--format=\"%ci\"", "--quiet"]
    return $ filter notNoise res
 
 gitEpochTimestamp :: IO String
 gitEpochTimestamp = do
-   res <- readProcess "git" ["show", "--format=\"%ct\"", "--quiet"] []
+   res <- gitProcess ["show", "--format=\"%ct\"", "--quiet"]
    return $ filter notNoise res
 
 gitHash :: IO String
 gitHash = do
-   res <- readProcess "git" ["show", "--format=\"%H\"", "--quiet"] []
+   res <- gitProcess ["show", "--format=\"%H\"", "--quiet"]
    return $ filter notNoise res
 
 gitRef :: IO String
 gitRef = do
-   res <- readProcess "git" ["show", "--format=\"%d\"", "--quiet"] []
+   res <- gitProcess ["show", "--format=\"%d\"", "--quiet"]
    return $ filter notNoise res
+
+-- | Calls `git` for info; returns `"plain"` if we are not in a git directory.
+gitProcess :: [String] -> IO String
+gitProcess args = (readProcess "git" args []) `catchIOError` const (return "plain")
 
 notNoise :: Char -> Bool
 notNoise a = a /= '\"' && a /= '\n' && a /= '\r'
