compile.sh 2.73 KB
Newer Older
ivoire's avatar
ivoire committed
1
2
#! /bin/sh

Rafaël Carré's avatar
Rafaël Carré committed
3
4
5
6
7
8
9
10
11
# Read the Android HOWTO and setup all that stuff correctly.
# Get the Android SDK Platform 2.1, 2.2 and 2.3 API : version 7, 8 and (9 or 10)
# or modify numbers in configure.sh and vlc-android/default.properties.
# Create an AVD with this platform.

# XXX : important!
# If you plan to use the emulator, you need a build without neon
# export NO_NEON=1
# make sure it is set for both the contribs bootstrap next and the configure.sh later.
ivoire's avatar
ivoire committed
12

13
14
15
16
17
# The script will attempt to automatically detect if you have NDK v7, but you can override this
# If you do not have NDK v7 or later:
# export NO_NDK_V7=1
# or if you are sure you have NDK v7:
# export NO_NDK_V7=0
Edward Wang's avatar
Edward Wang committed
18
19
20
# to prevent this error message in your compile:
# arm-linux-androideabi-g++: /opt/android-ndk/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libgnustl_static.a: No such file or directory

ivoire's avatar
ivoire committed
21
if [ -z "$ANDROID_NDK" -o -z "$ANDROID_SDK" ]; then
Rafaël Carré's avatar
Rafaël Carré committed
22
23
24
25
   echo "You must define ANDROID_NDK and ANDROID_SDK before starting."
   echo "They must point to your NDK and SDK directories."
   exit 1
fi
ivoire's avatar
ivoire committed
26

27
28
29
30
if [ -z "$NO_NDK_V7" ]; then
    # try to detect NDK version
    REL=$(grep -iw "r7" $ANDROID_NDK/RELEASE.TXT)
    if [ -z $REL ]; then
31
        export NO_NDK_V7=1
32
33
34
    fi
fi

35
36
37
38
# Add the NDK toolchain to the PATH, needed both for contribs and for building
# stub libraries
export PATH=${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin:${PATH}

Rafaël Carré's avatar
Rafaël Carré committed
39
# 1/ libvlc, libvlccore and its plugins
40

41
if [ ! -d "vlc" ]; then
42
43
    echo "VLC source not found, cloning"
    git clone git://git.videolan.org/vlc/vlc-2.0.git vlc
44
else
45
46
47
48
    echo "VLC source found, pulling from remote master"
    pushd vlc > /dev/null
    git pull origin master
    popd > /dev/null
49
fi
ivoire's avatar
ivoire committed
50
51
52

echo "Applying the patches"
cd vlc
Rafaël Carré's avatar
Rafaël Carré committed
53
git am ../patches/*.patch || git am --abort
ivoire's avatar
ivoire committed
54
55

echo "Building the contribs"
Rafaël Carré's avatar
Rafaël Carré committed
56
57
58
59
60
61
62
63
64
65
66
67
68
mkdir contrib/android; cd contrib/android
../bootstrap --host=arm-linux-androideabi --disable-disc --disable-sout \
    --disable-sdl \
    --disable-SDL_image \
    --disable-fontconfig \
    --disable-ass \
    --disable-freetyp2 \
    --disable-fribidi \
    --disable-zvbi \
    --disable-kate \
    --disable-caca \
    --disable-gettext \
    --disable-mpcdec \
69
    --disable-upnp \
70
    --disable-gme \
71
    --disable-sidplay2
Rafaël Carré's avatar
Rafaël Carré committed
72
73
74

make fetch
make
ivoire's avatar
ivoire committed
75
76
77

cd ../.. && mkdir -p android && cd android

78
if test ! -s "../configure" ; then
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
79
    echo "Bootstraping"
Sébastien Toque's avatar
Sébastien Toque committed
80
    ../bootstrap
Rafaël Carré's avatar
Rafaël Carré committed
81
fi
ivoire's avatar
ivoire committed
82
83
84
85

echo "Configuring"
sh ../extras/package/android/configure.sh

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
86
echo "Building"
ivoire's avatar
ivoire committed
87
make
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
88

Rafaël Carré's avatar
Rafaël Carré committed
89
90
91

# 2/ VLC android UI and specific code

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
92
93
echo "Building Android"
cd ../../
Rafaël Carré's avatar
Rafaël Carré committed
94

95
96
export ANDROID_SYS_HEADERS_GINGERBREAD=${PWD}/android-headers-gingerbread
export ANDROID_SYS_HEADERS_ICS=${PWD}/android-headers-ics
Rafaël Carré's avatar
Rafaël Carré committed
97
98

export ANDROID_LIBS=${PWD}/android-libs
99
export VLC_BUILD_DIR=vlc/android
Rafaël Carré's avatar
Rafaël Carré committed
100

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
101
make distclean
102
make