X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=mk%2Fsuffix.mk;h=2714c34077cc1a636d47e07bb5e1512ae9a2afd4;hp=fd3b6c4130ab8ffaf19fd858cb772e812ae4fc1d;hb=e11c0f8efedcd6920bc77b105f6053520f85e3a0;hpb=87bf5c65a7b9dec4a753960a587ccfce9215a6a1 diff --git a/mk/suffix.mk b/mk/suffix.mk index fd3b6c4..2714c34 100644 --- a/mk/suffix.mk +++ b/mk/suffix.mk @@ -240,13 +240,86 @@ endif $(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 @@ -263,41 +336,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 @@ -328,11 +366,10 @@ endif #----------------------------------------------------------------------------- # Preprocessor suffix rule -# We're careful to remove cpp-droppings from the generated file; things like -# '#line' pragmas. But we also leave in #include directives, because these -# are likely to be intentional (perhaps the file is going to be CPP'd again - -# this is used by ghc/compiler/parser/Parser.y.pp). +# 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 '/^#[^i]/d' > $@ + $(CPP) $(RAWCPP_FLAGS) -P $(CPP_OPTS) -x c $< | \ + grep -v '^#pragma GCC' > $@