+# These two lines are required for pre-processing compiler/prelude/primops.txt
+SRC_CPP_OPTS += -I$(GHC_INCLUDE_DIR)
+SRC_CPP_OPTS += ${GhcCppOpts}
+
+ifeq "$(BootingFromHc)" "YES"
+GHC/PrimopWrappers.hs:
+ touch GHC/PrimopWrappers.hs
+else
+GHC/PrimopWrappers.hs: $(GHC_COMPILER_DIR)/prelude/primops.txt GHC/Prim.hs
+ @$(RM) $@
+ $(GENPRIMOP) --make-haskell-wrappers < $< > $@
+endif
+
+GHC/Prim.hs: $(GHC_COMPILER_DIR)/prelude/primops.txt
+ @$(RM) $@
+ $(GENPRIMOP) --make-haskell-source < $< > $@
+
+EXCLUDED_SRCS = GHC/Prim.hs
+EXTRA_HADDOCK_SRCS = GHC/Prim.hs
+
+boot :: GHC/PrimopWrappers.hs
+
+EXTRA_SRCS += GHC/PrimopWrappers.hs
+CLEAN_FILES += GHC/PrimopWrappers.hs
+
+# -----------------------------------------------------------------------------
+ifneq "$(BootingFromHc)" "YES"
+STUBOBJS += \
+ Control/Concurrent_stub.$(way_)o
+
+CLEAN_FILES += $(STUBOBJS) \
+ Control/Concurrent_stub.[ch]
+endif
+
+#-----------------------------------------------------------------------------
+# Building the library for GHCi
+#
+# The procedure differs from that in fptools/mk/target.mk in one way:
+# (*) on Win32 we must split it into two, because a single .o file can't
+# have more than 65536 relocations in it [due to a bug in the GNU
+# linker.]
+
+OBJECT_FILEFORMAT=unknown
+ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
+OBJECT_FILEFORMAT=PEi
+endif
+ifeq "$(TARGETPLATFORM)" "i386-unknown-cygwin32"
+OBJECT_FILEFORMAT=PEi
+endif
+
+ifeq "$(OBJECT_FILEFORMAT)" "PEi"
+
+# Turn off standard rule which creates HSbase.o from LIBOBJS.
+#DONT_WANT_STD_GHCI_LIB_RULE=YES