ALL_DIRS = \
utils basicTypes types hsSyn prelude rename typecheck deSugar coreSyn \
specialise simplCore stranal stgSyn simplStg codeGen main \
- profiling parser cprAnalysis compMan ndpFlatten cbits iface cmm
+ profiling parser cprAnalysis compMan ndpFlatten iface cmm
# Make sure we include Config.hs even if it doesn't exist yet...
ALL_SRCS += $(CONFIG_HS)
#-----------------------------------------------------------------------------
# Linking
+# Include libghccompat in stage1. In stage2 onwards, all these libraries
+# will be available from the main libraries.
+ifeq "$(stage)" "1"
+SRC_HC_OPTS += -i$(GHC_LIB_COMPAT_DIR)
+SRC_LD_OPTS += -L$(GHC_LIB_COMPAT_DIR) -lghccompat
+SRC_MKDEPENDHS_OPTS += -optdep--exclude-module=Compat.RawSystem
+endif
+
SRC_LD_OPTS += -no-link-chk
# -----------------------------------------------------------------------------
#endif
#if __GLASGOW_HASKELL__ < 603
-import Foreign ( withMany, withArray0, nullPtr, Ptr )
-import CForeign ( CString, withCString, throwErrnoIfMinus1 )
+-- rawSystem comes from libghccompat.a in stage1
+import Compat.RawSystem ( rawSystem )
#else
import System.Cmd ( rawSystem )
#endif
handle_exn verb exn = do { when (verb >= 2) (hPutStr stderr "\n")
; when (verb >= 3) (hPutStrLn stderr ("Failed: " ++ cmd_line ++ (show exn)))
; throwDyn (PhaseFailed phase_name (ExitFailure 1)) }
-
--- -----------------------------------------------------------------------------
--- rawSystem: run an external command
---
--- In GHC 6.2.1 there's a correct implementation of rawSystem in the
--- library System.Cmd. If we are compiling with an earlier version of
--- GHC than this, we'd better have a copy of the correct implementation
--- right here.
-
-#if __GLASGOW_HASKELL__ < 603
-#include "../../libraries/base/System/RawSystem.hs-inc"
-#endif
\end{code}