-----------------------------------------------------------------------------
-- Making a DLL (only for Win32)
-doMkDLL :: [String] -> IO ()
-doMkDLL o_files = do
+doMkDLL :: [String] -> [PackageName] -> IO ()
+doMkDLL o_files dep_packages = do
verb <- getVerbFlag
static <- readIORef v_Static
no_hs_main <- readIORef v_NoHsMain
o_file <- readIORef v_Output_file
let output_fn = case o_file of { Just s -> s; Nothing -> "HSdll.dll"; }
- pkg_lib_paths <- getPackageLibraryPath []
+ pkg_lib_paths <- getPackageLibraryPath dep_packages
let pkg_lib_path_opts = map ("-L"++) pkg_lib_paths
lib_paths <- readIORef v_Library_paths
let lib_path_opts = map ("-L"++) lib_paths
- pkg_link_opts <- getPackageLinkOpts []
+ pkg_link_opts <- getPackageLinkOpts dep_packages
-- probably _stub.o files
extra_ld_inputs <- readIORef v_Ld_inputs
{-# OPTIONS -fno-warn-incomplete-patterns -optc-DNON_POSIX_SOURCE #-}
-----------------------------------------------------------------------------
--- $Id: Main.hs,v 1.127 2003/06/23 10:35:17 simonpj Exp $
+-- $Id: Main.hs,v 1.128 2003/06/27 18:28:33 sof Exp $
--
-- GHC Driver program
--
---------------- Final sanity checking -----------
checkOptions mode srcs objs
+ -- We always link in the base package in
+ -- one-shot linking. Any other packages
+ -- required must be given using -package
+ -- options on the command-line.
+ let def_hs_pkgs = [basePackage, haskell98Package]
+
---------------- Do the business -----------
case mode of
DoMake -> doMake srcs
endMkDependHS }
StopBefore p -> do { compileFiles mode srcs; return () }
DoMkDLL -> do { o_files <- compileFiles mode srcs;
- doMkDLL o_files }
+ doMkDLL o_files def_hs_pkgs }
DoLink -> do { o_files <- compileFiles mode srcs;
omit_linking <- readIORef v_NoLink;
when (not omit_linking)
- (staticLink o_files
- [basePackage, haskell98Package]) }
- -- We always link in the base package in
- -- one-shot linking. Any other packages
- -- required must be given using -package
- -- options on the command-line.
+ (staticLink o_files def_hs_pkgs) }
#ifndef GHCI
DoInteractive -> throwDyn (CmdLineError "not built for interactive use")