import source from 1.3.40
[external/swig.git] / Examples / test-suite / csharp / Makefile.in
1 #######################################################################
2 # Makefile for C# test-suite
3 #######################################################################
4
5 LANGUAGE     = csharp
6 SCRIPTSUFFIX = _runme.cs
7 INTERPRETER  = @CSHARPCILINTERPRETER@
8 CSHARPPATHSEPARATOR = "@CSHARPPATHSEPARATOR@"
9 CSHARPCYGPATH_W     = @CSHARPCYGPATH_W@
10 srcdir       = @srcdir@
11 top_srcdir   = @top_srcdir@/..
12 top_builddir = @top_builddir@/..
13
14 CPP_TEST_CASES = \
15         csharp_attributes \
16         csharp_exceptions \
17         csharp_features \
18         csharp_lib_arrays \
19         csharp_prepost \
20         csharp_typemaps \
21         enum_thorough_simple \
22         enum_thorough_typesafe \
23         exception_partial_info \
24         intermediary_classname
25
26 include $(srcdir)/../common.mk
27
28 # Overridden variables here
29 SWIGOPT += -namespace $*Namespace
30 INTERFACEDIR = ../../
31
32 CSHARPFLAGSSPECIAL =
33
34 # Custom tests - tests with additional commandline options
35 intermediary_classname.cpptest: SWIGOPT += -dllimport intermediary_classname
36 csharp_lib_arrays.cpptest: CSHARPFLAGSSPECIAL = -unsafe
37
38 # Rules for the different types of tests
39 %.cpptest: 
40         $(setup)
41         +(cd $* && $(swig_and_compile_cpp))
42         +$(run_testcase)
43
44 %.ctest:
45         $(setup)
46         +(cd $* && $(swig_and_compile_c))
47         +$(run_testcase)
48
49 %.multicpptest: 
50         $(setup)
51         +(cd $* && $(swig_and_compile_multi_cpp))
52         +$(run_testcase)
53
54 # Makes a directory for the testcase if it does not exist
55 setup = \
56         if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then        \
57           echo "$(ACTION)ing testcase $* (with run test) under $(LANGUAGE)" ; \
58         else                                                              \
59           echo "$(ACTION)ing testcase $* under $(LANGUAGE)" ;             \
60         fi;                                                               \
61         if [ ! -d $* ]; then                                              \
62           mkdir $*;                                                       \
63         fi
64
65 # Compiles C# files then runs the testcase. A testcase is only run if
66 # a file is found which has _runme.cs appended after the testcase name.
67 # Note C# uses LD_LIBRARY_PATH under Unix, PATH under Cygwin/Windows and SHLIB_PATH on HPUX.
68 run_testcase = \
69         if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
70           $(MAKE) -f $*/$(top_builddir)/$(EXAMPLES)/Makefile \
71           CSHARPFLAGS='-nologo $(CSHARPFLAGSSPECIAL) -out:$*_runme.exe' \
72           CSHARPSRCS='`$(CSHARPCYGPATH_W) $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX)` \
73           $*$(CSHARPPATHSEPARATOR)*.cs' csharp_compile && \
74           env LD_LIBRARY_PATH="$*:$$LD_LIBRARY_PATH" PATH="$*:$$PATH" SHLIB_PATH="$*:$$SHLIB_PATH" $(RUNTOOL) $(INTERPRETER) $*_runme.exe; \
75         else \
76           cd $* && \
77           $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile \
78           CSHARPFLAGS='-nologo $(CSHARPFLAGSSPECIAL) -t:module -out:$*.netmodule' \
79           CSHARPSRCS='*.cs' csharp_compile && cd .. ; \
80         fi
81
82 # Clean: remove testcase directories
83 %.clean:
84         @if [ -d $* ]; then \
85           rm -rf $*; \
86         fi
87
88 clean:
89         @rm -f *.exe *.exe.mdb