X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=mk%2Fsuffix.mk;h=5ac15fbcd29b41ece104809f8e7eb78507e7e67d;hb=aa9c98eccad321f97953330e7d4931a68ed0550e;hp=2e1bc8efeae5657b460554f0d43317c2e9c95baf;hpb=9546b1bcbb9686370ee67975ebf2791b5c5a97d6;p=ghc-hetmet.git diff --git a/mk/suffix.mk b/mk/suffix.mk index 2e1bc8e..5ac15fb 100644 --- a/mk/suffix.mk +++ b/mk/suffix.mk @@ -156,13 +156,6 @@ ifneq "$(BootingFromHc)" "YES" endif #----------------------------------------------------------------------------- -# Lx Suffix Rules -# - -%.hs : %.lx - $(LX) $(LX_OPTS) $< - -#----------------------------------------------------------------------------- # Green-card Suffix Rules # @@ -234,31 +227,92 @@ endif $(FLEX) -t $(FLEX_OPTS) $< > $@ #----------------------------------------------------------------------------- -# Yacc stuff - -%.tab.c %.tab.h : %.y - @$(RM) $*.tab.h $*.tab.c y.tab.c y.tab.h y.output - $(YACC) $(YACC_OPTS) $< - $(MV) y.tab.c $*.tab.c - @chmod 444 $*.tab.c - $(MV) y.tab.h $*.tab.h - @chmod 444 $*.tab.h - - -#----------------------------------------------------------------------------- # Runtest rules for calling $(HC) on a single-file Haskell program %.runtest : %.hs $(TIME) $(RUNTEST) $(HC) $(RUNTEST_OPTS) $< #----------------------------------------------------------------------------- +# DocBook XML suffix rules +# + +%.html : %.xml + $(XSLTPROC) --output $@ \ + --stringparam html.stylesheet $(FPTOOLS_CSS) \ + $(XSLTPROC_LABEL_OPTS) $(XSLTPROC_OPTS) \ + $(DIR_DOCBOOK_XSL)/html/docbook.xsl $< + cp $(FPTOOLS_CSS_ABS) . + +%/index.html : %.xml + $(RM) -rf $(dir $@) + $(XSLTPROC) --stringparam base.dir $(dir $@) \ + --stringparam use.id.as.filename 1 \ + --stringparam html.stylesheet $(FPTOOLS_CSS) \ + $(XSLTPROC_LABEL_OPTS) $(XSLTPROC_OPTS) \ + $(DIR_DOCBOOK_XSL)/html/chunk.xsl $< + cp $(FPTOOLS_CSS_ABS) $(dir $@) + +# Note: Numeric labeling seems to be uncommon for HTML Help +%-htmlhelp/index.html : %.xml + $(RM) -rf $(dir $@) + $(XSLTPROC) --stringparam base.dir $(dir $@) \ + --stringparam manifest.in.base.dir 1 \ + --stringparam htmlhelp.chm "..\\"$(basename $<).chm \ + $(XSLTPROC_OPTS) \ + $(DIR_DOCBOOK_XSL)/htmlhelp/htmlhelp.xsl $< + +# TODO: Detect hhc via autoconf +# +# Two obstables here: +# +# * The reason for the strange "if" below is that hhc returns 0 on error and 1 +# on success, the opposite of what shells and make expect. +# +# * There seems to be some trouble with DocBook indices, but the *.chm looks OK, +# anyway, therefore we pacify make by "|| true". Ugly... +# +%.chm : %-htmlhelp/index.html + ( cd $(dir $<) && if hhc htmlhelp.hhp ; then false ; else true ; fi ) || true + +%.fo : %.xml + $(XSLTPROC) --output $@ \ + $(XSLTPROC_LABEL_OPTS) $(XSLTPROC_OPTS) \ + $(DIR_DOCBOOK_XSL)/fo/docbook.xsl $< + +ifeq "$(FOP)" "" +ifneq "$(PDFXMLTEX)" "" +%.pdf : %.fo + $(PDFXMLTEX) $< + if grep "LaTeX Warning: Label(s) may have changed.Rerun to get cross-references right." $(basename $@).log > /dev/null ; then \ + $(PDFXMLTEX) $< ; \ + $(PDFXMLTEX) $< ; \ + fi +endif +else +%.ps : %.fo + $(FOP) $(FOP_OPTS) -fo $< -ps $@ + +%.pdf : %.fo + $(FOP) $(FOP_OPTS) -fo $< -pdf $@ +endif + +ifneq "$(XMLTEX)" "" +%.dvi : %.fo + $(XMLTEX) $< + if grep "LaTeX Warning: Label(s) may have changed.Rerun to get cross-references right." $(basename $@).log > /dev/null ; then \ + $(XMLTEX) $< ; \ + $(XMLTEX) $< ; \ + fi +endif + +#----------------------------------------------------------------------------- # Doc processing suffix rules # # ToDo: make these more robust # %.ps : %.dvi @$(RM) $@ - dvips $< -o $@ + $(DVIPS) $< -o $@ %.tex : %.tib @$(RM) $*.tex $*.verb-t.tex @@ -275,41 +329,6 @@ endif fig2dev -L latex $< $@ #----------------------------------------------------------------------------- -# SGML suffix rules -# -%.dvi : %.sgml - @$(RM) $@ - $(SGML2DVI) $(SGML2DVI_OPTS) $< - -%.ps : %.sgml - @$(RM) $@ - $(SGML2PS) $(SGML2PS_OPTS) $< - -%.html : %.sgml - @$(RM) $@ -# $(PERL) $(COLLATEINDEX) -N -o index.sgml -# $(JADE) -t sgml -V html-index -d $(SGMLSTYLESHEET) -c $(DOCBOOK_CATALOG) $< -# $(PERL) $(COLLATEINDEX) -N -o index.sgml - $(SGML2HTML) $(SGML2HTML_OPTS) $< -# touch the .html file so that it is seen to be built - @touch $@ - -%.html : %.tex - @$(RM) $@ - $(HEVEA) $(HEVEA_OPTS) $(patsubst %.tex,%.hva,$<) $< - $(HEVEA) $(HEVEA_OPTS) $(patsubst %.tex,%.hva,$<) $< - $(HACHA) $(HACHA_OPTS) $(patsubst %.tex,%.html,$<) -# Run HeVeA twice to resolve labels - -%.rtf : %.sgml - @$(RM) $@ - $(SGML2RTF) $(SGML2RTF_OPTS) $< - -%.pdf : %.sgml - @$(RM) $@ - $(SGML2PDF) $(SGML2PDF_OPTS) $< - -#----------------------------------------------------------------------------- # Literate suffix rules %.prl : %.lprl @@ -340,6 +359,10 @@ endif #----------------------------------------------------------------------------- # Preprocessor suffix rule +# Note use of -P option to prevent #line pragmas being left in the CPP +# output. + % : %.pp @$(RM) $@ - $(CPP) $(RAWCPP_FLAGS) $(CPP_OPTS) -x c $< | $(SED) -e '/^#/d' > $@ + $(CPP) $(RAWCPP_FLAGS) -P $(CPP_OPTS) -x c $< | \ + grep -v '^#pragma GCC' > $@