Skip to content

Instantly share code, notes, and snippets.

@ksophocleous
Last active August 29, 2015 14:10
Show Gist options
  • Save ksophocleous/4ec6774be2ae710d72c4 to your computer and use it in GitHub Desktop.
Save ksophocleous/4ec6774be2ae710d72c4 to your computer and use it in GitHub Desktop.
setup android gstreamer and c# bindings builder
#!/bin/sh
set -e
sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y \
cmake build-essential libtool pkg-config automake git autotools-dev automake autoconf libtool g++ autopoint make \
bison flex yasm gtk-doc-tools libxv-dev libx11-dev libpulse-dev python-dev texinfo gettext \
doxygen curl libxext-dev libxi-dev x11proto-record-dev libxrender-dev libgl1-mesa-dev libxfixes-dev libxdamage-dev \
libxcomposite-dev libasound2-dev libxml-simple-perl dpkg-dev debhelper devscripts fakeroot transfig gperf libdbus-glib-1-dev \
wget glib-networking mono-devel libgtk-3-dev libglib2.0-cil-dev
## Generate gstreamer .NET bindings
##################################################
wget http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.4.4.tar.xz
tar xf gstreamer-1.4.4.tar.xz
(cd gstreamer-1.4.4 && ./configure && sudo make install && sudo ldconfig)
wget http://gstreamer.freedesktop.org/data/src/gst-plugins-base/gst-plugins-base-1.4.4.tar.xz
tar xf gst-plugins-base-1.4.4.tar.xz
(cd gst-plugins-base-1.4.4 && ./configure && sudo make install && sudo ldconfig)
wget http://gstreamer.freedesktop.org/data/src/gst-plugins-good/gst-plugins-good-1.4.4.tar.xz
tar xf gst-plugins-good-1.4.4.tar.xz
(cd gst-plugins-good-1.4.4 && ./configure && sudo make install && sudo ldconfig)
wget http://gstreamer.freedesktop.org/data/src/gst-plugins-bad/gst-plugins-bad-1.4.4.tar.xz
tar xf gst-plugins-bad-1.4.4.tar.xz
(cd gst-plugins-bad-1.4.4 && ./configure && sudo make install && sudo ldconfig)
wget http://gstreamer.freedesktop.org/data/src/gst-plugins-ugly/gst-plugins-ugly-1.4.4.tar.xz
tar xf gst-plugins-ugly-1.4.4.tar.xz
(cd gst-plugins-ugly-1.4.4 && ./configure && sudo make install && sudo ldconfig)
wget http://gstreamer.freedesktop.org/data/src/gst-libav/gst-libav-1.4.4.tar.xz
tar xf gst-libav-1.4.4.tar.xz
(cd gst-libav-1.4.4 && ./configure && sudo make install && sudo ldconfig)
git clone https://github.com/mono/gtk-sharp.git
(cd gtk-sharp && ./autogen --prefix=$HOME/bindings && make install)
git clone https://github.com/gstreamer-sharp/gstreamer-sharp.git
(export PATH=$PATH:$HOME/bindings/bin && \
cd gstreamer-sharp && \
PKG_CONFIG_PATH=$HOME/bindings/lib/pkgconfig ./autogen.sh --prefix=$HOME/bindings && \
make install)
##################################################
wget https://raw.githubusercontent.com/taka-no-me/android-cmake/master/android.toolchain.cmake
export CMAKE_TOOLCHAIN_FILE=$(pwd)/android.toolchain.cmake
#git clone git://anongit.freedesktop.org/gstreamer-sdk/cerbero ~/cerbero
#echo "alias cerbero='~/cerbero/cerbero-uninstalled'" >> ~/.bashrc
#. ~/.bashrc
# WARNING: This will require your sudo password
# cd ~/cerbero && cerbero -c config/cross-android.cbc bootstrap
# Android NDK
wget http://dl.google.com/android/ndk/android-ndk-r10c-linux-x86.bin
chmod a+x android-ndk-r10c-linux-x86.bin
./android-ndk-r10c-linux-x86.bin
rm android-ndk-r10c-linux-x86.bin
echo "export ANDROID_NDK=\"$(pwd)/android-ndk-r10c\"" >> ~/.bashrc
# echo "export PATH=$PATH:$ANDROID_NDK/bin" >> ~/.bashrc
. ~/.bashrc
#### Setup an android toolchain
#### This should probably be in a different script
export ANDROID_PLATFORM=android-14
export ANDROID_CPU_ARCH=armeabi-v7a
export INSTALL_PREFIX=$HOME/installed-${ANDROID_PLATFORM}-${ANDROID_CPU_ARCH}
## Build libsodium
git clone https://github.com/ksophocleous/libsodium.git ~/libsodium
(rm -rf ~/libsodium/build && \
mkdir -p ~/libsodium/build && \
cd ~/libsodium/build && \
cmake \
-DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE \
-DANDROID_NATIVE_API_LEVEL=$ANDROID_PLATFORM \
-DANDROID_ABI=$ANDROID_CPU_ARCH \
-DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \
-DCMAKE_BUILD_TYPE=Release \
.. &&
cmake --build . --config Release --target install)
## Build libsrtp
git clone https://github.com/dozeo/libsrtp.git ~/libsrtp
(rm -rf ~/libsrtp/build && \
mkdir -p ~/libsrtp/build && \
cd ~/libsrtp/build && \
cmake \
-DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE \
-DANDROID_NATIVE_API_LEVEL=$ANDROID_PLATFORM \
-DANDROID_ABI=$ANDROID_CPU_ARCH \
-DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \
-DCMAKE_BUILD_TYPE=Release \
.. &&
cmake --build . --config Release --target install)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment