diff options
author | Aleksey 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) |
commit | 725b9a4ec1c8051ffe75689870272b0707608410 (patch) | |
tree | 3be7b9439442d38e0933faf9f4117837dd8f9d5a | |
parent | 9e4d8776f1a06512cf84b8012aa9c1da11db512d (diff) |
Build binaries per python-version/arch
-rw-r--r-- | MANIFEST | 6 | ||||
-rw-r--r-- | bounce.py | 2 | ||||
-rw-r--r-- | pongc/Makefile | 22 | ||||
-rw-r--r-- | pongc/__init__.py | 21 | ||||
-rw-r--r-- | pongc/pongclib.i (renamed from pongc/pongc.i) | 2 |
5 files changed, 40 insertions, 13 deletions
@@ -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 @@ -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> |