#!/bin/sh # ---------------------------------------------------------------------------- # # create-uninstalled-setup.sh # # Little shell script that creates a fresh GStreamer uninstalled setup in # your home directory. # # ---------------------------------------------------------------------------- # # Copyright (C) 2011-2015 Tim-Philipp Müller # # This script is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, write to the # Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, # Boston, MA 02110-1301, USA. # # ---------------------------------------------------------------------------- set -e # set BRANCH to e.g. "1.2" to track the stable 1.2 branch instead of master BRANCH="master" # set to "ssh" if you have a developer account and ssh access GIT_ACCESS="anongit" # re-use and reference local master branch checkout if one already exists # (saves network bandwidth) REUSE_EXISTING_MASTER_CHECKOUT="true" # git modules to clone MODULES="gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad gst-libav" # note: we use ~/gst because that's what the gst-uninstalled script # uses by default, so don't just change that to something else UNINSTALLED_ROOT=~/gst echo "===========================================================================================" echo "Creating new GStreamer uninstalled environment for branch $BRANCH in $UNINSTALLED_ROOT ... " echo "===========================================================================================" mkdir -p $UNINSTALLED_ROOT mkdir -p $UNINSTALLED_ROOT/$BRANCH mkdir -p $UNINSTALLED_ROOT/$BRANCH/prefix echo "" echo "Checking basic build tools and dependencies are installed..." echo "" if ! pkg-config --version 2>/dev/null >/dev/null; then DEPS_OK="no" elif ! pkg-config --exists glib-2.0 orc-0.4 2>/dev/null >/dev/null; then DEPS_OK="no" elif ! bison --version 2>/dev/null >/dev/null; then DEPS_OK="no" elif ! flex --version 2>/dev/null >/dev/null; then DEPS_OK="no" else DEPS_OK="yes" fi if test "$DEPS_OK" != "yes"; then echo "===========================================================================================" echo "" echo " Some very basic build tools or dependencies are missing." echo "" echo " Please install the following tools: pkg-config, bison, flex" echo "" echo " and the following libraries: GLib (libglib2.0-dev or glib2-devel)" echo " and Orc (liborc-0.4-dev or orc-devel)" #echo " Please visit" #echo "" #echo " http://gstreamer.freedesktop.org/wiki/BuildDependenciesDebianUbuntu" #echo "" #echo " or" #echo "" #echo " http://gstreamer.freedesktop.org/wiki/Fedora" #echo "" #echo " for instructions how to install them on Debian/Ubuntu-based systems." echo "" echo "===========================================================================================" exit 1 fi cd $UNINSTALLED_ROOT/$BRANCH for m in $MODULES do REF="" if test "$BRANCH" != "master" \ -a "x$REUSE_EXISTING_MASTER_CHECKOUT" = "xtrue" \ -a -d ../master/$m; then REF="--reference=../master/$m" fi if test "$GIT_ACCESS" = "ssh"; then git clone $REF ssh://git.freedesktop.org/git/gstreamer/$m else git clone $REF git://anongit.freedesktop.org/gstreamer/$m fi cd $m if test "$BRANCH" != "master"; then git checkout -b $BRANCH origin/$BRANCH fi git submodule init && git submodule update cd .. done cd $UNINSTALLED_ROOT ln -s $BRANCH/gstreamer/scripts/gst-uninstalled gst-$BRANCH chmod +x gst-$BRANCH cd ~ echo "===========================================================================================" echo echo "Done. Created new GStreamer uninstalled environment for branch $BRANCH in $UNINSTALLED_ROOT" echo echo "To enter the uninstalled environment do: cd $UNINSTALLED_ROOT; ./gst-$BRANCH" echo echo "To leave the uninstalled environment do: exit" echo echo "To check the uninstalled environment do: printenv | grep GST" echo " (loads of output = you're in the uninstalled environment)" echo echo "===========================================================================================" echo echo "Now compile all GStreamer modules one by one by first switching into" echo "the uninstalled environment and then doing:" echo echo " cd ; ./autogen.sh; make" echo echo "First gstreamer, then gst-plugins-base, then the other modules." echo "You do not need to do 'make install'" echo echo "===========================================================================================" echo echo "If your system GLib is too old, you can install a newer version" echo "into --prefix=$UNINSTALLED_ROOT/$BRANCH/prefix and it should be picked up" echo "by autogen.sh/configure" echo echo "===========================================================================================" #echo #echo "Also see http://gstreamer.freedesktop.org/wiki/UninstalledSetup" #echo #echo "==========================================================================================="