summaryrefslogtreecommitdiff
path: root/Examples/lua/embed2
diff options
context:
space:
mode:
authorKarl Wette <karl.wette@ligo.org>2014-05-11 23:21:10 +0200
committerKarl Wette <karl.wette@ligo.org>2014-05-11 23:21:10 +0200
commitf574a34155e4ede49b1b023494e0a1637ab89f8f (patch)
tree030d43f72ee40901180174f0167ed6a19bac21f7 /Examples/lua/embed2
parent72e6b5349e62c44b42de448fab6c9b005811d025 (diff)
downloadswig-f574a34155e4ede49b1b023494e0a1637ab89f8f.tar.gz
Allow examples and test-suite to be built out of source tree
- Examples/Makefile.in rules use SRCDIR as the relative source directory - ./config.status replicates Examples/ source directory tree in build directory, and copies each Makefile to build directory, prefixed with a header which sets SRCDIR to source directory - Examples/test-suite/.../Makefile.in set SRCDIR from Autoconf-set srcdir - Examples/test-suite/errors/Makefile.in needs to filter out source directory from SWIG error messages - Lua: embedded interpreters are passed location of run-time test - Python: copy run-time scripts to build directory because of 2to3 conversion; import_packages example copies __init__.py from source directory; test-suite sets SCRIPTDIR to location of run-time tests - Javascript: binding.gyp renamed to binding.gyp.in so that $srcdir can be substituted with SRCDIR; removed './' from require() statements so that NODE_PATH can be used to point Node.js to build directory
Diffstat (limited to 'Examples/lua/embed2')
-rw-r--r--Examples/lua/embed2/Makefile6
-rw-r--r--Examples/lua/embed2/embed2.c9
2 files changed, 10 insertions, 5 deletions
diff --git a/Examples/lua/embed2/Makefile b/Examples/lua/embed2/Makefile
index ec22bdcae..d30ba0942 100644
--- a/Examples/lua/embed2/Makefile
+++ b/Examples/lua/embed2/Makefile
@@ -9,12 +9,12 @@ LIBS = -lm
# this is a little different to normal as we have our own special interpreter
# which we want to static link
check: build
- $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' lua_embed_run
+ $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' TARGET='$(TARGET)' lua_embed_run
build:
- $(MAKE) -f $(TOP)/Makefile $(SWIGLIB) SRCS='$(SRCS)' SWIG='$(SWIG)' \
+ $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' $(SWIGLIB) SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' LIBS='$(LIBS)' INTERFACE='example.i' LUA_INTERP='$(LUA_INTERP)' lua_static
clean:
- $(MAKE) -f $(TOP)/Makefile lua_clean
+ $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' lua_clean
rm -f $(TARGET)
diff --git a/Examples/lua/embed2/embed2.c b/Examples/lua/embed2/embed2.c
index 100a1fb33..7b2ca9b67 100644
--- a/Examples/lua/embed2/embed2.c
+++ b/Examples/lua/embed2/embed2.c
@@ -24,6 +24,7 @@ We will be using the luaL_dostring()/lua_dostring() function to call into lua
#include <stdlib.h>
#include <stdio.h>
+#include <string.h>
#include <lua.h>
#include <lauxlib.h>
@@ -189,9 +190,13 @@ int main(int argc,char* argv[]) {
luaopen_example(L);
printf("[C] all looks ok\n");
printf("\n");
- printf("[C] let's load the file 'runme.lua'\n");
+ if (argc != 2 || argv[1] == NULL || strlen(argv[1]) == 0) {
+ printf("[C] ERROR: no lua file given on command line\n");
+ exit(3);
+ }
+ printf("[C] let's load the file '%s'\n", argv[1]);
printf("[C] any lua code in this file will be executed\n");
- if (luaL_loadfile(L, "runme.lua") || lua_pcall(L, 0, 0, 0)) {
+ if (luaL_loadfile(L, argv[1]) || lua_pcall(L, 0, 0, 0)) {
printf("[C] ERROR: cannot run lua file: %s",lua_tostring(L, -1));
exit(3);
}