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