Skip to content

Instantly share code, notes, and snippets.

@pdaxrom
Last active November 17, 2020 09:28
Show Gist options
  • Save pdaxrom/a7c80cf8129a95d0d0a1aef715942533 to your computer and use it in GitHub Desktop.
Save pdaxrom/a7c80cf8129a95d0d0a1aef715942533 to your computer and use it in GitHub Desktop.
Build Android baresip libraries and demo (console)

Build baresip for Android on Ubuntu

Prepare Android toolchains:

apt-get install build-essential m4 bison flex autoconf automake pkg-config intltool gawk zlib1g-dev libc6-i386 zip python subversion git chrpath wget

git clone git@github.com:pdaxrom/cctools.git

cd cctools

git checkout termux

cd cctools-repo

build.sh

export CCTOOLS_REPO_PREFIX=$PWD

cd ../..

Prepare Android ARM64 prefixes

export PATH=$PATH:${CCTOOLS_REPO_PREFIX}/tmp-pie/arm64-repo/cctools-host/bin
export CROSS_SYSROOT=${CCTOOLS_REPO_PREFIX}/tmp-pie/arm64-repo/cctools-host/sysroot/usr
export CROSS_ARCH=arm64
export CROSS_PREFIX=aarch64-linux-android-
export CROSS_OPENSSL_TARGET=linux-aarch64

Build openssl:

wget https://www.openssl.org/source/openssl-1.1.1h.tar.gz
tar xf openssl-1.1.1h.tar.gz
ln -s openssl-1.1.1h openssl
cd openssl

CC=${CROSS_PREFIX}gcc ./Configure ${CROSS_OPENSSL_TARGET} no-shared
make CC=${CROSS_PREFIX}gcc AR="${CROSS_PREFIX}ar" RANLIB="${CROSS_PREFIX}ranlib" -j8

cd ..

Build libre

git clone https://github.com/baresip/re.git

cd re

make CC=${CROSS_PREFIX}gcc ARCH=${CROSS_ARCH} SYSROOT=${CROSS_SYSROOT} HAVE_RESOLV= HAVE_LIBPTHREAD= USE_OPENSSL=1 EXTRA_CFLAGS="-D__ANDROID__ -I../openssl/include" EXTRA_LFLAGS="-L../openssl"

cd ..

Build librem

git clone https://github.com/creytiv/rem.git

cd rem

make CC=${CROSS_PREFIX}gcc ARCH=${CROSS_ARCH} SYSROOT=${CROSS_SYSROOT} HAVE_LIBPTHREAD=

cd ..

Build baresip

git clone https://github.com/baresip/baresip.git

cd baresip

make CC=${CROSS_PREFIX}gcc ARCH=${CROSS_ARCH} SYSROOT=${CROSS_SYSROOT} USE_DBUS= USE_PULSE= HAVE_LIBPTHREAD= SYSROOT_ALT=../openssl EXTRA_LFLAGS=-L../openssl

Android toolchain prefixes for arm:

export PATH=$PATH:${CCTOOLS_REPO_PREFIX}/tmp-pie/arm-repo/cctools-host/bin
export CROSS_SYSROOT=${CCTOOLS_REPO_PREFIX}/tmp-pie/arm-repo/cctools-host/sysroot/usr
export CROSS_ARCH=arm
export CROSS_PREFIX=arm-linux-androideabi-
export CROSS_OPENSSL_TARGET=linux-generic32

Android toolchain prefixes for x86:

export PATH=$PATH:${CCTOOLS_REPO_PREFIX}/tmp-pie/i686-repo/cctools-host/bin
export CROSS_SYSROOT=${CCTOOLS_REPO_PREFIX}/tmp-pie/i686-repo/cctools-host/sysroot/usr
export CROSS_ARCH=i686
export CROSS_PREFIX=i686-linux-android-
export CROSS_OPENSSL_TARGET=linux-x86

Android toolchain prefixes for x86_64

export PATH=$PATH:${CCTOOLS_REPO_PREFIX}/tmp-pie/x86_64-repo/cctools-host/bin
export CROSS_SYSROOT=${CCTOOLS_REPO_PREFIX}/tmp-pie/x86_64-repo/cctools-host/sysroot/usr
export CROSS_ARCH=x86_64
export CROSS_PREFIX=x86_64-linux-android-
export CROSS_OPENSSL_TARGET=linux-x86_64
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment