#
# ${R_HOME}/tests/Makefile

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

top_builddir = ..
subdir = tests

all check: test-all-basics
check-devel: check test-all-devel
check-all: check-devel check-recommended
@USE_RECOMMENDED_PACKAGES_TRUE@check-recommended: test-Packages-Recommended
@USE_RECOMMENDED_PACKAGES_FALSE@check-recommended:
@USE_RECOMMENDED_PACKAGES_FALSE@	@$(ECHO) "Recommended packages are not installed so cannot be tested"

@USE_RECOMMENDED_PACKAGES_TRUE@test-src-sloppy-b = eval-etc-2.R
@USE_RECOMMENDED_PACKAGES_FALSE@test-src-sloppy-b =

include $(top_builddir)/Makeconf
include $(srcdir)/Makefile.common

@USE_RECOMMENDED_PACKAGES_FALSE@test-src-reg3 = reg-plot-latin1.R


distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)

DISTFILES = Makefile.in Makefile.win Makefile.install Makefile.install.win Makefile.common \
	$(INSTFILES) gct-foot.R reg-win.R \
	testit.Rd testit.txt.save testit.html.save \
	testit.tex.save testit-Ex.R.save \
	ver20.Rd ver20.txt.save ver20.html.save ver20.tex.save ver20-Ex.R.save \
	R-intro.Rout.save \
	test-system.R test-system.Rout.save test-system2.c \
	reg-large.R utf8.R

SUBDIRS = Embedding Examples
SUBDIRS_WITH_NO_BUILD = Pkgs C++Standards

## SRCDIR is used by reg-tests-1a.R, reg-IO2.R and reg-packages.R
## NB: SRCDIR is not available on windows so make any new tests robust to this
## GNU gettext disables LANGUAGE if LC_ALL=C, but other systems might not.
R  = R_LIBS_USER=$${R_LIBS_USER_IN_R_TESTS:-NULL} LANGUAGE=en LC_ALL=C SRCDIR=$(srcdir) R_DEFAULT_PACKAGES= $(top_builddir)/bin/R --vanilla
R2 = R_LIBS_USER=$${R_LIBS_USER_IN_R_TESTS:-NULL} R_DEFAULT_PACKAGES= $(top_builddir)/bin/R --vanilla
RCHK = R_LIBS_USER=$${R_LIBS_USER_IN_R_TESTS:-NULL} $(top_builddir)/bin/R CMD check
RDIFF = $(top_builddir)/bin/R CMD Rdiff
RDCONV = LC_CTYPE=C $(top_builddir)/bin/R CMD Rdconv
RD2PDF = $(top_builddir)/bin/R CMD Rd2pdf --quiet --no-preview --force
MK = $(MAKE)

all check test-all-basics test-all-devel: Makefile $(srcdir)/Makefile.common


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

test-system2: $(srcdir)/test-system2.c
	@$(MAIN_LD) -o $@ $(srcdir)/test-system2.c

## Not run by any other target
test-System: test-system2
	-@$(MAKE) test-system.Rout


## <NOTE>
## These depend on an internet connection, and the sites being up.
## So allow this to fail: it may be slow doing so.
test-Internet:
	@$(ECHO) "running tests of Internet functions"
	-@$(MAKE) $(test-out-internet) RVAL_IF_DIFF=0
## </NOTE>

## <NOTE>
## Not all platforms can build standalone.
## So allow this to fail.
test-Standalone:
	@$(ECHO) "testing building standalone Rmath"
	-@(cd $(top_builddir)/src/nmath/standalone; $(MAKE) check)
## </NOTE>


mostlyclean: clean
clean:
	-@for d in $(SUBDIRS); do \
	  (cd $${d} && $(MAKE) $@); \
	done
	-@rm -f stamp-R Makedeps Rplot* data dumpdata.R \
	  Rplot* Rprof.out Rprofmem.out \
	  reg-examples-*.pdf testCID.* \
	  reg-plot-latin1.ps reg-plot.ps \
	  reg-plot-latin1.pdf reg-plot.pdf reg-tests-*.pdf \
	  R-exts.* R-intro.R no-segfault.R R-intro.Rout \
	  p-qbeta-strict-tst.pdf
	-@rm -f FALSE* PACKAGES* .R .tex mirrors.html ./-package.Rd ex.gz
	-@rm -f testit.txt testit.html testit.tex testit-Ex.R testit.pdf
	-@rm -f ver20.txt ver20.html ver20.tex ver20-Ex.R ver20.pdf
	-@rm -Rf .Rd2pdf*
	-@rm -Rf anRpackage myTst* myLib myLib_2
	-@rm -f *.tar.gz
	-@rm -f keepsource.tex test-system2 test-system.Rout
	-@rm -f *.log *.tsin *.trin
	-@rm -f df0.Rd l0.Rd m0.Rd 'integer(0)-package.Rd' .Rd .RData
	-@rm -f p-r-random-tests_seed Rprof.out*

distclean: clean
	-@for d in $(SUBDIRS); do \
	  (cd $${d} && $(MAKE) $@); \
	done
	-@rm -f Makefile $(test-out) $(test-src-auto) *.Rout.fail
	-@rm -Rf *.Rcheck RecPackages
	-@rm -f *.fail

maintainer-clean: distclean

R install install-strip uninstall TAGS info dvi:

install-tests:
	@$(ECHO) "installing specific tests"
	@$(MKINSTALLDIRS) "$(DESTDIR)$(rhome)/tests"
	@$(MKINSTALLDIRS) "$(DESTDIR)$(rhome)/tests/Packages"
	@for f in Makefile.common $(INSTFILES); do \
	  $(INSTALL_DATA) $(srcdir)/$${f} "$(DESTDIR)$(rhome)/tests"; \
	done
	@$(INSTALL_DATA) $(srcdir)/Makefile.install \
	  "$(DESTDIR)/$(rhome)/tests/Makefile"
	@(cd Examples; $(MAKE) install-tests)

uninstall-tests:
	@$(ECHO) "uninstalling specific tests and removing results"
	@rm -Rf "$(DESTDIR)$(rhome)/tests"

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 \
	  test -d $(distdir)/$${d} \
	    || mkdir $(distdir)/$${d} \
	    || exit 1; \
	  chmod 755 $(distdir)/$${d}; \
	  (cd $${d} && $(MAKE) distdir) \
	    || exit 1; \
	done
	@for d in $(SUBDIRS_WITH_NO_BUILD); do \
	  ((cd $(srcdir); $(TAR) -c -f - $(DISTDIR_TAR_EXCLUDE) $${d}) \
	      | (cd $(distdir); $(TAR) -x -f -)) \
	    || exit 1; \
	done
