X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fmain%2FDriverMkDepend.hs;h=1a15ed8cdda8af770ab87c62ad3cc7f831ac07c2;hb=29da2cf3011c292bc4261601aff85afb13e24d54;hp=769d9a272e98917d449d3460338f5e524ab3d2a1;hpb=70b6c54b3c140d96b69287f8f400f88a0b7e9c18;p=ghc-hetmet.git diff --git a/ghc/compiler/main/DriverMkDepend.hs b/ghc/compiler/main/DriverMkDepend.hs index 769d9a2..1a15ed8 100644 --- a/ghc/compiler/main/DriverMkDepend.hs +++ b/ghc/compiler/main/DriverMkDepend.hs @@ -1,5 +1,5 @@ ----------------------------------------------------------------------------- --- $Id: DriverMkDepend.hs,v 1.28 2003/06/04 15:47:58 simonmar Exp $ +-- $Id: DriverMkDepend.hs,v 1.31 2003/11/17 14:23:38 simonmar Exp $ -- -- GHC Driver -- @@ -7,7 +7,9 @@ -- ----------------------------------------------------------------------------- -module DriverMkDepend where +module DriverMkDepend ( + doMkDependHSPhase, beginMkDependHS, endMkDependHS + ) where #include "HsVersions.h" @@ -19,7 +21,8 @@ import SysTools ( newTempName ) import qualified SysTools import Module ( ModuleName, ModLocation(..), moduleNameUserString, isHomeModule ) -import Finder ( findModule, hiBootExt, hiBootVerExt ) +import Finder ( findModule, hiBootExt, hiBootVerExt, + mkHomeModLocation ) import Util ( global ) import Panic @@ -131,19 +134,24 @@ beginMkDependHS = do doMkDependHSPhase basename suff input_fn = do src <- readFile input_fn - let (import_sources, import_normals, _) = getImports src + let (import_sources, import_normals, mod_name) = getImports src let orig_fn = basename ++ '.':suff + (_, location') <- mkHomeModLocation mod_name orig_fn + + -- take -ohi into account if present + ohi <- readIORef v_Output_hi + let location | Just fn <- ohi = location'{ ml_hi_file = fn } + | otherwise = location' + deps_sources <- mapM (findDependency True orig_fn) import_sources deps_normals <- mapM (findDependency False orig_fn) import_normals let deps = deps_sources ++ deps_normals osuf <- readIORef v_Object_suf - extra_suffixes <- readIORef v_Dep_suffixes - let suffixes = osuf : map (++ ('_':osuf)) extra_suffixes - ofiles = map (\suf -> basename ++ '.':suf) suffixes - - objs <- mapM odir_ify ofiles + let suffixes = map (++ ('_':osuf)) extra_suffixes + obj_file = ml_obj_file location + objs = obj_file : map (replaceFilenameSuffix obj_file) suffixes -- Handle for file that accumulates dependencies hdl <- readIORef v_Dep_tmp_hdl @@ -164,7 +172,7 @@ doMkDependHSPhase basename suff input_fn sequence_ (zipWith (\o d -> hPutStrLn hdl (escapeSpaces o ++ " : " ++ escapeSpaces d)) objs deps) sequence_ (map genDep [ d | Just d <- deps ]) - return True + return location -- add the lines to dep_makefile: -- always: