diff --git a/ats-pkg.cabal b/ats-pkg.cabal
--- a/ats-pkg.cabal
+++ b/ats-pkg.cabal
@@ -1,6 +1,6 @@
 cabal-version: 1.18
 name: ats-pkg
-version: 2.9.0.0
+version: 2.9.0.1
 license: BSD3
 license-file: LICENSE
 copyright: Copyright: (c) 2018 Vanessa McHale
@@ -88,7 +88,7 @@
         mtl -any,
         dhall >=1.11.0 && <=1.12.0,
         ansi-wl-pprint -any,
-        shake-ats >=1.6.0.0,
+        shake-ats >=1.6.0.2,
         shake-ext >=2.6.0.0,
         composition-prelude >=1.3.0.0,
         zip-archive -any,
diff --git a/src/Distribution/ATS/Build.hs b/src/Distribution/ATS/Build.hs
--- a/src/Distribution/ATS/Build.hs
+++ b/src/Distribution/ATS/Build.hs
@@ -16,13 +16,13 @@
 
 configureCabal :: IO LocalBuildInfo -> IO LocalBuildInfo
 configureCabal = (<*>) $ do
-    build ["install"]
-    libDir <- (<> "/.atspkg/lib") <$> getEnv "HOME"
+    flip when (build ["install"]) =<< doesFileExist "atspkg.dhall"
+    libDir <- (<> "/.atspkg/lib/") <$> getEnv "HOME"
     pure (modifyConf libDir)
 
 modifyBuildInfo :: String -> BuildInfo -> BuildInfo
 modifyBuildInfo libDir bi = let olds = extraLibDirs bi
-    in bi { extraLibDirs = (libDir <>) <$> olds }
+    in bi { extraLibDirs = libDir : olds }
 
 modifyConf :: FilePath -- ^ New library directory (absolute)
            -> LocalBuildInfo
@@ -39,7 +39,8 @@
     in lib { libBuildInfo = modifyBuildInfo libDir old }
 
 -- | This uses the users hooks as is @simpleUserHooks@, modified to build the
--- ATS library.
+-- ATS library. This should be called by any libraries depending on a package
+-- using @atsPolyglotBuild@.
 cabalHooks :: UserHooks
 cabalHooks = let defConf = confHook simpleUserHooks
     in simpleUserHooks { confHook = configureCabal .* defConf }
