- Examples/Makefile.in rules use SRCDIR as the relative source directory - ./config.status replicates Examples/ source directory tree in build directory, and copies each Makefile to build directory, prefixed with a header which sets SRCDIR to source directory - Examples/test-suite/.../Makefile.in set SRCDIR from Autoconf-set srcdir - Examples/test-suite/errors/Makefile.in needs to filter out source directory from SWIG error messages - Lua: embedded interpreters are passed location of run-time test - Python: copy run-time scripts to build directory because of 2to3 conversion; import_packages example copies __init__.py from source directory; test-suite sets SCRIPTDIR to location of run-time tests - Javascript: binding.gyp renamed to binding.gyp.in so that $srcdir can be substituted with SRCDIR; removed './' from require() statements so that NODE_PATH can be used to point Node.js to build directory
65 lines
2.3 KiB
Makefile
65 lines
2.3 KiB
Makefile
#######################################################################
|
|
# Makefile for errors test-suite
|
|
#
|
|
# This test-suite is for checking SWIG errors and warnings and uses
|
|
# Python as the target language.
|
|
#
|
|
# It compares the stderr output from SWIG to the contents of the .stderr
|
|
# file for each test case. The test cases are different to those used by
|
|
# the language module test-suites. The .i files in this directory are
|
|
# used instead of those in the parent directory.
|
|
#
|
|
# When adding a new test case, be sure to commit the expected output
|
|
# file (.stderr) in addition to the test case itself.
|
|
#######################################################################
|
|
|
|
LANGUAGE = python
|
|
ERROR_EXT = newerr
|
|
# Portable dos2unix / todos for stripping CR
|
|
TODOS = tr -d '\r'
|
|
#TODOS = sed -e 's/\r$$//' # On OSX behaves as if written 's/r$$//'
|
|
|
|
srcdir = @srcdir@
|
|
top_srcdir = @top_srcdir@
|
|
top_builddir = @top_builddir@
|
|
ifeq (.,$(srcdir))
|
|
SRCDIR =
|
|
else
|
|
SRCDIR = $(srcdir)/
|
|
endif
|
|
|
|
# strip source directory from output, so that diffs compare
|
|
srcdir_regexp = $(shell echo $(srcdir)/ | sed 's/\./[.]/g')
|
|
STRIP_SRCDIR = sed 's|^$(srcdir_regexp)||'
|
|
|
|
# All .i files with prefix 'cpp_' will be treated as C++ input and remaining .i files as C input
|
|
ALL_ERROR_TEST_CASES := $(patsubst %.i,%, $(notdir $(wildcard $(srcdir)/*.i)))
|
|
CPP_ERROR_TEST_CASES := $(filter cpp_%, $(ALL_ERROR_TEST_CASES))
|
|
C_ERROR_TEST_CASES := $(filter-out $(CPP_ERROR_TEST_CASES), $(ALL_ERROR_TEST_CASES))
|
|
|
|
ERROR_TEST_CASES := $(CPP_ERROR_TEST_CASES:=.cpptest) \
|
|
$(C_ERROR_TEST_CASES:=.ctest)
|
|
|
|
# For rebuilding Makefile from Makefile.in in common.mk
|
|
TEST_SUITE_SUBDIR = errors
|
|
|
|
include $(srcdir)/../common.mk
|
|
|
|
|
|
# Rules for the different types of tests
|
|
%.cpptest:
|
|
echo "$(ACTION)ing errors testcase $*"
|
|
-$(SWIG) -c++ -python -Wall -Fstandard $(SWIGOPT) $(srcdir)/$*.i 2>&1 | $(TODOS) | $(STRIP_SRCDIR) > $*.$(ERROR_EXT)
|
|
$(COMPILETOOL) diff -c $(srcdir)/$*.stderr $*.$(ERROR_EXT)
|
|
|
|
%.ctest:
|
|
echo "$(ACTION)ing errors testcase $*"
|
|
-$(SWIG) -python -Wall -Fstandard $(SWIGOPT) $(srcdir)/$*.i 2>&1 | $(TODOS) | $(STRIP_SRCDIR) > $*.$(ERROR_EXT)
|
|
$(COMPILETOOL) diff -c $(srcdir)/$*.stderr $*.$(ERROR_EXT)
|
|
|
|
%.clean:
|
|
@exit 0
|
|
|
|
clean:
|
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile $(LANGUAGE)_clean
|
|
@rm -f *.$(ERROR_EXT) *.py
|