X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2FMakefile;h=4aa67ce75e532b9ef1b319bbd25ee77e01bbffb6;hp=dcc2cddcd8affa67ac5331c496766f8ce6f373de;hb=5edf58c10a0144fa8b328e18d0b7fffec2319424;hpb=8df809e4ce2319cccd91b14a74e13c879faaf357 diff --git a/compiler/Makefile b/compiler/Makefile index dcc2cdd..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 # ----------------------------------------------------------------------------- @@ -439,6 +443,8 @@ PKG_DEPENDS += readline endif else -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 @@ -677,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 @@ -702,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 # ---------------------------------------------------------------------------- @@ -785,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 #-----------------------------------------------------------------------------