compile-libvlc.sh 3.88 KB
Newer Older
1 2
#!/bin/sh

3 4 5 6 7 8
if [ -z "$ANDROID_NDK" ]; then
    echo "Please set the ANDROID_NDK environment variable with its path."
    exit 1
fi

if [ -z "$ANDROID_ABI" ]; then
9
    echo "Please set ANDROID_ABI to your architecture: armeabi-v7a, armeabi, arm64-v8a, x86, x86_64 or mips."
10 11 12
    exit 1
fi

13 14 15 16 17
# ANDROID_API must be previously set by compile.sh or env.sh
if [ -z "$ANDROID_API" ];then
    echo "ANDROID_API not set, call ./compile.sh first"
    exit 1
fi
18

19
VLC_SOURCEDIR=..
20

21
CFLAGS="-g -O2 -fstrict-aliasing -funsafe-math-optimizations"
22
if [ -n "$HAVE_ARM" -a ! -n "$HAVE_64" ]; then
23
    CFLAGS="${CFLAGS} -mlong-calls"
24 25
fi

26 27 28
LDFLAGS="-Wl,-Bdynamic,-dynamic-linker=/system/bin/linker -Wl,--no-undefined"

if [ -n "$HAVE_ARM" ]; then
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
29
    if [ ${ANDROID_ABI} = "armeabi-v7a" ]; then
30 31 32
        EXTRA_PARAMS=" --enable-neon"
        LDFLAGS="$LDFLAGS -Wl,--fix-cortex-a8"
    fi
33 34
fi

35 36
CPPFLAGS="-I${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++${CXXSTL}/include -I${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++${CXXSTL}/libs/${ANDROID_ABI}/include"
LDFLAGS="$LDFLAGS -L${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++${CXXSTL}/libs/${ANDROID_ABI}"
37

38
SYSROOT=$ANDROID_NDK/platforms/$ANDROID_API/arch-$PLATFORM_SHORT_ARCH
39
ANDROID_BIN=`echo $ANDROID_NDK/toolchains/${PATH_HOST}-${GCCVER}/prebuilt/\`uname|tr A-Z a-z\`-*/bin/`
40
CROSS_COMPILE=${ANDROID_BIN}/${TARGET_TUPLE}-
41 42

CPPFLAGS="$CPPFLAGS" \
43
CFLAGS="$CFLAGS ${VLC_EXTRA_CFLAGS}" \
44 45 46 47 48 49 50 51
CXXFLAGS="$CFLAGS" \
LDFLAGS="$LDFLAGS" \
CC="${CROSS_COMPILE}gcc --sysroot=${SYSROOT}" \
CXX="${CROSS_COMPILE}g++ --sysroot=${SYSROOT}" \
NM="${CROSS_COMPILE}nm" \
STRIP="${CROSS_COMPILE}strip" \
RANLIB="${CROSS_COMPILE}ranlib" \
AR="${CROSS_COMPILE}ar" \
52
PKG_CONFIG_LIBDIR=$VLC_SOURCEDIR/contrib/$TARGET_TUPLE/lib/pkgconfig \
53
sh $VLC_SOURCEDIR/configure --host=$TARGET_TUPLE --build=x86_64-unknown-linux $EXTRA_PARAMS \
54
                --disable-nls \
55 56 57 58
                --enable-live555 --enable-realrtsp \
                --enable-avformat \
                --enable-swscale \
                --enable-avcodec \
59
                --enable-opus \
60 61 62 63
                --enable-opensles \
                --enable-android-surface \
                --enable-mkv \
                --enable-taglib \
64
                --enable-dvbpsi \
65
                --disable-vlc --disable-shared \
66
                --disable-update-check \
67
                --disable-vlm \
68 69 70 71 72
                --disable-dbus \
                --disable-lua \
                --disable-vcd \
                --disable-v4l2 \
                --disable-gnomevfs \
73
                --enable-dvdread \
74
                --enable-dvdnav \
75 76 77 78
                --disable-bluray \
                --disable-linsys \
                --disable-decklink \
                --disable-libva \
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
79
                --disable-dv1394 \
80 81 82
                --disable-mod \
                --disable-sid \
                --disable-gme \
83
                --disable-tremor \
Thomas Guillem's avatar
Thomas Guillem committed
84
                --enable-mad \
85
                --disable-dca \
86
                --disable-sdl-image \
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
87
                --enable-zvbi \
88 89 90 91 92 93 94 95
                --disable-fluidsynth \
                --disable-jack \
                --disable-pulse \
                --disable-alsa \
                --disable-samplerate \
                --disable-sdl \
                --disable-xcb \
                --disable-atmo \
Edward Wang's avatar
Edward Wang committed
96
                --disable-qt \
97 98 99
                --disable-skins2 \
                --disable-mtp \
                --disable-notify \
Sébastien Toque's avatar
Sébastien Toque committed
100
                --enable-libass \
101 102
                --disable-svg \
                --disable-udev \
103
                --enable-libxml2 \
104 105
                --disable-caca \
                --disable-glx \
106 107
                --enable-egl \
                --enable-gles2 \
108 109
                --disable-goom \
                --disable-projectm \
110
                --disable-sout \
111
                --enable-vorbis \
Edward Wang's avatar
Edward Wang committed
112
                --disable-faad \
113 114
                --disable-x264 \
                --disable-schroedinger --disable-dirac \
115
                $*