-# Building the GHC package
-
-# The GHC package is made from the stage 2 build. Fortunately the
-# package build system framework more or less does the right thing for
-# us here.
-
-# All this section is stage-2 only!
-ifeq "$(stage)" "2"
-
-PACKAGE = ghc
-HIERARCHICAL_LIB = NO
-VERSION = $(ProjectVersion)
-PKG_DEPENDS += base haskell98
-PACKAGE_CPP_OPTS += -DPKG_DEPENDS='$(PKG_DEPENDS)'
-
-# Omit Main from the library, the client will want to plug their own Main in
-LIBOBJS = $(filter-out $(odir)/main/Main.o $(odir)/parser/hschooks.o, $(OBJS))
-
-# disable splitting: it won't really help with GHC, and the specialised
-# build system for compiler/ isn't set up to handle it.
-SplitObjs = NO
-
-# the package build system likes to set WAYS=$(GhcLibWays), but we don't
-# really want to build the whole of GHC multiple ways... if you do,
-# set GhcCompilerWays instead.
-GhcLibWays = $(GhcCompilerWays)
-
-# override $(GhcLibHcOpts): we want GhcStage2HcOpts to take precedence
-GhcLibHcOpts =
-
-# override default definition of HS_IFACES so we can add $(odir)
-HS_IFACES = $(addsuffix .$(way_)hi,$(basename $(HS_OBJS)))
-
-# Haddock can't handle recursive modules currently, so we disable it for now.
-NO_HADDOCK_DOCS = YES
-
-# The stage 2 GHC binary itself is built by compiling main/Main.hs
-# (the same as used in stage 1) against the GHC package.
-#
-# This is done by compiling Main.hs separately and linking it with
-# -package ghc. This is done using a separate Makefile, Makefile.ghcbin
-# Why? See comments in Makefile.ghcbin
-
-all :: $(GHC_PROG)
-
-$(GHC_PROG) : libHS$(PACKAGE)$(_way).a main/Main.hs
- $(MAKE) -f Makefile.ghcbin $(MFLAGS) HS_PROG=$(GHC_PROG) $@
-
-# Propagate standard targets to Makefile.ghcbin
-docs runtests $(BOOT_TARGET) TAGS clean distclean mostlyclean maintainer-clean $(INSTALL_TARGET) $(INSTALL_DOCS_TARGET) html chm HxS ps dvi txt::
- $(MAKE) -f Makefile.ghcbin $(MFLAGS) $@
-endif
-
-#-----------------------------------------------------------------------------
-# clean
-
-MAINTAINER_CLEAN_FILES += parser/Parser.info main/ParsePkgConf.info
-
-#-----------------------------------------------------------------------------
-# Include target-rule boilerplate
-
-# Don't use the default MKDEPENDHS stuff... we'll do our own, below
-MKDEPENDHS_SRCS =
-MKDEPENDC_SRCS =
-
-# Make doesn't work this out for itself, it seems
-parser/Parser.y : parser/Parser.y.pp
-EXTRA_SRCS += parser/Parser.y
-
-
-#-----------------------------------------------------------------------------
-# Source files for tags file generation
-#
-# We want to excluded derived sources, because they won't be in the source
-# tree, which is where we are going to move the TAGS file to.a
-
-TAGS_HS_SRCS = parser/Parser.y.pp $(filter-out $(DERIVED_SRCS) main/Config.hs parser/Parser.y, $(sort $(SRCS)))
-
-
-include $(TOP)/mk/target.mk
-
-# -----------------------------------------------------------------------------
-# Explicit dependencies
-
-# Some .hs files #include other source files, but since ghc -M doesn't spit out
-# these dependencies we have to include them manually.
-
-# We don't add dependencies on HsVersions.h, ghcautoconf.h, or ghc_boot_platform.h,
-# because then modifying one of these files would force recompilation of everything,
-# which is probably not what you want. However, it does mean you have to be
-# careful to recompile stuff you need if you reconfigure or change HsVersions.h.
-
-# Aargh, these don't work properly anyway, because GHC's recompilation checker
-# just reports "compilation NOT required". Do we have to add -no-recomp for each
-# of these .hs files? I haven't done anything about this yet.
-
-$(odir)/codeGen/Bitmap.$(way_)o : ../includes/MachDeps.h
-$(odir)/codeGen/CgCallConv.$(way_)o : ../includes/StgFun.h
-$(odir)/codeGen/CgProf.$(way_)o : ../includes/MachDeps.h
-$(odir)/codeGen/CgProf.$(way_)o : ../includes/Constants.h
-$(odir)/codeGen/CgProf.$(way_)o : ../includes/DerivedConstants.h
-$(odir)/codeGen/CgTicky.$(way_)o : ../includes/DerivedConstants.h
-$(odir)/codeGen/ClosureInfo.$(way_)o : ../includes/MachDeps.h
-$(odir)/codeGen/SMRep.$(way_)o : ../includes/MachDeps.h
-$(odir)/codeGen/SMRep.$(way_)o : ../includes/ClosureTypes.h
-$(odir)/ghci/ByteCodeAsm.$(way_)o : ../includes/Bytecodes.h
-$(odir)/ghci/ByteCodeFFI.$(way_)o : nativeGen/NCG.h
-$(odir)/ghci/ByteCodeInstr.$(way_)o : ../includes/MachDeps.h
-$(odir)/ghci/ByteCodeItbls.$(way_)o : ../includes/ClosureTypes.h
-$(odir)/ghci/ByteCodeItbls.$(way_)o : nativeGen/NCG.h
-$(odir)/main/Constants.$(way_)o : ../includes/MachRegs.h
-$(odir)/main/Constants.$(way_)o : ../includes/Constants.h
-$(odir)/main/Constants.$(way_)o : ../includes/MachDeps.h
-$(odir)/main/Constants.$(way_)o : ../includes/DerivedConstants.h
-$(odir)/main/Constants.$(way_)o : ../includes/GHCConstants.h
-$(odir)/nativeGen/AsmCodeGen.$(way_)o : nativeGen/NCG.h
-$(odir)/nativeGen/MachCodeGen.$(way_)o : nativeGen/NCG.h
-$(odir)/nativeGen/MachCodeGen.$(way_)o : ../includes/MachDeps.h
-$(odir)/nativeGen/MachInstrs.$(way_)o : nativeGen/NCG.h
-$(odir)/nativeGen/MachRegs.$(way_)o : nativeGen/NCG.h
-$(odir)/nativeGen/MachRegs.$(way_)o : ../includes/MachRegs.h
-$(odir)/nativeGen/PositionIndependentCode.$(way_)o : nativeGen/NCG.h
-$(odir)/nativeGen/PprMach.$(way_)o : nativeGen/NCG.h
-$(odir)/nativeGen/RegAllocInfo.$(way_)o : nativeGen/NCG.h
-$(odir)/typecheck/TcForeign.$(way_)o : nativeGen/NCG.h
-$(odir)/utils/Binary.$(way_)o : ../includes/MachDeps.h
-$(odir)/utils/FastMutInt.$(way_)o : ../includes/MachDeps.h
-
-# -----------------------------------------------------------------------------
-# Dependencies
-
-MKDEPENDHS_HC_OPTS = $(patsubst -i$(odir)/%, -i%, $(HC_OPTS))
-
-MKDEPENDHS=$(HC)
-
-# Must do this *after* including target.mk, because $(HS_SRCS) isn't set yet.
-depend :: $(STAGE_PLATFORM_H) $(HS_SRCS) $(C_SRCS)
- touch .depend-BASE
-ifneq "$(BootingFromHc)" "YES"
- $(MKDEPENDHS) -M -optdep-f -optdep.depend-BASE $(foreach way,$(WAYS),-optdep-s -optdep$(way)) $(foreach obj,$(MKDEPENDHS_OBJ_SUFFICES),-osuf $(obj)) $(MKDEPENDHS_OPTS) $(filter-out -split-objs, $(MKDEPENDHS_HC_OPTS)) $(HS_SRCS)