X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=rts%2Fghc.mk;h=0e7650eca56829507b227117a4a3398277280ab7;hp=ff8eaff7041015bcf4ac2f1fcab90b9cd5469ba2;hb=2b7f450a6dbc2f78f99101560f82be20fa80833d;hpb=588ca4b501d3d9581a19d786d1294a69375e2d3d diff --git a/rts/ghc.mk b/rts/ghc.mk index ff8eaff..0e7650e 100644 --- a/rts/ghc.mk +++ b/rts/ghc.mk @@ -70,6 +70,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 +85,8 @@ define cmm-suffix-rules # .cmm files depend on all the .h files, to a first approximation. +ifneq "$$(BootingFromHc)" "YES" + $1/$2/build/%.$$($3_way_)o : $1/%.cmm $$(rts_H_FILES) $$($1_$2_HC) $$($1_$2_HC) $$($1_$2_$3_MOST_HC_OPTS) -c $$< -o $$@ @@ -98,6 +105,14 @@ $1/$2/build/%.$$($3_way_)s : $1/%.cmm $$(rts_H_FILES) $$($1_$2_HC) $1/$2/build/%.$$($3_way_)s : $1/$2/build/%.cmm $$(rts_H_FILES) $$($1_$2_HC) $$($1_$2_HC) $$($1_$2_$3_MOST_HC_OPTS) -c $$< -o $$@ +endif + +$1/$2/build/%.$$($3_way_)o : $1/%.hc + $$(CC) $$($1_$2_$3_ALL_CC_OPTS) -Iincludes -x c -c $$< -o $$@ + +$1/$2/build/%.$$($3_way_)o : $1/$2/build/%.hc + $$(CC) $$($1_$2_$3_ALL_CC_OPTS) -Iincludes -x c -c $$< -o $$@ + endef @@ -129,9 +144,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) $$@ @@ -267,6 +282,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