[project @ 2001-04-03 15:38:51 by simonmar]
[ghc-hetmet.git] / ghc / driver / PackageSrc.hs
index 5574b27..bdd4c30 100644 (file)
@@ -6,24 +6,35 @@ import Utils
 
 import IO
 import System
-import Config
 import Package
 
 main :: IO ()
 main = do
   args <- getArgs
   case args of
-        [ "install"  ] -> do { putStrLn (dumpPackages (package_details True)) }
-        [ "in-place" ] -> do { putStrLn (dumpPackages (package_details False)) }
-        _ -> do hPutStr stderr "usage: pkgconf (install | in-place)\n"
-                exitWith (ExitFailure 1)
+     ("install":rest)  -> do { putStrLn (dumpPackages (package_details True rest)) }
+     ("in-place":rest) -> do { putStrLn (dumpPackages (package_details False rest)) }
+     _ -> do hPutStr stderr "usage: pkgconf (install | in-place) ...\n"
+             exitWith (ExitFailure 1)
+
+package_details :: Bool -> [String] -> [PackageConfig]
+package_details installing
+ [ cTARGETPLATFORM
+ , cCURRENT_DIR
+ , cHaveLibGmp
+ , cLibsReadline
+ , clibdir
+ , cGHC_LIB_DIR
+ , cGHC_RUNTIME_DIR
+ , cGHC_UTILS_DIR
+ , cGHC_INCLUDE_DIR
+ , cFPTOOLS_TOP_ABS ] =
 
