The R Project SVN R

Rev

Rev 75808 | Rev 82522 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

#-*-Makefile-*-
#
# ${R_HOME}/doc/manual/Makefile.win

ECHO = echo

include ../../src/gnuwin32/MkRules

ifeq "$(MIKTEX)" "TRUE"
R_TEXOPTS = --include-directory=../../share/texmf/tex/latex
# TEXI2DVI = texi2dvi
else
R_TEXOPTS =
# TEXI2DVI =
endif

R_EXE = ../../$(BINDIR)/Rterm

include ../../share/make/vars.mk

srcdir = .
top_srcdir = ../..
subdir = doc/manual

SOURCES_TEXI = R-FAQ.texi R-admin.texi R-data.texi R-exts.texi \
  R-intro.texi R-ints.texi R-lang.texi

OBJECTS_HTML = $(SOURCES_TEXI:.texi=.html)
OBJECTS_INFO = $(SOURCES_TEXI:.texi=.info)
OBJECTS_PDF = $(SOURCES_TEXI:.texi=.pdf)

## Now set in MkRules
PDFLATEX = pdflatex $(R_TEXOPTS)
PDFTEX = pdftex $(R_TEXOPTS)
BATCHPDFLATEX = $(PDFLATEX) -interaction=nonstopmode

MAKEINDEX = LC_ALL=C makeindex
TEXINDEX = LC_ALL=C texindex

TEXI2ANY_HTML_OPTS = --html --no-split --css-include=$(srcdir)/Rman.css
TEXI2ANY_TEXT_OPTS = --number-sections --fill-column=76 --no-split --no-headers
TEXI2HTML = LC_ALL=C $(TEXI2ANY) $(TEXI2ANY_HTML_OPTS)
TEXI2TEXT = LC_ALL=C $(TEXI2ANY) $(TEXI2ANY_TEXT_OPTS)

R_PAPERSIZE = a4
# omit 'hyper' to omit the hyperlinks
R_RD4PDF = times,inconsolata,hyper

texinputs_BASE = $(R_PKGS_BASE:=-pkg.tex)
texinputs_RECOMMENDED = $(R_PKGS_RECOMMENDED:=-pkg.tex)
refman_DEPENDENCIES = version.tex $(top_srcdir)/share/texmf/tex/latex/Rd.sty
fullrefman_TEXINPUTS = $(texinputs_BASE) $(texinputs_RECOMMENDED)
SVN_REV = $(top_srcdir)/SVN-REVISION

texiincludes = version.texi $(srcdir)/R-defs.texi

.SUFFIXES:
.SUFFIXES: .html .info .texi .pdf

all: pdf

ifneq "$(TEXI2ANY)" "missing"
.texi.html:
    @$(ECHO) "creating doc/manual/$@"
    @$(TEXI2HTML) -D UseExternalXrefs -I$(srcdir) $< -o $@.tmp || touch $@
    @$(SED) -f $(srcdir)/quot.sed $@.tmp > $@
    @rm -f $@.tmp

R-admin.html: $(srcdir)/R-admin.texi
    @$(ECHO) "creating doc/manual/$@"
    @$(TEXI2HTML) -I$(srcdir) $(srcdir)/R-admin.texi -o $@.tmp || touch $@
    @$(SED) -f $(srcdir)/quot.sed $@.tmp > $@
    @rm -f $@.tmp

R-FAQ.html: R-FAQ.texi
    @$(ECHO) "creating doc/manual/$@"
    @LC_ALL=C $(TEXI2ANY) --html --no-split --css-include=Rfaq.css -D UseExternalXrefs -I$(srcdir) $< -o $@.tmp || touch $@
    @$(SED) -f $(srcdir)/quot.sed $@.tmp > $@
    @rm -f $@.tmp

.texi.info:
    LC_ALL=C $(TEXI2ANY) --enable-encoding -D UseExternalXrefs -I$(srcdir) $<
else
.texi.html:
    @$(ECHO) "texi2any is not available"

R-admin.html: $(srcdir)/R-admin.texi
    @$(ECHO) "texi2any is not available"

R-FAQ.html: R-FAQ.texi
    @$(ECHO) "texi2any is not available"

.texi.info:
    @$(ECHO) "texi2any is not available"
endif

