#
# ${R_HOME}/doc/manual/Makefile

VPATH = @srcdir@
srcdir = @srcdir@
top_srcdir = @top_srcdir@

top_builddir = ../..
subdir = doc/manual

include $(top_builddir)/Makeconf

distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
SOURCES_TEXI = R-FAQ.texi R-exts.texi R-intro.texi
DISTFILES = \
	README \
	Makefile.in Makefile.win \
	R-defs.texi dir texinfo.tex \
	$(SOURCES_TEXI) \
	R-intro.R \
	Rd.sty hyperref.cfg \
	omsaer.fd omsaett.fd omscmtt.fd \
	refman.top refman.bot
SUBDIRS = images

OBJECTS_DVI = $(SOURCES_TEXI:.texi=.dvi)
OBJECTS_INFO = $(SOURCES_TEXI:.texi=.info)
OBJECTS_PDF = $(SOURCES_TEXI:.texi=.pdf)

MAKEINFO = @MAKEINFO@
TEXI2DVI = $(top_srcdir)/tools/texi2dvi --texinfo="@set UseExternalXrefs"
TEXI2PDF = $(TEXI2DVI) --pdf
PDFLATEX = @PDFLATEX@
PDFTEX = @PDFTEX@
TEX = @TEX@

infodir = @infodir@
INSTALL_INFO = @INSTALL_INFO@

R_PAPERSIZE = @R_PAPERSIZE@
R_RD4DVI = @R_RD4DVI@
R_RD4PDF = @R_RD4PDF@

pkgsrcs = $(R_PKGS:=-pkg.tex)

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

.SUFFIXES:
.SUFFIXES: .dvi .info .texi .pdf

all: Makefile R dvi

Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@cd $(top_builddir) && \
	  CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \
	  $(SHELL) ./config.status

R:
	@if [ "$(srcdir)" != "." ]; then \
	  $(MAKE) rhome=$(top_builddir) install-tex; \
	fi

.texi.dvi:
	@if test "$(TEX)" = false; then \
	  echo "ERROR: \`tex' needed but missing on your system."; \
	  exit 1; \
	fi
	TEXINPUTS="$(srcdir):$$TEXINPUTS" $(TEXI2DVI) $<
.texi.info:
	@if test "$(MAKEINFO)" = false; then \
	  echo "ERROR: \`makeinfo' v4 needed but missing on your system."; \
	  exit 1; \
	fi
	$(MAKEINFO) -D UseExternalXrefs -I$(srcdir) $<
.texi.pdf:
	@if test "$(PDFTEX)" = false; then \
	  echo "ERROR: \`pdftex' needed but missing on your system."; \
	  exit 1; \
	fi
	TEXINPUTS="$(srcdir):$$TEXINPUTS" $(TEXI2PDF) $<

dvi: refman.dvi $(OBJECTS_DVI)
refman.dvi: version.tex $(srcdir)/Rd.sty stamp-refman-dvi
	@if test "$(LATEX)" = false; then \
	  echo "ERROR: \`latex' needed but missing on your system."; \
	  exit 1; \
	fi
	@echo "DVI/LaTeX documentation: reference index ..."
	@rm -f *.aux refman.toc refman.ind stamp-refman-dvi
	@(opt="$${R_PAPERSIZE:-$(R_PAPERSIZE)}paper"; \
	  echo "\\documentclass[$${opt}]{book}"; \
	  opt="$${R_RD4DVI:-$(R_RD4DVI)}"; \
	  echo "\\usepackage[$${opt}]{Rd}"; \
	  cat $(srcdir)/refman.top; \
	  for p in $(R_PKGS); do echo "\\input{$${p}-pkg.tex}"; done; \
	  cat $(srcdir)/refman.bot) > refman.tex
	@TEXINPUTS="$(srcdir):$$TEXINPUTS" \
	  $(LATEX) '\nonstopmode\input{refman.tex}'
	@-$(MAKEINDEX) refman
	@TEXINPUTS="$(srcdir):$$TEXINPUTS" \
	  $(LATEX) '\nonstopmode\input{refman.tex}'
	@touch stamp-refman-dvi
version.tex: Makefile $(top_srcdir)/date-stamp $(top_srcdir)/VERSION
	@echo "creating $(subdir)/$@"
	@(v=`cat $(top_srcdir)/VERSION`; \
	  y=`cut -d/ -f1 < $(top_srcdir)/date-stamp`; \
	  m=`cut -d/ -f2 < $(top_srcdir)/date-stamp`; \
	  d=`cut -d/ -f3 < $(top_srcdir)/date-stamp`; \
	  echo "$${v} ($${m} $${d}, $${y})") > $@
