From: sewardj Date: Tue, 4 Sep 2001 16:35:02 +0000 (+0000) Subject: [project @ 2001-09-04 16:35:02 by sewardj] X-Git-Tag: Approximately_9120_patches~1029 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=10bc730f39fc87663e9f5e1449dd6171e32d23b7 [project @ 2001-09-04 16:35:02 by sewardj] Build system hacks to split HSwin32.o into two parts, so that it can be loaded into GHCi. Uses the same gruesome hacks as HSstd.o. --- diff --git a/ghc/compiler/main/DriverState.hs b/ghc/compiler/main/DriverState.hs index 8dae078..20946fa 100644 --- a/ghc/compiler/main/DriverState.hs +++ b/ghc/compiler/main/DriverState.hs @@ -1,5 +1,5 @@ ----------------------------------------------------------------------------- --- $Id: DriverState.hs,v 1.55 2001/08/15 09:58:00 sewardj Exp $ +-- $Id: DriverState.hs,v 1.56 2001/09/04 16:35:02 sewardj Exp $ -- -- Settings for the driver -- @@ -474,13 +474,18 @@ getPackageLibraries = do -- different route (in InteractiveUI.linkPackage). -- See driver/PackageSrc.hs for the HSstd1/HSstd2 split definition. -- THIS IS A STRICTLY TEMPORARY HACK (famous last words ...) + -- JRS 04 Sept 01: Same appalling hack for HSwin32[1,2] hACK libs # ifndef mingw32_TARGET_OS = libs # else = if "HSstd1" `elem` libs && "HSstd2" `elem` libs then "HSstd" : filter ((/= "HSstd").(take 5)) libs - else libs + else + if "HSwin321" `elem` libs && "HSwin322" `elem` libs + then "HSwin32" : filter ((/= "HSwin32").(take 7)) libs + else + libs # endif getPackageExtraGhcOpts :: IO [String] diff --git a/ghc/driver/PackageSrc.hs b/ghc/driver/PackageSrc.hs index 5c9d3e4..f37f912 100644 --- a/ghc/driver/PackageSrc.hs +++ b/ghc/driver/PackageSrc.hs @@ -397,8 +397,9 @@ 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 now built in diff --git a/mk/target.mk b/mk/target.mk index 403b4f1..448b077 100644 --- a/mk/target.mk +++ b/mk/target.mk @@ -515,7 +515,9 @@ CLEAN_FILES += $(GHCI_LIBRARY) all :: $(GHCI_LIBRARY) +# How come GNU make doesn't support ands and ors? Duh. ifneq "$(GHCI_LIBRARY)" "HSstd.o" +ifneq "$(GHCI_LIBRARY)" "HSwin32.o" # An annoying gotcha is that the Prelude is a bit special, # for reasons described in ghc/lib/std/Makefile. # So we only put in this standard rule for packages other than std @@ -523,13 +525,15 @@ ifneq "$(GHCI_LIBRARY)" "HSstd.o" # We check for GHCI_LIBRARY being HSstd.o rather than # PACKAGE being std, because we want to still use the boilerplate rule # for cbits. +# JRS 04 Sept 01: The exact same deal applies to hslibs/HSwin32.o. $(GHCI_LIBRARY) :: $(LIBOBJS) ld -r -x -o $@ $(LIBOBJS) $(STUBOBJS) -endif +endif # GHCI_LIBRARY != "HSwin32.o" +endif # GHCI_LIBRARY != "HSstd.o" endif # GhcWithInterpreter endif # way -endif # GHCI_LIBRARY +endif # GHCI_LIBRARY != "" #----------------------------------------