X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FMakefile;h=c1819f2cd269bcebd213caa4508bda25dc2240a0;hb=df85c4b4a403c1e17d3f79fe91109ffbe6ba60b7;hp=68348ef063dd696b63a7eb495a388e62783af583;hpb=f6ee30fe81adf6bf7914c89cf60974c34b781c59;p=ghc-hetmet.git diff --git a/ghc/compiler/Makefile b/ghc/compiler/Makefile index 68348ef..c1819f2 100644 --- a/ghc/compiler/Makefile +++ b/ghc/compiler/Makefile @@ -216,6 +216,8 @@ $(CONFIG_HS) : $(FPTOOLS_TOP)/mk/config.mk Makefile @echo "cRAWCPP_FLAGS = \"$(RAWCPP_FLAGS)\"" >> $(CONFIG_HS) @echo "cGCC = \"$(WhatGccIsCalled)\"" >> $(CONFIG_HS) @echo "cMKDLL = \"$(BLD_DLL)\"" >> $(CONFIG_HS) + @echo "cLdIsGNULd = \"$(LdIsGNULd)\"" >> $(CONFIG_HS) + @echo "cLD_X = \"$(LD_X)\"" >> $(CONFIG_HS) @echo "cPROJECT_DIR = \"$(PROJECT_DIR)\"" >> $(CONFIG_HS) @echo "cGHC_DRIVER_DIR_REL = \"$(GHC_DRIVER_DIR_REL)\"" >> $(CONFIG_HS) @echo "cGHC_TOUCHY_PGM = \"$(GHC_TOUCHY_PGM)\"" >> $(CONFIG_HS) @@ -259,9 +261,9 @@ stage1/$(PLATFORM_H) : stage_dirs $(FPTOOLS_TOP)/mk/config.mk Makefile @echo "#ifndef __PLATFORM_H__" >$@ @echo "#define __PLATFORM_H__" >>$@ @echo >> $@ - @echo "#define BuildPlatform_TYPE $(BuildPlatform_CPP)" >> $@ - @echo "#define HostPlatform_TYPE $(HostPlatform_CPP)" >> $@ - @echo "#define TargetPlatform_TYPE $(TargetPlatform_CPP)" >> $@ + @echo "#define BuildPlatform_NAME \"$(BUILDPLATFORM)\"" >> $@ + @echo "#define HostPlatform_NAME \"$(HOSTPLATFORM)\"" >> $@ + @echo "#define TargetPlatform_NAME \"$(TARGETPLATFORM)\"" >> $@ @echo >> $@ @echo "#define $(BuildPlatform_CPP)_BUILD 1" >> $@ @echo "#define $(HostPlatform_CPP)_HOST 1" >> $@ @@ -305,9 +307,9 @@ stage2/$(PLATFORM_H) : stage_dirs $(FPTOOLS_TOP)/mk/config.mk Makefile @echo "#ifndef __PLATFORM_H__" >$@ @echo "#define __PLATFORM_H__" >>$@ @echo >> $@ - @echo "#define BuildPlatform_TYPE $(HostPlatform_CPP)" >> $@ - @echo "#define HostPlatform_TYPE $(TargetPlatform_CPP)" >> $@ - @echo "#define TargetPlatform_TYPE $(TargetPlatform_CPP)" >> $@ + @echo "#define BuildPlatform_NAME \"$(HOSTPLATFORM)\"" >> $@ + @echo "#define HostPlatform_NAME \"$(TARGETPLATFORM)\"" >> $@ + @echo "#define TargetPlatform_NAME \"$(TARGETPLATFORM)\"" >> $@ @echo >> $@ @echo "#define $(HostPlatform_CPP)_BUILD 1" >> $@ @echo "#define $(TargetPlatform_CPP)_HOST 1" >> $@ @@ -390,7 +392,7 @@ else ifneq "$(findstring $(stage), 2 3)" "" bootstrapped = YES else -bootstrapped = $(shell if (test $(GhcCanonVersion) -ge $(ProjectVersionInt) -a $(GhcPatchLevel) -ge $(ProjectPatchLevel)); then echo YES; else echo NO; fi) +bootstrapped = $(shell if (test $(GhcCanonVersion) -eq $(ProjectVersionInt) -a $(GhcPatchLevel) -eq $(ProjectPatchLevel)); then echo YES; else echo NO; fi) endif endif @@ -407,6 +409,9 @@ ifeq "$(GhcWithInterpreter) $(bootstrapped)" "YES YES" SRC_HC_OPTS += -DGHCI -package template-haskell PKG_DEPENDS += template-haskell +# Use threaded RTS with GHCi, so threads don't get blocked at the prompt. +SRC_HC_OPTS += -threaded + ALL_DIRS += ghci # If we are going to use dynamic libraries instead of .o files for ghci, @@ -554,11 +559,14 @@ ifeq "$(bootstrapped)" "YES" utils/Binary_HC_OPTS = -funbox-strict-fields endif -# BinIface and Binary take ages to both compile and run if you don's use -O +# We always optimise some low-level modules, otherwise performance of +# a non-optimised compiler is severely affected. main/BinIface_HC_OPTS += -O utils/Binary_HC_OPTS += -O utils/FastMutInt_HC_OPTS += -O - +utils/Encoding_HC_OPTS += -O +utils/StringBuffer_HC_OPTS += -O +utils/FastString_HC_OPTS += -O # ---- Profiling ---- #simplCore/Simplify_HC_OPTS = -auto-all @@ -674,7 +682,11 @@ $(odir)/ghc-inplace : $(HS_PROG) ghc-inplace : stage1/ghc-inplace $(LN_S) -f $< $@ -CLEAN_FILES += $(odir)/ghc-inplace ghc-inplace +ifeq "$(stage)" "1" +CLEAN_FILES += ghc-inplace +endif + +CLEAN_FILES += $(odir)/ghc-inplace #----------------------------------------------------------------------------- # install @@ -733,6 +745,7 @@ endif # typecheck/TcUnify_HC_OPTS += -auto-all coreSyn/CorePrep_HC_OPTS += -auto-all +# parser/Parser_HC_OPTS += -fasm #----------------------------------------------------------------------------- # Building the GHC package @@ -748,6 +761,9 @@ VERSION = $(ProjectVersion) PKG_DEPENDS += base haskell98 PACKAGE_CPP_OPTS += -DPKG_DEPENDS='$(PKG_DEPENDS)' +# Omit Main from the library, the client will want to plug their own Main in +LIBOBJS = $(filter-out $(odir)/main/Main.o $(odir)/parser/hschooks.o, $(OBJS)) + # disable splitting: it won't really help with GHC, and the specialised # build system for ghc/compiler isn't set up to handle it. SplitObjs = NO