stamp-refman-dvi: $(pkgsrcs)
	@touch $@
$(pkgsrcs): FORCE
	@(pkg=`basename $@ -pkg.tex`; \
	if $(top_builddir)/tools/Rdnewer \
	    "$(top_srcdir)/src/library/$${pkg}" "$@"; then \
	  echo "collecting LaTeX docs for package \`$${pkg}' ..."; \
	  (cd $(top_builddir)/src/library && \
	    OPTS="--latex" $(MAKE) R_PKGS="$${pkg}" DOCS); \
	  $(top_builddir)/tools/pkg2tex $${pkg}; \
	fi)
FORCE:

$(OBJECTS_DVI): $(srcdir)/texinfo.tex
R-exts.dvi: $(texiincludes)
version.texi: Makefile $(top_srcdir)/VERSION $(top_srcdir)/date-stamp
	@echo "creating $(subdir)/$@"
	@(v=`sed 's/\([^ ]*\).*/\1/' $(top_srcdir)/VERSION`; \
	  v="$${v} (`sed 's|/| |g' $(top_srcdir)/date-stamp`)"; \
	  echo "@set VERSION $${v}" > $@)
R-intro.dvi: stamp-images-eps $(texiincludes)
stamp-images-eps:
	@if [ "$(srcdir)" != "." ]; then \
	  $(MAKE) rhome=$(top_builddir) install-images-eps; \
	fi
	@touch $@

info: $(OBJECTS_INFO)
R-exts.info: $(texiincludes)
R-intro.info: $(texiincludes)

pdf: refman.pdf $(OBJECTS_PDF)
refman.pdf: version.tex $(srcdir)/Rd.sty stamp-refman-pdf
	@if test "$(PDFLATEX)" = false; then \
	  echo "ERROR: \`pdflatex' needed but missing on your system."; \
	  exit 1; \
	fi
	@echo "PDF/LaTeX documentation: reference index ..."
	@rm -f *.aux refman.toc refman.ind stamp-refman-pdf
	@(opt="$${R_PAPERSIZE:-$(R_PAPERSIZE)}paper"; \
	  echo "\\documentclass[$${opt}]{book}"; \
	  opt="$${R_RD4PDF:-$(R_RD4PDF)}"; \
	  echo "\\usepackage[$${opt}]{Rd}"; \
	  cat $(srcdir)/refman.top; \
	  for p in $(R_PKGS); do echo "\\input{$${p}-pkg.tex}"; done; \
	  cat $(srcdir)/refman.bot) > refman.tex
	@TEXINPUTS="$(srcdir):$(srcdir):$$TEXINPUTS" \
	  pool_size=500000 max_strings=50000 \
	  $(PDFLATEX) '\nonstopmode\input{refman.tex}'
	@-$(MAKEINDEX) refman
	@TEXINPUTS="$(srcdir):$(srcdir):$$TEXINPUTS" \
	  pool_size=500000 max_strings=50000 \
	  $(PDFLATEX) '\nonstopmode\input{refman.tex}'
	@TEXINPUTS="$(srcdir):$(srcdir):$$TEXINPUTS" \
	  pool_size=500000 max_strings=50000 \
	  $(PDFLATEX) '\nonstopmode\input{refman.tex}'
	@touch stamp-refman-pdf
stamp-refman-pdf: $(pkgsrcs)
	@touch $@

$(OBJECTS_PDF): $(srcdir)/texinfo.tex
R-exts.pdf: $(texiincludes)
R-intro.pdf: stamp-images-pdf $(texiincludes)
stamp-images-pdf:
	@if [ "$(srcdir)" != "." ]; then \
	  $(MAKE) rhome=$(top_builddir) install-images-pdf; \
	fi
	@touch $@

install: installdirs install-tex
	@echo "installing $(subdir) ..."
installdirs:
	@$(MKINSTALLDIRS) $(rhome)/$(subdir)
install-strip: install
install-dvi: dvi installdirs install-images-eps
	@echo "installing R manuals in DVI format ..."
	@for f in *.dvi; do \
	  $(INSTALL_DATA) $${f} $(rhome)/$(subdir); \
	done
