# This Makefile builds the GHC binary for stage2. In stage2, the GHC binary # is built as a single Main module that links to the GHC package. It # is easier to do this with a separate Makefile, because we don't want most # of the options normally dumped into SRC_HC_OPTS by the main GHC Makefile. # In particular, we don't want the .hi files picked up along the home package # search path when compiling Main, we need the compiler to find them in # the GHC package. TOP = .. include $(TOP)/mk/boilerplate.mk ifeq "$(stage)" "2" HC=$(GHC_STAGE1) endif ifeq "$(stage)" "3" HC=$(GHC_STAGE2) endif EXCLUDED_C_SRCS += ghc-inplace.c SRC_HC_OPTS += -package ghc SRC_HC_OPTS += -Istage$(stage) SRC_HC_OPTS += \ -cpp -fglasgow-exts -fno-generics -Rghc-timing \ -I. -IcodeGen -InativeGen -Iparser SRC_HC_OPTS += $(GhcHcOpts) $(GhcStage$(stage)HcOpts) ifeq "$(TargetOS_CPP)" "openbsd" SRC_HC_OPTS += -optl-Xlinker -optl-E endif ifeq "$(GhcWithInterpreter)" "YES" SRC_HC_OPTS += -DGHCI # Should the debugger commands be enabled? ifeq "$(GhciWithDebugger)" "YES" SRC_HC_OPTS += -DDEBUGGER endif endif ifeq "$(GhcThreaded)" "YES" SRC_HC_OPTS += -threaded endif ifeq "$(GhcProfiled)" "YES" SRC_HC_OPTS += -prof endif ifeq "$(GhcDebugged)" "YES" SRC_LD_OPTS += -debug endif odir=stage$(stage) HS_SRCS = main/Main.hs HS_OBJS = $(patsubst %, $(odir)/%, $(addsuffix .$(way_)o,$(basename $(HS_SRCS)))) $(odir)/main/Main.o : libHSghc$(_way).a SRC_HC_OPTS += -fforce-recomp # can't rely on GHC's recompilation checking here, because it won't spot # changes in the ghc package. WAYS=$(GhcCompilerWays) include $(TOP)/mk/target.mk