*** 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:
Dave Beazley 2000-01-12 03:21:25 +00:00
commit 16ac3b10f8
16 changed files with 517 additions and 0 deletions

View 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

View 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.

View 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(&ltime);
return ctime(&ltime);
}

View 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[];

View 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"