diff options
Diffstat (limited to 'trunk/Examples/lua/simple')
| -rw-r--r-- | trunk/Examples/lua/simple/Makefile | 18 | ||||
| -rw-r--r-- | trunk/Examples/lua/simple/example.c | 18 | ||||
| -rw-r--r-- | trunk/Examples/lua/simple/example.i | 7 | ||||
| -rw-r--r-- | trunk/Examples/lua/simple/runme.lua | 35 |
4 files changed, 78 insertions, 0 deletions
diff --git a/trunk/Examples/lua/simple/Makefile b/trunk/Examples/lua/simple/Makefile new file mode 100644 index 000000000..f181818a6 --- /dev/null +++ b/trunk/Examples/lua/simple/Makefile @@ -0,0 +1,18 @@ +TOP = ../.. +SWIG = $(TOP)/../preinst-swig +SRCS = example.c +TARGET = example +INTERFACE = example.i + +all:: + $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \ + TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' lua + +static:: + $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \ + TARGET='mylua' INTERFACE='$(INTERFACE)' lua_static + +clean:: + $(MAKE) -f $(TOP)/Makefile lua_clean + +check: all diff --git a/trunk/Examples/lua/simple/example.c b/trunk/Examples/lua/simple/example.c new file mode 100644 index 000000000..1c2af789c --- /dev/null +++ b/trunk/Examples/lua/simple/example.c @@ -0,0 +1,18 @@ +/* File : example.c */ + +/* A global variable */ +double Foo = 3.0; + +/* Compute the greatest common divisor of positive integers */ +int gcd(int x, int y) { + int g; + g = y; + while (x > 0) { + g = x; + x = y % x; + y = g; + } + return g; +} + + diff --git a/trunk/Examples/lua/simple/example.i b/trunk/Examples/lua/simple/example.i new file mode 100644 index 000000000..86ae9f361 --- /dev/null +++ b/trunk/Examples/lua/simple/example.i @@ -0,0 +1,7 @@ +/* File : example.i */ +%module example + +%inline %{ +extern int gcd(int x, int y); +extern double Foo; +%}
\ No newline at end of file diff --git a/trunk/Examples/lua/simple/runme.lua b/trunk/Examples/lua/simple/runme.lua new file mode 100644 index 000000000..1e5a139c8 --- /dev/null +++ b/trunk/Examples/lua/simple/runme.lua @@ -0,0 +1,35 @@ +---- importing ---- +if string.sub(_VERSION,1,7)=='Lua 5.0' then + -- lua5.0 doesnt have a nice way to do this + lib=loadlib('example.dll','luaopen_example') or loadlib('example.so','luaopen_example') + assert(lib)() +else + -- lua 5.1 does + require('example') +end + +-- Call our gcd() function +x = 42 +y = 105 +g = example.gcd(x,y) +print("The gcd of",x,"and",y,"is",g) + +-- Manipulate the Foo global variable + +-- Output its current value +print("Foo = ", example.Foo) + +-- Change its value +example.Foo = 3.1415926 + +-- See if the change took effect +print("Foo = ", example.Foo) + + + + + + + + + |
