X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2FMakefile;h=4aa67ce75e532b9ef1b319bbd25ee77e01bbffb6;hp=87383b4c39787e926cc51d283353e534faf4cb0b;hb=5edf58c10a0144fa8b328e18d0b7fffec2319424;hpb=8bea01735465d72bb00379115680a3ff9f8308a2 diff --git a/compiler/Makefile b/compiler/Makefile index 87383b4..4aa67ce 100644 --- a/compiler/Makefile +++ b/compiler/Makefile @@ -183,12 +183,16 @@ endif # ifneq "$(way)" "dll" ifneq "$(TARGETPLATFORM)" "i386-unknown-mingw32" -HS_PROG=$(odir)/ghc$(_way)-$(ProjectVersion) +GHC_PROG=$(odir)/ghc$(_way)-$(ProjectVersion) else -HS_PROG=$(odir)/ghc$(_way) +GHC_PROG=$(odir)/ghc$(_way) endif else -HS_PROG=$(odir)/ghc-$(ProjectVersion) +GHC_PROG=$(odir)/ghc-$(ProjectVersion) +endif + +ifneq "$(stage)" "2" +HS_PROG = $(GHC_PROG) endif # ----------------------------------------------------------------------------- @@ -406,7 +410,7 @@ endif ifeq "$(GhcWithInterpreter) $(bootstrapped)" "YES YES" # Yes, include the interepreter, readline, and Template Haskell extensions -SRC_HC_OPTS += -DGHCI -package template-haskell +SRC_HC_OPTS += -DGHCI -DBREAKPOINT -package template-haskell PKG_DEPENDS += template-haskell # Use threaded RTS with GHCi, so threads don't get blocked at the prompt. @@ -438,7 +442,10 @@ SRC_HC_OPTS += -package readline -DUSE_READLINE PKG_DEPENDS += readline endif else -ifeq "$(GhcLibsWithReadline)" "YES" +-include $(FPTOOLS_TOP)/libraries/readline/config.mk +# readline's config.mk sets PACKAGE, which we don't want here +PACKAGE= +ifeq "$(READLINE_BUILD_PACKAGE)" "yes" SRC_HC_OPTS += -package readline -DUSE_READLINE PKG_DEPENDS += readline endif @@ -487,7 +494,12 @@ SRC_HC_OPTS += \ SRC_MKDEPENDHS_OPTS += -I$(GHC_INCLUDE_DIR) # We need System.Posix (or Posix when ghc < 6.2) -ifneq "$(TARGETPLATFORM)" "i386-unknown-mingw32" +ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32" +ifeq "$(bootstrapped)" "YES" +SRC_HC_OPTS += -package Win32 +PKG_DEPENDS += Win32 +endif +else ifeq "$(bootstrapped) $(ghc_ge_601)" "NO NO" SRC_HC_OPTS += -package posix else @@ -671,10 +683,10 @@ SRC_LD_OPTS += -no-link-chk all :: $(odir)/ghc-inplace ghc-inplace -$(odir)/ghc-inplace : $(HS_PROG) +$(odir)/ghc-inplace : $(GHC_PROG) @$(RM) $@ echo '#!/bin/sh' >>$@ - echo exec $(GHC_COMPILER_DIR_ABS)/$(HS_PROG) '-B$(subst \,\\,$(FPTOOLS_TOP_ABS_PLATFORM))' '"$$@"' >>$@ + echo exec $(GHC_COMPILER_DIR_ABS)/$(GHC_PROG) '-B$(subst \,\\,$(FPTOOLS_TOP_ABS_PLATFORM))' '"$$@"' >>$@ chmod 755 $@ ghc-inplace : stage1/ghc-inplace @@ -696,9 +708,9 @@ CLEAN_FILES += $(odir)/ghc-inplace DESTDIR = $(INSTALL_LIBRARY_DIR_GHC) ifneq "$(HOSTPLATFORM)" "i386-unknown-mingw32" -INSTALL_LIBEXECS += $(HS_PROG) +INSTALL_LIBEXECS += $(GHC_PROG) else -INSTALL_PROGS += $(HS_PROG) +INSTALL_PROGS += $(GHC_PROG) endif # ---------------------------------------------------------------------------- @@ -779,6 +791,19 @@ 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 + +# Don't build the GHC binary as normal, because we need to link it +# against the GHC package. The GHC binary itself is built by +# compiling Main.o separately and linking it with -package ghc. This is +# done using a separate Makefile: + +all :: $(GHC_PROG) + +$(GHC_PROG) : libHS$(PACKAGE)$(_way).a main/Main.hs + $(MAKE) -f Makefile.ghcbin $(MFLAGS) HS_PROG=$(GHC_PROG) $@ + +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 #-----------------------------------------------------------------------------