diff options
author | Edward Hervey <edward@collabora.com> | 2013-09-23 11:03:44 +0200 |
---|---|---|
committer | Edward Hervey <edward@collabora.com> | 2013-09-23 11:03:44 +0200 |
commit | 58debda8545bfce72d85b0f6d41c6d88829c1151 (patch) | |
tree | bc38a6e4d82194838a41f778b1d291afca89472b /gst-uninstalled | |
parent | 3d6d06f70290c0c196984d8962548d18e7927a04 (diff) |
Use copy of gst-uninstalled for old builds
Diffstat (limited to 'gst-uninstalled')
-rwxr-xr-x | gst-uninstalled | 238 |
1 files changed, 238 insertions, 0 deletions
diff --git a/gst-uninstalled b/gst-uninstalled new file mode 100755 index 0000000..633dff8 --- /dev/null +++ b/gst-uninstalled @@ -0,0 +1,238 @@ +#!/bin/bash -i +# +# this script is in git as gstreamer/scripts/gst-uninstalled +# +# It will set up the environment to use and develop gstreamer and projects +# that use gstreamer with an uninstalled git checkout of gstreamer and the +# plugin modules. +# +# It will set up LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, PKG_CONFIG_PATH, +# GST_PLUGIN_PATH, GST_PLUGIN_SYSTEM_PATH, GST_REGISTRY, MANPATH, PYTHONPATH +# to prefer the uninstalled versions but also contain the installed ones. +# The only exception to this is, that no system installed plugins will be +# used but only the uninstalled ones. +# +# This script assumes that the relevant modules are checked out one by one +# under a given tree specified below in MYGST. +# +# Symlink this script in a directory in your path (for example $HOME/bin). You +# must name the symlink gst-something, where something is the subdirectory +# of MYGST that contains your gstreamer module checkouts. +# +# e.g.: +# - mkdir $HOME/gst/head +# - ln -sf gst-uninstalled $HOME/bin/gst-head +# - checkout copies of gstreamer modules in $HOME/gst/head +# - gst-head + +# This script is run -i so that PS1 doesn't get cleared + +if [ -z $GST_UNINSTALLED_ROOT ]; +then + # Change this variable to the location of your gstreamer git checkouts + MYGST=$HOME/gst + + # + # Everything below this line shouldn't be edited! + # + + # extract version from $0 + # if this script is called "gst-head" then version will be "head" + VERSION=`echo $0 | sed s/.*gst-//g` + + # base path under which dirs are installed + GST=$MYGST/$VERSION +else + # Alternatively, you can set the GST_UNINSTALLED_ROOT environment variable to the + # location of your checkout and call this script directly. + # + # Ex: GST_UNINSTALLED_ROOT=$HOME/checkout/location gst-uninstalled + + GST=$GST_UNINSTALLED_ROOT +fi + +GST_PREFIX=$GST/prefix +if test ! -e $GST; then + echo "$GST does not exist !" + exit +fi + +# set up a bunch of paths +PATH="\ +$GST/gstreamer/tools:\ +$GST/gst-plugins-base/tools:\ +$GST/gst-player/src:\ +$GST/gst-editor/src:\ +$GST/gstreamer-sharp/tools:\ +$GST/orc/tools:\ +$GST_PREFIX/bin:\ +$PATH" + +# /some/path: makes the dynamic linker look in . too, so avoid this +LD_LIBRARY_PATH=$GST_PREFIX/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} +DYLD_LIBRARY_PATH=$GST_PREFIX/lib${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH} +GI_TYPELIB_PATH=$GST_PREFIX/share/gir-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH} + +# ORC +LD_LIBRARY_PATH=$GST/orc/orc/.libs:$GST/orc/orc-test/.libs:$LD_LIBRARY_PATH +DYLD_LIBRARY_PATH=$GST/orc/orc/.libs:$GST/orc/orc-test/.libs:$DYLD_LIBRARY_PATH + +# GStreamer rtsp server library +LD_LIBRARY_PATH=$GST/gst-rtsp-server/gst/rtsp-server/.libs:$LD_LIBRARY_PATH +DYLD_LIBRARY_PATH=$GST/gst-rtsp-server/gst/rtsp-server/.libs:$DYLD_LIBRARY_PATH +GI_TYPELIB_PATH=$GST/gst-rtsp-server/gst/rtsp-server:$GI_TYPELIB_PATH + +# GStreamer Editing Services library +LD_LIBRARY_PATH=$GST/gst-editing-services/ges/.libs:$LD_LIBRARY_PATH +DYLD_LIBRARY_PATH=$GST/gst-editing-services/ges/.libs:$DYLD_LIBRARY_PATH +GI_TYPELIB_PATH=$GST/gst-editing-services/ges:$GI_TYPELIB_PATH +PATH=$GST/gst-editing-services/tools:$PATH + + +# GStreamer plugins base libraries +for path in allocators app audio fft pbutils riff rtp rtsp sdp tag utils video +do + LD_LIBRARY_PATH=$GST/gst-plugins-base/gst-libs/gst/$path/.libs:$LD_LIBRARY_PATH + DYLD_LIBRARY_PATH=$GST/gst-plugins-base/gst-libs/gst/$path/.libs:$DYLD_LIBRARY_PATH + GI_TYPELIB_PATH=$GST/gst-plugins-base/gst-libs/gst/$path:$GI_TYPELIB_PATH +done + +# GStreamer plugins bad libraries +for path in basecamerabinsrc codecparsers uridownloader egl insertbin interfaces mpegts +do + LD_LIBRARY_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path/.libs:$LD_LIBRARY_PATH + DYLD_LIBRARY_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path/.libs:$DYLD_LIBRARY_PATH + GI_TYPELIB_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path:$GI_TYPELIB_PATH +done + +# GStreamer core libraries +for path in base check controller net +do + LD_LIBRARY_PATH=$GST/gstreamer/libs/gst/$path/.libs:$LD_LIBRARY_PATH + DYLD_LIBRARY_PATH=$GST/gstreamer/libs/gst/$path/.libs:$DYLD_LIBRARY_PATH + GI_TYPELIB_PATH=$GST/gstreamer/libs/gst/$path:$GI_TYPELIB_PATH +done +LD_LIBRARY_PATH=$GST/gstreamer/gst/.libs:$LD_LIBRARY_PATH +DYLD_LIBRARY_PATH=$GST/gstreamer/gst/.libs:$DYLD_LIBRARY_PATH +GI_TYPELIB_PATH=$GST/gstreamer/gst:$GI_TYPELIB_PATH +export LD_LIBRARY_PATH +export DYLD_LIBRARY_PATH +export GI_TYPELIB_PATH + +export PKG_CONFIG_PATH="\ +$GST_PREFIX/lib/pkgconfig\ +:$GST/gstreamer/pkgconfig\ +:$GST/gst-plugins-base/pkgconfig\ +:$GST/gst-plugins-good/pkgconfig\ +:$GST/gst-plugins-ugly/pkgconfig\ +:$GST/gst-plugins-bad/pkgconfig\ +:$GST/gst-libav/pkgconfig\ +:$GST/gst-ffmpeg/pkgconfig\ +:$GST/gst-python/pkgconfig\ +:$GST/gst-rtsp-server/pkgconfig\ +:$GST/gst-editing-services/pkgconfig\ +:$GST/gstreamer-sharp/pkgconfig\ +:$GST/orc\ +:$GST/farsight2\ +:$GST/libnice/nice\ +${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" + +export GST_PLUGIN_PATH="\ +$GST/gstreamer/plugins\ +:$GST/gst-plugins-base/ext\ +:$GST/gst-plugins-base/gst\ +:$GST/gst-plugins-base/sys\ +:$GST/gst-plugins-good/ext\ +:$GST/gst-plugins-good/gst\ +:$GST/gst-plugins-good/sys\ +:$GST/gst-plugins-ugly/ext\ +:$GST/gst-plugins-ugly/gst\ +:$GST/gst-plugins-ugly/sys\ +:$GST/gst-plugins-bad/ext\ +:$GST/gst-plugins-bad/gst\ +:$GST/gst-plugins-bad/sys\ +:$GST/gst-libav/ext/\ +:$GST/gst-ffmpeg/ext/\ +:$GST/gnonlin/gnl/.libs\ +:$GST/gst-openmax/omx/.libs\ +:$GST/gst-omx/omx/.libs\ +:$GST/gst-plugins-gl/gst/gl/.libs\ +:$GST/clutter-gst/clutter-gst/.libs\ +:$GST/plugins\ +:$GST/farsight2/gst\ +:$GST/farsight2/transmitters\ +:$GST/libnice/gst\ +${GST_PLUGIN_PATH:+:$GST_PLUGIN_PATH}" + +# don't use any system-installed plug-ins at all +export GST_PLUGIN_SYSTEM_PATH= +# set our registry somewhere else so we don't mess up the registry generated +# by an installed copy +rm -f $GST/gstreamer/registry.xml 2>/dev/null +export GST_REGISTRY=$GST/gstreamer/registry.dat +# Point at the uninstalled plugin scanner +export GST_PLUGIN_SCANNER=$GST/gstreamer/libs/gst/helpers/gst-plugin-scanner + +# once MANPATH is set, it needs at least an "empty"component to keep pulling +# in the system-configured man paths from man.config +# this still doesn't make it work for the uninstalled case, since man goes +# look for a man directory "nearby" instead of the directory I'm telling it to +export MANPATH=$GST/gstreamer/tools:$GST_PREFIX/share/man:$MANPATH +pythonver=`python -c "import sys; print sys.version[:3]"` +export PYTHONPATH=$GST/gst-python:$GST_PREFIX/lib/python$pythonver/site-packages${PYTHONPATH:+:$PYTHONPATH} + +# clutter-gst +export PKG_CONFIG_PATH=$GST/clutter-gst:$PKG_CONFIG_PATH +export LD_LIBRARY_PATH=$GST/clutter-gst/clutter-gst/.libs:$LD_LIBRARY_PATH +export DYLD_LIBRARY_PATH=$GST/clutter-gst/clutter-gst/.libs:$DYLD_LIBRARY_PATH + +# totem-pl-parser +export PKG_CONFIG_PATH=$GST/totem-pl-parser:$PKG_CONFIG_PATH +export LD_LIBRARY_PATH=$GST/totem-pl-parser/plparse/.libs:$LD_LIBRARY_PATH +export DYLD_LIBRARY_PATH=$GST/totem-pl-parser/plparse/.libs:$DYLD_LIBRARY_PATH + +# totem +export PATH=$GST/totem/src:$PATH + +# gstreamer-sharp +export MONO_PATH=$GST/gstreamer-sharp/gstreamer-sharp:$MONO_PATH +export LD_LIBRARY_PATH=$GST/gstreamer-sharp/gstreamer-sharp/glue/.libs:$LD_LIBRARY_PATH +export DYLD_LIBRARY_PATH=$GST/gstreamer-sharp/gstreamer-sharp/glue/.libs:$DYLD_LIBRARY_PATH + +# insanity +export PYTHONPATH=$GST/insanity:$PYTHONPATH +export PATH=$GST/insanity/bin:$PATH +export PKG_CONFIG_PATH=$GST/insanity/lib:$GST/insanity-gst/lib:$PKG_CONFIG_PATH +export GI_TYPELIB_PATH=$GST/insanity/lib/insanity:$GST/insanity-gst/lib/insanity-gst:$GI_TYPELIB_PATH + +if [ -d "$GST/gst-libav" -a -d "$GST/gst-ffmpeg" ]; then + echo + echo "=====================================================================" + echo " You have both an uninstalled gst-ffmpeg checkout and a gst-libav" + echo " checkout. You need to remove one of those. You should remove" + echo + echo " $GST/gst-ffmpeg" + echo + echo " since gst-libav replaces gst-ffmpeg." + echo "=====================================================================" + echo +fi + +# if we got a command, run it, else start a shell +if test ! -z "$1"; +then + $@ + exit $? +fi + +# set up prompt to help us remember we're in a subshell, cd to +# the gstreamer base dir and start $SHELL +cd $GST +shell=$SHELL +if test "x$SHELL" = "x/bin/bash" +then + # debian/ubuntu resets our PS1. bastards. + shell="$SHELL --noprofile" +fi +PS1="[gst-$VERSION] $PS1" $shell + |