compile.sh 2.43 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

Edward Wang's avatar
Edward Wang committed
13 14 15 16
# Also, if you do not have NDK v7 or later, then set HAS_NDK_V7 to 0 in vlc-android/jni/Android.mk:10
# 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
17
if [ -z "$ANDROID_NDK" -o -z "$ANDROID_SDK" ]; then
Rafaël Carré's avatar
Rafaël Carré committed
18 19 20 21
   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
22

23 24 25 26
# 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
27
# 1/ libvlc, libvlccore and its plugins
28

29 30
if [ ! -d "vlc" ]; then
	echo "VLC source not found, cloning"
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
31
        git clone git://git.videolan.org/vlc/vlc-2.0.git vlc
32 33 34
else
	echo "VLC source found, pulling from remote master"
	pushd vlc > /dev/null
Rafaël Carré's avatar
Rafaël Carré committed
35
	git pull origin master
36 37
	popd > /dev/null
fi
Rémi Duraffort's avatar
Rémi Duraffort committed
38 39 40

echo "Applying the patches"
cd vlc
Rafaël Carré's avatar
Rafaël Carré committed
41
git am ../patches/*.patch || git am --abort
Rémi Duraffort's avatar
Rémi Duraffort committed
42 43

echo "Building the contribs"
Rafaël Carré's avatar
Rafaël Carré committed
44 45 46 47 48 49 50 51 52 53 54 55 56
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 \
57
    --disable-upnp \
58
    --disable-gme \
59
    --disable-sidplay2
Rafaël Carré's avatar
Rafaël Carré committed
60 61 62

make fetch
make
Rémi Duraffort's avatar
Rémi Duraffort committed
63 64 65

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

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
66 67
if test ! -s "../configure"
then
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
68
    echo "Bootstraping"
Sébastien Toque's avatar
Sébastien Toque committed
69
    ../bootstrap
Rafaël Carré's avatar
Rafaël Carré committed
70
fi
Rémi Duraffort's avatar
Rémi Duraffort committed
71 72 73 74

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

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
75
echo "Building"
Rémi Duraffort's avatar
Rémi Duraffort committed
76
make
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
77

Rafaël Carré's avatar
Rafaël Carré committed
78 79 80

# 2/ VLC android UI and specific code

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
81 82
echo "Building Android"
cd ../../
Rafaël Carré's avatar
Rafaël Carré committed
83

84 85
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
86 87

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

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
90
make distclean
91
make