diff --git a/Shakefile.hs b/Shakefile.hs
--- a/Shakefile.hs
+++ b/Shakefile.hs
@@ -27,7 +27,7 @@
 
   -- | Stack rules.
   --
-  stackRules pats
+  stackRules "shakers" pats
 
   -- | sanity
   --
diff --git a/shakers.cabal b/shakers.cabal
--- a/shakers.cabal
+++ b/shakers.cabal
@@ -1,5 +1,5 @@
 name:                  shakers
-version:               0.0.13
+version:               0.0.14
 synopsis:              Shake helpers.
 description:           Primitive helpers for Shake files.
 homepage:              https://github.com/swift-nav/shakers
diff --git a/src/Development/Shakers.hs b/src/Development/Shakers.hs
--- a/src/Development/Shakers.hs
+++ b/src/Development/Shakers.hs
@@ -6,6 +6,7 @@
 module Development.Shakers
   ( module Exports
   , (<:>)
+  , buildFile
   , fakeFile
   , metaFile
   , mirrorDir
@@ -72,10 +73,15 @@
 buildDir :: FilePath
 buildDir = ".build"
 
+-- | Build file path builder.
+--
+buildFile :: FilePath -> FilePath
+buildFile = (buildDir </>)
+
 -- | Build directory where "touch" files are kept.
 --
 fakeDir :: FilePath
-fakeDir = buildDir </> "fake"
+fakeDir = buildFile "fake"
 
 -- | Fake file path builder.
 --
@@ -85,7 +91,7 @@
 -- | Meta directory where "virtual" files are kept.
 --
 metaDir :: FilePath
-metaDir = buildDir </> "meta"
+metaDir = buildFile "meta"
 
 -- | Meta file path builder.
 --
@@ -105,7 +111,7 @@
 -- | Mirror directory of current parent directory.
 --
 mirrorDir :: Action FilePath
-mirrorDir = (buildDir </>) <$> parentDir
+mirrorDir = buildFile <$> parentDir
 
 -- | Wrapper around getting the environment that throws error.
 --
@@ -243,7 +249,7 @@
 rmirror_ = do
   r <- remoteVar
   p <- parentDir
-  rsync_ [ "-Laz", "--delete", buildDir </> p <> "/", r <:> p <> "/" ]
+  rsync_ [ "-Laz", "--delete", buildFile p <> "/", r <:> p <> "/" ]
 
 -- | Remote SSH command.
 --
@@ -381,52 +387,52 @@
 
 -- | Stack rules.
 --
-stackRules :: [FilePattern] -> Rules ()
-stackRules pats = do
+stackRules :: String -> [FilePattern] -> Rules ()
+stackRules target pats = do
   -- | build
   --
   fake' pats "build" $ const $
-    stack_ [ "build", "--fast" ]
+    stack_ [ "build", target, "--fast" ]
 
   -- | build-error
   --
   fake' pats "build-error" $ const $
-    stack_ [ "build", "--fast", "--ghc-options=-Werror" ]
+    stack_ [ "build", target, "--fast", "--ghc-options=-Werror" ]
 
   -- | build-tests
   --
   fake' pats "build-tests" $ const $
-    stack_ [ "build", "--fast", "--test", "--no-run-tests" ]
+    stack_ [ "build", target, "--fast", "--test", "--no-run-tests" ]
 
   -- | build-tests-error
   --
   fake' pats "build-tests-error" $ const $
-    stack_ [ "build", "--fast", "--test", "--no-run-tests", "--ghc-options=-Werror" ]
+    stack_ [ "build", target, "--fast", "--test", "--no-run-tests", "--ghc-options=-Werror" ]
 
   -- | install
   --
   fake' pats "install" $ const $
-    stack_ [ "build", "--fast", "--copy-bins" ]
+    stack_ [ "build", target, "--fast", "--copy-bins" ]
 
   -- | tests
   --
   phony "tests" $
-    stack_ [ "build", "--fast", "--test" ]
+    stack_ [ "build", target, "--fast", "--test" ]
 
   -- | tests-error
   --
   phony "tests-error" $
-    stack_ [ "build", "--fast", "--test", "--ghc-options=-Werror" ]
+    stack_ [ "build", target, "--fast", "--test", "--ghc-options=-Werror" ]
 
   -- | ghci
   --
   phony "ghci" $
-    stack_ [ "ghci", "--fast" ]
+    stack_ [ "ghci", target, "--fast" ]
 
   -- | ghci-tests
   --
   phony "ghci-tests" $
-    stack_ [ "ghci", "--fast", "--test" ]
+    stack_ [ "ghci", target, "--fast", "--test" ]
 
 -- | Cabal and hackage rules.
 --
