blob: 93467ceb81c9fe2721fe2bd3dea9e0bff8d070b2 [file] [log] [blame]
#######################################################################
# 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)