install-images-eps:
	@$(MKINSTALLDIRS) $(rhome)/$(subdir)/images
	@-for f in $(srcdir)/images/*.eps; do \
	  $(INSTALL_DATA) $${f} $(rhome)/$(subdir)/images; \
	done
install-images-pdf:
	@$(MKINSTALLDIRS) $(rhome)/$(subdir)/images
	@-for f in $(srcdir)/images/*.pdf; do \
	  $(INSTALL_DATA) $${f} $(rhome)/$(subdir)/images; \
	done
install-info: info $(infodir)/dir
	@echo "installing R info pages ..."
	@for f in $(OBJECTS_INFO:.info=.info*); do \
	  $(INSTALL_DATA) $${f} $(infodir); \
	done
	@echo "updating \`$(infodir)/dir' ..."
	@for f in $(OBJECTS_INFO); do \
	  $(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/$${f} \
	    || echo "you need to adjust $(infodir)/dir manually"; \
	done
install-pdf: pdf installdirs
	@echo "installing R manuals in PDF format ..."
	@for f in *.pdf; do \
	  $(INSTALL_DATA) $${f} $(rhome)/$(subdir); \
	done
install-tex:
	@for f in $(srcdir)/Rd.sty; do \
	  $(INSTALL_DATA) $${f} $(rhome)/$(subdir) ; \
	done

$(infodir)/dir:
	@$(MKINSTALLDIRS) -p $(infodir)
	$(INSTALL_DATA) $(srcdir)/dir $(infodir)

uninstall:
	@echo "uninstalling $(subdir) ..."
	@rm -rf $(rhome)/$(subdir)
uninstall-dvi:
	@echo "uninstalling R manuals in DVI format ..."
	@-rm -f $(rhome)/$(subdir)/images/*.eps
	@-rmdir $(rhome)/$(subdir)/images
	@-rm -f $(rhome)/$(subdir)/*.dvi
uninstall-info:
	@echo "uninstalling R info pages ..."
	@for f in $(OBJECTS_INFO); do \
	  $(INSTALL_INFO) --remove --info-dir=$(infodir) $${f} \
	    || echo "you need to adjust $(infodir)/dir manually"; \
	done
	@for f in $(OBJECTS_INFO:.info=.info*); do \
	  rm -f $(infodir)/$${f}; \
	done
uninstall-pdf:
	@echo "uninstalling R manuals in PDF format ..."
	@-rm -f $(rhome)/$(subdir)/*.pdf

mostlyclean: clean
clean:
	@echo "cleaning in $(subdir)"
	@if [ "$(srcdir)" != "." ]; then \
	  rm -rf Rd.sty images; \
	fi
	@-rm -f *.aux *.cp *.cps *.dvi *.fn *.fns *.info* *.ky *.kys \
	  *.log *.out *.pdf *.pg *.pgs *.ps *.ps-2 *.tmp *.toc *.tp  \
	  *.vr *.vrs *-pkg.tex refman.i?? refman.tex version.tex \
	  version.texi
	@rm -f stamp-*
distclean: clean
	@-rm -f Makefile
maintainer-clean: distclean

MAKEINFO_TEXT_OPTS = --number-sections --fill-column=76 --no-split --no-headers
MAKEINFO_HTML_OPTS = --number-sections --html
maintainer-build: $(top_srcdir)/FAQ $(top_srcdir)/doc/html/faq.html
$(top_srcdir)/FAQ: $(srcdir)/R-FAQ.texi
	@if test "$(MAKEINFO)" = false; then \
	  echo "ERROR: \`makeinfo' v4 needed but missing on your system."; \
	  exit 1; \
	fi
	@$(MAKEINFO) $(MAKEINFO_TEXT_OPTS) $< -o $@
$(top_srcdir)/doc/html/faq.html: $(srcdir)/R-FAQ.texi
	@if test "$(MAKEINFO)" = false; then \
	  echo "ERROR: \`makeinfo' v4 needed but missing on your system."; \
	  exit 1; \
	fi
	@$(MAKEINFO) $(MAKEINFO_HTML_OPTS) $< -o $@

distdir: $(DISTFILES)
	@for f in $(DISTFILES); do \
	  test -f $(distdir)/$${f} \
	    || ln $(srcdir)/$${f} $(distdir)/$${f} 2>/dev/null \
	    || cp -p $(srcdir)/$${f} $(distdir)/$${f}; \
	done
	@for d in $(SUBDIRS); do \
	  if test -d $(srcdir)/$${d}; then \
	    ((cd $(srcdir); $(TAR) -c -f - --exclude=CVS $${d}) \
	        | (cd $(distdir); $(TAR) -x -f -)) \
	      || exit 1; \
	  fi; \
	done