####################################################################### # Makefile for java test-suite ####################################################################### LANGUAGE = java JAVA = java JAVAC = javac JAVAFLAGS = -Xcheck:jni SCRIPTSUFFIX = _runme.java srcdir = @srcdir@ top_srcdir = ../@top_srcdir@ top_builddir = ../@top_builddir@ C_TEST_CASES = \ java_lib_arrays \ java_lib_various CPP_TEST_CASES_PKGPRAGMA = \ java_nspacewithoutpackage CPP_TEST_CASES_PKGOPT = \ enum_thorough_proper \ enum_thorough_simple \ enum_thorough_typeunsafe \ exception_partial_info \ intermediary_classname \ java_constants \ java_director \ java_director_assumeoverride \ java_enums \ java_lib_arrays_dimensionless \ java_lib_various \ java_jnitypes \ java_pgcpp \ java_pragmas \ java_prepost \ java_throws \ java_typemaps_proxy \ java_typemaps_typewrapper # li_boost_intrusive_ptr CPP_TEST_CASES = $(CPP_TEST_CASES_PKGOPT) $(CPP_TEST_CASES_PKGPRAGMA) include $(srcdir)/../common.mk # Overridden variables here JAVA_PACKAGE = $* ALL_PKGOPT := $(filter-out $(CPP_TEST_CASES_PKGPRAGMA:=.cpptest),$(NOT_BROKEN_TEST_CASES)) ALL_PKGPRAGMA := $(filter $(CPP_TEST_CASES_PKGPRAGMA:=.cpptest),$(NOT_BROKEN_TEST_CASES)) # Add '-package' swigopt for ALL tests except for CPP_TEST_CASES_PKGPRAGMA # PKGDIRSETUP should leave 0 exitcode when successful $(ALL_PKGOPT): SWIGOPT += -package $(JAVA_PACKAGE) $(ALL_PKGOPT): PKGDIRSETUP = [ -d "$(JAVA_PACKAGE)" ] || mkdir -p "$(JAVA_PACKAGE)" && cd "$(JAVA_PACKAGE)" # Set JNI_PACKAGE for the tests using internally coded pragma javapackage # (and must match what is in the test .i file) # Make sure that the pragma dir DOES NOT exist (since test should create) # This may not find all the generated java to compile... # NOTE: The variable JAVA_PACKAGE has nothing to do wih a package in this case, but # needs to remain named the same so other targets work $(ALL_PKGPRAGMA): JNI_PACKAGE = PragmaDefinedPackage $(ALL_PKGPRAGMA): PKGDIRSETUP = [ -d "$(JAVA_PACKAGE)" ] || mkdir -p "$(JAVA_PACKAGE)" && cd "$(JAVA_PACKAGE)" &&rm -rf $(JAVA_PACKAGE)/$(JNI_PACKAGE) # Custom tests - tests with additional commandline options nspace.%: JAVA_PACKAGE = $*Package nspace_extend.%: JAVA_PACKAGE = $*Package director_nspace.%: JAVA_PACKAGE = $*Package director_nspace_director_name_collision.%: JAVA_PACKAGE = $*Package # Rules for the different types of tests %.cpptest: $(setup) +($(PKGDIRSETUP) && $(swig_and_compile_cpp)) $(run_testcase) %.ctest: $(setup) +($(PKGDIRSETUP) && $(swig_and_compile_c)) $(run_testcase) %.multicpptest: $(setup) +($(PKGDIRSETUP) && $(swig_and_compile_multi_cpp)) $(run_testcase) # COMPILES java files then runs the testcase. A testcase is only run if # a file is found which has _runme.java appended after the testcase name. # Note Java uses LD_LIBRARY_PATH under Unix, PATH under Cygwin/Windows, SHLIB_PATH on HPUX and DYLD_LIBRARY_PATH on Mac OS X. run_testcase = \ cd $(JAVA_PACKAGE) && $(COMPILETOOL) $(JAVAC) -classpath . `find . -name "*.java"` && cd .. && \ if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \ $(COMPILETOOL) $(JAVAC) -classpath . -d . $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) && \ env LD_LIBRARY_PATH="$(JAVA_PACKAGE):$$LD_LIBRARY_PATH" PATH="$(JAVA_PACKAGE):$$PATH" SHLIB_PATH="$(JAVA_PACKAGE):$$SHLIB_PATH" DYLD_LIBRARY_PATH="$(JAVA_PACKAGE):$$DYLD_LIBRARY_PATH" $(RUNTOOL) $(JAVA) $(JAVAFLAGS) -classpath . $*_runme; \ fi # Clean: remove testcase directories %.clean: @if [ -d $(JAVA_PACKAGE) ]; then \ rm -rf $(JAVA_PACKAGE); \ fi clean: @rm -f *.class hs_err*.log