swig/Examples/test-suite/c/Makefile.in
Vadim Zeitlin e2bb89ccb3 Replace unknown enums with int in the wrappers
An enum can be declared outside of the code wrapped by SWIG, just use int
instead of it then.
2016-04-21 01:37:42 +02:00

187 lines
4.5 KiB
Makefile

#######################################################################
# Makefile for C test-suite
#######################################################################
LANGUAGE = c
C = gcc
CXX = g++
SCRIPTSUFFIX = _runme.c
srcdir = @srcdir@
top_srcdir = ../@top_srcdir@
top_builddir = ../@top_builddir@
CPP_TEST_CASES := \
cpp_basic_class \
cpp_basic_class_method \
cpp_basic_class_virtual_method \
cpp_basic_class_var_pub_member_built_in \
cpp_basic_class_var_pub_member_class \
cpp_basic_global_var_built_in \
cpp_basic_global_var_class \
cpp_basic_namespaced_class \
cpp_basic_template_function \
cpp_basic_template_class \
c_backend_cpp_natural_std_string \
c_backend_cpp_exception
# The following tests are currently broken and need to be fixed.
FAILING_C_TESTS := \
arrays \
funcptr \
function_typedef \
lextype \
li_carrays \
li_cdata \
li_constraints \
li_cpointer \
nested \
nested_extend_c \
nested_structs \
overload_extend2 \
overload_extend_c \
typedef_struct \
union_parameter \
unions \
FAILING_CPP_TESTS := \
apply_signed_char \
array_member \
array_typedef_memberin \
arrayref \
arrays_dimensionless \
arrays_global \
arrays_global_twodim \
char_strings \
constant_pointers \
default_arg_values \
default_args \
default_constructor \
director_enum \
director_string \
enum_thorough \
extend \
extend_constructor_destructor \
extend_default \
extend_placement \
extern_c \
features \
funcptr_cpp \
global_scope_types \
grouping \
import_nomodule \
li_attribute \
li_boost_shared_ptr \
li_carrays_cpp \
li_std_combinations \
li_std_deque \
li_std_map \
li_std_pair \
li_std_pair_using \
li_std_vector \
li_windows \
member_funcptr_galore \
member_pointer \
mixed_types \
namespace_class \
nested_class \
nested_scope \
nested_template_base \
overload_arrays \
smart_pointer_extend \
smart_pointer_not \
smart_pointer_template_defaults_overload \
special_variables \
struct_initialization_cpp \
template_arg_typename \
template_basic \
template_default \
template_default_class_parms_typedef \
template_enum \
template_explicit \
template_typedef_fnc \
typedef_array_member \
typedef_funcptr \
typedef_struct_cpp \
typemap_array_qualifiers \
typemap_namespace \
using_extend \
varargs \
varargs_overload \
virtual_poly \
FAILING_MULTI_CPP_TESTS := \
clientdata_prop \
imports \
import_stl \
template_typedef_import \
include $(srcdir)/../common.mk
SRCDIR = ../$(srcdir)/
# Rules for the different types of tests
%.cpptest:
$(setup)
+(cd $* && $(swig_and_compile_cpp))
$(run_testcase)
%.ctest:
$(setup)
+(cd $* && $(swig_and_compile_c))
$(run_testcase)
%.multicpptest:
$(setup)
+(cd $* && $(swig_and_compile_multi_cpp))
+if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
$(do_run_testcase); \
else \
cd $* && for f in `cat $(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list`; do \
$(call syntax_check_testcase,$${f}) || exit 1; \
done; \
fi
# Makes a directory for the testcase if it does not exist
setup = \
if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
echo "$(ACTION)ing testcase $* (with run test) under $(LANGUAGE)" ; \
else \
echo "$(ACTION)ing testcase $* under $(LANGUAGE)" ; \
fi; \
if [ ! -d $* ]; then \
mkdir $*; \
fi;
# Checks the header syntax if there is no runnable testcase for it.
syntax_check_testcase = \
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile \
SRCDIR='$(SRCDIR)' \
INTERFACEDIR='$(INTERFACEDIR)' \
C_HEADER=$1_wrap.h \
c_syntax_check
# Compiles C files then runs the testcase unconditionally.
do_run_testcase = \
cd $* && $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile \
SRCDIR='$(SRCDIR)' \
RUNME=$*_runme \
TARGET='$*' \
c_run
# Only compile and run testcase if a file with _rume.c appended to the testcase
# name is found, otherwise only check the syntax of the generated files.
run_testcase = \
+if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
$(do_run_testcase); \
else \
cd $* && $(call syntax_check_testcase,$*); \
fi
# Clean: remove testcase directories
%.clean:
@if [ -d $* ]; then \
rm -rf $*; \
fi;
clean:
@rm -f *_wrap.* *~ *.exe *.dll *.so *.out *runme