ghc_stage3_HC_OPTS += -threaded
endif
-ifeq "$(BuildSharedLibs)" "YES"
-ghc_HC_OPTS += -dynamic
-endif
-
# XXX ToDp
# ifeq "$(GhcProfiled)" "YES"
ghc_stage1_MODULES = Main
-ghc_stage2_MODULES = $(ghc_stage1_MODULES) GhciMonad GhciTags InteractiveUI
+ghc_stage2_MODULES = $(ghc_stage1_MODULES)
+ifeq "$(GhcWithInterpreter)" "YES"
+ghc_stage2_MODULES += GhciMonad GhciTags InteractiveUI
+endif
ghc_stage3_MODULES = $(ghc_stage2_MODULES)
ghc_stage1_PROG = ghc-stage1$(exeext)
ghc/stage2/build/tmp/$(ghc_stage2_PROG) : $(compiler_stage2_v_LIB)
ghc/stage3/build/tmp/$(ghc_stage3_PROG) : $(compiler_stage3_v_LIB)
+# Modules here import HsVersions.h, so we need ghc_boot_platform.h
+$(ghc_stage1_depfile) : compiler/stage1/$(PLATFORM_H)
+$(ghc_stage2_depfile) : compiler/stage2/$(PLATFORM_H)
+$(ghc_stage3_depfile) : compiler/stage3/$(PLATFORM_H)
+
all_ghc_stage1 : $(GHC_STAGE1)
all_ghc_stage2 : $(GHC_STAGE2)
all_ghc_stage3 : $(GHC_STAGE3)
$(CP) $< $@
# The GHC programs need to depend on all the helper programs they might call
-$(GHC_STAGE1) : $(INPLACE_LIB)/extra-gcc-opts $(MANGLER) $(SPLIT)
-$(GHC_STAGE2) : $(INPLACE_LIB)/extra-gcc-opts $(MANGLER) $(SPLIT)
-$(GHC_STAGE3) : $(INPLACE_LIB)/extra-gcc-opts $(MANGLER) $(SPLIT)
+ifeq "$(GhcUnregisterised)" "NO"
+$(GHC_STAGE1) : $(MANGLER) $(SPLIT)
+$(GHC_STAGE2) : $(MANGLER) $(SPLIT)
+$(GHC_STAGE3) : $(MANGLER) $(SPLIT)
+endif
+
+$(GHC_STAGE1) : $(INPLACE_LIB)/extra-gcc-opts
+$(GHC_STAGE2) : $(INPLACE_LIB)/extra-gcc-opts
+$(GHC_STAGE3) : $(INPLACE_LIB)/extra-gcc-opts
ifeq "$(Windows)" "YES"
$(GHC_STAGE1) : $(TOUCHY) $(INPLACE)/stamp-mingw $(INPLACE_LIB)/perl.exe
$(GHC_STAGE3) : $(TOUCHY) $(INPLACE)/stamp-mingw $(INPLACE_LIB)/perl.exe
endif
+ifeq "$(BootingFromHc)" "YES"
+$(GHC_STAGE2) : $(ALL_STAGE1_LIBS)
+ghc_stage2_OTHER_OBJS += $(compiler_stage2_v_LIB) $(ALL_STAGE1_LIBS) $(ALL_STAGE1_LIBS) $(ALL_STAGE1_LIBS) $(ALL_RTS_LIBS) $(libffi_STATIC_LIB)
+endif
+
endif
INSTALL_LIBS += extra-gcc-opts