X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FMakefile;h=7d12d0b77a917f726f9f1ee589b6871c759affc4;hb=5c6aded9bba7bdea0d301aba243d28f659e02327;hp=6fb168824acf2d894eeeea63d37424c9dc5ae9df;hpb=c245355e6f2c7b7c95e9af910c4d420e13af9413;p=ghc-hetmet.git diff --git a/rts/Makefile b/rts/Makefile index 6fb1688..7d12d0b 100644 --- a/rts/Makefile +++ b/rts/Makefile @@ -159,9 +159,8 @@ SRC_CC_OPTS += -DNOSMP SRC_HC_OPTS += -optc-DNOSMP endif -ifeq "$(UseLibFFI)" "YES" -SRC_CC_OPTS += -DUSE_LIBFFI -PACKAGE_CPP_OPTS += -DUSE_LIBFFI +ifeq "$(UseLibFFIForAdjustors)" "YES" +SRC_CC_OPTS += -DUSE_LIBFFI_FOR_ADJUSTORS endif ifneq "$(DYNAMIC_RTS)" "YES" @@ -202,6 +201,10 @@ RtsUtils_CC_OPTS += -DTargetPlatform=$(DQ)$(TARGETPLATFORM)$(DQ) RtsUtils_CC_OPTS += -DGhcUnregisterised=$(DQ)$(GhcUnregisterised)$(DQ) RtsUtils_CC_OPTS += -DGhcEnableTablesNextToCode=$(DQ)$(GhcEnableTablesNextToCode)$(DQ) +# ffi.h triggers prototype warnings, so disable them here: +Interpreter_CC_OPTS += -Wno-strict-prototypes +Adjustor_CC_OPTS += -Wno-strict-prototypes + StgCRun_CC_OPTS += -w Typeable_CC_OPTS += -w RetainerProfile_CC_OPTS += -w @@ -274,10 +277,24 @@ endif # Add PAPI library if needed ifeq "$(GhcRtsWithPapi)" "YES" + SRC_HC_OPTS += -optc-DUSE_PAPI PACKAGE_CPP_OPTS += -DUSE_PAPI + +PACKAGE_CPP_OPTS += -DPAPI_INCLUDE_DIR=$(PapiIncludeDir) +PACKAGE_CPP_OPTS += -DPAPI_LIB_DIR=$(PapiLibDir) + +ifneq "$(PapiIncludeDir)" "" +SRC_HC_OPTS += -I$(PapiIncludeDir) +SRC_CC_OPTS += -I$(PapiIncludeDir) +SRC_HSC2HS_OPTS += -I$(PapiIncludeDir) +endif +ifneq "$(PapiLibDirs)" "" +SRC_LD_OPTS += -L$(PapiLibDirs) endif +endif # GhcRtsWithPapi==YES + #----------------------------------------------------------------------------- # make depend setup @@ -312,12 +329,6 @@ CLEAN_FILES += $(AUTO_APPLY_CMM) endif # ----------------------------------------------------------------------------- -# Compile GMP only if we don't have it already -# -# We use GMP's own configuration stuff, because it's all rather hairy -# and not worth re-implementing in our Makefile framework. - -CLEAN_FILES += gmp/libgmp.a # Need to get the GMP vars in through CPP to package.conf.in, and put # quotes around each element. @@ -343,6 +354,14 @@ SRC_HSC2HS_OPTS += -I../gmp/gmpbuild SRC_LD_OPTS += -L../gmp/gmpbuild #----------------------------------------------------------------------------- +# libffi stuff + +SRC_CC_OPTS += -I../libffi/build/include +SRC_HC_OPTS += -I../libffi/build/include +SRC_HSC2HS_OPTS += -I../libffi/build/include +SRC_LD_OPTS += -L../libffi/build/include + +#----------------------------------------------------------------------------- # # Building the GUM SysMan # @@ -385,7 +404,7 @@ sm/Compact_HC_OPTS += -optc-finline-limit=2500 # use a variety of types to represent closure pointers (StgPtr, # StgClosure, StgMVar, etc.), and without -fno-strict-aliasing gcc is # allowed to assume that these pointers do not alias. eg. without -# this flag we get problems in GC.c:copy() with gcc 3.4.3, the +# this flag we get problems in sm/Evac.c:copy() with gcc 3.4.3, the # upd_evacee() assigments get moved before the object copy. SRC_CC_OPTS += -fno-strict-aliasing @@ -429,7 +448,6 @@ endif binary-dist: $(INSTALL_DIR) $(BIN_DIST_DIR)/rts - $(INSTALL_DIR) $(BIN_DIST_DIR)/rts/gmp $(INSTALL_DATA) Makefile $(BIN_DIST_DIR)/rts/ $(INSTALL_DATA) package.conf.in $(BIN_DIST_DIR)/rts/ ifneq "$(INSTALL_LIBS)" ""