X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FMakefile;h=d2195c74a1b314c0248ebd81c9ca5074019b72a7;hb=5b87f4c4cdfb303d3d4c408ca94a9e94b644da5b;hp=cdc8b3c3e445a61201fc8c7a7a63360475e4491f;hpb=5b846fa36eee0f96c4c47128706d0131f8bb4113;p=ghc-hetmet.git diff --git a/compiler/Makefile b/compiler/Makefile index cdc8b3c..d2195c7 100644 --- a/compiler/Makefile +++ b/compiler/Makefile @@ -257,8 +257,6 @@ $(CONFIG_HS) : $(FPTOOLS_TOP)/mk/config.mk @echo "cLdIsGNULd = \"$(LdIsGNULd)\"" >> $(CONFIG_HS) @echo "cLD_X :: String" >> $(CONFIG_HS) @echo "cLD_X = \"$(LD_X)\"" >> $(CONFIG_HS) - @echo "cPROJECT_DIR :: String" >> $(CONFIG_HS) - @echo "cPROJECT_DIR = \"$(PROJECT_DIR)\"" >> $(CONFIG_HS) @echo "cGHC_DRIVER_DIR_REL :: String" >> $(CONFIG_HS) @echo "cGHC_DRIVER_DIR_REL = \"$(GHC_DRIVER_DIR_REL)\"" >> $(CONFIG_HS) @echo "cGHC_TOUCHY_PGM :: String" >> $(CONFIG_HS) @@ -308,7 +306,7 @@ else @echo "cRelocatableBuild = False" >> $(CONFIG_HS) endif @echo "cLibFFI :: Bool" >> $(CONFIG_HS) -ifeq "$(UseLibFFI)" "YES" +ifeq "$(UseLibFFIForAdjustors)" "YES" @echo "cLibFFI = True" >> $(CONFIG_HS) else @echo "cLibFFI = False" >> $(CONFIG_HS) @@ -433,7 +431,7 @@ SRC_HC_OPTS += -Istage$(stage) ALL_DIRS = \ utils basicTypes types hsSyn prelude rename typecheck deSugar coreSyn \ vectorise specialise simplCore stranal stgSyn simplStg codeGen main \ - profiling parser cprAnalysis ndpFlatten iface cmm + profiling parser cprAnalysis iface cmm # Make sure we include Config.hs even if it doesn't exist yet... ALL_SRCS += $(CONFIG_HS) @@ -457,11 +455,6 @@ ALL_DIRS += javaGen SRC_HC_OPTS += -DJAVA endif -ifeq ($(UseLibFFI),YES) -SRC_HC_OPTS += -DUSE_LIBFFI -SRC_HSC2HS_OPTS += -DUSE_LIBFFI -endif - ifeq "$(BootingFromHc)" "YES" # HC files are always from a self-booted compiler bootstrapped = YES @@ -517,6 +510,9 @@ ifeq "$(GhcDebugged)" "YES" SRC_LD_OPTS += -debug endif +SRC_HC_OPTS += -I$(FPTOOLS_TOP)/libffi/build/include +SRC_HSC2HS_OPTS += -I$(FPTOOLS_TOP)/libffi/build/include + ALL_DIRS += ghci # If we are going to use dynamic libraries instead of .o files for ghci, @@ -529,23 +525,23 @@ else EXCLUDED_SRCS += ghci/keepCAFsForGHCi.c endif -# 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 +# Enable editline if either: +# - we're building stage 1 and $(GhcHasEditline)="YES" +# - we're building stage 2/3, and we have built the editline package # -# But we don't enable readline on Windows, because readline is fairly -# broken there. +# But we don't enable editline on Windows, as Windows terminals have +# editline-like support builtin. # ifneq "$(TARGETPLATFORM)" "i386-unknown-mingw32" ifeq "$(stage)" "1" -ifeq "$(GhcHasReadline)" "YES" -SRC_HC_OPTS += -package readline -DUSE_READLINE -PKG_DEPENDS += readline +ifeq "$(GhcHasEditline)" "YES" +SRC_HC_OPTS += -package editline -DUSE_EDITLINE +PKG_DEPENDS += editline endif else -ifeq "$(wildcard $(FPTOOLS_TOP_ABS)/libraries/readline/unbuildable)" "" -SRC_HC_OPTS += -package readline -DUSE_READLINE -PKG_DEPENDS += readline +ifeq "$(wildcard $(FPTOOLS_TOP_ABS)/libraries/editline/unbuildable)" "" +SRC_HC_OPTS += -package editline -DUSE_EDITLINE +PKG_DEPENDS += editline endif endif # stage=1 endif # not windows @@ -574,7 +570,7 @@ SRC_MKDEPENDC_OPTS += -I$(GHC_INCLUDE_DIR) SRC_HC_OPTS += \ -cpp -fglasgow-exts -fno-generics -Rghc-timing \ - -I. -Iparser + -I. -Iparser -Iutil # Omitted: -I$(GHC_INCLUDE_DIR) # We should have -I$(GHC_INCLUDE_DIR) in SRC_HC_OPTS, @@ -619,7 +615,7 @@ endif SRC_HC_OPTS += -ignore-package lang SRC_CC_OPTS += -Iparser -I. -O -SRC_HC_OPTS += -recomp $(GhcHcOpts) $(GhcStage$(stage)HcOpts) +SRC_HC_OPTS += $(GhcHcOpts) $(GhcStage$(stage)HcOpts) SRC_HC_OPTS += -H16M ifeq "$(BootingFromHc)" "YES" @@ -641,8 +637,8 @@ parser/Parser_HC_OPTS += -fno-warn-incomplete-patterns # Careful optimisation of the parser: we don't want to throw everything # at it, because that takes too long and doesn't buy much, but we do want # to inline certain key external functions, so we instruct GHC not to -# throw away inlinings as it would normally do in -Onot mode: -parser/Parser_HC_OPTS += -Onot -fno-ignore-interface-pragmas +# throw away inlinings as it would normally do in -O0 mode: +parser/Parser_HC_OPTS += -O0 -fno-ignore-interface-pragmas ifeq "$(HOSTPLATFORM)" "hppa1.1-hp-hpux9" rename/RnMonad_HC_OPTS = -O2 -O2-for-C @@ -769,7 +765,12 @@ ifeq "$(stage)" "1" include $(GHC_COMPAT_DIR)/compat.mk endif -SRC_LD_OPTS += -no-link-chk +ifeq "$(GhcUnregisterised)" "NO" +ifeq "$(HOSTPLATFORM)" "ia64-unknown-linux" +# needed for generating proper relocation in large binaries: trac #856 +SRC_LD_OPTS += -optl-Wl,--relax +endif +endif # ----------------------------------------------------------------------------- # create ghc-inplace, a convenient way to run ghc from the build tree... @@ -881,6 +882,8 @@ LIB_LD_OPTS += $(foreach pkg,$(PKG_DEPENDS),-package $(pkg)) # We have to expand each package dependency with its version, which we # can do by calling "ghc-pkg list $pkg --simple-output". PACKAGE_CPP_OPTS += -DPKG_DEPENDS='$(foreach pkg,$(PKG_DEPENDS),$(shell $(GHC_PKG_INPLACE) latest --global $(pkg)))' +# We want to define STAGE to be like "2" in the Haskell code, so we need +# to quote the "s so that they don't get interpreted by the shell. PACKAGE_CPP_OPTS += -DSTAGE='"$(stage)"' # Omit Main from the library, the client will want to plug their own Main in