Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2009-03-17 02:19:42 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2009-03-17 02:19:42 (GMT)
commit725b9a4ec1c8051ffe75689870272b0707608410 (patch)
tree3be7b9439442d38e0933faf9f4117837dd8f9d5a
parent9e4d8776f1a06512cf84b8012aa9c1da11db512d (diff)
Build binaries per python-version/arch
-rw-r--r--MANIFEST6
-rw-r--r--bounce.py2
-rw-r--r--pongc/Makefile22
-rw-r--r--pongc/__init__.py21
-rw-r--r--pongc/pongclib.i (renamed from pongc/pongc.i)2
5 files changed, 40 insertions, 13 deletions
diff --git a/MANIFEST b/MANIFEST
index bba10be..197162e 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -4,13 +4,9 @@ NEWS
Makefile
setup.py
INSTALL
-pongc/pongc.o
+pongc/pongclib.i
pongc/__init__.py
-pongc/pongc_wrap.o
-pongc/_pongc.so
-pongc/pongc.i
pongc/Makefile
-pongc/pongc.py
pongc/pongc.h
pongc/pongc.cpp
icons/Reset-history.svg
diff --git a/bounce.py b/bounce.py
index 4eec220..2361114 100644
--- a/bounce.py
+++ b/bounce.py
@@ -25,7 +25,7 @@ try:
except (ImportError, AttributeError):
import simplejson as json
-from pongc.pongc import *
+from pongc import *
# Import GTK.
import gobject, pygtk, gtk, pango, cairo
diff --git a/pongc/Makefile b/pongc/Makefile
index 5e17124..e02ac6d 100644
--- a/pongc/Makefile
+++ b/pongc/Makefile
@@ -4,19 +4,29 @@ CXXFLAGS = $(shell pkg-config --cflags gdk-x11-2.0) \
$(shell python-config --cflags) \
-fPIC -O2
LDFLAGS = $(shell pkg-config --libs gdk-x11-2.0) \
- $(shell pkg-config --cflags gstreamer-0.10) \
+ $(shell pkg-config --libs gstreamer-0.10) \
$(shell pkg-config --libs pygtk-2.0) \
$(shell python-config --libs)
-all: _pongc.so
+ARCH = $(shell arch | grep 64 >/dev/null && echo linux64 || echo linux32)
+PYTHON_VERSION = $(shell python -c 'import sys; print "%d%d" % sys.version_info[0:2]')
+LIB_DIR = $(ARCH)_$(PYTHON_VERSION)
+
+all : _pongclib.so
+ rm -rf $(LIB_DIR)
+ mkdir $(LIB_DIR)
+ strip -s _pongclib.so
+ mv _pongclib.so pongclib.py $(LIB_DIR)/
+ touch $(LIB_DIR)/__init__.py
clean:
- rm -rf _pongc.so *_wrap.cxx pongc.py pongc.pyc *.o
+ rm -rf _pongclib.so pongclib.cpp pongclib.py pongclib.pyc *.o
-%_wrap.cpp: %.i
- swig -c++ -python -o $*_wrap.cpp $<
+%.cpp: %.i
+ swig -c++ -python -o $*.cpp $<
pongc.o: pongc.h
-_pongc.so: pongc.o pongc_wrap.o
+_pongclib.so: pongclib.o pongc.o
$(CXX) -shared $(LDFLAGS) -o $@ $^
+
diff --git a/pongc/__init__.py b/pongc/__init__.py
index e69de29..4657a7e 100644
--- a/pongc/__init__.py
+++ b/pongc/__init__.py
@@ -0,0 +1,21 @@
+import os
+import sys
+import logging
+
+_sys_path = sys.path
+_root_path = os.path.dirname(__file__)
+
+for i in os.listdir(_root_path):
+ path = os.path.join(_root_path, i)
+ if (os.path.isdir(path)):
+ sys.path = _sys_path + [os.path.join('.', path)]
+ try:
+ from pongclib import *
+ logging.debug('use %s blobs' % path)
+ _sys_path = None
+ break
+ except Exception, e:
+ logging.debug('skip %s blobs: %s' % (path, e))
+
+if _sys_path:
+ raise('cannot find proper binary blobs')
diff --git a/pongc/pongc.i b/pongc/pongclib.i
index 99702ec..f45310e 100644
--- a/pongc/pongc.i
+++ b/pongc/pongclib.i
@@ -15,7 +15,7 @@
You should have received a copy of the GNU General Public License
along with 3D Pong. If not, see <http://www.gnu.org/licenses/>.
*/
-%module pongc
+%module pongclib
%{
#include <pygobject.h>