# # ${R_HOME}/src/library/Recommended/Makefile VPATH = @srcdir@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = ../../.. subdir = src/library/Recommended include $(top_builddir)/Makeconf distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) DISTFILES = Makefile.in Makefile.win # avoid user's startup files R = R_LIBS= $(top_builddir)/bin/R --vanilla ## foo.ts is the timestamp for package foo; ## foo.tgz is a symlink to foo_x.y-z.tar.gz in the source dir. ## unfortunately package foo can be uninstalled and leave foo.ts ## For developers: A shell script, tools/rsync-recommended, updates ## packages from the CRAN master directory. OBJECTS = $(R_PKGS_RECOMMENDED:=.ts) CLEANFILES = $(OBJECTS) Makedeps stamp-recommended DISTCLEANFILES = Makefile .SUFFIXES: .SUFFIXES: .tgz .ts all: Makefile R @USE_RECOMMENDED_PACKAGES_TRUE@ recommended-packages Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ recommended-packages: Makefile @$(MAKE) stamp-recommended stamp-recommended: $(OBJECTS) @touch $@ ## need to allow parallel installs INSTALL_OPTS = --pkglock --data-compress=xz --no-staged-install @BUILD_LTO_TRUE@--use-LTO @BYTE_COMPILE_PACKAGES_FALSE@R_NO_BASE_COMPILE = true ## On e.g. Solaris/FreeBSD if the top-level make is GNU make it will ## pass flags such as -j and -w down: so need to ensure that INSTALL ## uses the same make. .tgz.ts: @$(ECHO) "begin installing recommended package" `basename $< .tgz` @rm -f $@.out ## Avoid user/site libraries, pass down MAKE @if test -n "$(R_NO_BASE_COMPILE)"; then \ MAKE="$(MAKE)" R_LIBS_USER=NULL R_LIBS_SITE=NULL \ _R_CHECK_INSTALL_DEPENDS_=no \ $(R) CMD INSTALL $(INSTALL_OPTS) --use-C17 --no-byte-compile -l "$(top_builddir)/library" $< > $@.out 2>&1 || (cat $@.out && exit 1); \ else \ MAKE="$(MAKE)" R_LIBS_USER=NULL R_LIBS_SITE=NULL \ _R_CHECK_INSTALL_DEPENDS_=no \ $(R) CMD INSTALL $(INSTALL_OPTS) --use-C17 --byte-compile -l "$(top_builddir)/library" $< > $@.out 2>&1 || (cat $@.out && exit 1); \ fi @cat $@.out; rm $@.out @touch $@ R docs: install: installdirs installdirs: install-strip: install uninstall: install-tests: @(tmp=$${TMPDIR-/tmp}/R$$$$; mkdir "$${tmp}"; \ cd "$(top_srcdir)"; abs_top_srcdir=`pwd`; \ abs_MKINSTALLDIRS=`echo "$(MKINSTALLDIRS)" | sed "s:$(top_srcdir):$${abs_top_srcdir}:"` ; \ cd "$${tmp}"; \ for pkg in $(R_PKGS_RECOMMENDED); do \ gzip -dc "$(abs_top_srcdir)/src/library/Recommended/$${pkg}.tgz" | $(TAR) xf - ; \ done ; \ for pkg in $(R_PKGS_RECOMMENDED); do \ if test -d $${pkg}/tests; then \ $${abs_MKINSTALLDIRS} "$(DESTDIR)$(rhome)/library/$${pkg}/tests" ; \ cp -R $${pkg}/tests/* "$(DESTDIR)$(rhome)/library/$${pkg}/tests"; \ fi; \ done) uninstall-tests: @for pkg in $(R_PKGS_RECOMMENDED); do \ rm -Rf "$(DESTDIR)$(rhome)/library/$${pkg}/tests" ; \ done mostlyclean: clean clean: -@test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean: clean -@test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean: distclean ## we need to check that the recommended packages have been downloaded. distdir: $(DISTFILES) @if test `cd $(srcdir) && ls *.tar.gz | wc -l` -eq 0 ; then \ $(ECHO) "ERROR: no recommended packages" || exit 1 ; \ fi @for f in $(DISTFILES) `cd $(srcdir) && ls *.tar.gz`; do \ test -f $(distdir)/$${f} \ || ln $(srcdir)/$${f} $(distdir)/$${f} 2>/dev/null \ || cp -p $(srcdir)/$${f} $(distdir)/$${f}; \ done ## Hardcoded dependencies (see '../../../share/make/vars.mk') Matrix.ts: lattice.ts mgcv.ts: nlme.ts MASS.ts Matrix.ts nlme.ts: lattice.ts class.ts: MASS.ts survival.ts: Matrix.ts ## and for static html links boot.ts: MASS.ts survival.ts cluster.ts: MASS.ts