X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=mk%2Fsuffix.mk;h=8fc22b77af524f522bc751fd54a848d68323a334;hb=685b0e088d6737296da331d553fa29811cb2372f;hp=dcd3ce9b8966e5bc88bde7852c07c5f790167c20;hpb=4f4b31e058d528deaa542c0a6ec7783781ea33e7;p=ghc-hetmet.git diff --git a/mk/suffix.mk b/mk/suffix.mk index dcd3ce9..8fc22b7 100644 --- a/mk/suffix.mk +++ b/mk/suffix.mk @@ -30,31 +30,39 @@ endif #----------------------------------------------------------------------------- # Haskell Suffix Rules -HASKELL_SPLIT_PRE= \ - $(RM) $@ ; if [ ! -d $(basename $@) ]; then mkdir $(basename $@) ; else exit 0; fi; \ - find $(basename $@) -name '*.$(way_)o' -print | xargs $(RM) __rm_food; -HASKELL_SPLIT_POST= touch $@ -HASKELL_PRE_COMPILE=$(patsubst %,$(HASKELL_SPLIT_PRE),$(filter -split-objs,$(HC_OPTS))) -HASKELL_POST_COMPILE=$(patsubst %,$(HASKELL_SPLIT_POST),$(filter -split-objs,$(HC_OPTS))) +HC_SPLIT_PRE= \ + $(RM) $@ ; if [ ! -d $(basename $@) ]; then mkdir $(basename $@); else \ + find $(basename $@) -name '*.$(way_)o' -print | xargs $(RM) __rm_food ; fi +HC_SPLIT_POST = touch $@ + +HC_PRE__ = $(patsubst %,$(HC_SPLIT_PRE) ; ,$(filter -split-objs,$(HC_OPTS))) +HC_POST__ = $(patsubst %,$(HC_SPLIT_POST) ; ,$(filter -split-objs,$(HC_OPTS))) + +SRC_HC_POST += $(HC_POST__) +SRC_HC_PRE += $(HC_PRE__) %.$(way_)o : %.hs - $(HASKELL_PRE_COMPILE) + $(SRC_HC_PRE) $(HC) $(HC_OPTS) -c $< -o $@ -osuf $(subst .,,$(suffix $@)) - $(HASKELL_POST_COMPILE) + $(SRC_HC_POST) %.$(way_)o : %.lhs - $(HASKELL_PRE_COMPILE) + $(SRC_HC_PRE) $(HC) $(HC_OPTS) -c $< -o $@ -osuf $(subst .,,$(suffix $@)) - $(HASKELL_POST_COMPILE) + $(SRC_HC_POST) %.$(way_)hc : %.lhs $(RM) $@ $(HC) $(HC_OPTS) -C $< -o $@ +%.$(way_)hc : %.hs + $(RM) $@ + $(HC) $(HC_OPTS) -C $< -o $@ + %.$(way_)o : %.$(way_)hc - $(HASKELL_PRE_COMPILE) + $(SRC_HC_PRE) $(HC) $(HC_OPTS) -c $< -o $@ -osuf $(subst .,,$(suffix $@)) - $(HASKELL_POST_COMPILE) + $(SRC_HC_POST) %.$(way_)hc : %.lhc @$(RM) $@ @@ -95,12 +103,18 @@ HASKELL_POST_COMPILE=$(patsubst %,$(HASKELL_SPLIT_POST),$(filter -split-objs,$(H #----------------------------------------------------------------------------- # Lx Suffix Rules # -.PRECIOUS: %.hs %.hs : %.lx $(LX) $(LX_OPTS) $< #----------------------------------------------------------------------------- +# Green-card Suffix Rules +# + +%.hs : %.gc + $(GREENCARD) $(GREENCARD_OPTS) $< + +#----------------------------------------------------------------------------- # C-related suffix rules %.$(way_)o : %.$(way_)s @@ -137,13 +151,14 @@ HASKELL_POST_COMPILE=$(patsubst %,$(HASKELL_SPLIT_POST),$(filter -split-objs,$(H #----------------------------------------------------------------------------- # Runtest rules for calling $(HC) on a single-file Haskell program -%.hs : %.runtest - $(TIME) $(RUNTEST) $(HC) $(RUNTEST_FLAGS) -o2 $*.stderr $< - +%.runtest : %.hs + $(TIME) $(RUNTEST) $(HC) $(RUNTEST_OPTS) $< #----------------------------------------------------------------------------- # Doc processing suffix rules - +# +# ToDo: make these more robust +# %.dvi : %.tex @$(RM) $@ $(LTX) $< @@ -171,6 +186,40 @@ HASKELL_POST_COMPILE=$(patsubst %,$(HASKELL_SPLIT_POST),$(filter -split-objs,$(H fig2dev -L latex $< $@ #----------------------------------------------------------------------------- +# SGML suffix rules +# +# make sure these don't conflict with the literate rules! + +%.sgml : %.vsgml + @$(RM) $@ + expand $*.vsgml | $(SGMLVERB) > $@ + +%.tex : %.sgml + @$(RM) $@ + $(SGML2LATEX) -m --output=tex $< + +%.dvi : %.sgml + @$(RM) $@ + $(SGML2LATEX) -m --output=dvi $< + +# Not yet: we already have a %.ps : %.dvi rule, this one would conflict. +#%,ps : %.sgml +# @$(RM) $@ +# $(SGML2LATEX) -m --output=ps $< + +%.html : %.sgml + @$(RM) $@ + $(SGML2HTML) $< + +%.info : %.sgml + @$(RM) $@ + $(SGML2INFO) $< + +%.txt : %.sgml + @$(RM) $@ + $(SGML2TXT) $< + +#----------------------------------------------------------------------------- # Literate suffix rules # ToDo: somehow macroize this lot. (if only!) @@ -182,7 +231,7 @@ HASKELL_POST_COMPILE=$(patsubst %,$(HASKELL_SPLIT_POST),$(filter -split-objs,$(H %.txt : %.lit @$(RM) $@ - $(LIT2TEXT) -c $(LIT2TEXT_OPTS) -o $@ $< + $(LIT2TEXT) $(LIT2TEXT_OPTS) -o $@ $< @chmod 444 $@ %.ihtml : %.lit