X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FMakefile;h=184a8440cc780998b1ac2531d64b840e1c3be09d;hb=61caf48a5f848cdd24e36a35645bc13c161df7a3;hp=c01a907fdd1e0937be0e129a3c3ec9eda3c53f58;hpb=ab0e778ccfde61aed4c22679b24d175fc6cc9bf3;p=ghc-hetmet.git diff --git a/rts/Makefile b/rts/Makefile index c01a907..184a844 100644 --- a/rts/Makefile +++ b/rts/Makefile @@ -35,7 +35,7 @@ WAYS=$(GhcLibWays) $(GhcRTSWays) ifneq "$(findstring debug, $(way))" "" GhcRtsHcOpts= -GhcRtsCcOpts=-g +GhcRtsCcOpts=-g -O0 endif # ----------------------------------------------------------------------------- @@ -96,7 +96,7 @@ WARNING_OPTS += -Wmissing-declarations WARNING_OPTS += -Winline WARNING_OPTS += -Waggregate-return #WARNING_OPTS += -Wpointer-arith -WARNING_OPTS += -Wbad-function-cast +#WARNING_OPTS += -Wbad-function-cast #WARNING_OPTS += -Wcast-align #WARNING_OPTS += -Wnested-externs #WARNING_OPTS += -Wshadow @@ -144,6 +144,10 @@ ifeq "$(HaveLibMingwEx)" "YES" PACKAGE_CPP_OPTS += -DHAVE_LIBMINGWEX endif +ifeq "$(GhciWithDebugger)" "YES" +STANDARD_OPTS += -DDEBUGGER +endif + ifeq "$(DotnetSupport)" "YES" # @@ -179,6 +183,14 @@ EXCLUDED_SRCS += $(wildcard Vis*.c) endif #----------------------------------------------------------------------------- +# Add PAPI library if needed + +ifeq "$(GhcRtsWithPapi)" "YES" +SRC_HC_OPTS += -optc-DUSE_PAPI +PACKAGE_CPP_OPTS += -DUSE_PAPI +endif + +#----------------------------------------------------------------------------- # make depend setup SRC_MKDEPENDC_OPTS += -I. -I../includes @@ -280,6 +292,24 @@ endif CLEAN_FILES += gmp/libgmp.a +# Need to get the GMP vars in through CPP to package.conf.in, and put +# quotes around each element. + +empty = +space = $(empty) $(empty) +comma = , +PACKAGE_CPP_OPTS += -DGMP_INCLUDE_DIRS='$(subst $(space),$(comma),$(patsubst %,"%",$(strip $(GMP_INCLUDE_DIRS))))' +PACKAGE_CPP_OPTS += -DGMP_LIB_DIRS='$(subst $(space),$(comma),$(patsubst %,"%",$(strip $(GMP_LIB_DIRS))))' + +ifneq "$(GMP_INCLUDE_DIRS)" "" +SRC_HC_OPTS += -I$(GMP_INCLUDE_DIRS) +SRC_CC_OPTS += -I$(GMP_INCLUDE_DIRS) +SRC_HSC2HS_OPTS += -I$(GMP_INCLUDE_DIRS) +endif +ifneq "$(GMP_LIB_DIRS)" "" +SRC_LD_OPTS += -L$(GMP_LIB_DIRS) +endif + #----------------------------------------------------------------------------- # # Building the GUM SysMan @@ -320,10 +350,10 @@ SRC_HC_OPTS += -optc-fno-stack-protector endif # -O3 helps unroll some loops (especially in copy() with a constant argument). -GC_HC_OPTS += -optc-O3 +sm/Evac_HC_OPTS += -optc-funroll-loops # Without this, thread_obj will not be inlined (at least on x86 with GCC 4.1.0) -GCCompact_HC_OPTS += -optc-finline-limit=2500 +sm/Compact_HC_OPTS += -optc-finline-limit=2500 # -fno-strict-aliasing is required for the runtime, because we often # use a variety of types to represent closure pointers (StgPtr,