compile.sh 2.71 KB
Newer Older
Rémi Duraffort's avatar
Rémi Duraffort 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.
Rémi Duraffort's avatar
Rémi Duraffort 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

Rémi Duraffort's avatar
Rémi Duraffort 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
Rémi Duraffort's avatar
Rémi Duraffort committed
26

27 28 29 30 31 32 33 34
if [ -z "$NO_NDK_V7" ]; then
    # try to detect NDK version
    REL=$(grep -iw "r7" $ANDROID_NDK/RELEASE.TXT)
    if [ -z $REL ]; then
	export NO_NDK_V7=1
    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 42
if [ ! -d "vlc" ]; then
	echo "VLC source not found, cloning"
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
43
        git clone git://git.videolan.org/vlc/vlc-2.0.git vlc
44 45 46
else
	echo "VLC source found, pulling from remote master"
	pushd vlc > /dev/null
Rafaël Carré's avatar
Rafaël Carré committed
47
	git pull origin master
48 49
	popd > /dev/null
fi
Rémi Duraffort's avatar
Rémi Duraffort 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
Rémi Duraffort's avatar
Rémi Duraffort 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
Rémi Duraffort's avatar
Rémi Duraffort committed
75 76 77

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

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

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

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
87
echo "Building"
Rémi Duraffort's avatar
Rémi Duraffort committed
88
make
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
89

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

# 2/ VLC android UI and specific code

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

96 97
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
98 99

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

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