#
# ${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"


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

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


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

DISTFILES = Makefile.in Makefile.win Makefile.install Makefile.common \
	$(INSTFILES) gct-foot.R reg-win.R eval-fns.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

## 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 = LANGUAGE=en LC_ALL=C SRCDIR=$(srcdir) R_DEFAULT_PACKAGES= $(top_builddir)/bin/R --vanilla
R2 = R_DEFAULT_PACKAGES= $(top_builddir)/bin/R --vanilla
R3 = $(top_builddir)/bin/R CMD check
RDIFF = $(top_builddir)/bin/R CMD Rdiff
RDCONV = LC_CTYPE=C $(top_builddir)/bin/R CMD Rdconv
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
	-@rm -f ver20.txt ver20.html ver20.tex ver20-Ex.R
	-@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

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
