blob: 2abd9217bae14c5ba3a456a3b3116d7318e26c91 [file] [log] [blame]
#
# ${R_HOME}/doc/Makefile
VPATH = @srcdir@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = ..
subdir = doc
include $(top_builddir)/Makeconf
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
INSTFILES = AUTHORS COPYING COPYRIGHTS CRAN_mirrors.csv BioC_mirrors.csv \
KEYWORDS KEYWORDS.db THANKS NEWS.0 NEWS.1 NEWS.2
DISTFILES = Makefile.in Makefile.win $(INSTFILES) R.aux Rscript.1 \
NEWS.Rd NEWS.2.Rd
INSTFILES2 = NEWS.rds NEWS NEWS.pdf
NON_SVN_INSTFILES = FAQ RESOURCES NEWS NEWS.pdf
## generated later.
SUBDIRS = html manual
HELP2MAN = perl $(top_srcdir)/tools/help2man.pl
R_EXE = $(top_builddir)/bin/R --vanilla --slave
all: Makefile R docs
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
## FIXME: NEWS.rds is needed by news() and hence in principle part of 'R', but
## it can only be built by R_EXE which at this point does not exist (if built from scratch)
R: Makefile svnonly
@for d in $(SUBDIRS); do \
(cd $${d} && $(MAKE) $@) || exit 1; \
done
@if test "$(BUILDDIR_IS_SRCDIR)" = no ; then \
$(MAKE) rdocdir=$(top_builddir)/doc install-sources; \
fi
docs: R.1 NEWS.rds NEWS html/NEWS.html NEWS.pdf
@(cd manual && $(MAKE) $@)
R.1:
@$(HELP2MAN) --include=$(srcdir)/R.aux --no-info --output=R.1 \
--name="a language for data analysis and graphics" \
$(top_builddir)/bin/R
NEWS.rds: $(srcdir)/NEWS.Rd
@$(ECHO) "options(warn=1);saveRDS(tools:::prepare_Rd(tools::parse_Rd(\"$(srcdir)/NEWS.Rd\", \
macros = \"../share/Rd/macros/system.Rd\"), stages = 'install', warningCalls = FALSE), \
'NEWS.rds')" | $(R_EXE)
NEWS: NEWS.rds
@$(ECHO) "creating doc/NEWS"
@$(ECHO) 'options(warn=1);tools:::Rd2txt_NEWS_in_Rd("NEWS.rds", "NEWS")' | $(R_EXE)
html/NEWS.html: NEWS.rds
@$(ECHO) 'options(warn=1);tools:::Rd2HTML_NEWS_in_Rd("NEWS.rds", "html/NEWS.html")' | $(R_EXE)
PDFLATEX = @PDFLATEX@
## needs pdflatex (and more)
## Need LC_COLLATE to work around the misuse of [A-z] in texi2dvi 1.135
## (as reported by MM)
NEWS.pdf: NEWS.rds
@if test -z "$(PDFLATEX)"; then \
$(ECHO) "'pdflatex' is needed to make NEWS.pdf but is missing on your system."; \
else \
$(ECHO) "creating doc/NEWS.pdf"; \
$(ECHO) 'options(warn=1);tools:::Rd2pdf_NEWS_in_Rd("NEWS.rds", "NEWS.pdf")' | LC_COLLATE=C $(R_EXE); \
fi
## NEWS.2.html ships as doc/html/NEWS.2.html in the sources.
docs2: NEWS.2.rds NEWS.2.html NEWS.2.pdf
NEWS.2.rds: $(srcdir)/NEWS.2.Rd
@$(ECHO) "options(warn=1);saveRDS(tools:::prepare_Rd(tools::parse_Rd(\"$(srcdir)/NEWS.2.Rd\", \
macros = \"../share/Rd/macros/system.Rd\"), stages = 'install', warningCalls = FALSE), \
'NEWS.2.rds')" | $(R_EXE)
## NB: this is only the top part of NEWS.2 in the sources.
NEWS.2: NEWS.2.rds
@$(ECHO) "creating NEWS.2"
@$(ECHO) 'options(warn=1);tools:::Rd2txt_NEWS_in_Rd("NEWS.2.rds", "NEWS.2")' | $(R_EXE)
NEWS.2.html: NEWS.2.rds
@$(ECHO) "creating NEWS.2.html"
@$(ECHO) 'options(warn=1);tools:::Rd2HTML_NEWS_in_Rd("NEWS.2.rds", "NEWS.2.html")' | $(R_EXE)
NEWS.2.pdf: NEWS.2.rds
@if test -z "$(PDFLATEX)"; then \
$(ECHO) "'pdflatex' is needed to make NEWS.2.pdf but is missing on your system."; \
else \
$(ECHO) "creating NEWS.2.pdf"; \
$(ECHO) 'options(warn=1);tools:::Rd2pdf_NEWS_in_Rd("NEWS.2.rds", "NEWS.2.pdf")' | LC_COLLATE=C $(R_EXE); \
fi
install: install-message installdirs install-sources install-sources2 install-man
@for d in $(SUBDIRS); do \
(cd $${d} && $(MAKE) $@) || exit 1; \
done
installdirs:
@$(MKINSTALLDIRS) "$(DESTDIR)$(rdocdir)"
@$(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man1
install-man: installdirs R.1 Rscript.1
@rm -f $(DESTDIR)$(mandir)/man1/R.1
@$(INSTALL_DATA) R.1 $(DESTDIR)$(mandir)/man1
@rm -f $(DESTDIR)$(mandir)/man1/Rscript.1
@@$(INSTALL_DATA) ${srcdir}/Rscript.1 $(DESTDIR)$(mandir)/man1
install-message:
@$(ECHO) "installing $(subdir) ..."
## installed from srcdir, including to builddir
install-sources:
@$(MKINSTALLDIRS) "$(DESTDIR)$(rdocdir)"
@for f in $(INSTFILES); do \
$(INSTALL_DATA) $(srcdir)/$${f} "$(DESTDIR)$(rdocdir)"; \
done
## installed from builddir
install-sources2: installdirs
@for f in $(NON_SVN_INSTFILES) $(INSTFILES2); do \
$(INSTALL_DATA) $${f} "$(DESTDIR)$(rdocdir)"; \
done
install-strip: install
uninstall:
@$(ECHO) "uninstalling $(subdir) ..."
@if test -d "$(DESTDIR)$(rdocdir)" \
&& test "`cd \"$(DESTDIR)$(rhome)\"; $(GETWD)`" \
!= "`cd $(top_builddir); $(GETWD)`"; then \
for d in $(SUBDIRS); do \
(cd $${d} && $(MAKE) $@) || exit 1; \
done; \
for f in $(INSTFILES) $(NON_SVN_INSTFILES) $(INSTFILES2); do \
rm -f "$(DESTDIR)$(rdocdir)"/$${f}; \
done; \
rmdir "$(DESTDIR)$(rdocdir)" 2>/dev/null \
|| $(ECHO) " subdir $(DESTDIR)$(subdir) not removed"; \
fi
@rm -f $(DESTDIR)$(mandir)/man1/R.1 $(DESTDIR)$(mandir)/man1/Rscript.1
dvi info pdf::
@(cd manual && $(MAKE) $@)
mostlyclean:
clean:
@for d in $(SUBDIRS); do \
(cd $${d} && $(MAKE) $@); \
done
@if test "$(BUILDDIR_IS_SRCDIR)" = no ; then \
rm -f $(INSTFILES) R.1; \
fi
-@rm -f $(INSTFILES2) NEWS.2.rds NEWS.2.html NEWS.2.pdf
distclean: clean
@for d in $(SUBDIRS); do \
(cd $${d} && $(MAKE) $@) || exit 1; \
done
@if test "$(BUILDDIR_IS_SRCDIR)" = no ; then \
rm -f $(NON_SVN_INSTFILES); \
fi
-@rm -f Makefile R.1
maintainer-clean: distclean
svnonly:
@if test -f "$(srcdir)/FAQ" ; then \
if test "$(BUILDDIR_IS_SRCDIR)" = no ; then \
for f in $(NON_SVN_INSTFILES); do \
$(INSTALL_DATA) $(srcdir)/$${f} .; \
done \
fi \
fi
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 f in $(NON_SVN_INSTFILES) ; do \
cp -p $${f} $(distdir)/$${f}; \
done
@for d in $(SUBDIRS); do \
test -d $(distdir)/$${d} \
|| mkdir $(distdir)/$${d} \
|| exit 1; \
chmod 755 $(distdir)/$${d}; \
(cd $${d} && $(MAKE) distdir) \
|| exit 1; \
done