ifeq ($(strip $(TEXI2DVI)),)
.texi.pdf:
    $(PDFTEX) $<
    $(TEXINDEX) $*.cp $*.fn $*.vr
    $(PDFTEX) $<
    $(PDFTEX) $<
else
.texi.pdf:
    $(TEXI2DVI) --pdf --texinfo="@set UseExternalXrefs " $<
endif


html: $(OBJECTS_HTML)
$(OBJECTS_HTML): $(texiincludes) Rman.css

info: $(OBJECTS_INFO)
$(OBJECTS_INFO): $(texiincludes)

pdf: fullrefman.pdf $(OBJECTS_PDF)
$(OBJECTS_PDF): $(texiincludes)

refman.pdf: $(refman_DEPENDENCIES) $(texinputs_BASE) refman.top refman.bot
    @$(ECHO) " PDF/LaTeX documentation: reference index ..."
    @(opt="$(R_PAPERSIZE)paper"; \
      $(ECHO) "\\documentclass[$${opt}]{book}"; \
      opt="$(R_RD4PDF)"; \
      $(ECHO) "\\usepackage[$${opt}]{Rd}"; \
      $(ECHO) "\\usepackage[utf8]{inputenc}"; \
      cat $(srcdir)/refman.top; \
      texinputs=`(for f in $(texinputs_BASE); \
        do $(ECHO) $${f}; done) | LC_COLLATE=C $(SORT)`; \
      for f in $${texinputs}; do $(ECHO) "\\input{$${f}}"; done; \
      cat $(srcdir)/refman.bot) > refman.tex
    @$(RM) -f *.aux refman.toc refman.ind
    @TEXINPUTS="$(top_srcdir)/share/texmf/tex/latex;$$TEXINPUTS" \
      $(BATCHPDFLATEX) refman.tex
    @$(MAKEINDEX) refman
    @TEXINPUTS="$(top_srcdir)/share/texmf/tex/latex;$$TEXINPUTS" \
      $(BATCHPDFLATEX) refman.tex
    @TEXINPUTS="$(top_srcdir)/share/texmf/tex/latex;$$TEXINPUTS" \
      $(BATCHPDFLATEX) refman.tex

fullrefman.pdf: $(fullrefman_TEXINPUTS) $(refman_DEPENDENCIES) \
   refman.top refman.bot
    @$(ECHO) " PDF/LaTeX documentation: full reference index ..."
    @(opt="$(R_PAPERSIZE)paper"; \
      $(ECHO) "\\documentclass[$${opt}]{book}"; \
      opt="$(R_RD4PDF)"; \
      $(ECHO) "\\usepackage[$${opt}]{Rd}"; \
      $(ECHO) "\\usepackage[utf8]{inputenc}"; \
      cat $(srcdir)/refman.top; \
      $(ECHO) "\\part{}"; \
      texinputs=`(for f in $(texinputs_BASE); \
        do $(ECHO) $${f}; done) | LC_COLLATE=C $(SORT)`; \
      for f in $${texinputs}; do $(ECHO) "\\input{$${f}}"; done; \
      $(ECHO) "\\part{}"; \
      texinputs=`(for f in $(texinputs_RECOMMENDED); \
        do $(ECHO) $${f}; done) | LC_COLLATE=C $(SORT)`; \
      for f in $${texinputs}; do $(ECHO) "\\input{$${f}}"; done; \
      cat $(srcdir)/refman.bot) > fullrefman.tex
    @$(RM) -f *.aux fullrefman.toc fullrefman.ind
    @TEXINPUTS="$(top_srcdir)/share/texmf/tex/latex;$$TEXINPUTS" \
      $(BATCHPDFLATEX) fullrefman.tex
    @$(MAKEINDEX) fullrefman
    @TEXINPUTS="$(top_srcdir)/share/texmf/tex/latex;$$TEXINPUTS" \
      $(BATCHPDFLATEX) fullrefman.tex
    @TEXINPUTS="$(top_srcdir)/share/texmf/tex/latex;$$TEXINPUTS" \
      $(BATCHPDFLATEX) fullrefman.tex

version.tex: $(top_srcdir)/VERSION $(SVN_REV)
    @$(ECHO) "creating $(subdir)/$@"
    @(v=`cat $(top_srcdir)/VERSION`; \
      v="$${v} (`sed -e 1d -e 's/^Last Changed Date: //' $(SVN_REV)`)"; \
      $(ECHO) "$${v}") > $@

