Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6148 | serge | 1 | #!/bin/bash |
2 | |||
3 | if [ "$NDK" = "" ]; then |
||
4 | echo NDK variable not set, assuming ${HOME}/android-ndk |
||
5 | export NDK=${HOME}/android-ndk |
||
6 | fi |
||
7 | |||
8 | echo "Fetching Android system headers" |
||
9 | git clone --depth=1 --branch gingerbread-release git://github.com/CyanogenMod/android_frameworks_base.git ../android-source/frameworks/base |
||
10 | git clone --depth=1 --branch gingerbread-release git://github.com/CyanogenMod/android_system_core.git ../android-source/system/core |
||
11 | |||
12 | echo "Fetching Android libraries for linking" |
||
13 | # Libraries from any froyo/gingerbread device/emulator should work |
||
14 | # fine, since the symbols used should be available on most of them. |
||
15 | if [ ! -d "../android-libs" ]; then |
||
16 | if [ ! -f "../update-cm-7.0.3-N1-signed.zip" ]; then |
||
17 | wget http://download.cyanogenmod.com/get/update-cm-7.0.3-N1-signed.zip -P../ |
||
18 | fi |
||
19 | unzip ../update-cm-7.0.3-N1-signed.zip system/lib/* -d../ |
||
20 | mv ../system/lib ../android-libs |
||
21 | rmdir ../system |
||
22 | fi |
||
23 | |||
24 | |||
25 | SYSROOT=$NDK/platforms/android-9/arch-arm |
||
26 | # Expand the prebuilt/* path into the correct one |
||
27 | TOOLCHAIN=`echo $NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/*-x86` |
||
28 | export PATH=$TOOLCHAIN/bin:$PATH |
||
29 | ANDROID_SOURCE=../android-source |
||
30 | ANDROID_LIBS=../android-libs |
||
31 | ABI="armeabi-v7a" |
||
32 | |||
33 | rm -rf ../build/stagefright |
||
34 | mkdir -p ../build/stagefright |
||
35 | |||
36 | DEST=../build/stagefright |
||
37 | FLAGS="--target-os=linux --cross-prefix=arm-linux-androideabi- --arch=arm --cpu=armv7-a" |
||
38 | FLAGS="$FLAGS --sysroot=$SYSROOT" |
||
39 | FLAGS="$FLAGS --disable-avdevice --disable-decoder=h264 --disable-decoder=h264_vdpau --enable-libstagefright-h264" |
||
40 | |||
41 | EXTRA_CFLAGS="-I$ANDROID_SOURCE/frameworks/base/include -I$ANDROID_SOURCE/system/core/include" |
||
42 | EXTRA_CFLAGS="$EXTRA_CFLAGS -I$ANDROID_SOURCE/frameworks/base/media/libstagefright" |
||
43 | EXTRA_CFLAGS="$EXTRA_CFLAGS -I$ANDROID_SOURCE/frameworks/base/include/media/stagefright/openmax" |
||
44 | EXTRA_CFLAGS="$EXTRA_CFLAGS -I$NDK/sources/cxx-stl/gnu-libstdc++/include -I$NDK/sources/cxx-stl/gnu-libstdc++/libs/$ABI/include" |
||
45 | |||
46 | EXTRA_CFLAGS="$EXTRA_CFLAGS -march=armv7-a -mfloat-abi=softfp -mfpu=neon" |
||
47 | EXTRA_LDFLAGS="-Wl,--fix-cortex-a8 -L$ANDROID_LIBS -Wl,-rpath-link,$ANDROID_LIBS -L$NDK/sources/cxx-stl/gnu-libstdc++/libs/$ABI" |
||
48 | EXTRA_CXXFLAGS="-Wno-multichar -fno-exceptions -fno-rtti" |
||
49 | DEST="$DEST/$ABI" |
||
50 | FLAGS="$FLAGS --prefix=$DEST" |
||
51 | |||
52 | mkdir -p $DEST |
||
53 | |||
54 | echo $FLAGS --extra-cflags="$EXTRA_CFLAGS" --extra-ldflags="$EXTRA_LDFLAGS" --extra-cxxflags="$EXTRA_CXXFLAGS" > $DEST/info.txt |
||
55 | ./configure $FLAGS --extra-cflags="$EXTRA_CFLAGS" --extra-ldflags="$EXTRA_LDFLAGS" --extra-cxxflags="$EXTRA_CXXFLAGS" | tee $DEST/configuration.txt |
||
56 | [ $PIPESTATUS == 0 ] || exit 1 |
||
57 | make clean |
||
58 | make -j4 || exit 1 |