summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bindings/Makefile54
-rw-r--r--bindings/swig.sh22
2 files changed, 54 insertions, 22 deletions
diff --git a/bindings/Makefile b/bindings/Makefile
new file mode 100644
index 0000000..5680f89
--- /dev/null
+++ b/bindings/Makefile
@@ -0,0 +1,54 @@
+CC=g++
+
+QTFLAGS := $(shell pkg-config QtCore --cflags)
+PYTHONFLAGS := $(shell pkg-config python2 --cflags)
+LUAFLAGS := $(shell pkg-config lua52 --cflags)
+
+INCLUDES=-I..
+
+python/quackle_wrap.cxx:
+ @test -d python || mkdir python
+ swig -c++ -o $@ $(INCLUDES) $(QTFLAGS) -python quackle.i
+
+python/quackle_wrap.o: python/quackle_wrap.cxx
+ $(CC) -c -std=c++11 -fPIC $< $(QTFLAGS) $(PYTHONFLAGS) $(INCLUDES) -o $@
+
+python: python/quackle_wrap.o
+ ln -sf ../../lib/release/libquackle.so.0 python/libquackle.so.0
+ ln -sf ../../quackleio/lib/release/libquackleio.so.0 python/libquackleio.so.0
+ $(CC) -std=c++11 -shared ../lib/release/libquackle.so ../quackleio/lib/release/libquackleio.so $< -o python/_quackle.so
+
+go:
+ @test -d go || mkdir go
+ ln -sf ../../lib/release/libquackle.so.0 go/libquackle.so.0
+ ln -sf ../../quackleio/lib/release/libquackleio.so.0 go/libquackleio.so.0
+ swig -c++ -o go/quackle_wrap.cxx -I../ $(QTFLAGS) -go -cgo -intgosize 64 quackle.i
+
+lua/quackle_wrap.cxx:
+ @test -d lua || mkdir lua
+ swig -c++ -o $@ $(INCLUDES) $(QTFLAGS) -lua quackle.i
+
+lua/quackle_wrap.o: lua/quackle_wrap.cxx
+ $(CC) -std=c++11 -fPIC $(LUAFLAGS) $(QTFLAGS) $(INCLUDES) -c $< -o $@
+
+lua: lua/quackle_wrap.o
+ ln -sf ../../lib/release/libquackle.so.0 lua/libquackle.so.0
+ ln -sf ../../quackleio/lib/release/libquackleio.so.0 lua/libquackleio.so.0
+ $(CC) -std=c++11 -shared $(LUAFLAGS) ../lib/release/libquackle.so ../quackleio/lib/release/libquackleio.so $< -o lua/quackle.so
+
+.PHONY: clean
+
+clean:
+ -rm -rf python/libquackle.*
+ -rm -rf python/libquackleio.*
+ -rm -rf python/quackle.py
+ -rm -rf lua/libquackle.*
+ -rm -rf lua/libquackleio.*
+ -rm -rf go/libquackle.*
+ -rm -rf go/libquackleio.*
+ -rm -rf */*_wrap.cxx
+ -rm -rf */*.o
+ -rm -rf */*.pyc
+ -rm -rf */*.so
+ -rm -rf lua
+ -rm -rf go
diff --git a/bindings/swig.sh b/bindings/swig.sh
deleted file mode 100644
index 8e069b0..0000000
--- a/bindings/swig.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-set -eu
-
-#################### Generate Python bindings
-ln -sf ../../lib/release/libquackle.so.0 python/libquackle.so.0
-ln -sf ../../quackleio/lib/release/libquackleio.so.0 python/libquackleio.so.0
-swig -c++ -o python/pyquackle.cxx -I../ `pkg-config QtCore --cflags` -python quackle.i
-g++ -c -std=c++11 -fPIC python/pyquackle.cxx `pkg-config QtCore --cflags` `pkg-config python2 --cflags` -I../ -o python/pyquackle.o
-g++ -std=c++11 -shared ../lib/release/libquackle.so ../quackleio/lib/release/libquackleio.so python/pyquackle.o -o python/_quackle.so
-
-#################### Generate Go bindings
-mkdir go
-ln -sf ../../lib/release/libquackle.so.0 go/libquackle.so.0
-ln -sf ../../quackleio/lib/release/libquackleio.so.0 go/libquackleio.so.0
-swig -c++ -o go/quackle_wrap.cxx -I../ `pkg-config QtCore --cflags` -go -cgo -intgosize 64 quackle.i
-
-#################### Generate Lua bindings
-mkdir lua
-ln -sf ../../lib/release/libquackle.so.0 lua/libquackle.so.0
-ln -sf ../../quackleio/lib/release/libquackleio.so.0 lua/libquackleio.so.0
-swig -c++ -o lua/quackle_wrap.cxx -I../ `pkg-config QtCore --cflags` -lua quackle.i
-g++ -std=c++11 -fPIC `pkg-config lua52 --cflags` `pkg-config QtCore --cflags` -I../ -c lua/quackle_wrap.cxx -o lua/quackle_wrap.o
-g++ -std=c++11 -shared `pkg-config lua52 --libs` ../lib/release/libquackle.so ../quackleio/lib/release/libquackleio.so lua/quackle_wrap.o -o lua/quackle.so