From fd8a9aeac993dc172522426ff7d56d41a1396777 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Thu, 28 Nov 2019 13:33:24 -0500
Subject: [PATCH] build: cleanup

Change-Id: I23cbc1542bc065521f80ec6d521674d1921d6b43
---
 build-daemon.sh | 124 ++++++++++++++++--------------------------------
 configure.sh    |  25 ++--------
 2 files changed, 46 insertions(+), 103 deletions(-)

diff --git a/build-daemon.sh b/build-daemon.sh
index fd03e9c87..bb48f0f31 100755
--- a/build-daemon.sh
+++ b/build-daemon.sh
@@ -1,11 +1,5 @@
 #! /bin/bash
-# Build Ring daemon for architecture specified by ANDROID_ABI
-
-#for OSX/BSD
-realpath() {
-    [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
-}
-
+# Build Jami daemon for architecture specified by ANDROID_ABI
 set -e
 
 if [ -z "$ANDROID_NDK" -o -z "$ANDROID_SDK" ]; then
@@ -13,18 +7,16 @@ if [ -z "$ANDROID_NDK" -o -z "$ANDROID_SDK" ]; then
    echo "They must point to your NDK and SDK directories."
    exit 1
 fi
-
 if [ -z "$ANDROID_ABI" ]; then
    echo "Please set ANDROID_ABI to your architecture: armeabi-v7a, x86."
    exit 1
 fi
 
 ANDROID_TOPLEVEL_DIR="`pwd`"
-ANDROID_APP_DIR="$(pwd)/ring-android"
+ANDROID_APP_DIR="${ANDROID_TOPLEVEL_DIR}/ring-android"
 
 HAVE_ARM=0
 HAVE_X86=0
-HAVE_MIPS=0
 HAVE_64=0
 
 # Set up ABI variables
@@ -41,12 +33,6 @@ elif [ ${ANDROID_ABI} = "x86_64" ] ; then
     HAVE_X86=1
     HAVE_64=1
     PLATFORM_SHORT_ARCH="x86_64"
-elif [ ${ANDROID_ABI} = "mips" ] ; then
-    TARGET_TUPLE="mipsel-linux-android"
-    PJ_TARGET_TUPLE="mips-unknown-linux-androideabi"
-    PATH_HOST=$TARGET_TUPLE
-    HAVE_MIPS=1
-    PLATFORM_SHORT_ARCH="mips"
 elif [ ${ANDROID_ABI} = "arm64-v8a" ] ; then
     TARGET_TUPLE="aarch64-linux-android"
     PJ_TARGET_TUPLE="aarch64-unknown-linux-android"
@@ -79,25 +65,19 @@ if [ ! -d "$ANDROID_TOOLCHAIN" ]; then
         --install-dir=$ANDROID_TOOLCHAIN
 fi
 
-GCCVER=clang
-CXXSTL="/"${GCCVER}
-
-export GCCVER
-export CXXSTL
 export ANDROID_API
 export TARGET_TUPLE
-export PATH_HOST
 export HAVE_ARM
 export HAVE_X86
-export HAVE_MIPS
 export HAVE_64
-export PLATFORM_SHORT_ARCH
 
 # Add the NDK toolchain to the PATH, needed both for contribs and for building
 # stub libraries
-NDK_TOOLCHAIN_PATH=`echo ${ANDROID_TOOLCHAIN}/bin`
-export NDK_TOOLCHAIN_PATH=${NDK_TOOLCHAIN_PATH}
+NDK_TOOLCHAIN_PATH="${ANDROID_TOOLCHAIN}/bin"
+CROSS_COMPILE=${NDK_TOOLCHAIN_PATH}/${TARGET_TUPLE}-
 export PATH=${NDK_TOOLCHAIN_PATH}:${PATH}
+export CROSS_COMPILE="${CROSS_COMPILE}"
+export SYSROOT=$ANDROID_TOOLCHAIN/sysroot
 
 if [ -z "$DAEMON_DIR" ]; then
     DAEMON_DIR="$(pwd)/../daemon"
@@ -109,18 +89,34 @@ if [ ! -d "$DAEMON_DIR" ]; then
     echo 'If you cloned the daemon in a custom location override' \
             'DAEMON_DIR to point to it'
     echo "You can also use our meta repo which contains both:
-          https://gerrit-ring.savoirfairelinux.com/#/admin/projects/ring-project"
+          https://review.jami.net/#/admin/projects/ring-project"
     exit 1
 fi
+export DAEMON_DIR
 
 # Setup LDFLAGS
 if [ ${ANDROID_ABI} = "armeabi-v7a" ] ; then
     EXTRA_CFLAGS="${EXTRA_CFLAGS} -march=armv7-a -mthumb -mfpu=vfpv3-d16"
     EXTRA_LDFLAGS="${EXTRA_LDFLAGS} -march=armv7-a -mthumb -mfpu=vfpv3-d16"
 elif [ ${ANDROID_ABI} = "arm64-v8a" ] ; then
-    EXTRA_LDFLAGS="${EXTRA_LDFLAGS} -L${ANDROID_TOOLCHAIN}/sysroot/usr/lib -L${ANDROID_TOOLCHAIN}/${TARGET_TUPLE}/lib"
+    EXTRA_LDFLAGS="${EXTRA_LDFLAGS} -L${SYSROOT}/usr/lib -L${ANDROID_TOOLCHAIN}/${TARGET_TUPLE}/lib"
 fi
 EXTRA_LDFLAGS="${EXTRA_LDFLAGS} -L${ANDROID_TOOLCHAIN}/${TARGET_TUPLE}/${LIBDIR}/${ANDROID_ABI} -L${ANDROID_TOOLCHAIN}/${TARGET_TUPLE}/${LIBDIR}"
+EXTRA_CFLAGS="${EXTRA_CFLAGS} -fPIC"
+EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS} -fPIC"
+EXTRA_LDFLAGS="${EXTRA_LDFLAGS} -L${SYSROOT}/usr/${LIBDIR}"
+echo "EXTRA_CFLAGS= ${EXTRA_CFLAGS}" >> config.mak
+echo "EXTRA_CXXFLAGS= ${EXTRA_CXXFLAGS}" >> config.mak
+echo "EXTRA_LDFLAGS= ${EXTRA_LDFLAGS}" >> config.mak
+
+if [ "${RELEASE}" -eq 1 ]; then
+    echo "Daemon in release mode."
+    OPTS=""
+    STRIP_ARG="-s "
+else
+    echo "Daemon in debug mode."
+    OPTS="--enable-debug"
+fi
 
 # Make in //
 UNAMES=$(uname -s)
