*** empty log message ***
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@50 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
bcef419b66
commit
16ac3b10f8
16 changed files with 517 additions and 0 deletions
28
SWIG/Examples/tcl/simple/Makefile
Normal file
28
SWIG/Examples/tcl/simple/Makefile
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
TOP = ../..
|
||||
SWIG = $(TOP)/../swig
|
||||
SRCS = example.c
|
||||
TARGET = my_tclsh
|
||||
DLTARGET = example
|
||||
INTERFACE = example.i
|
||||
|
||||
all::
|
||||
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
|
||||
TARGET='$(DLTARGET)' INTERFACE='$(INTERFACE)' tcldl
|
||||
|
||||
tcl8::
|
||||
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
|
||||
SWIGOPT='-tcl8' TARGET='$(DLTARGET)' INTERFACE='$(INTERFACE)' tcldl
|
||||
|
||||
static::
|
||||
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
|
||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' tclsh
|
||||
|
||||
static8::
|
||||
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
|
||||
SWIGOPT='-tcl8' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' tclsh
|
||||
|
||||
|
||||
clean::
|
||||
rm -f *_wrap* *.o my_tclsh *~ .~* core *.so *.sl
|
||||
|
||||
|
||||
10
SWIG/Examples/tcl/simple/README
Normal file
10
SWIG/Examples/tcl/simple/README
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
This is a simple Tcl example. Type 'make' to
|
||||
compile a dynamically loadable extension.
|
||||
|
||||
'make tcl8' creates a dynamically loadable Tcl 8.x
|
||||
extension.
|
||||
|
||||
'make static' creates a statically linked 'tclsh' executable.
|
||||
|
||||
'make static8' create a statically linked 'tclsh8.0' executable.
|
||||
|
||||
25
SWIG/Examples/tcl/simple/example.c
Normal file
25
SWIG/Examples/tcl/simple/example.c
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
/* Simple example from documentation */
|
||||
/* File : example.c */
|
||||
|
||||
#ifdef SWIG
|
||||
%module example
|
||||
#endif
|
||||
|
||||
#include <time.h>
|
||||
|
||||
double My_variable = 3.0;
|
||||
|
||||
int fact(int n) {
|
||||
if (n <= 1) return 1;
|
||||
else return n*fact(n-1);
|
||||
}
|
||||
|
||||
int mod(int n, int m) {
|
||||
return (n % m);
|
||||
}
|
||||
|
||||
char *get_time() {
|
||||
long ltime;
|
||||
time(<ime);
|
||||
return ctime(<ime);
|
||||
}
|
||||
21
SWIG/Examples/tcl/simple/example.i
Normal file
21
SWIG/Examples/tcl/simple/example.i
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
/* File : example.i */
|
||||
%module example
|
||||
%{
|
||||
/* Put headers and other declarations here */
|
||||
|
||||
char foo[] = "Help me!";
|
||||
%}
|
||||
|
||||
typedef double * DoublePtr;
|
||||
typedef double Real;
|
||||
|
||||
typedef Vector * Foo;
|
||||
|
||||
extern double My_variable;
|
||||
extern int fact(int);
|
||||
extern int mod(int n, int m);
|
||||
extern char *get_time();
|
||||
char foo[];
|
||||
|
||||
|
||||
|
||||
26
SWIG/Examples/tcl/simple/example.tcl
Normal file
26
SWIG/Examples/tcl/simple/example.tcl
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#
|
||||
# Tcl script for testing simple example
|
||||
|
||||
# Try to load as a dynamic module. If not, we'll just assume
|
||||
# that it was statically linked in.
|
||||
|
||||
catch { load ./example.so example}
|
||||
catch { load ./example.dll example} ;# Windows
|
||||
|
||||
puts [get_time]
|
||||
set tcl_precision 17
|
||||
puts "My Variable = $My_variable"
|
||||
for {set i 0} {$i < 14} {incr i 1} {
|
||||
set n [fact $i];
|
||||
puts "$i factorial is $n"
|
||||
}
|
||||
|
||||
for {set i 1} {$i < 250} {incr i 1} {
|
||||
for {set j 1} {$j < 250} {incr j 1} {
|
||||
set n [mod $i $j]
|
||||
set My_variable [expr {$My_variable + $n}]
|
||||
}
|
||||
}
|
||||
|
||||
puts "My_variable = $My_variable"
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue