X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FMakefile;h=08240a12123c7eb5c0c7d666a1824d64f9a020d8;hb=6feeea5a596026e3416ec6dcd5cae6fecaeb2e27;hp=d187547c39f0985127f24c8a8c64cd3b574a1631;hpb=e7fe9f20ca0d8af8e8f5f5e8c512fd863c788827;p=ghc-hetmet.git diff --git a/rts/Makefile b/rts/Makefile index d187547..08240a1 100644 --- a/rts/Makefile +++ b/rts/Makefile @@ -44,7 +44,7 @@ endif NON_HS_PACKAGE = YES # grab sources from these subdirectories -ALL_DIRS = hooks parallel +ALL_DIRS = hooks parallel sm ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32" ALL_DIRS += win32 @@ -88,7 +88,7 @@ H_FILES = $(wildcard ../includes/*.h) $(wildcard *.h) # gcc provides lots of useful warnings if you ask it. # This is a pretty good list to start with - use a # to comment out # any you don't like. -WARNING_OPTS += -Wall +WARNING_OPTS += -Wall WARNING_OPTS += -W WARNING_OPTS += -Wstrict-prototypes WARNING_OPTS += -Wmissing-prototypes @@ -105,7 +105,7 @@ WARNING_OPTS += -Wbad-function-cast #WARNING_OPTS += -Wredundant-decls #WARNING_OPTS += -Wconversion -STANDARD_OPTS += -I../includes -I. -Iparallel +STANDARD_OPTS += -I../includes -I. -Iparallel -Ism # COMPILING_RTS is only used when building Win32 DLL support. STANDARD_OPTS += -DCOMPILING_RTS @@ -179,6 +179,14 @@ EXCLUDED_SRCS += $(wildcard Vis*.c) endif #----------------------------------------------------------------------------- +# Add PAPI library if needed + +ifeq "$(USE_PAPI)" "YES" +SRC_HC_OPTS += -lpapi -optc-DUSE_PAPI +PACKAGE_CPP_OPTS += -DUSE_PAPI +endif + +#----------------------------------------------------------------------------- # make depend setup SRC_MKDEPENDC_OPTS += -I. -I../includes @@ -320,10 +328,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,