@@ -135,7 +131,7 @@ fi
 
 # Build buildsystem tools
 cd $DAEMON_DIR/extras/tools
-export PATH=`pwd`/extras/tools/build/bin:$PATH
+export PATH=`pwd`/build/bin:$PATH
 echo "Building tools"
 ./bootstrap
 make $MAKEFLAGS
@@ -152,63 +148,30 @@ PACKAGEDIR=$PACKAGEDIR $JNIDIR/make-swig.sh
 ############
 # Contribs #
 ############
-cd $DAEMON_DIR
 echo "Building the contribs"
-mkdir -p contrib/native-${TARGET_TUPLE}
-
-CROSS_COMPILE=${NDK_TOOLCHAIN_PATH}/${TARGET_TUPLE}-
-export CROSS_COMPILE="${CROSS_COMPILE}"
-
-mkdir -p contrib/${TARGET_TUPLE}/lib/pkgconfig
+CONTRIB_DIR=${DAEMON_DIR}/contrib/native-${TARGET_TUPLE}
+CONTRIB_SYSROOT=${DAEMON_DIR}/contrib/${TARGET_TUPLE}
+mkdir -p ${CONTRIB_DIR}
+mkdir -p ${CONTRIB_SYSROOT}/lib/pkgconfig
 
-cd $DAEMON_DIR/contrib/native-${TARGET_TUPLE}
-../bootstrap --host=${TARGET_TUPLE} --disable-libav --enable-ffmpeg --disable-speexdsp
-
-# Always strip symbols for libring.so remove it if you want to debug the daemon
-STRIP_ARG="-s "
-
-EXTRA_CFLAGS="${EXTRA_CFLAGS} -DNDEBUG -fPIC -fno-integrated-as"
-EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS} -DNDEBUG -fPIC"
-EXTRA_LDFLAGS="${EXTRA_LDFLAGS} -L${SYSROOT}/usr/${LIBDIR}"
-
-if [ "${RELEASE}" -eq 1 ]; then
-    echo "Daemon in release mode."
-    OPTS=""
-else
-    echo "Daemon in debug mode."
-    OPTS="--enable-debug"
-fi
-
-export SYSROOT=$ANDROID_TOOLCHAIN/sysroot
-echo "EXTRA_CFLAGS= ${EXTRA_CFLAGS}" >> config.mak
-echo "EXTRA_CXXFLAGS= ${EXTRA_CXXFLAGS}" >> config.mak
-echo "EXTRA_LDFLAGS= ${EXTRA_LDFLAGS}" >> config.mak
-export RING_EXTRA_CFLAGS="${EXTRA_CFLAGS}"
-export RING_EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS}"
-export RING_EXTRA_LDFLAGS="${EXTRA_LDFLAGS}"
+cd ${CONTRIB_DIR}
+../bootstrap --host=${TARGET_TUPLE} --enable-ffmpeg --disable-speexdsp
 
 make list
 make fetch
