X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fghc.mk;h=c4a3dd50429d91ab99e952ef35ffa99f7f24abb3;hb=3bc03ff9b052015fbabec8f9727fd031a598a8ad;hp=2182411962c5c2324b8e06bfe0c4ead6c0ef4bed;hpb=1e9af42caa0949ae05e5e2db5250227e86196e19;p=ghc-hetmet.git diff --git a/rts/ghc.mk b/rts/ghc.mk index 2182411..c4a3dd5 100644 --- a/rts/ghc.mk +++ b/rts/ghc.mk @@ -43,6 +43,8 @@ EXCLUDED_SRCS += $(wildcard rts/Vis*.c) rts_C_SRCS = $(filter-out $(EXCLUDED_SRCS),$(wildcard rts/*.c $(foreach dir,$(ALL_DIRS),rts/$(dir)/*.c))) rts_CMM_SRCS = $(wildcard rts/*.cmm) +# Don't compile .S files when bootstrapping a new arch +ifeq "$(TARGETPLATFORM)" "$(HOSTPLATFORM)" ifneq "$(findstring $(TargetArch_CPP), powerpc powerpc64)" "" rts_S_SRCS += rts/AdjustorAsm.S else @@ -50,6 +52,7 @@ ifneq "$(findstring $(TargetOS_CPP), darwin)" "" rts_S_SRCS += rts/AdjustorAsm.S endif endif +endif ifeq "$(GhcUnregisterised)" "YES" GENAPPLY_OPTS = -u @@ -70,6 +73,11 @@ rts/dist/build/sm/Scav_thr.c : rts/sm/Scav.c rts_H_FILES = $(wildcard $(GHC_INCLUDE_DIR)/*.h) $(wildcard rts/*.h) +# collect the -l flags that we need to link the rts dyn lib. +rts/libs.depend : $(GHC_PKG_INPLACE) + $$(GHC_PKG_INPLACE) field rts extra-libraries \ + | sed -e 's/^extra-libraries: //' -e 's/\([a-z]*\)/-l\1/g' > $$@ + #----------------------------------------------------------------------------- # Building one way @@ -80,6 +88,8 @@ define cmm-suffix-rules # .cmm files depend on all the .h files, to a first approximation. +ifneq "$$(CLEANING)" "YES" + ifneq "$$(BootingFromHc)" "YES" $1/$2/build/%.$$($3_way_)o : $1/%.cmm $$(rts_H_FILES) $$($1_$2_HC) @@ -108,6 +118,8 @@ $1/$2/build/%.$$($3_way_)o : $1/%.hc $1/$2/build/%.$$($3_way_)o : $1/$2/build/%.hc $$(CC) $$($1_$2_$3_ALL_CC_OPTS) -Iincludes -x c -c $$< -o $$@ +endif + endef @@ -139,9 +151,9 @@ rts_$1_CMM_OBJS = $$(patsubst rts/%.cmm,rts/dist/build/%.$$($1_osuf),$$(rts_CMM_ rts_$1_OBJS = $$(rts_$1_C_OBJS) $$(rts_$1_S_OBJS) $$(rts_$1_CMM_OBJS) ifneq "$$(findstring dyn, $1)" "" -$$(rts_$1_LIB) : $$(rts_$1_OBJS) +$$(rts_$1_LIB) : $$(rts_$1_OBJS) rts/libs.depend $$(RM) $$@ - $$(rts_dist_HC) -shared -dynamic -no-auto-link-packages $$(rts_$1_OBJS) -o $$@ + $$(rts_dist_HC) -shared -dynamic -no-auto-link-packages `cat rts/libs.depend` $$(rts_$1_OBJS) -o $$@ else $$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(RM) $$@ @@ -277,6 +289,7 @@ sm/Storage_CC_OPTS += -Wno-strict-prototypes StgCRun_CC_OPTS += -w Typeable_CC_OPTS += -w RetainerProfile_CC_OPTS += -w +RetainerSet_CC_OPTS += -Wno-format sm/Compact_CC_OPTS += -w # On Windows: win32/ConsoleHandler_CC_OPTS += -w