X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fghc.mk;h=a17a47e5473350b37e87b1b391dd68b86aa0f224;hb=cf96c6c8f2ead02205e509975282e212a5eb9aee;hp=ccd4c5d685a94d1ed5f20fa9dccfdb56819edda3;hpb=c59c053f0b8613dd128297ee0b6eef31f001c498;p=ghc-hetmet.git diff --git a/ghc/ghc.mk b/ghc/ghc.mk index ccd4c5d..a17a47e 100644 --- a/ghc/ghc.mk +++ b/ghc/ghc.mk @@ -29,20 +29,21 @@ endif ifeq "$(GhcThreaded)" "YES" # Use threaded RTS with GHCi, so threads don't get blocked at the prompt. -ghc_HC_OPTS += -threaded +ghc_stage2_HC_OPTS += -threaded +ghc_stage3_HC_OPTS += -threaded endif -ifeq "$(BuildSharedLibs)" "YES" -ghc_HC_OPTS += -dynamic +ifeq "$(GhcProfiled)" "YES" +ghc_stage2_HC_OPTS += -prof endif -# XXX ToDp -# ifeq "$(GhcProfiled)" "YES" - ghc_stage1_MODULES = Main ghc_stage2_MODULES = $(ghc_stage1_MODULES) -ghc_stage3_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_PROG = ghc-stage2$(exeext) @@ -53,10 +54,18 @@ ghc_stage1_USE_BOOT_LIBS = YES ghc_stage1_HC_OPTS += -package $(compiler_PACKAGE)-$(compiler_stage1_VERSION) ghc_stage2_HC_OPTS += -package $(compiler_PACKAGE)-$(compiler_stage2_VERSION) ghc_stage3_HC_OPTS += -package $(compiler_PACKAGE)-$(compiler_stage3_VERSION) - -ghc_stage1_HC_OPTS += -XCPP -XPatternGuards -ghc_stage2_HC_OPTS += -XCPP -XPatternGuards -ghc_stage3_HC_OPTS += -XCPP -XPatternGuards +ghc_stage2_HC_OPTS += -package haskeline +ghc_stage3_HC_OPTS += -package haskeline + +ghc_language_extension_flags = -XCPP \ + -XPatternGuards \ + -XForeignFunctionInterface \ + -XUnboxedTuples \ + -XFlexibleInstances \ + -XMagicHash +ghc_stage1_HC_OPTS += $(ghc_language_extension_flags) +ghc_stage2_HC_OPTS += $(ghc_language_extension_flags) +ghc_stage3_HC_OPTS += $(ghc_language_extension_flags) # In stage1 we might not benefit from cross-package dependencies and # recompilation checking. We must force recompilation here, otherwise @@ -99,17 +108,28 @@ ghc/stage1/build/tmp/$(ghc_stage1_PROG) : $(compiler_stage1_v_LIB) 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) $(INPLACE_LIB)/extra-gcc-opts : extra-gcc-opts - $(CP) $< $@ + "$(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 @@ -117,6 +137,11 @@ $(GHC_STAGE2) : $(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 @@ -125,7 +150,7 @@ ifeq "$(Windows)" "NO" install: install_ghc_link .PNONY: install_ghc_link install_ghc_link: - $(RM) -f $(DESTDIR)$(bindir)/ghc + "$(RM)" $(RM_OPTS) $(DESTDIR)$(bindir)/ghc $(LN_S) ghc-$(ProjectVersion) $(DESTDIR)$(bindir)/ghc else # On Windows we install the main binary as $(bindir)/ghc.exe @@ -133,7 +158,7 @@ else install: install_ghc_post .PHONY: install_ghc_post install_ghc_post: install_bins - $(RM) -f $(DESTDIR)$(bindir)/ghc.exe - $(MV) -f $(DESTDIR)$(bindir)/ghc-stage$(INSTALL_GHC_STAGE).exe $(DESTDIR)$(bindir)/ghc.exe + "$(RM)" $(RM_OPTS) $(DESTDIR)$(bindir)/ghc.exe + "$(MV)" -f $(DESTDIR)$(bindir)/ghc-stage$(INSTALL_GHC_STAGE).exe $(DESTDIR)$(bindir)/ghc.exe endif