-export PATH="$PATH:$PWD/../$TARGET_TUPLE/bin"
+export PATH="$PATH:$CONTRIB_SYSROOT/bin"
 make $MAKEFLAGS
 
 ############
-# Make Ring #
+# Make Jami daemon #
 ############
-cd $DAEMON_DIR
-RING_SRC_DIR="${DAEMON_DIR}"
-RING_BUILD_DIR="`realpath build-android-${TARGET_TUPLE}`"
-export RING_SRC_DIR="${RING_SRC_DIR}"
-export RING_BUILD_DIR="${RING_BUILD_DIR}"
-
-mkdir -p build-android-${TARGET_TUPLE}
-cd ${ANDROID_APP_DIR}
+DAEMON_BUILD_DIR="${DAEMON_DIR}/build-android-${TARGET_TUPLE}"
+mkdir -p ${DAEMON_BUILD_DIR}
 
 if [ ! -f config.h ]; then
-    echo "Bootstraping"
     cd ${DAEMON_DIR}
     ./autogen.sh
-    cd "${DAEMON_DIR}/build-android-${TARGET_TUPLE}"
+    cd "${DAEMON_BUILD_DIR}"
     echo "Configuring with ${OPTS}"
     CFLAGS="${EXTRA_CFLAGS}" \
     CXXFLAGS="${EXTRA_CXXFLAGS}" \
@@ -221,11 +184,6 @@ if [ ${ANDROID_API} = "android-21" ] ; then
     # doesn't have any shm functions and/or symbols. */
     export ac_cv_header_sys_shm_h=no
 fi
-if [ ${ANDROID_ABI} = "x86" -a ${ANDROID_API} != "android-21" ] ; then
-    # NDK x86 libm.so has nanf symbol but no nanf definition, we don't known if
-    # intel devices has nanf. Assume they don't have it.
-    export ac_cv_lib_m_nanf=no
-fi
 
 echo "Building dring ${MAKEFLAGS}"
 V=99 make $MAKEFLAGS
@@ -257,7 +215,7 @@ STATIC_LIBS_ALL="-llog -lOpenSLES -landroid \
 
 LIBRING_JNI_DIR=${ANDROID_APP_DIR}/app/src/main/libs/${ANDROID_ABI}
 
-echo "Building Ring JNI library for Android to ${LIBRING_JNI_DIR}"
+echo "Building Jami JNI library for Android to ${LIBRING_JNI_DIR}"
 mkdir -p ${LIBRING_JNI_DIR}
 
 ${NDK_TOOLCHAIN_PATH}/clang++ \
@@ -267,11 +225,11 @@ ${NDK_TOOLCHAIN_PATH}/clang++ \
                 -Wno-unused-function \
                 -Wno-unused-parameter \
                 ${JNIDIR}/ring_wrapper.cpp \
