From 6f461a1354d1d861794965ffe11479463cd195b9 Mon Sep 17 00:00:00 2001 From: Mathew Date: Fri, 12 Jun 2015 11:20:06 +0200 Subject: [PATCH 1/2] add leveldb and plyvel recipes --- recipes/leveldb/recipe.sh | 48 +++++++++++++++++++++++++++++++++++++ recipes/plyvel/recipe.sh | 50 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 recipes/leveldb/recipe.sh create mode 100644 recipes/plyvel/recipe.sh diff --git a/recipes/leveldb/recipe.sh b/recipes/leveldb/recipe.sh new file mode 100644 index 0000000000..1264c759c7 --- /dev/null +++ b/recipes/leveldb/recipe.sh @@ -0,0 +1,48 @@ +#!/bin/bash +VERSION_leveldb=${VERSION_leveldb:-1.18} +URL_leveldb=https://github.com/google/leveldb/archive/v${VERSION_leveldb}.tar.gz +DEPS_leveldb=() +BUILD_leveldb=$BUILD_PATH/leveldb/$(get_directory $URL_leveldb) +RECIPE_leveldb=$RECIPES_PATH/leveldb + +function prebuild_leveldb() { + cp $ANDROIDNDK/sources/cxx-stl/gnu-libstdc++/$TOOLCHAIN_VERSION/libs/$ARCH/libgnustl_shared.so $LIBS_PATH +} + +function shouldbuild_leveldb() { + if [ -d "$LIBS_PATH/libleveldb.so" ]; then + DO_BUILD=0 + fi +} + +function build_leveldb() { + cd $BUILD_leveldb + + push_arm + export CFLAGS="$CFLAGS -I$ANDROIDNDK/sources/cxx-stl/gnu-libstdc++/$TOOLCHAIN_VERSION/include/ -I$ANDROIDNDK/sources/cxx-stl/gnu-libstdc++/$TOOLCHAIN_VERSION/libs/$ARCH/include/" + export CFLAGS="$CFLAGS -fpic -shared" + export CXXFLAGS=$CFLAGS + export LDFLAGS="$LDFLAGS -L$LIBS_PATH" + export LDFLAGS="$LDFLAGS -lgnustl_shared" + export LDSHARED=$LIBLINK + + # Make sure leveldb is compiled for Android and does not include versioned numbers + export TARGET_OS=OS_ANDROID_CROSSCOMPILE + #FIXME: Not idempotent + sed -i "127i\ \ \ \ \ \ \ \ PLATFORM_SHARED_VERSIONED=" build_detect_platform + + # Build + try make + + # Copy the shared library + try cp -L libleveldb.so $LIBS_PATH + + # Unset + unset TARGET_OS + unset LDSHARED + pop_arm +} + +function postbuild_leveldb() { + true +} diff --git a/recipes/plyvel/recipe.sh b/recipes/plyvel/recipe.sh new file mode 100644 index 0000000000..82a4c5ccb8 --- /dev/null +++ b/recipes/plyvel/recipe.sh @@ -0,0 +1,50 @@ +#!/bin/bash +VERSION_plyvel=${VERSION_plyvel:-0.9} +URL_plyvel=https://pypi.python.org/packages/source/p/plyvel/plyvel-${VERSION_plyvel}.tar.gz +DEPS_plyvel=(python setuptools leveldb) +MD5_plyvel=b0f768a07683dad01554b040c6320ed5 +BUILD_plyvel=$BUILD_PATH/plyvel/$(get_directory $URL_plyvel) +RECIPE_plyvel=$RECIPES_PATH/plyvel + +function prebuild_plyvel() { + true +} + +function shouldbuild_plyvel() { + if [ -d "$SITEPACKAGES_PATH/plyvel" ]; then + DO_BUILD=0 + fi +} + +function build_plyvel() { + cd $BUILD_plyvel + + # Add zip_safe=False, if not already there + grep -q -e 'zip_safe=False' setup.py || sed -i "30i\ \ \ \ zip_safe=False," setup.py + + push_arm + + # gnu-libstdc++, leveldb and python + export CFLAGS="$CFLAGS -I$BUILD_leveldb/include" + export CFLAGS="$CFLAGS -I$ANDROIDNDK/sources/cxx-stl/gnu-libstdc++/$TOOLCHAIN_VERSION/include/ -I$ANDROIDNDK/sources/cxx-stl/gnu-libstdc++/$TOOLCHAIN_VERSION/libs/armeabi/include/" + export CFLAGS="$CFLAGS -fpic -shared" + export CXXFLAGS=$CFLAGS + + export LDFLAGS="$LDFLAGS -L$LIBS_PATH" + export LDFLAGS="$LDFLAGS -lgnustl_shared -lpython2.7" + export LDSHARED=$LIBLINK + + export PPO=$PYTHONPATH + export PYTHONPATH=$SITEPACKAGES_PATH:$BUILDLIB_PATH + + try $HOSTPYTHON setup.py install -O2 + + export PYTHONPATH=$PPO + unset LDSHARED + unset PPO + pop_arm +} + +function postbuild_plyvel() { + true +} From 64d8a202ac4214c995544756d0134d052f8d905a Mon Sep 17 00:00:00 2001 From: Mathew Date: Fri, 12 Jun 2015 12:05:22 +0200 Subject: [PATCH 2/2] add 'try' before sed command --- recipes/leveldb/recipe.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/leveldb/recipe.sh b/recipes/leveldb/recipe.sh index 1264c759c7..87b2ebaade 100644 --- a/recipes/leveldb/recipe.sh +++ b/recipes/leveldb/recipe.sh @@ -29,7 +29,7 @@ function build_leveldb() { # Make sure leveldb is compiled for Android and does not include versioned numbers export TARGET_OS=OS_ANDROID_CROSSCOMPILE #FIXME: Not idempotent - sed -i "127i\ \ \ \ \ \ \ \ PLATFORM_SHARED_VERSIONED=" build_detect_platform + try sed -i "127i\ \ \ \ \ \ \ \ PLATFORM_SHARED_VERSIONED=" build_detect_platform # Build try make