[project @ 2001-09-04 18:29:20 by ken]
[ghc-hetmet.git] / ghc / driver / PackageSrc.hs
index c9bb864..6fcec81 100644 (file)
@@ -1,4 +1,5 @@
 #include "../includes/config.h"
+#include "../includes/Derived.h"
 
 module Main (main) where
 
@@ -64,13 +65,22 @@ package_details installing
                             then [ "$libdir" ]
                             else [ ghc_src_dir cGHC_RUNTIME_DIR ],
         hs_libraries      = [ "HSrts" ],
-#ifndef mingw32_TARGET_OS
-       extra_libraries   = [],
-#else
-        extra_libraries   = [ "winmm", "wsock32" ], -- winmm for the threadDelay timer, wsock32 for the linker
+       extra_libraries   =
+                             "m":              -- for ldexp()
+#ifdef mingw32_TARGET_OS
+                             "winmm":          -- for the threadDelay timer
+                             "wsock32":        -- for the linker
 #endif
+#ifdef USING_LIBBFD
+                             "bfd": "iberty":  -- for debugging
+#endif
+                           [],
         include_dirs   = if installing
-                            then [ "$libdir/includes" ]
+                            then [ "$libdir/include"
+#ifdef mingw32_TARGET_OS
+                                , "$libdir/include/mingw"
+#endif
+                                ]
                             else [ ghc_src_dir cGHC_INCLUDE_DIR ],
         c_includes     = [ "Stg.h" ],           -- ha!
         package_deps   = [ "gmp" ],
@@ -78,11 +88,13 @@ package_details installing
         extra_cc_opts  = [],
                 -- the RTS forward-references to a bunch of stuff in the prelude,
                 -- so we force it to be included with special options to ld.
-        extra_ld_opts  = map (
+        extra_ld_opts  =
+          foldr (\ x xs -> "-u" : x : xs) []
+                 (map (
 #ifndef LEADING_UNDERSCORE
-                         "-u "
+                         ""
 #else
-                         "-u _"
+                         "_"
 #endif
                           ++ ) [
            "PrelBase_Izh_static_info"
@@ -114,8 +126,8 @@ package_details installing
          , "PrelIOBase_NonTermination_closure"
          , "PrelIOBase_BlockedOnDeadMVar_closure"
          , "PrelWeak_runFinalizzerBatch_closure"
-         , "__init_Prelude"
-         ]
+         , "__stginit_Prelude"
+         ])
         },
 
         Package {
@@ -133,6 +145,10 @@ package_details installing
 #                           ifndef mingw32_TARGET_OS
                             [ "HSstd" ]
 #                           else
+                            -- This splitting is the subject of a totally 
+                            -- horrible hack, which glues HSstd1 and HSstd2 
+                            -- back into HSstd for the purposes of static linking.
+                            -- See DriverState.getPackageLibraries for details.
                             [ "HSstd1", "HSstd2" ]
 #                           endif
                             ,
@@ -140,7 +156,7 @@ package_details installing
 #                           ifdef mingw32_TARGET_OS
                             [ "wsock32", "msvcrt" ]
 #                           else
-                            [ "m" ]   -- libm, that is
+                            [ ]
 #                           endif
                             ,
         include_dirs   = if installing
@@ -175,9 +191,9 @@ package_details installing
          extra_cc_opts  = [],
          extra_ld_opts  = [
 #ifndef LEADING_UNDERSCORE
-                         "-u Addr_Azh_static_info"
+                         "-u", "Addr_Azh_static_info"
 #else
-                         "-u _Addr_Azh_static_info"
+                         "-u", "_Addr_Azh_static_info"
 #endif
                        ]
         },
@@ -312,7 +328,11 @@ package_details installing
                              else [ "$libdir/hslibs/util"
                                   , "$libdir/hslibs/util/cbits" ],
          hs_libraries      = [ "HSutil" ],
-        extra_libraries   = [ "HSutil_cbits" ] ++ words cLibsReadline,
+        extra_libraries   = [ "HSutil_cbits" ] 
+#ifndef mingw32_TARGET_OS
+                             ++ words cLibsReadline
+#endif
+                             ,
          include_dirs   = if installing
                              then []
                              else [ "$libdir/hslibs/util/cbits" ],
@@ -377,11 +397,12 @@ package_details installing
          library_dirs   = if installing
                              then [ "$libdir" ]
                              else [ "$libdir/hslibs/win32" ],
-         hs_libraries      = [ "HSwin32" ],
-        extra_libraries   = [ "user32",  "gdi32", "winmm" ],
+         hs_libraries      = [ "HSwin321", "HSwin322" ],
+        extra_libraries   = [ "user32",  "gdi32", "winmm", 
+                               "kernel32", "advapi32" ],
          include_dirs   = [],
          c_includes     = [],           -- ???
-         package_deps   = [ "lang", "greencard" ],
+         package_deps   = [ "lang" ], -- greencard now built in
          extra_ghc_opts = [],
          extra_cc_opts  = [],
          extra_ld_opts  = []