forked from radareorg/radare2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
android-build.sh
executable file
·127 lines (110 loc) · 2.75 KB
/
android-build.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/bin/sh
BUILD=1
PREFIX="/data/data/org.radare.installer/radare2"
if [ -z "${NDK}" ]; then
echo "use ./android-{arm|mips|x86}.sh"
exit 1
fi
cd `dirname $PWD/$0` ; cd ..
case "$1" in
"mips")
NDK_ARCH=mips
STATIC_BUILD=0
STRIP=mips-linux-android-strip
;;
"arm")
NDK_ARCH=arm
STATIC_BUILD=0
STRIP=arm-eabi-strip
;;
"x86")
NDK_ARCH=x86
STATIC_BUILD=0
STRIP=strip
;;
arm-static|static-arm)
NDK_ARCH=arm
STATIC_BUILD=1
;;
x86-static|static-x86)
NDK_ARCH=x86
STATIC_BUILD=1
;;
mips-static|static-mips)
NDK_ARCH=mips
# XXX: by default we should build all libs as .a but link binary dinamically
STATIC_BUILD=1
STRIP=mips-linux-android-strip
;;
""|"-h")
echo "Usage: android-build.sh [arm|x86|mips][-static]"
exit 1
;;
*)
echo "Unknown argument"
exit 1
;;
esac
[ -z "${NDK_ARCH}" ] && NDK_ARCH=arm
[ -z "${STATIC_BUILD}" ] && STATIC_BUILD=0
# ow yeah
STATIC_BUILD=1
export NDK_ARCH
export STATIC_BUILD
PKG=`./configure --version|head -n1 |cut -d ' ' -f 1`
D=${PKG}-android-${NDK_ARCH}
echo NDK_ARCH: ${NDK_ARCH}
echo "Using NDK_ARCH: ${NDK_ARCH}"
echo "Using STATIC_BUILD: ${STATIC_BUILD}"
if [ "${BUILD}" = 1 ]; then
# start build
sleep 2
make mrproper
if [ $STATIC_BUILD = 1 ]; then
CFGFLAGS="--without-pic --with-nonpic"
fi
# dup
echo ./configure --with-compiler=android \
--with-ostype=android --without-ewf \
--prefix=${PREFIX} ${CFGFLAGS}
./configure --with-compiler=android --with-ostype=android \
--without-ewf --prefix=${PREFIX} ${CFGFLAGS} || exit 1
make -s -j 4 || exit 1
fi
rm -rf $D
mkdir -p $D
INSTALL_PROGRAM=`grep INSTALL_DATA config-user.mk|cut -d = -f 2`
make install INSTALL_PROGRAM="${INSTALL_PROGRAM}" DESTDIR=$PWD/$D || exit 1
make purge-dev DESTDIR=${PWD}/${D} STRIP="${STRIP}"
make purge-doc DESTDIR=${PWD}/${D} STRIP="${STRIP}"
rm -rf ${PWD}/${D}/share
rm -rf ${PWD}/${D}/include
rm -rf ${PWD}/${D}/lib/pkgconfig
rm -rf ${PWD}/${D}/lib/libsdb.a
echo rm -rf ${PWD}/${D}/${PREFIX}/bin/*
rm -rf ${PWD}/${D}/${PREFIX}/bin/*
#end build
# use busybox style symlinkz
HERE=${PWD}
cd binr/blob
make STATIC_BUILD=1 || exit 1
make install PREFIX="${PREFIX}" DESTDIR="${HERE}/${D}" || exit 1
cd ../..
chmod +x ${PWD}/${D}/${PREFIX}/bin/*
# TODO: remove unused files like include files and so on
rm -f ${PWD}/${D}/${PREFIX}/lib/radare2/*/*.so
rm -f ${PWD}/${D}/${PREFIX}/lib/*.a
rm -rf ${PWD}/${D}/${PREFIX}/include
rm -rf ${PWD}/${D}/${PREFIX}/doc
eval `grep ^VERSION= ${PWD}/config-user.mk`
WWWROOT="/data/data/org.radare.installer/radare2/lib/radare2/${VERSION}/www"
ln -fs ${WWWROOT} ${HERE}/${D}/data/data/org.radare.installer/www
cd $D
tar -czovf ../$D.tar.gz data
cd ..
D2=`git log HEAD 2>/dev/null|head -n1|awk '{print $2}'|cut -c 1-8`
if [ -n "$D2" ]; then
ln -fs $D.tar.gz "${D}-${D2}".tar.gz
fi
echo `pwd`"/${D}.tar.gz"
echo `pwd`"/${D}${D2}.tar.gz"