blob: 0705aedf4e05a64abf661e792242bc5bf50cb05f [file] [log] [blame]
Adrien Béraud04d822c2015-04-02 17:44:36 -04001#! /bin/bash
Alexandre Lision43b9aeb2014-07-15 14:21:19 -04002
3# Read the Android Wiki http://wiki.videolan.org/AndroidCompile
4# Setup all that stuff correctly.
Tristan Matthews8d02ef62014-07-22 16:03:17 -04005# Get the latest Android SDK Platform or modify numbers in configure.sh and sflphone-android/default.properties.
Alexandre Lision43b9aeb2014-07-15 14:21:19 -04006
Adrien Béraud6d881d92015-06-17 16:22:23 -04007#for OSX/BSD
8realpath() {
9 [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
10}
11
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040012set -e
13
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040014if [ -z "$ANDROID_NDK" -o -z "$ANDROID_SDK" ]; then
15 echo "You must define ANDROID_NDK, ANDROID_SDK and ANDROID_ABI before starting."
Ciro Santilli77372d02016-01-20 10:25:01 -050016 echo "They must point to your NDK and SDK directories."
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040017 exit 1
18fi
19
20if [ -z "$ANDROID_ABI" ]; then
Romain Bertozzibba01aa2016-04-01 14:18:43 -040021 echo "Please set ANDROID_ABI to your architecture: armeabi-v7a, x86."
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040022 exit 1
23fi
24
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040025if [ -z "$NO_FPU" ];then
26 NO_FPU=0
27fi
28if [ -z "$NO_ARMV6" ];then
29 NO_ARMV6=0
30fi
31
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040032RELEASE=0
33JNI=0
34
35for i in ${@}; do
36 case "$i" in
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040037 release|--release)
38 RELEASE=1
39 ;;
40 jni|--jni)
41 JNI=1
42 ;;
43 *)
44 ;;
45 esac
46done
47
Ciro Santilli7ff57fb2016-02-20 22:23:17 +010048ANDROID_TOPLEVEL_DIR="`pwd`"
49ANDROID_APP_DIR="$(pwd)/ring-android"
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040050
51if [ `set -- ${ANDROID_ABI}; echo $#` -gt 1 ]; then
Romain Bertozzi197c8c82016-04-04 14:18:11 -040052 ANDROID_ABIS=""
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040053 ANDROID_ABI_LIST="${ANDROID_ABI}"
54 echo "More than one ABI specified: ${ANDROID_ABI_LIST}"
55 for i in ${ANDROID_ABI_LIST}; do
56 echo "$i starts building"
57 ANDROID_NDK=$ANDROID_NDK ANDROID_SDK=$ANDROID_SDK \
58 NO_FPU=$NO_FPU NO_ARMV6=$NO_ARMV6 ANDROID_ABI=$i \
59 ./compile.sh $* --jni || { echo "$i build KO"; exit 1; }
60 mkdir -p obj/
Adrien Béraudaa771a82015-06-23 23:40:34 -040061 cp -r ring-android/app/src/main/libs/$i obj
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040062 echo "$i build OK"
63 done
64 for i in ${ANDROID_ABI_LIST}; do
Romain Bertozzi197c8c82016-04-04 14:18:11 -040065 if [ -z "$ANDROID_ABIS" ]; then
66 ANDROID_ABIS="$ANDROID_ABIS'$i'"
67 else
68 ANDROID_ABIS="$ANDROID_ABIS,'$i'"
69 fi
70 cp -r obj/$i ring-android/app/src/main/libs/$i
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040071 rm -rf obj/$i
72 done
Romain Bertozzi197c8c82016-04-04 14:18:11 -040073 export ANDROID_ABIS
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040074 make -b -j1 RELEASE=$RELEASE apk || exit 1
75 exit 0
Romain Bertozzi197c8c82016-04-04 14:18:11 -040076elif [ -z "$ANDROID_ABI_LIST" ]; then
77 ANDROID_ABIS="${ANDROID_ABI}"
78 export ANDROID_ABIS
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040079fi
80
81HAVE_ARM=0
82HAVE_X86=0
83HAVE_MIPS=0
84HAVE_64=0
85
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040086# Set up ABI variables
87if [ ${ANDROID_ABI} = "x86" ] ; then
88 TARGET_TUPLE="i686-linux-android"
89 PATH_HOST="x86"
90 HAVE_X86=1
91 PLATFORM_SHORT_ARCH="x86"
92elif [ ${ANDROID_ABI} = "x86_64" ] ; then
93 TARGET_TUPLE="x86_64-linux-android"
94 PATH_HOST="x86_64"
95 HAVE_X86=1
96 HAVE_64=1
97 PLATFORM_SHORT_ARCH="x86_64"
98elif [ ${ANDROID_ABI} = "mips" ] ; then
99 TARGET_TUPLE="mipsel-linux-android"
100 PATH_HOST=$TARGET_TUPLE
101 HAVE_MIPS=1
102 PLATFORM_SHORT_ARCH="mips"
103elif [ ${ANDROID_ABI} = "arm64-v8a" ] ; then
104 TARGET_TUPLE="aarch64-linux-android"
105 PATH_HOST=$TARGET_TUPLE
106 HAVE_ARM=1
107 HAVE_64=1
108 PLATFORM_SHORT_ARCH="arm64"
109else
110 TARGET_TUPLE="arm-linux-androideabi"
111 PATH_HOST=$TARGET_TUPLE
112 HAVE_ARM=1
113 PLATFORM_SHORT_ARCH="arm"
114fi
115
Adrien Béraud04d822c2015-04-02 17:44:36 -0400116GCCVER=4.9
Adrien Béraud646e1f12016-03-30 13:58:53 -0400117if [ "${HAVE_64}" = 1 ];then
118 ANDROID_API=android-21
119else
120 ANDROID_API=android-16
121fi
122CXXSTL="/"${GCCVER}
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400123
124export GCCVER
125export CXXSTL
Tristan Matthewsd6033b42014-10-09 17:00:07 -0400126export ANDROID_API
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400127
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400128# XXX : important!
129[ "$HAVE_ARM" = 1 ] && cat << EOF
130For an ARMv6 device without FPU:
131$ export NO_FPU=1
132For an ARMv5 device:
133$ export NO_ARMV6=1
134
135If you plan to use a release build, run 'compile.sh release'
136EOF
137
138export TARGET_TUPLE
139export PATH_HOST
140export HAVE_ARM
141export HAVE_X86
142export HAVE_MIPS
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400143export HAVE_64
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400144export PLATFORM_SHORT_ARCH
145
146# Add the NDK toolchain to the PATH, needed both for contribs and for building
147# stub libraries
148NDK_TOOLCHAIN_PATH=`echo ${ANDROID_NDK}/toolchains/${PATH_HOST}-${GCCVER}/prebuilt/\`uname|tr A-Z a-z\`-*/bin`
Adrien Béraudb00ed3f2015-06-07 15:36:06 -0400149export NDK_TOOLCHAIN_PATH=${NDK_TOOLCHAIN_PATH}
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400150export PATH=${NDK_TOOLCHAIN_PATH}:${PATH}
151
Ciro Santilli7ff57fb2016-02-20 22:23:17 +0100152if [ -z "$DAEMON_DIR" ]; then
153 DAEMON_DIR="$(pwd)/../daemon"
154 echo "DAEMON_DIR not provided trying to find it in $DAEMON_DIR"
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400155fi
156
Ciro Santilli7ff57fb2016-02-20 22:23:17 +0100157if [ ! -d "$DAEMON_DIR" ]; then
158 echo 'Daemon not found.'
159 echo 'If you cloned the daemon in a custom location override' \
160 'DAEMON_DIR to point to it'
161 echo "You can also use our meta repo which contains both:
162 https://gerrit-ring.savoirfairelinux.com/#/admin/projects/ring-project"
163 exit 1
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400164fi
165
166# Setup CFLAGS
Adrien Béraud04d822c2015-04-02 17:44:36 -0400167if [ ${ANDROID_ABI} = "armeabi-v7a-hard" ] ; then
168 EXTRA_CFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -mcpu=cortex-a8 -D_NDK_MATH_NO_SOFTFP=1"
169elif [ ${ANDROID_ABI} = "armeabi-v7a" ] ; then
Adrien Béraud7f97ca92015-06-07 15:36:06 -0400170 EXTRA_CFLAGS="-march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb"
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400171elif [ ${ANDROID_ABI} = "armeabi" ] ; then
172 if [ -n "${NO_ARMV6}" ]; then
Adrien Béraud04d822c2015-04-02 17:44:36 -0400173 EXTRA_CFLAGS="-march=armv5te -mtune=arm9tdmi -msoft-float "
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400174 else
175 if [ -n "${NO_FPU}" ]; then
176 EXTRA_CFLAGS="-march=armv6j -mtune=arm1136j-s -msoft-float"
177 else
178 EXTRA_CFLAGS="-mfpu=vfp -mcpu=arm1136jf-s -mfloat-abi=softfp"
179 fi
180 fi
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400181elif [ ${ANDROID_ABI} = "arm64-v8a" ] ; then
182 EXTRA_CFLAGS=""
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400183elif [ ${ANDROID_ABI} = "x86" ] ; then
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400184 EXTRA_CFLAGS="-march=pentium -m32"
185elif [ ${ANDROID_ABI} = "x86_64" ] ; then
186 EXTRA_CFLAGS=""
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400187elif [ ${ANDROID_ABI} = "mips" ] ; then
188 EXTRA_CFLAGS="-march=mips32 -mtune=mips32r2 -mhard-float"
189 # All MIPS Linux kernels since 2.4.4 will trap any unimplemented FPU
190 # instruction and emulate it, so we select -mhard-float.
191 # See http://www.linux-mips.org/wiki/Floating_point#The_Linux_kernel_and_floating_point
192else
Adrien Béraudaa771a82015-06-23 23:40:34 -0400193 echo "Unknown ABI ${ANDROID_ABI}. Die, die, die!"
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400194 exit 2
195fi
196
Adrien Béraud04d822c2015-04-02 17:44:36 -0400197EXTRA_CFLAGS="${EXTRA_CFLAGS} -O2 -DHAVE_PTHREADS"
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400198EXTRA_CFLAGS="${EXTRA_CFLAGS} -I${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++${CXXSTL}/include"
199EXTRA_CFLAGS="${EXTRA_CFLAGS} -I${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++${CXXSTL}/libs/${ANDROID_ABI}/include"
Adrien Béraud7f97ca92015-06-07 15:36:06 -0400200EXTRA_CXXFLAGS="${EXTRA_CFLAGS}"
201EXTRA_CFLAGS="-std=gnu11 ${EXTRA_CFLAGS}"
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400202
Tristan Matthews676fcee2014-10-03 15:57:09 -0400203# Setup LDFLAGS
Adrien Béraud04d822c2015-04-02 17:44:36 -0400204if [ ${ANDROID_ABI} = "armeabi-v7a-hard" ] ; then
205 EXTRA_LDFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -mcpu=cortex-a8 -lm_hard -D_NDK_MATH_NO_SOFTFP=1"
206elif [ ${ANDROID_ABI} = "armeabi-v7a" ] ; then
Adrien Béraud7f97ca92015-06-07 15:36:06 -0400207 EXTRA_LDFLAGS="-march=armv7-a -mthumb"
Adrien Béraud04d822c2015-04-02 17:44:36 -0400208fi
209EXTRA_LDFLAGS="${EXTRA_LDFLAGS} -L${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++${CXXSTL}/libs/${ANDROID_ABI} -lgnustl_static"
Tristan Matthews676fcee2014-10-03 15:57:09 -0400210
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400211# Make in //
212UNAMES=$(uname -s)
213MAKEFLAGS=
214if which nproc >/dev/null
215then
216MAKEFLAGS=-j`nproc`
217elif [ "$UNAMES" == "Darwin" ] && which sysctl >/dev/null
218then
219MAKEFLAGS=-j`sysctl -n machdep.cpu.thread_count`
220fi
221
Tristan Matthewsd6d5d402014-10-09 16:41:06 -0400222# Build buildsystem tools
Ciro Santilli7ff57fb2016-02-20 22:23:17 +0100223cd "$DAEMON_DIR"
Adrien Béraud04d822c2015-04-02 17:44:36 -0400224export PATH=`pwd`/extras/tools/build/bin:$PATH
Tristan Matthewsd6d5d402014-10-09 16:41:06 -0400225echo "Building tools"
Adrien Béraud04d822c2015-04-02 17:44:36 -0400226pushd extras/tools
Tristan Matthewsd6d5d402014-10-09 16:41:06 -0400227./bootstrap
228make $MAKEFLAGS
Tristan Matthewseb9209c2014-10-09 23:11:44 -0400229#FIXME
230echo "HACK for old Jenkins builder...forcing libtool to be built"
231make .libtool
Adrien Béraud04d822c2015-04-02 17:44:36 -0400232popd
Tristan Matthewsd6d5d402014-10-09 16:41:06 -0400233
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400234############
235# Contribs #
236############
237echo "Building the contribs"
Romain Bertozzibba01aa2016-04-01 14:18:43 -0400238mkdir -p contrib/native-${TARGET_TUPLE}
Adrien Béraud6d881d92015-06-17 16:22:23 -0400239
240ANDROID_BIN=${NDK_TOOLCHAIN_PATH}
241CROSS_COMPILE=${ANDROID_BIN}/${TARGET_TUPLE}-
242export CROSS_COMPILE="${CROSS_COMPILE}"
243
Adrien Béraud04d822c2015-04-02 17:44:36 -0400244mkdir -p contrib/${TARGET_TUPLE}/lib/pkgconfig
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400245
Romain Bertozzibba01aa2016-04-01 14:18:43 -0400246pushd contrib/native-${TARGET_TUPLE}
Romain Bertozzi197c8c82016-04-04 14:18:11 -0400247../bootstrap --host=${TARGET_TUPLE} --disable-libav --enable-ffmpeg
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400248
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400249# Some libraries have arm assembly which won't build in thumb mode
250# We append -marm to the CFLAGS of these libs to disable thumb mode
251[ ${ANDROID_ABI} = "armeabi-v7a" ] && echo "NOTHUMB := -marm" >> config.mak
Adrien Béraud04d822c2015-04-02 17:44:36 -0400252[ ${ANDROID_ABI} = "armeabi-v7a-hard" ] && echo "NOTHUMB := -marm" >> config.mak
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400253
254# Release or not?
255if [ $# -ne 0 ] && [ "$1" = "release" ]; then
256 OPTS=""
257 EXTRA_CFLAGS="${EXTRA_CFLAGS} -DNDEBUG "
258 RELEASE=1
259else
260 OPTS="--enable-debug"
Tristan Matthews8d02ef62014-07-22 16:03:17 -0400261 EXTRA_CFLAGS="${EXTRA_CFLAGS} -DNDEBUG "
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400262 RELEASE=0
263fi
264
Adrien Béraudb179bab2015-10-08 12:04:22 -0400265echo "EXTRA_CFLAGS= -g -fpic ${EXTRA_CFLAGS}" >> config.mak
266echo "EXTRA_CXXFLAGS= -g -fpic ${EXTRA_CXXFLAGS}" >> config.mak
Tristan Matthews676fcee2014-10-03 15:57:09 -0400267echo "EXTRA_LDFLAGS= ${EXTRA_LDFLAGS}" >> config.mak
Adrien Béraud04d822c2015-04-02 17:44:36 -0400268export RING_EXTRA_CFLAGS="${EXTRA_CFLAGS}"
269export RING_EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS}"
270export RING_EXTRA_LDFLAGS="${EXTRA_LDFLAGS}"
Romain Bertozzi197c8c82016-04-04 14:18:11 -0400271export SYSROOT=$ANDROID_NDK/platforms/$ANDROID_API/arch-$PLATFORM_SHORT_ARCH
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400272
Alexandre Lision10437562015-01-29 21:07:16 -0500273make list
Romain Bertozzibba01aa2016-04-01 14:18:43 -0400274make fetch
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400275export PATH="$PATH:$PWD/../$TARGET_TUPLE/bin"
Romain Bertozzibba01aa2016-04-01 14:18:43 -0400276make
Adrien Béraud7f97ca92015-06-07 15:36:06 -0400277popd
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400278
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400279############
Adrien Béraud04d822c2015-04-02 17:44:36 -0400280# Make Ring #
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400281############
Ciro Santilli7ff57fb2016-02-20 22:23:17 +0100282RING_SRC_DIR="${DAEMON_DIR}"
Adrien Béraudb00ed3f2015-06-07 15:36:06 -0400283RING_BUILD_DIR="`realpath build-android-${TARGET_TUPLE}`"
Adrien Béraudb00ed3f2015-06-07 15:36:06 -0400284export RING_SRC_DIR="${RING_SRC_DIR}"
285export RING_BUILD_DIR="${RING_BUILD_DIR}"
286
Ciro Santilli7ff57fb2016-02-20 22:23:17 +0100287mkdir -p build-android-${TARGET_TUPLE}
288cd build-android-${TARGET_TUPLE}
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400289
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400290if [ "$JNI" = 1 ]; then
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400291 CLEAN="jniclean"
Ciro Santilli7ff57fb2016-02-20 22:23:17 +0100292 TARGET="${ANDROID_APP_DIR}/app/src/main/obj/local/${ANDROID_ABI}/libring.so"
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400293else
294 CLEAN="distclean"
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400295 TARGET=
296fi
297
Ciro Santilli7ff57fb2016-02-20 22:23:17 +0100298cd ${ANDROID_APP_DIR}
299./make-swig.sh
300
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400301if [ ! -f config.h ]; then
302 echo "Bootstraping"
Ciro Santilli7ff57fb2016-02-20 22:23:17 +0100303 cd ${DAEMON_DIR}
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400304 ./autogen.sh
Ciro Santilli7ff57fb2016-02-20 22:23:17 +0100305 cd "${DAEMON_DIR}/build-android-${TARGET_TUPLE}"
306 echo "Configuring with ${OPTS}"
307 ${ANDROID_TOPLEVEL_DIR}/configure.sh ${OPTS}
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400308fi
309
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400310if [ ${ANDROID_API} = "android-21" ] ; then
311 # android-21 has empty sys/shm.h headers that triggers shm detection but it
312 # doesn't have any shm functions and/or symbols. */
Romain Bertozziff20eff2016-04-25 10:16:09 -0400313 export ac_cv_header_sys_shm_h=no
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400314fi
Romain Bertozziff20eff2016-04-25 10:16:09 -0400315if [ ${ANDROID_ABI} = "x86" -a ${ANDROID_API} != "android-21" ] ; then
316 # NDK x86 libm.so has nanf symbol but no nanf definition, we don't known if
317 # intel devices has nanf. Assume they don't have it.
318 export ac_cv_lib_m_nanf=no
319fi
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400320
Adrien Béraud7f97ca92015-06-07 15:36:06 -0400321echo "Building dring ${MAKEFLAGS}"
322V=99 make $MAKEFLAGS
Alexandre Lision3a206cf2014-10-15 12:18:51 -0400323
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400324####################################
325# Ring android UI and specific code
326####################################
Ciro Santilli7ff57fb2016-02-20 22:23:17 +0100327cd ${ANDROID_TOPLEVEL_DIR}
Tristan Matthewsfc848072014-10-09 03:43:54 -0400328
Ciro Santilli7ff57fb2016-02-20 22:23:17 +0100329echo "Building Ring for Android"
330ARCH="${ANDROID_ABI}" DAEMON_DIR="${DAEMON_DIR}" make $CLEAN
331ARCH="${ANDROID_ABI}" DAEMON_DIR="${DAEMON_DIR}" make -j1 \
332 TARGET_TUPLE=$TARGET_TUPLE \
333 PLATFORM_SHORT_ARCH=$PLATFORM_SHORT_ARCH \
334 CXXSTL=$CXXSTL \
335 RELEASE=$RELEASE $TARGET
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400336
337#
338# Exporting a environment script with all the necessary variables
339#
340echo "Generating environment script."
341cat <<EOF
342This is a script that will export many of the variables used in this
343script. It will allow you to compile parts of the build without having
344to rebuild the entire build (e.g. recompile only the Java part).
345
346To use it, include the script into your shell, like this:
347 source env.sh
348
349Now, you can use this command to build the Java portion:
350 make -e
351
352The file will be automatically regenerated by compile.sh, so if you change
353your NDK/SDK locations or any build configurations, just re-run this
354script (sh compile.sh) and it will automatically update the file.
355
356EOF
357
358echo "# This file was automatically generated by compile.sh" > env.sh
359echo "# Re-run 'sh compile.sh' to update this file." >> env.sh
360
361# The essentials
362cat <<EssentialsA >> env.sh
363export ANDROID_ABI=$ANDROID_ABI
364export ANDROID_SDK=$ANDROID_SDK
365export ANDROID_NDK=$ANDROID_NDK
366export GCCVER=$GCCVER
367export CXXSTL=$CXXSTL
Adrien Béraud7f97ca92015-06-07 15:36:06 -0400368export RING_BUILD_DIR=$RING_BUILD_DIR
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400369export TARGET_TUPLE=$TARGET_TUPLE
370export PATH_HOST=$PATH_HOST
371export PLATFORM_SHORT_ARCH=$PLATFORM_SHORT_ARCH
372EssentialsA
373
374# PATH
375echo "export PATH=$NDK_TOOLCHAIN_PATH:\${ANDROID_SDK}/platform-tools:\${PATH}" >> env.sh
376
377# CPU flags
378if [ -n "${HAVE_ARM}" ]; then
379 echo "export HAVE_ARM=1" >> env.sh
380elif [ -n "${HAVE_X86}" ]; then
381 echo "export HAVE_X86=1" >> env.sh
382elif [ -n "${HAVE_MIPS}" ]; then
383 echo "export HAVE_MIPS=1" >> env.sh
384fi
385
386if [ -n "${NO_ARMV6}" ]; then
387 echo "export NO_ARMV6=1" >> env.sh
388fi
389if [ -n "${NO_FPU}" ]; then
390 echo "export NO_FPU=1" >> env.sh
391fi