-----------------------------------------------------------------------------
--- $Id: DriverPipeline.hs,v 1.62 2001/03/28 16:51:03 simonmar Exp $
+-- $Id: DriverPipeline.hs,v 1.65 2001/05/01 16:01:06 simonmar Exp $
--
-- GHC Driver
--
src <- readFile input_fn
let (import_sources, import_normals, module_name) = getImports src
- deps_sources <- mapM (findDependency True src) import_sources
- deps_normals <- mapM (findDependency False src) import_normals
+ let orig_fn = basename ++ '.':suff
+ 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_opt <- readIORef v_Object_suf
cmdline_includes <- dynFlag cmdlineHcIncludes -- -#include options
let cc_injects = unlines (map mk_include
- (c_includes ++ reverse cmdline_includes))
+ (c_includes ++ reverse cmdline_includes))
mk_include h_file =
case h_file of
'"':_{-"-} -> "#include "++h_file
else return False
-- build a ModuleLocation to pass to hscMain.
- modsrc <- readFile input_fn
- let (srcimps,imps,mod_name) = getImports modsrc
+ (srcimps,imps,mod_name) <- getImportsFromFile input_fn
Just (mod, location)
<- mkHomeModuleLocn mod_name basename (basename ++ '.':suff)
hscStubCOutName = basename ++ "_stub.c",
hscStubHOutName = basename ++ "_stub.h" }
+ -- figure out which header files to #include in a generated .hc file
+ c_includes <- getPackageCIncludes
+ cmdline_includes <- dynFlag cmdlineHcIncludes -- -#include options
+
+ let cc_injects = unlines (map mk_include
+ (c_includes ++ reverse cmdline_includes))
+ mk_include h_file =
+ case h_file of
+ '"':_{-"-} -> "#include "++h_file
+ '<':_ -> "#include "++h_file
+ _ -> "#include \""++h_file++"\""
+
+ writeIORef v_HCHeader cc_injects
+
-- run the compiler
hsc_result <- hscMain ghci_mode dyn_flags'
(ms_mod summary) location