#######################################################################
# $Header: /cvsroot/swig/SWIG/Examples/test-suite/r/Makefile.in,v 1.2 2006/06/30 05:48:53 drjoe Exp $
# Makefile for mzscheme test-suite
#######################################################################

LANGUAGE     = r
SCRIPTSUFFIX = _runme.R
WRAPSUFFIX   = _wrap.R
RUNR         = R CMD BATCH --no-save --no-restore
srcdir       = .
top_srcdir   = ../../..
top_builddir = ../../..

C_TEST_CASES = copy_struct simple_array legacy
CPP_TEST_CASES = funcptr double_delete

include $(srcdir)/../common.mk

# Overridden variables here

# Rules for the different types of tests
%.cpptest: 
	$(setup) \
	($(swig_and_compile_cpp); ) && \
	$(run_testcase)

%.ctest:
	$(setup) \
	($(swig_and_compile_c); ) && \
	$(run_testcase)

%.multicpptest: 
	$(setup) \
	($(swig_and_compile_multi_cpp); ) && \
	$(run_testcase)

# Runs the testcase.
# 
# Run the runme if it exists.  If not just load the R wrapper to 
# check for syntactic correctness
run_testcase = \
	if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then ( \
	  env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH \
               $(RUNR) $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ;) \
	else \
	  ($(RUNR) $(srcdir)/$(SCRIPTPREFIX)$*$(WRAPSUFFIX);) \
	fi;

# Clean
clean:
	$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile r_clean

%.clean:
	@rm -f $*_wrap.R $*_wrap.so $*_wrap.cpp $*_wrap.c $*_runme.Rout
