8000 fix python module compilation + be more verbose · abgoyal/python-for-android@b6a0752 · GitHub
[go: up one dir, main page]

Skip to content

Commit b6a0752

Browse files
committed
fix python module compilation + be more verbose
1 parent 5758973 commit b6a0752

File tree

7 files changed

+43
-21
lines changed

7 files changed

+43
-21
lines changed

distribute.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,11 @@ function run() {
433433
run_source_modules
434434
run_order_modules
435435
run_get_deps
436+
437+
push_arm
438+
debug $PATH
439+
pop_arm
440+
436441
run_prebuild
437442
run_build
438443
run_postbuild

recipes/kivy/recipe.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ function build_kivy() {
3434
# fake try to be able to cythonize generated files
3535
$BUILD_PATH/python-install/bin/python.host setup.py build_ext
3636
try find . -iname '*.pyx' -exec cython {} \;
37-
try $BUILD_PATH/python-install/bin/python.host setup.py build_ext
37+
try $BUILD_PATH/python-install/bin/python.host setup.py build_ext -v
3838
try find build/lib.* -name "*.o" -exec $STRIP {} \;
3939
try $BUILD_PATH/python-install/bin/python.host setup.py install -O2
4040

recipes/pygame/recipe.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ function build_pygame() {
3434
CFLAGS="$CFLAGS -I$JNI_PATH/sdl/include -I$JNI_PATH/sdl_mixer"
3535
CFLAGS="$CFLAGS -I$JNI_PATH/sdl_ttf -I$JNI_PATH/sdl_image"
3636
export CFLAGS="$CFLAGS"
37-
export LDFLAGS="$LDFLAGS -L$LIBS_PATH -lm -lz"
38-
try $BUILD_PATH/python-install/bin/python.host setup.py install
37+
export LDFLAGS="$LDFLAGS -L$LIBS_PATH -L$SRC_PATH/obj/local/$ARCH/ -lm -lz"
38+
try $BUILD_PATH/python-install/bin/python.host setup.py install -O2
3939
try find build/lib.* -name "*.o" -exec $STRIP {} \;
4040

4141
try rm -rf $BUILD_PATH/python-install/lib/python*/site-packages/pygame/docs

recipes/python/patches/custom-loader.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@
1616
+ void *rv = NULL;
1717
+
1818
+ /* Ensure we have access to libpymodules. */
19-
+ if (libpymodules == NULL && 0) {
19+
+ if (libpymodules == NULL) {
2020
+ printf("ANDROID_PRIVATE = %s\n", getenv("ANDROID_PRIVATE"));
2121
+ PyOS_snprintf(pathbuf, sizeof(pathbuf), "%s/libpymodules.so", getenv("ANDROID_PRIVATE"));
2222
+ libpymodules = dlopen(pathbuf, RTLD_NOW);
2323
+
2424
+ if (libpymodules == NULL) {
25-
+ abort();
25+
+ //abort();
2626
+ }
2727
+ }
2828
+

recipes/python/recipe.sh

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ function prebuild_python() {
2323
try patch -p1 < $RECIPE_python/patches/fix-locale.patch
2424
try patch -p1 < $RECIPE_python/patches/fix-gethostbyaddr.patch
2525
try patch -p1 < $RECIPE_python/patches/custom-loader.patch
26+
try patch -p1 < $RECIPE_python/patches/verbose-compilation.patch
2627

2728
# everything done, touch the marker !
2829
touch .patched
@@ -34,20 +35,37 @@ function build_python() {
3435

3536
# if the last step have been done, avoid all
3637
if [ -f $BUILD_PATH/python-install/bin/python.host ]; then
37-
#return
38-
true
38+
return
39+
#true
3940
fi
4041

4142
# copy same module from host python
4243
try cp $RECIPE_hostpython/Setup Modules
44+
try cp $BUILD_hostpython/hostpython .
45+
try cp $BUILD_hostpython/hostpgen .
4346

4447
push_arm
4548
try ./configure --host=arm-eabi --prefix="$BUILD_PATH/python-install" --enable-shared
46-
try $MAKE HOSTPYTHON=$BUILD_hostpython/hostpython HOSTPGEN=$BUILD_hostpython/hostpgen CROSS_COMPILE=arm-eabi- CROSS_COMPILE_TARGET=yes INSTSONAME=libpython2.7.so
47-
try $MAKE install HOSTPYTHON=$BUILD_hostpython/hostpython HOSTPGEN=$BUILD_hostpython/hostpgen CROSS_COMPILE=arm-eabi- CROSS_COMPILE_TARGET=yes INSTSONAME=libpython2.7.so
49+
try $MAKE HOSTPYTHON=$BUILD_python/hostpython HOSTPGEN=$BUILD_python/hostpgen CROSS_COMPILE_TARGET=yes INSTSONAME=libpython2.7.so
50+
cp HOSTPYTHON=$BUILD_python/hostpython python
51+
52+
# Try to compile module by ourself
53+
#debug 'Try to compile module by ourself'
54+
#$BUILD_python/hostpython -E setup.py build -v -f
55+
56+
# FIXME, the first time, we got a error at:
57+
# python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h
58+
# /home/tito/code/python-for-android/build/python/Python-2.7.2/python: 1: Syntax error: word unexpected (expecting ")")
59+
# because at this time, python is arm, not x86. even that, why /usr/include/netinet/in.h is used ?
60+
# check if we can avoid this part.
61+
62+
debug 'First install (failing..)'
63+
$MAKE install HOSTPYTHON=$BUILD_python/hostpython HOSTPGEN=$BUILD_python/hostpgen CROSS_COMPILE_TARGET=yes INSTSONAME=libpython2.7.so
64+
debug 'Second install.'
65+
try $MAKE install HOSTPYTHON=$BUILD_python/hostpython HOSTPGEN=$BUILD_python/hostpgen CROSS_COMPILE_TARGET=yes INSTSONAME=libpython2.7.so
4866
pop_arm
4967

50-
try cp $BUILD_hostpython/hostpython $BUILD_PATH/python-install/bin/python.host
68+
try cp $BUILD_python/hostpython $BUILD_PATH/python-install/bin/python.host
5169
try cp libpython2.7.so $LIBS_PATH/
5270
}
5371

src/jni/application/python/start.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,11 @@ int main(int argc, char **argv) {
6262
"import sys, posix\n" \
6363
"private = posix.environ['ANDROID_PRIVATE']\n" \
6464
"argument = posix.environ['ANDROID_ARGUMENT']\n" \
65-
"sys.path += [ argument, private ]\n" \
66-
"if '/' in sys.path: sys.path.remove('/')\n" \
65+
"sys.path[:] = [ \n" \
66+
" private + '/lib/python2.7/', \n" \
67+
" private + '/lib/python2.7/lib-dynload/', \n" \
68+
" private + '/lib/python2.7/site-packages/', \n" \
69+
" argument ]\n" \
6770
"import androidembed\n" \
6871
"class LogFile(object):\n" \
6972
" def __init__(self):\n" \

src/src/org/renpy/android/PythonActivity.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -210,9 +210,6 @@ public void run() {
210210
unpackData("private", getFilesDir());
211211
unpackData("public", externalStorage);
212212

213-
System.loadLibrary("z");
214-
System.loadLibrary("jpeg");
215-
System.loadLibrary("png");
216213
System.loadLibrary("sdl");
217214
System.loadLibrary("sdl_image");
218215
System.loadLibrary("sdl_ttf");
@@ -221,20 +218,19 @@ public void run() {
221218
System.loadLibrary("application");
222219
System.loadLibrary("sdl_main");
223220

224-
//System.load(getFilesDir() + "/_io.so");
225221
System.load(getFilesDir() + "/lib/python2.7/lib-dynload/_io.so");
226-
//System.load(getFilesDir() + "/unicodedata.so");
222+
System.load(getFilesDir() + "/lib/python2.7/lib-dynload/unicodedata.so");
227223

228224
try {
229225
System.loadLibrary("sqlite3");
230-
System.load(getFilesDir() + "/_sqlite3.so");
226+
System.load(getFilesDir() + "/lib/python2.7/lib-dynload/_sqlite3.so");
231227
} catch(UnsatisfiedLinkError e) {
232228
}
233229

234230
try {
235-
System.load(getFilesDir() + "/_imaging.so");
236-
System.load(getFilesDir() + "/_imagingft.so");
237-
System.load(getFilesDir() + "/_imagingmath.so");
231+
System.load(getFilesDir() + "/lib/python2.7/lib-dynload/_imaging.so");
232+
System.load(getFilesDir() + "/lib/python2.7/lib-dynload/_imagingft.so");
233+
System.load(getFilesDir() + "/lib/python2.7/lib-dynload/_imagingmath.so");
238234
} catch(UnsatisfiedLinkError e) {
239235
}
240236

0 commit comments

Comments
 (0)
0