blob: 4c28c23cc5186c340604a7f23bf18cfb056921d0 [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
7set -e
8
Alexandre Lision43b9aeb2014-07-15 14:21:19 -04009if [ -z "$ANDROID_NDK" -o -z "$ANDROID_SDK" ]; then
10 echo "You must define ANDROID_NDK, ANDROID_SDK and ANDROID_ABI before starting."
11 echo "They must point to your NDK and SDK directories.\n"
12 exit 1
13fi
14
15if [ -z "$ANDROID_ABI" ]; then
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040016 echo "Please set ANDROID_ABI to your architecture: armeabi-v7a, armeabi, arm64-v8a, x86, x86_64 or mips."
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040017 exit 1
18fi
19
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040020if [ -z "$NO_FPU" ];then
21 NO_FPU=0
22fi
23if [ -z "$NO_ARMV6" ];then
24 NO_ARMV6=0
25fi
26
27BUILD=0
28FETCH=0
29RELEASE=0
30JNI=0
31
32for i in ${@}; do
33 case "$i" in
34 --fetch)
35 FETCH=1
36 ;;
37 --build)
38 BUILD=1
39 ;;
40 release|--release)
41 RELEASE=1
42 ;;
43 jni|--jni)
44 JNI=1
45 ;;
46 *)
47 ;;
48 esac
49done
50
51if [ "$BUILD" = 0 -a "$FETCH" = 0 ];then
52 BUILD=1
53 FETCH=1
54fi
55
56if [ `set -- ${ANDROID_ABI}; echo $#` -gt 1 ]; then
57 ANDROID_ABI_LIST="${ANDROID_ABI}"
58 echo "More than one ABI specified: ${ANDROID_ABI_LIST}"
59 for i in ${ANDROID_ABI_LIST}; do
60 echo "$i starts building"
61 ANDROID_NDK=$ANDROID_NDK ANDROID_SDK=$ANDROID_SDK \
62 NO_FPU=$NO_FPU NO_ARMV6=$NO_ARMV6 ANDROID_ABI=$i \
63 ./compile.sh $* --jni || { echo "$i build KO"; exit 1; }
64 mkdir -p obj/
Adrien Béraud04d822c2015-04-02 17:44:36 -040065 cp -r ring-android/libs/$i obj
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040066 echo "$i build OK"
67 done
68 for i in ${ANDROID_ABI_LIST}; do
Adrien Béraud04d822c2015-04-02 17:44:36 -040069 cp -r obj/$i ring-android/libs/
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040070 rm -rf obj/$i
71 done
72 make -b -j1 RELEASE=$RELEASE apk || exit 1
73 exit 0
74fi
75
76HAVE_ARM=0
77HAVE_X86=0
78HAVE_MIPS=0
79HAVE_64=0
80
81
82# Set up ABI variables
83if [ ${ANDROID_ABI} = "x86" ] ; then
84 TARGET_TUPLE="i686-linux-android"
85 PATH_HOST="x86"
86 HAVE_X86=1
87 PLATFORM_SHORT_ARCH="x86"
88elif [ ${ANDROID_ABI} = "x86_64" ] ; then
89 TARGET_TUPLE="x86_64-linux-android"
90 PATH_HOST="x86_64"
91 HAVE_X86=1
92 HAVE_64=1
93 PLATFORM_SHORT_ARCH="x86_64"
94elif [ ${ANDROID_ABI} = "mips" ] ; then
95 TARGET_TUPLE="mipsel-linux-android"
96 PATH_HOST=$TARGET_TUPLE
97 HAVE_MIPS=1
98 PLATFORM_SHORT_ARCH="mips"
99elif [ ${ANDROID_ABI} = "arm64-v8a" ] ; then
100 TARGET_TUPLE="aarch64-linux-android"
101 PATH_HOST=$TARGET_TUPLE
102 HAVE_ARM=1
103 HAVE_64=1
104 PLATFORM_SHORT_ARCH="arm64"
105else
106 TARGET_TUPLE="arm-linux-androideabi"
107 PATH_HOST=$TARGET_TUPLE
108 HAVE_ARM=1
109 PLATFORM_SHORT_ARCH="arm"
110fi
111
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400112# try to detect NDK version
Adrien Béraud04d822c2015-04-02 17:44:36 -0400113GCCVER=4.9
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400114REL=$(grep -o '^r[0-9]*.*' $ANDROID_NDK/RELEASE.TXT 2>/dev/null|cut -b2-)
115case "$REL" in
Tristan Matthewsd6033b42014-10-09 17:00:07 -0400116 10*)
117 if [ "${HAVE_64}" = 1 ];then
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400118 ANDROID_API=android-21
Tristan Matthewsd6033b42014-10-09 17:00:07 -0400119 else
Adrien Béraud04d822c2015-04-02 17:44:36 -0400120 ANDROID_API=android-15
Tristan Matthewsd6033b42014-10-09 17:00:07 -0400121 fi
122 CXXSTL="/"${GCCVER}
123 ;;
124 9*)
125 if [ "${HAVE_64}" = 1 ];then
126 echo "You need the NDKv10 or later for 64 bits build"
127 exit 1
128 fi
Adrien Béraud04d822c2015-04-02 17:44:36 -0400129 ANDROID_API=android-15
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400130 CXXSTL="/"${GCCVER}
131 ;;
132 7|8|*)
133 echo "You need the NDKv9 or later"
134 exit 1
135 ;;
136esac
137
138export GCCVER
139export CXXSTL
Tristan Matthewsd6033b42014-10-09 17:00:07 -0400140export ANDROID_API
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400141
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400142# XXX : important!
143[ "$HAVE_ARM" = 1 ] && cat << EOF
144For an ARMv6 device without FPU:
145$ export NO_FPU=1
146For an ARMv5 device:
147$ export NO_ARMV6=1
148
149If you plan to use a release build, run 'compile.sh release'
150EOF
151
152export TARGET_TUPLE
153export PATH_HOST
154export HAVE_ARM
155export HAVE_X86
156export HAVE_MIPS
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400157export HAVE_64
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400158export PLATFORM_SHORT_ARCH
159
160# Add the NDK toolchain to the PATH, needed both for contribs and for building
161# stub libraries
162NDK_TOOLCHAIN_PATH=`echo ${ANDROID_NDK}/toolchains/${PATH_HOST}-${GCCVER}/prebuilt/\`uname|tr A-Z a-z\`-*/bin`
163export PATH=${NDK_TOOLCHAIN_PATH}:${PATH}
164
165ANDROID_PATH="`pwd`"
166
Adrien Béraud04d822c2015-04-02 17:44:36 -0400167# Fetch ring daemon source
Alexandre Lision7f46d1c2014-10-27 16:39:25 -0400168if [ "$FETCH" = 1 ]
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400169then
Adrien Béraud04d822c2015-04-02 17:44:36 -0400170 # 1/ dring
171 TESTED_HASH=64ed36af424b0e2e18e419be904926b591c58d61
172 if [ ! -d "ring" ]; then
173 echo "ring daemon source not found, cloning"
174 git clone https://gerrit-ring.savoirfairelinux.com/ring
175 cd ring
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400176 echo android/ >> .git/info/exclude
177 echo contrib/android/ >> .git/info/exclude
Alexandre Lision3a206cf2014-10-15 12:18:51 -0400178 git checkout $TESTED_HASH
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400179 else
Adrien Béraud04d822c2015-04-02 17:44:36 -0400180 echo "ring daemon source found"
181 cd ring
Alexandre Lision65be7702014-09-29 18:06:33 -0400182 git fetch
183 git checkout ${TESTED_HASH}
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400184# if ! git cat-file -e ${TESTED_HASH}; then
185# cat << EOF
186#***
Adrien Béraud04d822c2015-04-02 17:44:36 -0400187#*** Error: Your ring checkout does not contain the latest tested commit ***
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400188#***
189#
190#Please update your source with something like:
191#
Adrien Béraud04d822c2015-04-02 17:44:36 -0400192#cd ring
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400193#git reset --hard origin
194#git pull origin master
195#git checkout -B android ${TESTED_HASH}
196#
197#*** : This will delete any changes you made to the current branch ***
198#
199#EOF
200# exit 1
201# fi
202 fi
203else
Adrien Béraud04d822c2015-04-02 17:44:36 -0400204 cd ring
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400205fi
206
207if [ -z "$BUILD" ]
208then
209 echo "Not building anything, please run $0 --build"
210 exit 0
211fi
212
213# Setup CFLAGS
Adrien Béraud04d822c2015-04-02 17:44:36 -0400214if [ ${ANDROID_ABI} = "armeabi-v7a-hard" ] ; then
215 EXTRA_CFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -mcpu=cortex-a8 -D_NDK_MATH_NO_SOFTFP=1"
216elif [ ${ANDROID_ABI} = "armeabi-v7a" ] ; then
217 EXTRA_CFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -mthumb -mcpu=cortex-a8"
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400218elif [ ${ANDROID_ABI} = "armeabi" ] ; then
219 if [ -n "${NO_ARMV6}" ]; then
Adrien Béraud04d822c2015-04-02 17:44:36 -0400220 EXTRA_CFLAGS="-march=armv5te -mtune=arm9tdmi -msoft-float "
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400221 else
222 if [ -n "${NO_FPU}" ]; then
223 EXTRA_CFLAGS="-march=armv6j -mtune=arm1136j-s -msoft-float"
224 else
225 EXTRA_CFLAGS="-mfpu=vfp -mcpu=arm1136jf-s -mfloat-abi=softfp"
226 fi
227 fi
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400228elif [ ${ANDROID_ABI} = "arm64-v8a" ] ; then
229 EXTRA_CFLAGS=""
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400230elif [ ${ANDROID_ABI} = "x86" ] ; then
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400231 EXTRA_CFLAGS="-march=pentium -m32"
232elif [ ${ANDROID_ABI} = "x86_64" ] ; then
233 EXTRA_CFLAGS=""
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400234elif [ ${ANDROID_ABI} = "mips" ] ; then
235 EXTRA_CFLAGS="-march=mips32 -mtune=mips32r2 -mhard-float"
236 # All MIPS Linux kernels since 2.4.4 will trap any unimplemented FPU
237 # instruction and emulate it, so we select -mhard-float.
238 # See http://www.linux-mips.org/wiki/Floating_point#The_Linux_kernel_and_floating_point
239else
240 echo "Unknown ABI. Die, die, die!"
241 exit 2
242fi
243
Adrien Béraud04d822c2015-04-02 17:44:36 -0400244EXTRA_CFLAGS="${EXTRA_CFLAGS} -O2 -DHAVE_PTHREADS"
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400245EXTRA_CFLAGS="${EXTRA_CFLAGS} -I${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++${CXXSTL}/include"
246EXTRA_CFLAGS="${EXTRA_CFLAGS} -I${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++${CXXSTL}/libs/${ANDROID_ABI}/include"
247
Tristan Matthews676fcee2014-10-03 15:57:09 -0400248# Setup LDFLAGS
Adrien Béraud04d822c2015-04-02 17:44:36 -0400249if [ ${ANDROID_ABI} = "armeabi-v7a-hard" ] ; then
250 EXTRA_LDFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -mcpu=cortex-a8 -lm_hard -D_NDK_MATH_NO_SOFTFP=1"
251elif [ ${ANDROID_ABI} = "armeabi-v7a" ] ; then
252 EXTRA_LDFLAGS=""
253fi
254EXTRA_LDFLAGS="${EXTRA_LDFLAGS} -L${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++${CXXSTL}/libs/${ANDROID_ABI} -lgnustl_static"
Tristan Matthews676fcee2014-10-03 15:57:09 -0400255
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400256# Make in //
257UNAMES=$(uname -s)
258MAKEFLAGS=
259if which nproc >/dev/null
260then
261MAKEFLAGS=-j`nproc`
262elif [ "$UNAMES" == "Darwin" ] && which sysctl >/dev/null
263then
264MAKEFLAGS=-j`sysctl -n machdep.cpu.thread_count`
265fi
266
Tristan Matthewsd6d5d402014-10-09 16:41:06 -0400267# Build buildsystem tools
Adrien Béraud04d822c2015-04-02 17:44:36 -0400268export PATH=`pwd`/extras/tools/build/bin:$PATH
Tristan Matthewsd6d5d402014-10-09 16:41:06 -0400269echo "Building tools"
Adrien Béraud04d822c2015-04-02 17:44:36 -0400270pushd extras/tools
Tristan Matthewsd6d5d402014-10-09 16:41:06 -0400271./bootstrap
272make $MAKEFLAGS
Tristan Matthewseb9209c2014-10-09 23:11:44 -0400273#FIXME
274echo "HACK for old Jenkins builder...forcing libtool to be built"
275make .libtool
Adrien Béraud04d822c2015-04-02 17:44:36 -0400276popd
Tristan Matthewsd6d5d402014-10-09 16:41:06 -0400277
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400278############
279# Contribs #
280############
281echo "Building the contribs"
Adrien Béraud04d822c2015-04-02 17:44:36 -0400282mkdir -p contrib/native
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400283
284gen_pc_file() {
285 echo "Generating $1 pkg-config file"
286 echo "Name: $1
287Description: $1
288Version: $2
289Libs: -l$1
Adrien Béraud04d822c2015-04-02 17:44:36 -0400290Cflags:" > contrib/${TARGET_TUPLE}/lib/pkgconfig/`echo $1|tr 'A-Z' 'a-z'`.pc
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400291}
292
Adrien Béraud04d822c2015-04-02 17:44:36 -0400293mkdir -p contrib/${TARGET_TUPLE}/lib/pkgconfig
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400294
Adrien Béraud04d822c2015-04-02 17:44:36 -0400295pushd contrib/native
Alexandre Lisionec1f3ee2014-08-04 19:12:42 -0400296../bootstrap --host=${TARGET_TUPLE}
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400297
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400298# Some libraries have arm assembly which won't build in thumb mode
299# We append -marm to the CFLAGS of these libs to disable thumb mode
300[ ${ANDROID_ABI} = "armeabi-v7a" ] && echo "NOTHUMB := -marm" >> config.mak
Adrien Béraud04d822c2015-04-02 17:44:36 -0400301[ ${ANDROID_ABI} = "armeabi-v7a-hard" ] && echo "NOTHUMB := -marm" >> config.mak
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400302
303# Release or not?
304if [ $# -ne 0 ] && [ "$1" = "release" ]; then
305 OPTS=""
306 EXTRA_CFLAGS="${EXTRA_CFLAGS} -DNDEBUG "
307 RELEASE=1
308else
309 OPTS="--enable-debug"
Tristan Matthews8d02ef62014-07-22 16:03:17 -0400310 EXTRA_CFLAGS="${EXTRA_CFLAGS} -DNDEBUG "
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400311 RELEASE=0
312fi
313
314echo "EXTRA_CFLAGS= -g ${EXTRA_CFLAGS}" >> config.mak
Tristan Matthewsfc848072014-10-09 03:43:54 -0400315echo "EXTRA_CXXFLAGS= -g ${EXTRA_CXXFLAGS}" >> config.mak
Tristan Matthews676fcee2014-10-03 15:57:09 -0400316echo "EXTRA_LDFLAGS= ${EXTRA_LDFLAGS}" >> config.mak
Adrien Béraud04d822c2015-04-02 17:44:36 -0400317export RING_EXTRA_CFLAGS="${EXTRA_CFLAGS}"
318export RING_EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS}"
319export RING_EXTRA_LDFLAGS="${EXTRA_LDFLAGS}"
320#export LOCAL_EXTRA_LDFLAGS="${EXTRA_LDFLAGS}"
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400321
Alexandre Lision10437562015-01-29 21:07:16 -0500322make list
Alexandre Lision68d8f2e2014-07-30 17:42:40 -0400323make install
Alexandre Lisionec1f3ee2014-08-04 19:12:42 -0400324echo ${PWD}
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400325# We already have zlib available
326[ -e .zlib ] || (mkdir -p zlib; touch .zlib)
327which autopoint >/dev/null || make $MAKEFLAGS .gettext
328export PATH="$PATH:$PWD/../$TARGET_TUPLE/bin"
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400329
Adrien Béraud04d822c2015-04-02 17:44:36 -0400330export RING_BUILD_DIR=ring/build-android-${TARGET_TUPLE}
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400331
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400332############
Adrien Béraud04d822c2015-04-02 17:44:36 -0400333# Make Ring #
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400334############
Adrien Béraud04d822c2015-04-02 17:44:36 -0400335popd && mkdir -p build-android-${TARGET_TUPLE} && cd build-android-${TARGET_TUPLE}
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400336
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400337if [ "$JNI" = 1 ]; then
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400338 CLEAN="jniclean"
Adrien Béraud04d822c2015-04-02 17:44:36 -0400339 TARGET="ring-android/obj/local/${ANDROID_ABI}/libdring.so"
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400340else
341 CLEAN="distclean"
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400342 TARGET=
343fi
344
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400345if [ ! -f config.h ]; then
346 echo "Bootstraping"
347 cd ../
348 ./autogen.sh
Adrien Béraud04d822c2015-04-02 17:44:36 -0400349 cd ../
350 cd ring-android
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400351 ./make-swig.sh
Adrien Béraud04d822c2015-04-02 17:44:36 -0400352 cd ../ring/build-android-${TARGET_TUPLE}
Alexandre Lision7d5df5d2014-10-27 13:10:01 -0400353 echo "Configuring"
354 ${ANDROID_PATH}/configure.sh ${OPTS}
355fi
356
357# ANDROID NDK FIXUP (BLAME GOOGLE)
358config_undef ()
359{
360 previous_change=`stat -c "%y" config.h`
361 sed -i 's,#define '$1' 1,/\* #undef '$1' \*/,' config.h
362 # don't change modified date in order to don't trigger a full build
363 touch -d "$previous_change" config.h
364}
365
366# if config dependencies change, ./config.status --recheck
367# is run and overwrite previously hacked config.h. So call make Makefile here
368# and hack config.h after.
369
370make $MAKEFLAGS Makefile
371
372if [ ${ANDROID_ABI} = "x86" -a ${ANDROID_API} != "android-21" ] ; then
373 # NDK x86 libm.so has nanf symbol but no nanf definition, we don't known if
374 # intel devices has nanf. Assume they don't have it.
375 config_undef HAVE_NANF
376fi
377if [ ${ANDROID_API} = "android-21" ] ; then
378 # android-21 has empty sys/shm.h headers that triggers shm detection but it
379 # doesn't have any shm functions and/or symbols. */
380 config_undef HAVE_SYS_SHM_H
381fi
382# END OF ANDROID NDK FIXUP
383
Adrien Béraud04d822c2015-04-02 17:44:36 -0400384echo "Building dring"
Alexandre Lision3a206cf2014-10-15 12:18:51 -0400385make $MAKEFLAGS
386
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400387####################################
388# Ring android UI and specific code
389####################################
390echo "Building Ring for Android"
Alexandre Lision40734322014-09-03 14:26:59 -0400391cd ../../../
Tristan Matthewsfc848072014-10-09 03:43:54 -0400392
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400393make $CLEAN
394make -j1 TARGET_TUPLE=$TARGET_TUPLE PLATFORM_SHORT_ARCH=$PLATFORM_SHORT_ARCH CXXSTL=$CXXSTL RELEASE=$RELEASE $TARGET
395
396#
397# Exporting a environment script with all the necessary variables
398#
399echo "Generating environment script."
400cat <<EOF
401This is a script that will export many of the variables used in this
402script. It will allow you to compile parts of the build without having
403to rebuild the entire build (e.g. recompile only the Java part).
404
405To use it, include the script into your shell, like this:
406 source env.sh
407
408Now, you can use this command to build the Java portion:
409 make -e
410
411The file will be automatically regenerated by compile.sh, so if you change
412your NDK/SDK locations or any build configurations, just re-run this
413script (sh compile.sh) and it will automatically update the file.
414
415EOF
416
417echo "# This file was automatically generated by compile.sh" > env.sh
418echo "# Re-run 'sh compile.sh' to update this file." >> env.sh
419
420# The essentials
421cat <<EssentialsA >> env.sh
422export ANDROID_ABI=$ANDROID_ABI
423export ANDROID_SDK=$ANDROID_SDK
424export ANDROID_NDK=$ANDROID_NDK
425export GCCVER=$GCCVER
426export CXXSTL=$CXXSTL
Tristan Matthewsfc848072014-10-09 03:43:54 -0400427export SFLPHONE_BUILD_DIR=$SFLPHONE_BUILD_DIR
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400428export TARGET_TUPLE=$TARGET_TUPLE
429export PATH_HOST=$PATH_HOST
430export PLATFORM_SHORT_ARCH=$PLATFORM_SHORT_ARCH
431EssentialsA
432
433# PATH
434echo "export PATH=$NDK_TOOLCHAIN_PATH:\${ANDROID_SDK}/platform-tools:\${PATH}" >> env.sh
435
436# CPU flags
437if [ -n "${HAVE_ARM}" ]; then
438 echo "export HAVE_ARM=1" >> env.sh
439elif [ -n "${HAVE_X86}" ]; then
440 echo "export HAVE_X86=1" >> env.sh
441elif [ -n "${HAVE_MIPS}" ]; then
442 echo "export HAVE_MIPS=1" >> env.sh
443fi
444
445if [ -n "${NO_ARMV6}" ]; then
446 echo "export NO_ARMV6=1" >> env.sh
447fi
448if [ -n "${NO_FPU}" ]; then
449 echo "export NO_FPU=1" >> env.sh
450fi