@@ -23,10 +23,12 @@ CBLUE="\x1b[34;01m"
2323CGRAY=" \x1b[30;01m"
2424CRESET=" \x1b[39;49;00m"
2525
26- # Initial enviromnent
27- export NDKPLATFORM=" $ANDROIDNDK /platforms/android-5/arch-arm"
28- export ARCH=" armeabi"
29- # export ARCH="armeabi-v7a" # not tested yet.
26+ # Use ccache ?
27+ which ccache & > /dev/null
28+ if [ $? -eq 0 ]; then
29+ export CC=" ccache gcc"
30+ export CXX=" ccache g++"
31+ fi
3032
3133# set -x
3234
@@ -75,7 +77,6 @@ function push_arm() {
7577 export OLD_STRIP=$STRIP
7678 export OLD_MAKE=$MAKE
7779
78- export PATH=" $ANDROIDNDK /toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/:$ANDROIDNDK :$ANDROIDSDK /tools:$PATH "
7980 # to override the default optimization, set OFLAG
8081 # export OFLAG="-Os"
8182 # export OFLAG="-O2"
@@ -86,11 +87,25 @@ function push_arm() {
8687 fi
8788 export CXXFLAGS=" $CFLAGS "
8889
89- export CC=" arm-eabi-gcc $CFLAGS "
90- export CXX=" arm-eabi-g++ $CXXFLAGS "
91- export AR=" arm-eabi-ar"
92- export RANLIB=" arm-eabi-ranlib"
93- export STRIP=" arm-eabi-strip --strip-unneeded"
90+ # this must be something depending of the API level of Android
91+ export PATH=" $ANDROIDNDK /toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/:$ANDROIDNDK :$ANDROIDSDK /tools:$PATH "
92+ if [ " X$ANDROIDNDKVER " == " Xr7" ]; then
93+ export TOOLCHAIN_PREFIX=arm-linux-androideabi
94+ export TOOLCHAIN_VERSION=4.4.3
95+ elif [ " X$ANDROIDNDKVER " == " Xr5b" ]; then
96+ export TOOLCHAIN_PREFIX=arm-eabi
97+ export TOOLCHAIN_VERSION=4.4.0
98+ else
99+ error " Unable to configure NDK toolchain for NDK $ANDROIDNDKVER "
100+ exit -1
101+ fi
102+
103+ export PATH=" $ANDROIDNDK /toolchains/$TOOLCHAIN_PREFIX -$TOOLCHAIN_VERSION /prebuilt/linux-x86/bin/:$ANDROIDNDK :$ANDROIDSDK /tools:$PATH "
104+ export CC=" $TOOLCHAIN_PREFIX -gcc $CFLAGS "
105+ export CXX=" $TOOLCHAIN_PREFIX -g++ $CXXFLAGS "
106+ export AR=" $TOOLCHAIN_PREFIX -ar"
107+ export RANLIB=" $TOOLCHAIN_PREFIX -ranlib"
108+ export STRIP=" $TOOLCHAIN_PREFIX -strip --strip-unneeded"
94109 export MAKE=" make -j5"
95110
96111 # Use ccache ?
@@ -120,11 +135,31 @@ function run_prepare() {
120135 error " No ANDROIDSDK environment set, abort"
121136 exit -1
122137 fi
138+
123139 if [ " X$ANDROIDNDK " == " X" ]; then
124140 error " No ANDROIDNDK environment set, abort"
125141 exit -1
126142 fi
127143
144+ if [ " X$ANDROIDAPI " == " X" ]; then
145+ export ANDROIDAPI=14
146+ fi
147+
148+ if [ " X$ANDROIDNDKVER " == " X" ]; then
149+ error " No ANDROIDNDKVER enviroment set, abort"
150+ error " (Must be something like 'r5b', 'r7'...)"
151+ exit -1
152+ fi
153+
154+ debug " SDK located at $ANDROIDSDK "
155+ debug " NDK located at $ANDROIDNDK "
156+ debug " NDK version is $ANDROIDNDKVER "
157+ debug " API level set to $ANDROIDAPI "
158+
159+ export NDKPLATFORM=" $ANDROIDNDK /platforms/android-$ANDROIDAPI /arch-arm"
160+ export ARCH=" armeabi"
161+ # export ARCH="armeabi-v7a" # not tested yet.
162+
128163 info " Check mandatory tools"
129164 # ensure that some tools are existing
130165 for tool in md5sum tar bzip2 unzip make gcc g++; do
@@ -140,8 +175,12 @@ function run_prepare() {
140175 mkdir -p $BUILD_PATH
141176 mkdir -p $PACKAGES_PATH
142177 fi
178+
179+ # create initial files
180+ echo " target=android-$ANDROIDAPI " > $SRC_PATH /default.properties
181+ echo " sdk.dir=$ANDROIDSDK " > $SRC_PATH /local.properties
143182}
144-
183+
145184function run_source_modules() {
146185 needed=(hostpython python $MODULES )
147186 declare -A processed
0 commit comments