Skip to content

Commit e552d39

Browse files
committed
can now compile only the jni libs ( save a lot of resources on the nightly build server )
1 parent eb2122d commit e552d39

1 file changed

Lines changed: 69 additions & 14 deletions

File tree

build.sh

Lines changed: 69 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,10 @@ directories="/enc/trans/
7777
/mathn/
7878
/racc/
7979
/"
80-
api="9"
81-
abi="armeabi"
80+
apis="9
81+
16"
82+
abis="armeabi
83+
armeabi-v7a"
8284

8385
check_ndk() {
8486
ndk_build=$(which ndk-build) || \
@@ -123,15 +125,60 @@ build_core() {
123125
echo "ok"
124126
}
125127

126-
copy_java_libs() {
127-
javaLibs=$(readlink -fm ../src/main/jniLibs/${abi}/)
128+
select_lower_api() {
129+
api="0"
130+
131+
for _api in $apis; do
132+
test ${_api} -lt ${api} -o ${api} -eq 0 && api="${_api}"
133+
done
134+
}
135+
136+
build_jni_libs() {
137+
app_root=$(readlink -f ../)
128138
bins=$(readlink -fm ../libs/${abi})
129139

130-
echo
131-
echo -n "[core] copying ${abi} libs to java project..."
140+
ndk_args="APP_OPTIM=debug NDK_DEBUG=1 " # debug
141+
ndk_args+="APP_PLATFORM=android-${api} " # force android api level
142+
ndk_args+="NDK_OUT=${app_root}/obj/android-${api} " # objects directory
143+
144+
ndk_targets="cSploitCommon cSploitClient"
145+
146+
strip=$( ndk-which strip ) 2>&3 || die
147+
148+
echo -n "[jni] compiling for android-${api}..."
132149

133-
{ test -d "${javaLibs}" || mkdir -p "${javaLibs}" ;} >&3 2>&1 || die
134-
cp "${bins}/libcSploitClient.so" "${bins}/libcSploitCommon.so" "${javaLibs}" >&3 2>&1 || die
150+
cpus=$(grep -E "^processor" /proc/cpuinfo | wc -l)
151+
152+
ndk-build $ndk_args -j${cpus} $ndk_targets >&3 2>&1 || die
153+
154+
echo -ne "ok\n[jni] installing into libs..."
155+
156+
for abi in $abis; do
157+
objs="${app_root}/obj/android-${api}/local/${abi}"
158+
159+
for lib in cSploitCommon cSploitClient; do
160+
install -p "${objs}/lib${lib}.so" "${bins}/lib${lib}.so" >&3 2>&1 || die
161+
${strip} --strip-unneeded "${bins}/lib${lib}.so" >&3 2>&1 || die
162+
done
163+
done
164+
165+
echo "ok"
166+
}
167+
168+
copy_jni_libs() {
169+
170+
select_lower_api
171+
172+
echo -n "[jni] copying libs to java project..."
173+
174+
for abi in $abis; do
175+
javaLibs=$(readlink -fm ../src/main/jniLibs/${abi}/)
176+
bins=$(readlink -fm ../libs/${abi})
177+
178+
{ test -d "${javaLibs}" || mkdir -p "${javaLibs}" ;} >&3 2>&1 || die
179+
cp "${bins}/libcSploitClient.so" "${bins}/libcSploitCommon.so" "${javaLibs}" >&3 2>&1 || die
180+
181+
done
135182

136183
echo "ok"
137184
}
@@ -214,18 +261,22 @@ pack_core() {
214261

215262
build_cores() {
216263

264+
check_ndk
217265
delete_core_packages
218266

219-
for api in 16 9; do
267+
for api in $apis; do
220268
build_core
221-
for abi in armeabi armeabi-v7a; do
269+
for abi in $abis; do
222270
pack_core
223271
done
224272
done
273+
}
274+
275+
build_jni() {
276+
check_ndk
277+
select_lower_api
225278

226-
for abi in armeabi armeabi-v7a; do
227-
copy_java_libs
228-
done
279+
build_jni_libs
229280
}
230281

231282

@@ -316,14 +367,18 @@ build_ruby() {
316367
echo "ok"
317368
}
318369

319-
pkg="cores"
370+
pkg="jni"
320371

321372
test "$#" -ne 1 || pkg=$1
322373

323374
case $pkg in
324375
ruby) build_ruby
325376
;;
326377
core|cores) build_cores
378+
copy_jni_libs
379+
;;
380+
jni) build_jni
381+
copy_jni_libs
327382
;;
328383
*)
329384
scriptname=$(basename "$0")

0 commit comments

Comments
 (0)