| ####################################################################### |
| # Makefile for C# test-suite |
| ####################################################################### |
| |
| LANGUAGE = com |
| SCRIPTSUFFIX = _runme.c |
| SCRIPTSUFFIX2 = _runme.vbs |
| COM_CYGPATH_W = @COM_CYGPATH_W@ |
| COM_EXEC_SUFFIX = @COM_EXEC_SUFFIX@ |
| COM_RUNTOOL = @COM_RUNTOOL@ |
| COM_IDL = @COM_IDL@ |
| COM_IDL_COMMON_SWITCHES = @COM_IDL_COMMON_SWITCHES@ |
| COM_IDL_HEADER_SWITCHES = @COM_IDL_HEADER_SWITCHES@ |
| COM_IDL_IID_SWITCHES = @COM_IDL_IID_SWITCHES@ |
| COM_CSCRIPT = @COM_CSCRIPT@ |
| COM_CSCRIPT_SWITCHES = @COM_CSCRIPT_SWITCHES@ |
| srcdir = @srcdir@ |
| top_srcdir = @top_srcdir@/.. |
| top_builddir = @top_builddir@/.. |
| |
| CPP_TEST_CASES = \ |
| com_opaque_types |
| |
| include $(srcdir)/../common.mk |
| |
| # Overridden variables here |
| # SWIGOPT += -namespace $*Namespace $(SWIGOPTSPECIAL) |
| |
| # Rules for the different types of tests |
| %.cpptest: |
| $(setup) |
| +(cd $* && $(swig_and_compile_cpp)) |
| +$(generate_headers) |
| +(cd $* && $(register_component)) |
| +$(run_c_testcase) |
| +$(run_vbs_testcase) |
| +(cd $* && $(unregister_component)) |
| |
| %.ctest: |
| $(setup) |
| +(cd $* && $(swig_and_compile_c)) |
| +$(generate_headers) |
| +(cd $* && $(register_component)) |
| +$(run_c_testcase) |
| +$(run_vbs_testcase) |
| +(cd $* && $(unregister_component)) |
| |
| %.multicpptest: |
| $(setup) |
| +(cd $* && $(swig_and_compile_multi_cpp)) |
| +$(generate_headers) |
| +(cd $* && $(register_component)) |
| +$(run_c_testcase) |
| +$(run_vbs_testcase) |
| +(cd $* && $(unregister_component)) |
| |
| # 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; |
| |
| # Calls Dll[Un]RegisterServer on created component |
| register_component = \ |
| $(RUNTOOL) regsvr32 /s $*.dll$(COM_EXEC_SUFFIX); |
| |
| unregister_component = \ |
| $(RUNTOOL) regsvr32 /s /u $*.dll$(COM_EXEC_SUFFIX); |
| |
| # Generates headers from the IDL file |
| generate_headers = \ |
| $(COMPILETOOL) $(COM_IDL) $(COM_IDL_COMMON_SWITCHES) $(COM_IDL_HEADER_SWITCHES) $*/$*_generated.h $(COM_IDL_IID_SWITCHES) $*/$*_i.c $*/$*.idl; |
| |
| # Compiles COM files then runs the testcase. A testcase is only run if |
| # a file is found which has _runme.c appended after the testcase name. |
| run_c_testcase = \ |
| if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then ( \ |
| $(MAKE) -f $*/$(top_builddir)/$(EXAMPLES)/Makefile \ |
| TARGET='$*_runme.exe' \ |
| COMSRCS='`$(COM_CYGPATH_W) $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) $(srcdir)/$*/$*_i.c`' \ |
| com_compile && \ |
| $(RUNTOOL) $(COM_RUNTOOL) $(srcdir)/$*_runme.exe$(COM_EXEC_SUFFIX); ) \ |
| fi; |
| |
| run_vbs_testcase = \ |
| if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX2) ]; then ( \ |
| $(RUNTOOL) $(COM_CSCRIPT) $(COM_CSCRIPT_SWITCHES) `$(COM_CYGPATH_W) $(srcdir)/$*_runme.vbs`; )\ |
| fi; |
| |
| |
| # Clean: remove testcase directories |
| %.clean: |
| @if [ -d $* ]; then \ |
| rm -rf $*; \ |
| fi; |
| |
| clean: |
| @rm -f *.exe$(COM_EXEC_SUFFIX) *.dll$(COM_EXEC_SUFFIX) |