## Unlike Unix, we don't check dates
%-pkg.tex: FORCE
    @$(ECHO) "collecting LaTeX docs for package \`$*' ..."
    @$(ECHO) "tools:::.pkg2tex(\"$(top_srcdir)/library/$*\")" \
        | LC_ALL=C $(R_EXE) --vanilla --no-echo
FORCE:

version.texi: Makefile.win $(top_srcdir)/VERSION $(SVN_REV)
    @$(ECHO) "creating $(subdir)/$@"
    @(vv=`sed 's/ *(.*//' $(top_srcdir)/VERSION`;v=`echo $${vv}| sed 's/\([^ ]*\).*/\1/'`; \
      $(ECHO) "@set VERSIONno $${v}" > $@; \
      v="$${vv} (`sed -e 1d -e 's/^Last Changed Date: //' $(SVN_REV)`)"; \
      $(ECHO) "@set VERSION $${v}" >> $@; \
      rwv=$(shell ../../bin$(R_ARCH)/Rscript ../../src/gnuwin32/fixed/rwver.R); \
      $(ECHO) "@set RWVERSION $${rwv}" >> $@ )
    @if test "$(R_PAPERSIZE)" = "a4"; then \
      $(ECHO) "@afourpaper" >> $@ ; \
    fi


mostlyclean: clean
clean:
    @-rm -f *.aux *.toc *refman.i?? *.out *.log
    @-rm -f *.cp *.cps *.en *.ens *.fn *.fns *.ky *.kys \
      *.out *.pg *.pgs *.tmp *.tp *.vr *.vrs \
      version.tex version.texi refman.tex fullrefman.tex *-pkg.tex
distclean: clean
    @-rm -f *.pdf *.info* *.html
maintainer-clean: distclean

ifneq "$(TEXI2ANY)" "missing"
../FAQ: R-FAQ.texi
    @$(TEXI2TEXT) -o $@ $<
../RESOURCES: resources.texi
    @$(TEXI2TEXT) -o $@ $<
../html/resources.html: resources.texi
    @$(TEXI2ANY) --html --no-split --no-headers \
      --css-include=$(top_srcdir)/doc/html/R.css -o $@ $<
else
../FAQ: R-FAQ.texi
    @$(ECHO) "texi2any is not available"
../RESOURCES: resources.texi
    @$(ECHO) "texi2any is not available"
../html/resources.html: resources.texi
    @$(ECHO) "texi2any is not available"
endif

## Run from src/gnuwin32/fixed/Makefile
svnonly: ../FAQ ../RESOURCES ../html/resources.html

RVER = $(shell cut -d' ' -f1 $(top_srcdir)/VERSION | sed -n 1p)
RPREFIX = $(shell ../../bin$(R_ARCH)/Rscript ../../src/gnuwin32/fixed/rwver.R)
SEDVER = -e s/@RVER@/$(RVER)/g -e s/@RWVER@/$(RPREFIX)/g

FAQ: rw-FAQ ../html/rw-FAQ.html

ifneq "$(TEXI2ANY)" "missing"
../html/rw-FAQ.html: rw-FAQ.texi $(top_srcdir)/VERSION Rman.css
    @echo "making rw-FAQ.html"
    @$(SED) $(SEDVER) $< | \
      $(TEXI2ANY) --no-split --html --no-headers --number-sections --css-include=Rman.css -o $@ 

rw-FAQ: rw-FAQ.texi $(top_srcdir)/VERSION
    @echo "making rw-FAQ"
    @$(SED) $(SEDVER) $< | \
      $(TEXI2ANY) --no-headers --number-sections -o $@
else
../html/rw-FAQ.html: rw-FAQ.texi $(top_srcdir)/VERSION Rman.css
    @$(ECHO) "texi2any is not available"

rw-FAQ: rw-FAQ.texi $(top_srcdir)/VERSION
    @$(ECHO) "texi2any is not available"
endif

rw-FAQ.pdf: rw-FAQ.texi $(top_srcdir)/VERSION
    @$(SED) $(SEDVER) $< > tmp.texi
    @$(TEXI2DVI) --pdf tmp.texi
    @$(TEXI2DVI) --pdf tmp.texi
    @mv tmp.pdf $@
    @rm tmp.*