X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fdriver%2FPackageSrc.hs;h=6fcec811935923deb127367751df6e5e76e176c0;hb=fb7a723bfd7650a705cb226e07c5b08b7a8e9279;hp=df14746713dfc4d61bf9d5dc6747ea022dadb8d6;hpb=e7b3609f736e6574ed99cc5952c7ef56c081a29d;p=ghc-hetmet.git diff --git a/ghc/driver/PackageSrc.hs b/ghc/driver/PackageSrc.hs index df14746..6fcec81 100644 --- a/ghc/driver/PackageSrc.hs +++ b/ghc/driver/PackageSrc.hs @@ -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 = [] @@ -429,6 +450,23 @@ package_details installing extra_ld_opts = [] } + ,Package { + name = "HGL", + import_dirs = if installing + then [ "$libdir/imports/HGL" ] + else [ "$libdir/hslibs/graphics/lib/x11" ], + source_dirs = [], + library_dirs = [], + hs_libraries = [ "HSHGL" ], + extra_libraries= [], + include_dirs = [], + c_includes = [], + package_deps = [ "xlib", "concurrent" ], + extra_ghc_opts = [], + extra_cc_opts = [], + extra_ld_opts = [] + } + ] where ghc_src_dir :: String -> String