Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : master
http://hackage.haskell.org/trac/ghc/changeset/e7b42bd4925ce91999f070d74e137a6a0ff6e3e4 >--------------------------------------------------------------- commit e7b42bd4925ce91999f070d74e137a6a0ff6e3e4 Author: Simon Marlow <[email protected]> Date: Wed Nov 16 10:27:02 2011 +0000 Create parent directories when touching the object file (#5584) >--------------------------------------------------------------- compiler/main/DriverPipeline.hs | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-) diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs index 4ef2bcb..8103f66 100644 --- a/compiler/main/DriverPipeline.hs +++ b/compiler/main/DriverPipeline.hs @@ -172,8 +172,7 @@ compile' (nothingCompiler, interactiveCompiler, batchCompiler) handleBatch (HscRecomp hasStub _) | isHsBoot src_flavour = do when (isObjectTarget hsc_lang) $ -- interpreted reaches here too - liftIO $ SysTools.touch dflags' "Touching object file" - object_filename + liftIO $ touchObjectFile dflags' object_filename return maybe_old_linkable | otherwise @@ -956,7 +955,7 @@ runPhase (Hsc src_flavour) input_fn dflags0 case result of HscNoRecomp - -> do io $ SysTools.touch dflags' "Touching object file" o_file + -> do io $ touchObjectFile dflags' o_file -- The .o file must have a later modification date -- than the source file (else we wouldn't be in HscNoRecomp) -- but we touch it anyway, to keep 'make' happy (we think). @@ -970,7 +969,7 @@ runPhase (Hsc src_flavour) input_fn dflags0 -- In the case of hs-boot files, generate a dummy .o-boot -- stamp file for the benefit of Make when (isHsBoot src_flavour) $ - io $ SysTools.touch dflags' "Touching object file" o_file + io $ touchObjectFile dflags' o_file return (next_phase, output_fn) ----------------------------------------------------------------------------- @@ -2084,3 +2083,8 @@ hscNextPhase dflags _ hsc_lang = HscNothing -> StopLn HscInterpreted -> StopLn +touchObjectFile :: DynFlags -> FilePath -> IO () +touchObjectFile dflags path = do + createDirectoryHierarchy $ takeDirectory path + SysTools.touch dflags "Touching object file" path + _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
