[project @ 2001-08-21 14:44:42 by simonmar]
[ghc-hetmet.git] / ghc / driver / PackageSrc.hs
index f9651bd..1745809 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"
@@ -115,7 +127,7 @@ package_details installing
          , "PrelIOBase_BlockedOnDeadMVar_closure"
          , "PrelWeak_runFinalizzerBatch_closure"
          , "__init_Prelude"
-         ]
+         ])
         },
 
         Package {
@@ -144,7 +156,7 @@ package_details installing
 #                           ifdef mingw32_TARGET_OS
                             [ "wsock32", "msvcrt" ]
 #                           else
-                            [ "m" ]   -- libm, that is
+                            [ ]
 #                           endif
                             ,
         include_dirs   = if installing
@@ -179,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
                        ]
         },