mirror of https://github.com/swig/swig
115 lines
4.0 KiB
Makefile
115 lines
4.0 KiB
Makefile
#######################################################################
|
|
# Makefile for php test-suite
|
|
#######################################################################
|
|
|
|
LANGUAGE = php
|
|
SCRIPTSUFFIX = _runme.php
|
|
|
|
HAVE_CXX11 = @HAVE_CXX11@
|
|
HAVE_CXX14 = @HAVE_CXX14@
|
|
HAVE_CXX17 = @HAVE_CXX17@
|
|
HAVE_CXX20 = @HAVE_CXX20@
|
|
srcdir = @srcdir@
|
|
top_srcdir = @top_srcdir@
|
|
top_builddir = @top_builddir@
|
|
|
|
CPP_TEST_CASES += \
|
|
callback \
|
|
director_stl \
|
|
exception_partial_info \
|
|
li_cdata_carrays_cpp \
|
|
li_factory \
|
|
php_iterator \
|
|
php_namewarn_rename \
|
|
php_pragma \
|
|
prefix \
|
|
|
|
C_TEST_CASES += \
|
|
li_cdata_carrays \
|
|
multivalue \
|
|
|
|
include $(srcdir)/../common.mk
|
|
|
|
# Overridden variables here
|
|
TARGETPREFIX =# Should be php_ for Windows, empty otherwise
|
|
|
|
# Ensure testsuite remains free from SWIG warnings.
|
|
SWIGOPT += -Werror
|
|
|
|
# Custom tests - tests with additional commandline options
|
|
prefix.cpptest: SWIGOPT += -prefix Project
|
|
|
|
# write out tests without a _runme.php
|
|
missingcpptests:
|
|
for test in $(CPP_TEST_CASES) ; do test -f $${test}_runme.php || echo $${test}; done
|
|
|
|
missingctests:
|
|
for test in $(C_TEST_CASES) ; do test -f $${test}_runme.php || echo $${test}; done
|
|
|
|
missingtests: missingcpptests missingctests
|
|
|
|
# Rules for the different types of tests
|
|
%.cpptest:
|
|
$(setup)
|
|
+$(swig_and_compile_cpp)
|
|
+$(run_testcase)
|
|
|
|
%.ctest:
|
|
$(setup)
|
|
+$(swig_and_compile_c)
|
|
+$(run_testcase)
|
|
|
|
# Trying to load the modules for imports.multicpptest fails with:
|
|
#
|
|
# Warning: Function registration failed - duplicate name - global_test in Unknown on line 0
|
|
# Segmentation fault
|
|
#
|
|
# This was previously hidden because we didn't even try to load the modules for
|
|
# .multicpptest testcases, so for now just do the parts of the test we did
|
|
# before. FIXME: Fix this!
|
|
%.multicpptest:
|
|
$(setup)
|
|
+$(swig_and_compile_multi_cpp)
|
|
+[ "$*" = "imports" ] || $(run_multi_testcase)
|
|
|
|
# Smart target
|
|
%.test:
|
|
@echo ' $(C_TEST_CASES) '|grep -F -v ' $* ' >/dev/null ||\
|
|
$(MAKE) $*.ctest
|
|
@echo ' $(CPP_TEST_CASES) '|grep -F -v ' $* ' >/dev/null ||\
|
|
$(MAKE) $*.cpptest
|
|
@echo ' $(MULTI_CPP_TEST_CASES) '|grep -F -v ' $* ' >/dev/null ||\
|
|
$(MAKE) $*.multicpptest
|
|
|
|
# Runs the testcase. Tries to run testcase_runme.php, and if that's not found,
|
|
# at least test that the module loads without errors.
|
|
run_testcase = \
|
|
if [ -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
|
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile PHP_EXTENSION=$(TARGETPREFIX)$*@PHP_SO@ PHP_SCRIPT=$(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) RUNTOOL='$(RUNTOOL)' php_run; \
|
|
else \
|
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile PHP_EXTENSION=$(TARGETPREFIX)$*@PHP_SO@ PHP_SCRIPT= RUNTOOL='$(RUNTOOL)' php_run; \
|
|
fi
|
|
|
|
# Runs a multicpptest testcase. Tries to run testcase_runme.php, and if that's
|
|
# not found, at least test that the modules load without errors.
|
|
run_multi_testcase = \
|
|
if [ -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
|
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile PHP_EXTENSION_LIST=$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list PHP_SCRIPT=$(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) RUNTOOL='$(RUNTOOL)' php_run_multi; \
|
|
else \
|
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile PHP_EXTENSION_LIST=$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list PHP_SCRIPT= RUNTOOL='$(RUNTOOL)' php_run_multi; \
|
|
fi
|
|
|
|
# Clean: remove the generated PHP-specific files
|
|
%.clean:
|
|
@rm -f php_$*.h
|
|
|
|
clean:
|
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' php_clean
|
|
rm -f clientdata_prop_a.php clientdata_prop_b.php php_clientdata_prop_a.h php_clientdata_prop_b.h
|
|
rm -f import_stl_a.php import_stl_b.php php_import_stl_a.h php_import_stl_b.h
|
|
rm -f imports_a.php imports_b.php php_imports_a.h php_imports_b.h
|
|
rm -f mod_a.php mod_b.php php_mod_a.h php_mod_b.h
|
|
rm -f multi_import_a.php multi_import_b.php multi_import_d.php php_multi_import_a.h php_multi_import_b.h php_multi_import_d.h
|
|
rm -f packageoption_a.php packageoption_b.php packageoption_c.php php_packageoption_a.h php_packageoption_b.h php_packageoption_c.h
|
|
rm -f template_typedef_cplx2.php php_template_typedef_cplx2.h
|