summaryrefslogtreecommitdiff
path: root/bindings/Makefile
diff options
context:
space:
mode:
authorGökçen Eraslan <gokcen.eraslan@gmail.com>2016-01-07 14:48:00 +0100
committerGökçen Eraslan <gokcen.eraslan@gmail.com>2016-01-07 14:48:00 +0100
commit6c0e2acad583f74883510e00876331329bb4b8a0 (patch)
tree3305a09c69b77e83ee79e7ffd1747b204ee602fd /bindings/Makefile
parentd4424449fa86a8383761c6ae068a01d10e160c94 (diff)
Replace swig bash script with a Makefile.
Diffstat (limited to 'bindings/Makefile')
-rw-r--r--bindings/Makefile54
1 files changed, 54 insertions, 0 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