X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FMakefile;h=1cf49d91a9c0dae772064891c4fb3aa070246069;hb=980f56ed05fe6665e73d130cc99de6390095c2d7;hp=b040e58665058f8b9fd2ab44422d3aebb74b5a9a;hpb=712290dc9fda7fc51c3c309367e7b2535033d76b;p=ghc-hetmet.git diff --git a/ghc/compiler/Makefile b/ghc/compiler/Makefile index b040e58..1cf49d9 100644 --- a/ghc/compiler/Makefile +++ b/ghc/compiler/Makefile @@ -192,6 +192,8 @@ $(CONFIG_HS) : $(FPTOOLS_TOP)/mk/config.mk Makefile @echo "cHscIfaceFileVersion = \"$(HscIfaceFileVersion)\"" >> $(CONFIG_HS) @echo "cHOSTPLATFORM = \"$(HOSTPLATFORM)\"" >> $(CONFIG_HS) @echo "cTARGETPLATFORM = \"$(TARGETPLATFORM)\"" >> $(CONFIG_HS) + @echo "cTARGETOS = \"$(TargetOS_CPP)\"" >> $(CONFIG_HS) + @echo "cTARGETARCH = \"$(TargetArch_CPP)\"" >> $(CONFIG_HS) @echo "cGhcWithNativeCodeGen = \"$(GhcWithNativeCodeGen)\"" >> $(CONFIG_HS) @echo "cGhcUnregisterised = \"$(GhcUnregisterised)\"" >> $(CONFIG_HS) @echo "cLeadingUnderscore = \"$(LeadingUnderscore)\"" >> $(CONFIG_HS) @@ -232,8 +234,8 @@ CLEAN_FILES += $(CONFIG_HS) ALL_DIRS = \ utils basicTypes types hsSyn prelude rename typecheck deSugar coreSyn \ - specialise simplCore stranal stgSyn simplStg codeGen absCSyn main \ - profiling parser cprAnalysis compMan ndpFlatten cbits iface + specialise simplCore stranal stgSyn simplStg codeGen main \ + profiling parser cprAnalysis compMan ndpFlatten iface cmm # Make sure we include Config.hs even if it doesn't exist yet... ALL_SRCS += $(CONFIG_HS) @@ -271,21 +273,49 @@ compiling_with_4xx = $(shell if (test $(GhcCanonVersion) -lt 500); then echo YES endif endif -# Only include GHCi if we're bootstrapping with at least version 411 +# ----------------------------------------------------------------------------- +# Building a compiler with interpreter support +# +# The interpreter, GHCi interface, and Template Haskell are only +# enabled when we are bootstrapping with the same version of GHC, and +# the interpreter is supported on this platform. + ifeq "$(GhcWithInterpreter) $(bootstrapped)" "YES YES" -# Yes, include the interpreter, readline, and Template Haskell extensions + +# Yes, include the interepreter, readline, and Template Haskell extensions SRC_HC_OPTS += -DGHCI -package template-haskell + ifneq "$(TARGETPLATFORM)" "i386-unknown-mingw32" SRC_HC_OPTS += -package unix -ifeq "$(GhcLibsWithReadline)" "YES" -SRC_HC_OPTS += -package readline -endif endif + ALL_DIRS += ghci + +# Enable readline if either: +# - we're building stage 1 and $(GhcHasReadline)="YES" +# - we're building stage 2/3, and we have built the readline package +# +# But we don't enable readline on Windows, because readline is fairly +# broken there. +# +ifneq "$(TARGETPLATFORM)" "i386-unknown-mingw32" +ifeq "$(stage)" "1" +ifeq "$(GhcHasReadline)" "YES" +SRC_HC_OPTS += -package readline -DUSE_READLINE +endif else +ifeq "$(GhcLibsWithReadline)" "YES" +SRC_HC_OPTS += -package readline -DUSE_READLINE +endif +endif # stage=1 +endif # not windows + +else + # No interpreter, so exclude Template Haskell modules EXCLUDED_SRCS += deSugar/DsMeta.hs typecheck/TcSplice.lhs hsSyn/Convert.lhs -endif + +endif # bootstrapped with interpreter # ----------------------------------------------- # mkdependC stuff @@ -410,9 +440,6 @@ ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32" main/SysTools_HC_OPTS += '-\#include ' '-\#include ' endif -# Required due to use of Concurrent.myThreadId -utils/Panic_HC_OPTS += -fvia-C - parser/Lexer_HC_OPTS += -funbox-strict-fields # ghc_strlen percolates through so many modules that it is easier to get its @@ -480,6 +507,14 @@ primop-usage.hs-incl: prelude/primops.txt #----------------------------------------------------------------------------- # Linking +# Include libghccompat in stage1. In stage2 onwards, all these libraries +# will be available from the main libraries. +ifeq "$(stage)" "1" +SRC_HC_OPTS += -i$(GHC_LIB_COMPAT_DIR) +SRC_LD_OPTS += -L$(GHC_LIB_COMPAT_DIR) -lghccompat +SRC_MKDEPENDHS_OPTS += -optdep--exclude-module=Compat.RawSystem +endif + SRC_LD_OPTS += -no-link-chk # ----------------------------------------------------------------------------- @@ -553,8 +588,6 @@ endif # typecheck/TcTyDecls_HC_OPTS += -auto-all # typecheck/TcType_HC_OPTS += -auto-all # typecheck/TcUnify_HC_OPTS += -auto-all -# -# absCSyn/PprAbsC_HC_OPTS += -auto-all coreSyn/CorePrep_HC_OPTS += -auto-all @@ -565,7 +598,7 @@ ifeq "$(BuildPackageGHC)" "YES" PACKAGE = ghc STANDALONE_PACKAGE = YES -PACKAGE_DEPS = base haskell98 +PACKAGE_DEPS = endif @@ -585,6 +618,16 @@ MKDEPENDC_SRCS = parser/Parser.y : parser/Parser.y.pp EXTRA_SRCS += parser/Parser.y + +#----------------------------------------------------------------------------- +# Source files for tags file generation +# +# We want to excluded derived sources, because they won't be in the source +# tree, which is where we are going to move the TAGS file to.a + +TAGS_HS_SRCS = parser/Parser.y.pp $(filter-out $(DERIVED_SRCS) main/Config.hs parser/Parser.y, $(sort $(SRCS))) + + include $(TOP)/mk/target.mk # -----------------------------------------------------------------------------