-                ${RING_BUILD_DIR}/src/.libs/libring.a \
+                ${DAEMON_BUILD_DIR}/src/.libs/libring.a \
                 -static-libstdc++ \
-                -isystem ${RING_SRC_DIR}/contrib/${TARGET_TUPLE}/include \
-                -I${RING_SRC_DIR}/src \
-                -L${RING_SRC_DIR}/contrib/${TARGET_TUPLE}/lib \
+                -isystem ${DAEMON_DIR}/contrib/${TARGET_TUPLE}/include \
+                -I${DAEMON_DIR}/src \
+                -L${DAEMON_DIR}/contrib/${TARGET_TUPLE}/lib \
                 ${STATIC_LIBS_ALL} \
                 ${STRIP_ARG} --std=c++14 -O3 -fPIC \
                 -o ${LIBRING_JNI_DIR}/libring.so
diff --git a/configure.sh b/configure.sh
index 9560b9074..8501da01f 100755
--- a/configure.sh
+++ b/configure.sh
@@ -4,32 +4,17 @@ if [ -z "$ANDROID_NDK" ]; then
     echo "Please set the ANDROID_NDK environment variable with its path."
     exit 1
 fi
-
-if [ -z "$NDK_TOOLCHAIN_PATH" ]; then
-    echo "Please set the NDK_TOOLCHAIN_PATH environment variable with its path."
-    exit 1
-fi
-
 if [ -z "$ANDROID_ABI" ]; then
     echo "Please set ANDROID_ABI to your architecture: armeabi-v7a, armeabi, arm64-v8a, x86, x86_64 or mips."
     exit 1
 fi
-
-# ANDROID_API must be previously set by compile.sh or env.sh
 if [ -z "$ANDROID_API" ];then
     echo "ANDROID_API not set, call ./compile.sh first"
     exit 1
 fi
 
-CPPFLAGS="-I${RING_SRC_DIR}/contrib/${TARGET_TUPLE}/include "
-LDFLAGS="$LDFLAGS -L${RING_SRC_DIR}/contrib/${TARGET_TUPLE}/lib "
-
-SYSROOT=$NDK_TOOLCHAIN_PATH/sysroot
-
-CPPFLAGS="$CPPFLAGS" \
-CFLAGS="$CFLAGS ${RING_EXTRA_CFLAGS}" \
-CXXFLAGS="$CXXFLAGS ${RING_EXTRA_CXXFLAGS}" \
-LDFLAGS="$LDFLAGS ${RING_EXTRA_LDFLAGS}" \
+CPPFLAGS="${CPPFLAGS} -I${DAEMON_DIR}/contrib/${TARGET_TUPLE}/include " \
+LDFLAGS="${LDFLAGS} -L${DAEMON_DIR}/contrib/${TARGET_TUPLE}/lib " \
 CC="${CROSS_COMPILE}clang" \
 CXX="${CROSS_COMPILE}clang++" \
 NM="${CROSS_COMPILE}nm" \
@@ -37,8 +22,8 @@ STRIP="${CROSS_COMPILE}strip" \
 RANLIB="${CROSS_COMPILE}ranlib" \
 AR="${CROSS_COMPILE}ar" \
 AS="${CROSS_COMPILE}as" \
-PKG_CONFIG_LIBDIR=$RING_SRC_DIR/contrib/$TARGET_TUPLE/lib/pkgconfig \
-$RING_SRC_DIR/configure --host=$TARGET_TUPLE $EXTRA_PARAMS \
+PKG_CONFIG_LIBDIR=$DAEMON_DIR/contrib/$TARGET_TUPLE/lib/pkgconfig \
+$DAEMON_DIR/configure --host=$TARGET_TUPLE $EXTRA_PARAMS \
                    --disable-shared --with-opensl --without-dbus --without-alsa --without-pulse --without-speexdsp --enable-accel\
-                   --prefix=$RING_SRC_DIR/install-android-$TARGET_TUPLE \
+                   --prefix=$DAEMON_DIR/install-android-$TARGET_TUPLE \
                    $*
-- 
GitLab