diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2014, Kei Hibino
+Copyright (c) 2014-2015, Kei Hibino
 
 All rights reserved.
 
diff --git a/debian-build.cabal b/debian-build.cabal
--- a/debian-build.cabal
+++ b/debian-build.cabal
@@ -1,5 +1,5 @@
 name:                debian-build
-version:             0.8.0.0
+version:             0.9.0.0
 synopsis:            Debian package build sequence tools
 description:         This package provides build sequence functions
                      for debian package, and includes on-the-fly
diff --git a/mains/odebuild.hs b/mains/odebuild.hs
--- a/mains/odebuild.hs
+++ b/mains/odebuild.hs
@@ -58,17 +58,17 @@
 
 parseOption :: [String]
             -> (ODebuildOptions -> Either String ODebuildOptions, ([String], [String]))
-parseOption args = (foldr (>=>) return ufs, (ss1, ss2))  where
-  (ufs, ss1, ss2) = getOpt RequireOrder descs args
+parseOption args = (foldr (>=>) return ufs, (as, es))  where
+  (ufs, as, es) = getOpt RequireOrder descs args
 
 help :: IO ()
 help =  do
   prog <- getProgName
   let opts  = "[options]"
-      debOpts = "[-- [debuild options]]"
+      debOpts = "[-- [cabal-debian-options [-- [debuild-options]]]"
       msg = unlines $ map unwords
             [ [prog, "clean"]
-            , [prog, "prepare", opts]
+            , [prog, "prepare", opts, "[-- [cabal-debian-options]]"]
             , [prog, "source", opts, debOpts]
             , [prog, "build", opts, debOpts]
             , [prog, "install", opts, debOpts]
@@ -81,31 +81,31 @@
 clean :: Build ()
 clean =  removeBuildDir
 
-prepare :: ODebuildOptions -> Build ((FilePath, FilePath), Source, Maybe Hackage)
-prepare opts = do
+prepare :: ODebuildOptions -> [String] -> Build ((FilePath, FilePath), Source, Maybe Hackage)
+prepare opts cdArgs = do
   clean
-  maybe (fail "Illegal state: genSources") return =<< genSources (revision opts)
+  maybe (fail "Illegal state: genSources") return =<< genSources (revision opts) cdArgs
 
-build' :: [BuildMode] -> ODebuildOptions -> [String] -> Build (Source, Maybe Hackage)
-build' modes opts args = do
-  ((_, dir), src, mayH) <- prepare opts
-  liftTrace $ Command.build dir modes (installDeps opts) args
+build' :: [BuildMode] -> ODebuildOptions -> [String] -> [String] -> Build (Source, Maybe Hackage)
+build' modes opts cdArgs debArgs = do
+  ((_, dir), src, mayH) <- prepare opts cdArgs
+  liftTrace $ Command.build dir modes (installDeps opts) debArgs
   return (src, mayH)
 
-source :: ODebuildOptions -> [String] -> Build (Source, Maybe Hackage)
+source :: ODebuildOptions -> [String] -> [String] -> Build (Source, Maybe Hackage)
 source = build' [Src]
 
-build :: ODebuildOptions -> [String] -> Build (Source, Maybe Hackage)
+build :: ODebuildOptions -> [String] -> [String] -> Build (Source, Maybe Hackage)
 build opts = build' (buildModes opts []) opts
 
-install :: ODebuildOptions -> [String] -> Build ()
-install opts args = do
-  void $ build opts args
+install :: ODebuildOptions -> [String] -> [String] -> Build ()
+install opts cdArgs debArgs = do
+  void $ build opts cdArgs debArgs
   install'
 
-reinstall :: ODebuildOptions -> [String] -> Build ()
-reinstall opts args = do
-  (_src, mayH) <- build opts args
+reinstall :: ODebuildOptions -> [String] -> [String] -> Build ()
+reinstall opts cdArgs debArgs = do
+  (_src, mayH) <- build opts cdArgs debArgs
   maybe (return ()) remove' mayH
   install'
 
@@ -114,22 +114,23 @@
   cur <- pwd
   uncurry (runBuild b cur) defaultConfig
 
-parseArgs :: [String] -> IO (ODebuildOptions, [String])
+parseArgs :: [String] -> IO (ODebuildOptions, ([String], [String]))
 parseArgs args0
-  | not $ null errs  = fail $ concat errs
+  | not $ null errs  = fail $ '\n' : concat [ "  " ++ e | e <- errs ]
   | not $ null args1 = fail $ "Unknown arguments: " ++ unwords args1
   | otherwise        =
       either (fail . ("Option parse error: " ++)) return $ do
         opts <- f defaultOptions
-        return (opts, drop 1 rest)
+        return (opts, (cdArgs, drop 1 rest1))
       where
-        (opt, rest) = break (== "--") args0
+        (opt, rest0) = break (== "--") args0
+        (cdArgs, rest1) = break (== "--") $ drop 1 rest0
         (f, (args1, errs)) = parseOption opt
 
-runArgs :: (ODebuildOptions -> [String] -> Build a) -> [String] -> IO a
+runArgs :: (ODebuildOptions -> [String] -> [String] -> Build a) -> [String] -> IO a
 runArgs act as = do
-  (opts, args) <- parseArgs as
-  run $ act opts args
+  (opts, (cdArgs, debArgs)) <- parseArgs as
+  run $ act opts cdArgs debArgs
 
 main :: IO ()
 main =  do
@@ -148,4 +149,4 @@
         "reinstall"     ->    runArgs reinstall as1
         _               ->    void $ runArgs build as2
 
-    []                  -> run . void $ build defaultOptions []
+    []                  ->    run . void $ build defaultOptions [] []
diff --git a/src/Debian/Package/Build/Command.hs b/src/Debian/Package/Build/Command.hs
--- a/src/Debian/Package/Build/Command.hs
+++ b/src/Debian/Package/Build/Command.hs
@@ -142,8 +142,8 @@
     act
 
 -- | Just call /cabal-debian/ command
-cabalDebian' :: Maybe String -> Trace ()
-cabalDebian' mayRev = do
+cabalDebian' :: Maybe String -> [String] -> Trace ()
+cabalDebian' mayRev otherArgs = do
   ver <-  origVersion' <$> packageVersion "cabal-debian"
   let revision = fromMaybe "1~autogen1" mayRev
       oldArgs = ["--quilt", "--revision=" ++ revision]
@@ -156,11 +156,11 @@
              | otherwise          ->  return oldArgs
     _                             ->  return oldArgs
 
-  rawSystem' "cabal-debian" args
+  rawSystem' "cabal-debian" $ args ++ otherArgs
 
 -- | Call /cabal-debian/ command under specified directory
-cabalDebian :: FilePath -> Maybe String -> Trace ()
-cabalDebian dir = withCurrentDir' dir . cabalDebian'
+cabalDebian :: FilePath -> Maybe String -> [String] -> Trace ()
+cabalDebian dir mayRev = withCurrentDir' dir . cabalDebian' mayRev
 
 -- | Query debian package version
 packageVersion :: String -> Trace DebianVersion
diff --git a/src/Debian/Package/Build/Sequence.hs b/src/Debian/Package/Build/Sequence.hs
--- a/src/Debian/Package/Build/Sequence.hs
+++ b/src/Debian/Package/Build/Sequence.hs
@@ -195,8 +195,10 @@
   copyDebianDir srcDir
   return pair
 
-cabalAutogenDebianDir :: Maybe String -> Build FilePath
-cabalAutogenDebianDir mayRev =  do
+cabalAutogenDebianDir :: Maybe String   -- ^ May specify revision string
+                      -> [String]       -- ^ Optional arguments of cabal-debian command
+                      -> Build FilePath -- ^ Generated debian-dir path
+cabalAutogenDebianDir mayRev cdArgs =  do
   baseDir  <-  askBaseDir
   let ddName =  "debian"
       tmpDD  =  baseDir </> ddName
@@ -205,15 +207,18 @@
 
   debDir   <-  (</> ddName) <$> getBuildDir
   liftTrace $ do
-    cabalDebian baseDir mayRev
+    cabalDebian baseDir mayRev cdArgs
     createDirectoryIfMissing $ takeDirectory debDir
     renameDirectory tmpDD debDir
   return debDir
 
 -- | Setup source directory and archive using Cabal and cabal-debian.
-cabalAutogenSources :: String -> Maybe String -> Build ((FilePath, FilePath), HaskellPackage)
-cabalAutogenSources hname mayRev = do
-  debDir   <-  cabalAutogenDebianDir mayRev
+cabalAutogenSources :: String                                       -- ^ Hackge name string
+                    -> Maybe String                                 -- ^ May specify revision string
+                    -> [String]                                     -- ^ Optional arguments of cabal-debian command
+                    -> Build ((FilePath, FilePath), HaskellPackage) -- ^ Result package informations of generated source
+cabalAutogenSources hname mayRev cdArgs = do
+  debDir   <-  cabalAutogenDebianDir mayRev cdArgs
   pkg      <-  liftTrace . dpkgParseChangeLog $ debDir </> "changelog"
   let hpkg =   haskellPackageFromPackage hname pkg
   pair@(_, srcDir)  <-  cabalGenOrigSources hpkg
@@ -247,8 +252,10 @@
 findCabalDescription =  MaybeT (askBaseDir >>= liftIO . Cabal.findDescriptionFile)
 
 -- | On the fly setup of source directory and archive.
-genSources :: Maybe String -> Build (Maybe ((FilePath, FilePath), Source, Maybe Hackage))
-genSources mayRev = runMaybeT $
+genSources :: Maybe String                                                -- ^ May specify revision string
+           -> [String]                                                    -- ^ Optional arguments of cabal-debian command
+           -> Build (Maybe ((FilePath, FilePath), Source, Maybe Hackage)) -- ^ Result package informations of generated source
+genSources mayRev cdArgs = runMaybeT $
   do clog <- findDebianChangeLog
      src  <- lift . liftTrace $ dpkgParseChangeLog clog
      (do hname <- takeBaseName <$> findCabalDescription
@@ -260,7 +267,7 @@
   <|>
   do hname <- takeBaseName <$> findCabalDescription
      lift $ do
-       (p, hpkg) <- cabalAutogenSources hname mayRev
+       (p, hpkg) <- cabalAutogenSources hname mayRev cdArgs
        return (p, package hpkg, Just $ hackage hpkg)
   <|>
   do fail "No source generate rule found."
