#
# ${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 test-Packages-Recommended
check-recommended: test-Packages-Recommended


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.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

SUBDIRS = Embedding Examples
SUBDIRS_WITH_NO_BUILD = Pkgs

## SRCDIR is used by reg-tests-1a.R, reg-IO2.R and reg-packages.R
## 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-basic-tests = Examples Specific Reg Internet
## remove 'Rd' for now
all-devel-tests = Docs IsAs Random Demo Primitive Regexp Segfault \
   Standalone Packages

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

test-System: test-system2
	-@$(MAKE) test-system.Rout

## Avoid site library, which could be very large
no-segfault.Rout: no-segfault.R
	@rm -f $@ $@.fail
	@$(ECHO) $(ECHO_N) "running code in '$<' ...$(ECHO_C)"
	@R_LIBS_SITE=no-such-dir $(R) < $< > $@ 2>&1 || (mv $@ $@.fail && exit 1)
	@$(ECHO) "$(ECHO_T) OK"


## <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 and socket functions"
	@$(ECHO) "  expect some differences"
	-@$(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 R-intro.Rout
	-@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
	-@rm -f *.tar.gz
	-@rm -f keepsource.tex test-system2 test-system.Rout

distclean: clean
	-@for d in $(SUBDIRS); do \
	  (cd $${d} && $(MAKE) $@); \
	done
	-@rm -f Makefile $(test-out) $(test-src-auto) .RData
	-@rm -rf *.Rcheck RecPackages
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