X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=rts%2FMakefile;h=19a7a2288f3182fae22dfa07e4f73deb002524ce;hp=d88a82308b220352bede2393d616dd3265566ce7;hb=89eac8928317774fdc3f283d78d3ff3cb315db5e;hpb=5b846fa36eee0f96c4c47128706d0131f8bb4113 diff --git a/rts/Makefile b/rts/Makefile index d88a823..19a7a22 100644 --- a/rts/Makefile +++ b/rts/Makefile @@ -36,7 +36,7 @@ endif # ----------------------------------------------------------------------------- # RTS ways -WAYS=$(GhcLibWays) $(GhcRTSWays) +WAYS=$(strip $(GhcLibWays) $(GhcRTSWays)) ifneq "$(findstring debug, $(way))" "" GhcRtsHcOpts= @@ -152,14 +152,15 @@ SRC_CC_OPTS += $(STANDARD_OPTS) SRC_CC_OPTS += $(GhcRtsCcOpts) SRC_HC_OPTS += $(GhcRtsHcOpts) $(STANDARD_OPTS) -package-name rts +SRC_HC_OPTS += -fvia-C + ifneq "$(GhcWithSMP)" "YES" 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" @@ -200,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 @@ -310,12 +315,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. @@ -341,6 +340,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 # @@ -366,13 +373,7 @@ endif # Compiling the cmm files # ToDo: should we really include Rts.h here? Required for GNU_ATTRIBUTE(). -SRC_HC_OPTS += -I. -\#include HCIncludes.h - -ifeq "$(Windows)" "YES" -PrimOps_HC_OPTS += -\#include '' -\#include win32/AsyncIO.h -else -PrimOps_HC_OPTS += -\#include posix/Itimer.h -endif +SRC_HC_OPTS += -I. # Otherwise the stack-smash handler gets triggered. ifeq "$(TargetOS_CPP)" "openbsd" @@ -433,7 +434,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)" ""