From 725b9a4ec1c8051ffe75689870272b0707608410 Mon Sep 17 00:00:00 2001 From: Aleksey Lim Date: Tue, 17 Mar 2009 02:19:42 +0000 Subject: Build binaries per python-version/arch --- 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 . */ -%module pongc +%module pongclib %{ #include -- cgit v0.9.1