From a668e8ee5f3408a6bcacf7c6c84d05937e32bd93 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sat, 14 Sep 2019 20:14:27 +0200 Subject: [PATCH] Use android-environment for android-*-openssl packages --- openssl/android-aarch64/PKGBUILD | 95 ++++++++++++---------------- openssl/android-armv7a-eabi/PKGBUILD | 95 ++++++++++++---------------- openssl/android-x86-64/PKGBUILD | 95 ++++++++++++---------------- openssl/android-x86/PKGBUILD | 95 ++++++++++++---------------- 4 files changed, 160 insertions(+), 220 deletions(-) diff --git a/openssl/android-aarch64/PKGBUILD b/openssl/android-aarch64/PKGBUILD index 3888f236..737ef546 100644 --- a/openssl/android-aarch64/PKGBUILD +++ b/openssl/android-aarch64/PKGBUILD @@ -3,90 +3,75 @@ _pkg_arch=aarch64 _android_arch=arm64-v8a -_android_toolchain=$_pkg_arch-linux-android _android_platform=22 # https://developer.android.com/about/dashboards/ _android_platform_arch=arch-arm64 -_android_platform_dir=android-$_android_platform/${_android_platform_arch} _pkgname=openssl _ver=1.1.1c -_pref=/opt/android-libs/$_pkg_arch - -# export Android configuration -export ANDROID_MINIMUM_PLATFORM=$_android_platform -export ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT:-/opt/android-ndk} -export ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT:-/opt/android-sdk} -export ANDROID_EABI=llvm -export ANDROID_ARCH=${_android_platform_arch} pkgname=android-$_pkg_arch-$_pkgname # use a pacman compatible version scheme pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}} -pkgrel=1 +pkgrel=2 pkgdesc="The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (Android, $_pkg_arch)" arch=('any') url='https://www.openssl.org' license=('custom:BSD') options=('!strip' '!buildflags' 'staticlibs' '!emptydirs') depends=('android-sdk' 'android-ndk') +makedepends=('android-environment' 'android-sdk-build-tools') conflicts=("android-$_pkgname-$_android_arch") replaces=("android-$_pkgname-$_android_arch") -source=("https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz" - "https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz.asc" - 'setenv-android.sh') +source=("https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz"{,.asc}) sha256sums=('f6fb3079ad15076154eda9413fed42877d668e7069d9b87396d0804fdb3f4c90' - 'SKIP' 'SKIP') validpgpkeys=('8657ABB260F056B1E5190839D9C4D26D0E604491' '7953AC1FBC3DC8B3B292393ED5E9E43F7DF9EE8C') build() { - cd "$srcdir/$_pkgname-$_ver" + cd "$srcdir/$_pkgname-$_ver" + source android-env ${_pkg_arch} + export PATH="$ANDROID_TOOLCHAIN/bin:$PATH" - # don't use -mandroid flag (Clang as provided by the NDK does not like it) - sed -i -e 's/-mandroid//' Configurations/15-android.conf + # don't use -mandroid flag (Clang as provided by the NDK does not like it) + sed -i -e 's/-mandroid//' Configurations/15-android.conf - source "$srcdir/setenv-android.sh" + ./Configure \ + --prefix="${ANDROID_PREFIX}" \ + --openssldir="${ANDROID_PREFIX}" \ + -D__ANDROID_API__=$_android_platform \ + -Wl,--no-allow-shlib-undefined \ + -Wl,--no-undefined \ + no-stdio \ + no-ui \ + threads \ + shared \ + android-${_android_platform_arch##arch-} - ./Configure \ - --prefix="$_pref" \ - --openssldir="$_pref" \ - --gcc-toolchain=$ANDROID_NDK_ROOT/toolchains/$_android_toolchain-4.9/prebuilt/linux-x86_64 \ - --sysroot=$ANDROID_NDK_ROOT/platforms/$_android_platform_dir/usr \ - -isystem"$ANDROID_NDK_ROOT/sysroot/usr/include" \ - -isystem"$ANDROID_NDK_ROOT/sysroot/usr/include/${_ANDROID_EABI%-*}" \ - -Wl,--no-allow-shlib-undefined \ - -Wl,--no-undefined \ - no-stdio \ - no-ui \ - threads \ - shared \ - android-${ANDROID_ARCH##arch-} + # get rid of debug printing so the library doesn't depend on stdio (no-stdio and no-ui are not entirely sufficient) + sed -i -e 's/\#define TEST_ENG_OPENSSL_RC4_P_INIT//' crypto/engine/eng_openssl.c - # ensure the libraries are not versioned (setting CALC_VERSIONS doesn't work for some reason) - sed -i -e 's/\.\$(SHLIB_MAJOR)\.\$(SHLIB_MINOR)//g' Makefile - sed -i -e 's/\.\$(SHLIB_VERSION_NUMBER)//g' Makefile - - # get rid of debug printing so the library doesn't depend on stdio (no-stdio and no-ui are not entirely sufficient) - sed -i -e 's/\#define TEST_ENG_OPENSSL_RC4_P_INIT//' crypto/engine/eng_openssl.c - - # build only libraries - make CALC_VERSIONS="SHLIB_COMPAT=; SHLIB_SOVER=" build_libs + # build only libraries + make depend + make CALC_VERSIONS="SHLIB_COMPAT=; SHLIB_SOVER=" SHLIB_VERSION_NUMBER= SHLIB_EXT=.so build_libs } package() { - cd "$srcdir/$_pkgname-$_ver" - source "$srcdir/setenv-android.sh" + cd "$srcdir/$_pkgname-$_ver" + source android-env ${_pkg_arch} + export PATH="$ANDROID_TOOLCHAIN:$PATH" - # install header files, libraries and license - for lib in libcrypto.{a,so} libssl.{a,so}; do - install -D -m0644 $lib "$pkgdir/$_pref/lib/$lib" - done - mkdir -p "$pkgdir/$_pref/include" - cp -r include/openssl "$pkgdir/$_pref/include" - install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE + # install header files, libraries and license + for lib in libcrypto.{a,so} libssl.{a,so}; do + install -D -m0644 $lib "$pkgdir/${ANDROID_PREFIX_LIB}/$lib" + done + for pc in libcrypto.pc libssl.pc openssl.pc; do + install -D -m0644 $pc "$pkgdir/${ANDROID_PREFIX_LIB}/pkgconfig/$pc" + done + mkdir -p "$pkgdir/${ANDROID_PREFIX_INCLUDE}" + cp -r include/openssl "$pkgdir/${ANDROID_PREFIX_INCLUDE}" + install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE - # strip binaries - local strip_path=$ANDROID_TOOLCHAIN/${CROSS_COMPILE}strip - find "$pkgdir" -name 'lib*.so' -type f -exec "$strip_path" --strip-unneeded {} \; - find "$pkgdir" -name 'lib*.a' -type f -exec "$strip_path" -g {} \; + # strip binaries + find "$pkgdir" -name 'lib*.so' -type f -exec "$ANDROID_STRIP" --strip-unneeded {} \; + find "$pkgdir" -name 'lib*.a' -type f -exec "$ANDROID_STRIP" -g {} \; } diff --git a/openssl/android-armv7a-eabi/PKGBUILD b/openssl/android-armv7a-eabi/PKGBUILD index 0bf54188..4a1cc672 100644 --- a/openssl/android-armv7a-eabi/PKGBUILD +++ b/openssl/android-armv7a-eabi/PKGBUILD @@ -3,90 +3,75 @@ _pkg_arch=armv7a-eabi _android_arch=armeabi-v7a -_android_toolchain=arm-linux-androideabi _android_platform=21 # https://developer.android.com/about/dashboards/ _android_platform_arch=arch-arm -_android_platform_dir=android-$_android_platform/${_android_platform_arch} _pkgname=openssl _ver=1.1.1c -_pref=/opt/android-libs/$_pkg_arch - -# export Android configuration -export ANDROID_MINIMUM_PLATFORM=$_android_platform -export ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT:-/opt/android-ndk} -export ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT:-/opt/android-sdk} -export ANDROID_EABI=llvm -export ANDROID_ARCH=${_android_platform_arch} pkgname=android-$_pkg_arch-$_pkgname # use a pacman compatible version scheme pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}} -pkgrel=1 +pkgrel=2 pkgdesc="The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (Android, $_pkg_arch)" arch=('any') url='https://www.openssl.org' license=('custom:BSD') options=('!strip' '!buildflags' 'staticlibs' '!emptydirs') depends=('android-sdk' 'android-ndk') +makedepends=('android-environment' 'android-sdk-build-tools') conflicts=("android-$_pkgname-$_android_arch") replaces=("android-$_pkgname-$_android_arch") -source=("https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz" - "https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz.asc" - 'setenv-android.sh') +source=("https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz"{,.asc}) sha256sums=('f6fb3079ad15076154eda9413fed42877d668e7069d9b87396d0804fdb3f4c90' - 'SKIP' 'SKIP') validpgpkeys=('8657ABB260F056B1E5190839D9C4D26D0E604491' '7953AC1FBC3DC8B3B292393ED5E9E43F7DF9EE8C') build() { - cd "$srcdir/$_pkgname-$_ver" + cd "$srcdir/$_pkgname-$_ver" + source android-env ${_pkg_arch} + export PATH="$ANDROID_TOOLCHAIN/bin:$PATH" - # don't use -mandroid flag (Clang as provided by the NDK does not like it) - sed -i -e 's/-mandroid//' Configurations/15-android.conf + # don't use -mandroid flag (Clang as provided by the NDK does not like it) + sed -i -e 's/-mandroid//' Configurations/15-android.conf - source "$srcdir/setenv-android.sh" + ./Configure \ + --prefix="${ANDROID_PREFIX}" \ + --openssldir="${ANDROID_PREFIX}" \ + -D__ANDROID_API__=$_android_platform \ + -Wl,--no-allow-shlib-undefined \ + -Wl,--no-undefined \ + no-stdio \ + no-ui \ + threads \ + shared \ + android-${_android_platform_arch##arch-} - ./Configure \ - --prefix="$_pref" \ - --openssldir="$_pref" \ - --gcc-toolchain=$ANDROID_NDK_ROOT/toolchains/$_android_toolchain-4.9/prebuilt/linux-x86_64 \ - --sysroot=$ANDROID_NDK_ROOT/platforms/$_android_platform_dir/usr \ - -isystem"$ANDROID_NDK_ROOT/sysroot/usr/include" \ - -isystem"$ANDROID_NDK_ROOT/sysroot/usr/include/${_ANDROID_EABI%-*}" \ - -Wl,--no-allow-shlib-undefined \ - -Wl,--no-undefined \ - no-stdio \ - no-ui \ - threads \ - shared \ - android-${ANDROID_ARCH##arch-} + # get rid of debug printing so the library doesn't depend on stdio (no-stdio and no-ui are not entirely sufficient) + sed -i -e 's/\#define TEST_ENG_OPENSSL_RC4_P_INIT//' crypto/engine/eng_openssl.c - # ensure the libraries are not versioned (setting CALC_VERSIONS doesn't work for some reason) - sed -i -e 's/\.\$(SHLIB_MAJOR)\.\$(SHLIB_MINOR)//g' Makefile - sed -i -e 's/\.\$(SHLIB_VERSION_NUMBER)//g' Makefile - - # get rid of debug printing so the library doesn't depend on stdio (no-stdio and no-ui are not entirely sufficient) - sed -i -e 's/\#define TEST_ENG_OPENSSL_RC4_P_INIT//' crypto/engine/eng_openssl.c - - # build only libraries - make CALC_VERSIONS="SHLIB_COMPAT=; SHLIB_SOVER=" build_libs + # build only libraries + make depend + make CALC_VERSIONS="SHLIB_COMPAT=; SHLIB_SOVER=" SHLIB_VERSION_NUMBER= SHLIB_EXT=.so build_libs } package() { - cd "$srcdir/$_pkgname-$_ver" - source "$srcdir/setenv-android.sh" + cd "$srcdir/$_pkgname-$_ver" + source android-env ${_pkg_arch} + export PATH="$ANDROID_TOOLCHAIN:$PATH" - # install header files, libraries and license - for lib in libcrypto.{a,so} libssl.{a,so}; do - install -D -m0644 $lib "$pkgdir/$_pref/lib/$lib" - done - mkdir -p "$pkgdir/$_pref/include" - cp -r include/openssl "$pkgdir/$_pref/include" - install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE + # install header files, libraries and license + for lib in libcrypto.{a,so} libssl.{a,so}; do + install -D -m0644 $lib "$pkgdir/${ANDROID_PREFIX_LIB}/$lib" + done + for pc in libcrypto.pc libssl.pc openssl.pc; do + install -D -m0644 $pc "$pkgdir/${ANDROID_PREFIX_LIB}/pkgconfig/$pc" + done + mkdir -p "$pkgdir/${ANDROID_PREFIX_INCLUDE}" + cp -r include/openssl "$pkgdir/${ANDROID_PREFIX_INCLUDE}" + install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE - # strip binaries - local strip_path=$ANDROID_TOOLCHAIN/${CROSS_COMPILE}strip - find "$pkgdir" -name 'lib*.so' -type f -exec "$strip_path" --strip-unneeded {} \; - find "$pkgdir" -name 'lib*.a' -type f -exec "$strip_path" -g {} \; + # strip binaries + find "$pkgdir" -name 'lib*.so' -type f -exec "$ANDROID_STRIP" --strip-unneeded {} \; + find "$pkgdir" -name 'lib*.a' -type f -exec "$ANDROID_STRIP" -g {} \; } diff --git a/openssl/android-x86-64/PKGBUILD b/openssl/android-x86-64/PKGBUILD index 86f69e16..ed59ceb3 100644 --- a/openssl/android-x86-64/PKGBUILD +++ b/openssl/android-x86-64/PKGBUILD @@ -3,90 +3,75 @@ _pkg_arch=x86-64 _android_arch=x86_64 -_android_toolchain=$_pkg_arch-linux-android _android_platform=22 # https://developer.android.com/about/dashboards/ _android_platform_arch=arch-x86_64 -_android_platform_dir=android-$_android_platform/${_android_platform_arch} _pkgname=openssl _ver=1.1.1c -_pref=/opt/android-libs/$_pkg_arch - -# export Android configuration -export ANDROID_MINIMUM_PLATFORM=$_android_platform -export ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT:-/opt/android-ndk} -export ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT:-/opt/android-sdk} -export ANDROID_EABI=llvm -export ANDROID_ARCH=${_android_platform_arch} pkgname=android-$_pkg_arch-$_pkgname # use a pacman compatible version scheme pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}} -pkgrel=1 +pkgrel=2 pkgdesc="The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (Android, $_pkg_arch)" arch=('any') url='https://www.openssl.org' license=('custom:BSD') options=('!strip' '!buildflags' 'staticlibs' '!emptydirs') depends=('android-sdk' 'android-ndk') +makedepends=('android-environment' 'android-sdk-build-tools') conflicts=("android-$_pkgname-$_android_arch") replaces=("android-$_pkgname-$_android_arch") -source=("https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz" - "https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz.asc" - 'setenv-android.sh') +source=("https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz"{,.asc}) sha256sums=('f6fb3079ad15076154eda9413fed42877d668e7069d9b87396d0804fdb3f4c90' - 'SKIP' 'SKIP') validpgpkeys=('8657ABB260F056B1E5190839D9C4D26D0E604491' '7953AC1FBC3DC8B3B292393ED5E9E43F7DF9EE8C') build() { - cd "$srcdir/$_pkgname-$_ver" + cd "$srcdir/$_pkgname-$_ver" + source android-env ${_pkg_arch} + export PATH="$ANDROID_TOOLCHAIN/bin:$PATH" - # don't use -mandroid flag (Clang as provided by the NDK does not like it) - sed -i -e 's/-mandroid//' Configurations/15-android.conf + # don't use -mandroid flag (Clang as provided by the NDK does not like it) + sed -i -e 's/-mandroid//' Configurations/15-android.conf - source "$srcdir/setenv-android.sh" + ./Configure \ + --prefix="${ANDROID_PREFIX}" \ + --openssldir="${ANDROID_PREFIX}" \ + -D__ANDROID_API__=$_android_platform \ + -Wl,--no-allow-shlib-undefined \ + -Wl,--no-undefined \ + no-stdio \ + no-ui \ + threads \ + shared \ + android-${_android_platform_arch##arch-} - ./Configure \ - --prefix="$_pref" \ - --openssldir="$_pref" \ - --gcc-toolchain=$ANDROID_NDK_ROOT/toolchains/$_android_toolchain-4.9/prebuilt/linux-x86_64 \ - --sysroot=$ANDROID_NDK_ROOT/platforms/$_android_platform_dir/usr \ - -isystem"$ANDROID_NDK_ROOT/sysroot/usr/include" \ - -isystem"$ANDROID_NDK_ROOT/sysroot/usr/include/${_ANDROID_EABI%-*}" \ - -Wl,--no-allow-shlib-undefined \ - -Wl,--no-undefined \ - no-stdio \ - no-ui \ - threads \ - shared \ - android-${ANDROID_ARCH##arch-} + # get rid of debug printing so the library doesn't depend on stdio (no-stdio and no-ui are not entirely sufficient) + sed -i -e 's/\#define TEST_ENG_OPENSSL_RC4_P_INIT//' crypto/engine/eng_openssl.c - # ensure the libraries are not versioned (setting CALC_VERSIONS doesn't work for some reason) - sed -i -e 's/\.\$(SHLIB_MAJOR)\.\$(SHLIB_MINOR)//g' Makefile - sed -i -e 's/\.\$(SHLIB_VERSION_NUMBER)//g' Makefile - - # get rid of debug printing so the library doesn't depend on stdio (no-stdio and no-ui are not entirely sufficient) - sed -i -e 's/\#define TEST_ENG_OPENSSL_RC4_P_INIT//' crypto/engine/eng_openssl.c - - # build only libraries - make CALC_VERSIONS="SHLIB_COMPAT=; SHLIB_SOVER=" build_libs + # build only libraries + make depend + make CALC_VERSIONS="SHLIB_COMPAT=; SHLIB_SOVER=" SHLIB_VERSION_NUMBER= SHLIB_EXT=.so build_libs } package() { - cd "$srcdir/$_pkgname-$_ver" - source "$srcdir/setenv-android.sh" + cd "$srcdir/$_pkgname-$_ver" + source android-env ${_pkg_arch} + export PATH="$ANDROID_TOOLCHAIN:$PATH" - # install header files, libraries and license - for lib in libcrypto.{a,so} libssl.{a,so}; do - install -D -m0644 $lib "$pkgdir/$_pref/lib/$lib" - done - mkdir -p "$pkgdir/$_pref/include" - cp -r include/openssl "$pkgdir/$_pref/include" - install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE + # install header files, libraries and license + for lib in libcrypto.{a,so} libssl.{a,so}; do + install -D -m0644 $lib "$pkgdir/${ANDROID_PREFIX_LIB}/$lib" + done + for pc in libcrypto.pc libssl.pc openssl.pc; do + install -D -m0644 $pc "$pkgdir/${ANDROID_PREFIX_LIB}/pkgconfig/$pc" + done + mkdir -p "$pkgdir/${ANDROID_PREFIX_INCLUDE}" + cp -r include/openssl "$pkgdir/${ANDROID_PREFIX_INCLUDE}" + install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE - # strip binaries - local strip_path=$ANDROID_TOOLCHAIN/${CROSS_COMPILE}strip - find "$pkgdir" -name 'lib*.so' -type f -exec "$strip_path" --strip-unneeded {} \; - find "$pkgdir" -name 'lib*.a' -type f -exec "$strip_path" -g {} \; + # strip binaries + find "$pkgdir" -name 'lib*.so' -type f -exec "$ANDROID_STRIP" --strip-unneeded {} \; + find "$pkgdir" -name 'lib*.a' -type f -exec "$ANDROID_STRIP" -g {} \; } diff --git a/openssl/android-x86/PKGBUILD b/openssl/android-x86/PKGBUILD index 73d5e044..a27f9aa0 100644 --- a/openssl/android-x86/PKGBUILD +++ b/openssl/android-x86/PKGBUILD @@ -3,90 +3,75 @@ _pkg_arch=x86 _android_arch=x86 -_android_toolchain=$_pkg_arch-linux-android _android_platform=22 # https://developer.android.com/about/dashboards/ _android_platform_arch=arch-x86 -_android_platform_dir=android-$_android_platform/${_android_platform_arch} _pkgname=openssl _ver=1.1.1c -_pref=/opt/android-libs/$_pkg_arch - -# export Android configuration -export ANDROID_MINIMUM_PLATFORM=$_android_platform -export ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT:-/opt/android-ndk} -export ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT:-/opt/android-sdk} -export ANDROID_EABI=llvm -export ANDROID_ARCH=${_android_platform_arch} pkgname=android-$_pkg_arch-$_pkgname # use a pacman compatible version scheme pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}} -pkgrel=1 +pkgrel=2 pkgdesc="The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (Android, $_pkg_arch)" arch=('any') url='https://www.openssl.org' license=('custom:BSD') options=('!strip' '!buildflags' 'staticlibs' '!emptydirs') depends=('android-sdk' 'android-ndk') +makedepends=('android-environment' 'android-sdk-build-tools') conflicts=("android-$_pkgname-$_android_arch") replaces=("android-$_pkgname-$_android_arch") -source=("https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz" - "https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz.asc" - 'setenv-android.sh') +source=("https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz"{,.asc}) sha256sums=('f6fb3079ad15076154eda9413fed42877d668e7069d9b87396d0804fdb3f4c90' - 'SKIP' 'SKIP') validpgpkeys=('8657ABB260F056B1E5190839D9C4D26D0E604491' '7953AC1FBC3DC8B3B292393ED5E9E43F7DF9EE8C') build() { - cd "$srcdir/$_pkgname-$_ver" + cd "$srcdir/$_pkgname-$_ver" + source android-env ${_pkg_arch} + export PATH="$ANDROID_TOOLCHAIN/bin:$PATH" - # don't use -mandroid flag (Clang as provided by the NDK does not like it) - sed -i -e 's/-mandroid//' Configurations/15-android.conf + # don't use -mandroid flag (Clang as provided by the NDK does not like it) + sed -i -e 's/-mandroid//' Configurations/15-android.conf - source "$srcdir/setenv-android.sh" + ./Configure \ + --prefix="${ANDROID_PREFIX}" \ + --openssldir="${ANDROID_PREFIX}" \ + -D__ANDROID_API__=$_android_platform \ + -Wl,--no-allow-shlib-undefined \ + -Wl,--no-undefined \ + no-stdio \ + no-ui \ + threads \ + shared \ + android-${_android_platform_arch##arch-} - ./Configure \ - --prefix="$_pref" \ - --openssldir="$_pref" \ - --gcc-toolchain=$ANDROID_NDK_ROOT/toolchains/$_android_toolchain-4.9/prebuilt/linux-x86_64 \ - --sysroot=$ANDROID_NDK_ROOT/platforms/$_android_platform_dir/usr \ - -isystem"$ANDROID_NDK_ROOT/sysroot/usr/include" \ - -isystem"$ANDROID_NDK_ROOT/sysroot/usr/include/${_ANDROID_EABI%-*}" \ - -Wl,--no-allow-shlib-undefined \ - -Wl,--no-undefined \ - no-stdio \ - no-ui \ - threads \ - shared \ - android-${ANDROID_ARCH##arch-} + # get rid of debug printing so the library doesn't depend on stdio (no-stdio and no-ui are not entirely sufficient) + sed -i -e 's/\#define TEST_ENG_OPENSSL_RC4_P_INIT//' crypto/engine/eng_openssl.c - # ensure the libraries are not versioned (setting CALC_VERSIONS doesn't work for some reason) - sed -i -e 's/\.\$(SHLIB_MAJOR)\.\$(SHLIB_MINOR)//g' Makefile - sed -i -e 's/\.\$(SHLIB_VERSION_NUMBER)//g' Makefile - - # get rid of debug printing so the library doesn't depend on stdio (no-stdio and no-ui are not entirely sufficient) - sed -i -e 's/\#define TEST_ENG_OPENSSL_RC4_P_INIT//' crypto/engine/eng_openssl.c - - # build only libraries - make CALC_VERSIONS="SHLIB_COMPAT=; SHLIB_SOVER=" build_libs + # build only libraries + make depend + make CALC_VERSIONS="SHLIB_COMPAT=; SHLIB_SOVER=" SHLIB_VERSION_NUMBER= SHLIB_EXT=.so build_libs } package() { - cd "$srcdir/$_pkgname-$_ver" - source "$srcdir/setenv-android.sh" + cd "$srcdir/$_pkgname-$_ver" + source android-env ${_pkg_arch} + export PATH="$ANDROID_TOOLCHAIN:$PATH" - # install header files, libraries and license - for lib in libcrypto.{a,so} libssl.{a,so}; do - install -D -m0644 $lib "$pkgdir/$_pref/lib/$lib" - done - mkdir -p "$pkgdir/$_pref/include" - cp -r include/openssl "$pkgdir/$_pref/include" - install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE + # install header files, libraries and license + for lib in libcrypto.{a,so} libssl.{a,so}; do + install -D -m0644 $lib "$pkgdir/${ANDROID_PREFIX_LIB}/$lib" + done + for pc in libcrypto.pc libssl.pc openssl.pc; do + install -D -m0644 $pc "$pkgdir/${ANDROID_PREFIX_LIB}/pkgconfig/$pc" + done + mkdir -p "$pkgdir/${ANDROID_PREFIX_INCLUDE}" + cp -r include/openssl "$pkgdir/${ANDROID_PREFIX_INCLUDE}" + install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE - # strip binaries - local strip_path=$ANDROID_TOOLCHAIN/${CROSS_COMPILE}strip - find "$pkgdir" -name 'lib*.so' -type f -exec "$strip_path" --strip-unneeded {} \; - find "$pkgdir" -name 'lib*.a' -type f -exec "$strip_path" -g {} \; + # strip binaries + find "$pkgdir" -name 'lib*.so' -type f -exec "$ANDROID_STRIP" --strip-unneeded {} \; + find "$pkgdir" -name 'lib*.a' -type f -exec "$ANDROID_STRIP" -g {} \; }