The R Project SVN R

Rev

Rev 77960 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

#
# ${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 NEWS.3
DISTFILES = Makefile.in Makefile.win $(INSTFILES) R.aux Rscript.1 \
  NEWS.Rd NEWS.2.Rd NEWS.3.Rd
INSTFILES2 = NEWS.rds NEWS NEWS.pdf NEWS.2.rds NEWS.3.rds
NON_SVN_INSTFILES = FAQ RESOURCES NEWS NEWS.pdf
## generated later.
SUBDIRS = html manual
INSTDIRS = notes

HELP2MAN = perl $(top_srcdir)/tools/help2man.pl

R_EXE = $(top_builddir)/bin/R --vanilla --no-echo

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 NEWS.2.rds NEWS.3.rds
    @(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

docs3: NEWS.3.rds NEWS.3.html NEWS.3.pdf

NEWS.3.rds: $(srcdir)/NEWS.3.Rd
    @$(ECHO) "options(warn=1);saveRDS(tools:::prepare_Rd(tools::parse_Rd(\"$(srcdir)/NEWS.3.Rd\", \
      macros = \"../share/Rd/macros/system.Rd\"), stages = 'install', warningCalls = FALSE), \
      'NEWS.3.rds')" | $(R_EXE)

NEWS.3: NEWS.3.rds
    @$(ECHO) "creating NEWS.3"
    @$(ECHO) 'options(warn=1);tools:::Rd2txt_NEWS_in_Rd("NEWS.3.rds", "NEWS.3")' |  $(R_EXE)

NEWS.3.html: NEWS.3.rds
    @$(ECHO) "creating NEWS.3.html"
    @$(ECHO) 'options(warn=1);tools:::Rd2HTML_NEWS_in_Rd("NEWS.3.rds", "NEWS.3.html")' |  $(R_EXE)

NEWS.3.pdf: NEWS.3.rds
    @if test -z "$(PDFLATEX)"; then \
      $(ECHO) "'pdflatex' is needed to make NEWS.3.pdf but is missing on your system."; \
    else \
     $(ECHO) "creating NEWS.3.pdf"; \
     $(ECHO) 'options(warn=1);tools:::Rd2pdf_NEWS_in_Rd("NEWS.3.rds", "NEWS.3.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 \
      NEWS.3.rds NEWS.3.html NEWS.3.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
    @for d in $(INSTDIRS); do \
      cp -pr $(srcdir)/$${d} $(distdir) || exit 1; \
      chmod 755 $(distdir)/$${d}; \
      chmod 644 $(distdir)/$${d}/*; \
    done