diff options
-rw-r--r-- | compiler/ghc.mk | 13 | ||||
-rw-r--r-- | rules/hs-suffix-rules-srcdir.mk | 6 |
2 files changed, 18 insertions, 1 deletions
diff --git a/compiler/ghc.mk b/compiler/ghc.mk index a0754af5c2..7556acea64 100644 --- a/compiler/ghc.mk +++ b/compiler/ghc.mk @@ -247,7 +247,18 @@ PRIMOP_BITS = compiler/primop-data-decl.hs-incl \ compiler_CPP_OPTS += $(addprefix -I,$(GHC_INCLUDE_DIRS)) compiler_CPP_OPTS += ${GhcCppOpts} -$(PRIMOPS_TXT) compiler/parser/Parser.y: %: %.pp compiler/stage1/$(PLATFORM_H) +define preprocessCompilerFiles +# $0 = stage +compiler/stage$1/build/Parser.y: compiler/parser/Parser.y.pp + $$(CPP) $$(RAWCPP_FLAGS) -P $$(compiler_CPP_OPTS) -x c $$< | grep -v '^#pragma GCC' > $$@ +endef + +$(eval $(call preprocessCompilerFiles,1)) +$(eval $(call preprocessCompilerFiles,2)) +$(eval $(call preprocessCompilerFiles,3)) + + +$(PRIMOPS_TXT): %: %.pp compiler/stage1/$(PLATFORM_H) $(CPP) $(RAWCPP_FLAGS) -P $(compiler_CPP_OPTS) -x c $< | grep -v '^#pragma GCC' > $@ $(eval $(call clean-target,compiler,primop, $(PRIMOPS_TXT) compiler/parser/Parser.y $(PRIMOP_BITS))) diff --git a/rules/hs-suffix-rules-srcdir.mk b/rules/hs-suffix-rules-srcdir.mk index b39b41a93e..94a41d5e73 100644 --- a/rules/hs-suffix-rules-srcdir.mk +++ b/rules/hs-suffix-rules-srcdir.mk @@ -26,6 +26,12 @@ $1/$2/build/%.hs : $1/$4/%.ly | $$$$(dir $$$$@)/. $1/$2/build/%.hs : $1/$4/%.y | $$$$(dir $$$$@)/. $$(call cmd,HAPPY) $$($1_$2_$3_ALL_HAPPY_OPTS) $$< -o $$@ +$1/$2/build/%.hs : $1/$2/build/%.ly | $$$$(dir $$$$@)/. + $$(call cmd,HAPPY) $$($1_$2_$3_ALL_HAPPY_OPTS) $$< -o $$@ + +$1/$2/build/%.hs : $1/$2/build/%.y | $$$$(dir $$$$@)/. + $$(call cmd,HAPPY) $$($1_$2_$3_ALL_HAPPY_OPTS) $$< -o $$@ + $1/$2/build/%.hs : $1/$4/%.x | $$$$(dir $$$$@)/. $$(call cmd,ALEX) $$($1_$2_$3_ALL_ALEX_OPTS) $$< -o $$@ |