mirror of https://github.com/swig/swig
112 lines
2.9 KiB
Makefile
112 lines
2.9 KiB
Makefile
#######################################################################
|
|
# Makefile for ocaml test-suite
|
|
#######################################################################
|
|
|
|
LANGUAGE = ocaml
|
|
OCAMLP4WHERE =`$(COMPILETOOL) @CAMLP4@ -where`
|
|
OCC =$(COMPILETOOL) @OCAMLC@
|
|
OCAMLPP = -pp "camlp4o ./swigp4.cmo"
|
|
VARIANT = _static
|
|
SCRIPTSUFFIX = _runme.ml
|
|
|
|
srcdir = @srcdir@
|
|
top_srcdir = @top_srcdir@
|
|
top_builddir = @top_builddir@
|
|
|
|
FAILING_CPP_TESTS = \
|
|
allprotected \
|
|
apply_signed_char \
|
|
apply_strings \
|
|
cpp_enum \
|
|
default_constructor \
|
|
director_binary_string \
|
|
director_comparison_operators \
|
|
director_enum \
|
|
director_primitives \
|
|
director_redefined \
|
|
director_string \
|
|
enum_thorough \
|
|
li_windows \
|
|
member_pointer_const \
|
|
preproc_constants \
|
|
smart_pointer_inherit \
|
|
|
|
FAILING_C_TESTS = \
|
|
enums \
|
|
preproc_constants_c \
|
|
|
|
CPP_TEST_CASES += \
|
|
inout \
|
|
|
|
C_TEST_CASES += \
|
|
multivalue \
|
|
|
|
ml_runme = $(SCRIPTPREFIX)$*$(SCRIPTSUFFIX)
|
|
|
|
run_testcase = \
|
|
if [ -f $(srcdir)/$(ml_runme) ]; then \
|
|
if [ $(srcdir) != . ]; then \
|
|
cp $(srcdir)/$(ml_runme) $(ml_runme); \
|
|
fi ; \
|
|
$(OCC) $(OCAMLPP) -c $(ml_runme) && \
|
|
if [ -f $(top_srcdir)/Examples/test-suite/$*.list ]; then \
|
|
$(OCC) swig.cmo -custom -g -cc '$(CXX)' -o $*_runme `cat $(top_srcdir)/Examples/test-suite/$(*).list | sed -e 's/\(.*\)/\1_wrap.o \1.cmo/g'`&& $(RUNTOOL) ./$*_runme; \
|
|
else \
|
|
$(OCC) swig.cmo -custom -g -cc '$(CXX)' -o $*_runme $(*).cmo $(*)_runme.cmo $(*)_wrap.o && $(RUNTOOL) ./$*_runme; \
|
|
fi ; \
|
|
fi ;
|
|
|
|
include $(srcdir)/../common.mk
|
|
|
|
# Overridden variables here
|
|
SWIGOPT += -w524 # Suppress SWIGWARN_LANG_EXPERIMENTAL warning
|
|
|
|
# Custom tests - tests with additional commandline options
|
|
# none!
|
|
|
|
# Rules for the different types of tests
|
|
%.cpptest:
|
|
$(setup)
|
|
+$(swig_and_compile_cpp)
|
|
$(run_testcase)
|
|
|
|
%.ctest:
|
|
$(setup)
|
|
+$(swig_and_compile_c)
|
|
$(run_testcase)
|
|
|
|
%.multicpptest:
|
|
+$(swig_and_compile_multi_cpp)
|
|
$(setup)
|
|
$(run_testcase)
|
|
|
|
swig.cmi:
|
|
env SWIG_LIB=$(SWIG_LIB_DIR) $(SWIGEXE) -ocaml -co swig.mli
|
|
$(OCC) -c swig.mli
|
|
swig.cmo:
|
|
env SWIG_LIB=$(SWIG_LIB_DIR) $(SWIGEXE) -ocaml -co swig.ml
|
|
$(OCC) -c swig.ml
|
|
swigp4.cmi:
|
|
env SWIG_LIB=$(SWIG_LIB_DIR) $(SWIGEXE) -ocaml -co swigp4.ml
|
|
$(OCC) -I $(OCAMLP4WHERE) -pp "camlp4o pa_extend.cmo q_MLast.cmo" -c swigp4.ml
|
|
extra_objects: swig.cmi swig.cmo swigp4.cmi
|
|
|
|
$(C_TEST_CASES:=.ctest): extra_objects
|
|
$(CPP_TEST_CASES:=.cpptest): extra_objects
|
|
$(MULTI_CPP_TEST_CASES:=.multicpptest): extra_objects
|
|
|
|
# Clean
|
|
%.clean:
|
|
@rm -f $*.ml $*.mli $*_runme;
|
|
@if test $(srcdir) != .; then rm -f $(ml_runme); fi
|
|
|
|
clean:
|
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' ocaml_clean
|
|
rm -f clientdata_prop_a.ml clientdata_prop_b.ml
|
|
rm -f import_stl_a.ml import_stl_b.ml
|
|
rm -f imports_a.ml imports_b.ml
|
|
rm -f mod_a.ml mod_b.ml
|
|
rm -f multi_import_a.ml multi_import_b.ml multi_import_d.ml
|
|
rm -f packageoption_a.ml packageoption_b.ml packageoption_c.ml
|
|
rm -f template_typedef_cplx2.ml
|