From 45662074fc7d8153d80a566c119738afc2b9e448 Mon Sep 17 00:00:00 2001 From: Martchus Date: Wed, 18 Sep 2019 18:08:15 +0200 Subject: [PATCH] Add android-x86-libiconv --- libiconv/android-x86/PKGBUILD | 89 +++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 libiconv/android-x86/PKGBUILD diff --git a/libiconv/android-x86/PKGBUILD b/libiconv/android-x86/PKGBUILD new file mode 100644 index 00000000..5afe5a16 --- /dev/null +++ b/libiconv/android-x86/PKGBUILD @@ -0,0 +1,89 @@ +# Maintainer: Martchus +# Contributor: Arthur Darcet +# Contributor: Techlive Zheng + +_pkgname=libiconv +_pkg_arch=x86 +_android_arch=x86 +_android_toolchain=$_pkg_arch-linux-android +_android_platform=22 +_android_platform_arch=arch-x86 +_prefix=/opt/android-libs/$_pkg_arch +_android_ndk_path=/opt/android-ndk +_android_gcc_toolchain_path=$_android_ndk_path/toolchains/$_android_toolchain-4.9/prebuilt/linux-x86_64 +_android_gcc_tool_prefix=${_android_gcc_toolchain_path}/bin/${_android_toolchain} +_android_clang_toolchain_path=$_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/bin +_android_sysroot=${_android_ndk_path}/platforms/android-$_android_platform/${_android_platform_arch} + +pkgname=android-$_pkg_arch-$_pkgname +pkgver=1.16 +pkgrel=1 +pkgdesc="Provides libiconv.so and libcharset.so (Android $_pkg_arch)" +arch=('any') +url='http://www.gnu.org/software/libiconv/' +license=('LGPL') +makedepends=('android-ndk') +conflicts=("android-$_pkgname-$_android_arch") +replaces=("android-$_pkgname-$_android_arch") +source=("http://ftp.gnu.org/pub/gnu/${_pkgname}/${_pkgname}-${pkgver}.tar.gz") +sha256sums=('e6a1b1b589654277ee790cce3734f07876ac4ccfaecbee8afa0b649cf529cc04') +options=(!libtool !buildflags staticlibs !strip !emptydirs) + +build() { + cd $srcdir/${_pkgname}-${pkgver} + sed '/LD_RUN_PATH/d' -i Makefile.in + + # configure tools + export CPP=${PWD}/cpp.sh + export AR=${_android_gcc_tool_prefix}-ar + export AS=${_android_gcc_tool_prefix}-as + export NM=${_android_gcc_tool_prefix}-nm + export CC=${_android_clang_toolchain_path}/clang + export CXX=${_android_clang_toolchain_path}/clang++ + export LD=${_android_gcc_tool_prefix}-ld + export RANLIB=${_android_gcc_tool_prefix}-ranlib + export STRIP=${_android_gcc_tool_prefix}-strip + + # configure flags + export CFLAGS="${CFLAGS} --target=${_android_toolchain} --gcc-toolchain=${_android_gcc_toolchain_path} --sysroot=${_android_sysroot} -I${_android_ndk_path}/sysroot/usr/include -I${_android_ndk_path}/sysroot/usr/include/${_android_toolchain} -I${_android_sysroot}/usr/include -I${_android_gcc_toolchain_path}/include -fexceptions -frtti" + export CPPFLAGS="${CFLAGS}" + export LDFLAGS="${LDFLAGS} -L${_android_sysroot}/usr/lib" + + # setup preprocessor (because the NDK doesn't provide a wrapper like for gcc and g++) + printf "#!/bin/bash\nexec \"$CXX\" --target=${_android_toolchain} -E \"\$@\"" > "$CPP" + chmod +x "$CPP" + + ./configure \ + --host=$_android_toolchain \ + --target=$_android_toolchain \ + --build="$CHOST" \ + --with-sysroot="${_android_sysroot}" \ + --prefix="$_prefix" \ + --libdir="$_prefix/lib" \ + --includedir="$_prefix/include" \ + --enable-shared=yes \ + --enable-static=yes + + # make sure the LDFLAGS are actually used (LDFLAGS are not passed otherwise) + local libtool_subst="s:\\\$CC -shared:\\\$CC -shared --target=${_android_toolchain} --gcc-toolchain=${_android_gcc_toolchain_path} --sysroot=${_android_sysroot} $LDFLAGS:g" + sed -i "$libtool_subst" libtool + sed -i "$libtool_subst" libcharset/libtool + + # build target lib/localcharset.h and directory lib to experience less brokenness + make lib/localcharset.h + cd lib + make +} + +package() { + cd $srcdir/${_pkgname}-${pkgver}/lib + make DESTDIR="$pkgdir" LIBDIR="$_prefix/lib" install + cp libcharset.a "$pkgdir/$_prefix/lib/libcharset.a" + cp libcharset.so "$pkgdir/$_prefix/lib/libcharset.so" + cd .. + mkdir -p "$pkgdir/$_prefix"/include + mv include/iconv.h "$pkgdir/$_prefix"/include + cd libcharset + mv include/libcharset.h "$pkgdir/$_prefix"/include + mv include/localcharset.h "$pkgdir/$_prefix"/include +}