-package_details :: Bool -> [Package]
-package_details installing =
  [
         Package {
        name           = "gmp",  -- GMP is at the bottom of the heap
         import_dirs    = [],
+        source_dirs    = [],
         library_dirs   = if cHaveLibGmp == "YES"
                             then []
                             else if installing
@@ -42,6 +53,7 @@ package_details installing =
         Package {
        name           = "rts",  -- The RTS is just another package!
         import_dirs    = [],
+        source_dirs    = [],
         library_dirs   = if installing
                             then [ clibdir ]
                             else [ ghc_src_dir cGHC_RUNTIME_DIR ],
@@ -49,7 +61,7 @@ package_details installing =
 #ifndef mingw32_TARGET_OS
        extra_libraries   = [],
 #else
-        extra_libraries   = [ "-lwinmm" ], -- for the threadDelay timer
+        extra_libraries   = [ "winmm" ], -- for the threadDelay timer
 #endif
         include_dirs   = if installing
                             then [ clibdir ++ "/includes" ]
@@ -94,7 +106,6 @@ package_details installing =
          , "PrelIOBase_stackOverflow_closure"
          , "PrelIOBase_heapOverflow_closure"
          , "PrelIOBase_NonTermination_closure"
-         , "PrelIOBase_PutFullMVar_closure"
          , "PrelIOBase_BlockedOnDeadMVar_closure"
          , "PrelWeak_runFinalizzerBatch_closure"
          , "__init_Prelude"
@@ -106,6 +117,7 @@ package_details installing =
        import_dirs    = if installing
                             then [ clibdir ++ "/imports/std" ]
                             else [ ghc_src_dir cGHC_LIB_DIR ++ "/std" ],
+        source_dirs    = [],
         library_dirs   = if installing
                             then [ clibdir ]
                             else [ ghc_src_dir cGHC_LIB_DIR ++ "/std"
@@ -113,7 +125,7 @@ package_details installing =
         hs_libraries      = [ "HSstd" ],
        extra_libraries   = [ "HSstd_cbits" ] ++
 #                           ifdef mingw32_TARGET_OS
-                            ["wsock32"]
+                            ["wsock32", "msvcrt"]
 #                           else
                             ["m"]   -- libm, that is
 #                           endif
@@ -134,6 +146,7 @@ package_details installing =
                              then [ clibdir ++ "/imports/lang" ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hslibs/lang"
                                   , cFPTOOLS_TOP_ABS ++ "/hslibs/lang/monads" ],
+         source_dirs    = [],
          library_dirs   = if installing
                              then [ clibdir ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hslibs/lang"
@@ -161,6 +174,7 @@ package_details installing =
          import_dirs    = if installing
                              then [ clibdir ++ "/imports/concurrent" ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hslibs/concurrent" ],
+         source_dirs    = [],
          library_dirs   = if installing
                              then [ clibdir ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hslibs/concurrent" ],
@@ -185,6 +199,7 @@ package_details installing =
                                   , cFPTOOLS_TOP_ABS ++ "/hslibs/data/edison/Assoc"
                                   , cFPTOOLS_TOP_ABS ++ "/hslibs/data/edison/Coll"
                                   , cFPTOOLS_TOP_ABS ++ "/hslibs/data/edison/Seq" ],
+         source_dirs    = [],
          library_dirs   = if installing
                              then [clibdir ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hslibs/data" ],
@@ -205,6 +220,7 @@ package_details installing =
          import_dirs    = if installing
                              then [ clibdir ++ "/imports/net" ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hslibs/net" ],
+         source_dirs    = [],
          library_dirs   = if installing
                              then [ clibdir ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hslibs/net"
@@ -230,6 +246,7 @@ package_details installing =
          import_dirs    = if installing
                              then [ clibdir ++ "/imports/posix" ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hslibs/posix" ],
+         source_dirs    = [],
          library_dirs   = if installing
                              then [ clibdir ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hslibs/posix"
@@ -254,6 +271,7 @@ package_details installing =
                                   , cFPTOOLS_TOP_ABS ++ "/hslibs/text/html" 
                                   , cFPTOOLS_TOP_ABS ++ "/hslibs/text/HaXml/lib" 
                                   , cFPTOOLS_TOP_ABS ++ "/hslibs/text/parsec" ],
+         source_dirs    = [],
          library_dirs   = if installing
                              then [ clibdir ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hslibs/text"
@@ -276,6 +294,7 @@ package_details installing =
                              then [ clibdir ++ "/imports/util" ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hslibs/util"
                                   , cFPTOOLS_TOP_ABS ++ "/hslibs/util/check" ],
+         source_dirs    = [],
          library_dirs   = if installing
                              then [ clibdir ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hslibs/util"
@@ -303,6 +322,7 @@ package_details installing =
          import_dirs    = if installing
                              then [ clibdir ++ "/imports/hssource" ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hslibs/hssource" ],
+         source_dirs    = [],
          library_dirs   = if installing
                              then [ clibdir ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hslibs/hssource" ],
@@ -321,6 +341,7 @@ package_details installing =
          import_dirs    = if installing
                              then [ clibdir ++ "/imports/greencard" ]
                             else [ cFPTOOLS_TOP_ABS ++ "/green-card/lib/ghc" ],
+         source_dirs    = [],
          library_dirs   = if installing
                              then [ clibdir ]
                              else [ cFPTOOLS_TOP_ABS ++ "/green-card/lib/ghc" ],
@@ -339,6 +360,7 @@ package_details installing =
         import_dirs    = if installing
                              then [ clibdir ++ "/imports/win32" ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hslibs/win32" ],
+         source_dirs    = [],
          library_dirs   = if installing
                              then [ clibdir ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hslibs/win32" ],
@@ -357,6 +379,7 @@ package_details installing =
          import_dirs    = if installing
                              then [ clibdir ++ "/imports/com" ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hdirect/lib" ],
+         source_dirs    = [],
          library_dirs   = if installing
                              then [ clibdir ]
                              else [ cFPTOOLS_TOP_ABS ++ "/hdirect/lib" ],
@@ -370,6 +393,6 @@ package_details installing =
          extra_ld_opts  = []
         }
    ]
-
-ghc_src_dir :: String -> String
-ghc_src_dir path = cFPTOOLS_TOP_ABS ++ '/':cCURRENT_DIR ++ '/':path
+  where
+       ghc_src_dir :: String -> String
+       ghc_src_dir path = cFPTOOLS_TOP_ABS ++ '/':cCURRENT_DIR ++ '/':path