gstreamer/docs/faq/gst-uninstalled

96 lines
3.6 KiB
Text
Raw Normal View History

#!/bin/bash -i
#
# this script is in CVS as gstreamer/docs/faq/gst-uninstalled
#
# set up environment to use and develop gstreamer and friends uninstalled
#
# set up PATH, LD_LIBRARY_PATH, PKG_CONFIG_PATH, GST_PLUGIN_PATH, MANPATH,
# PYTHONPATH
#
# prefer uninstalled versions, but also put installed ones on the path
#
# 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)
# to a name that reflects the version of your checkout
#
# 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
# change this variable to a different location depending on where you
# store your cvs checkouts
MYGST=$HOME/gst
# 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
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/tools:$GST/gst-player/src:$GST/gst-editor/src:$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}
for path in audio cdda interfaces netbuffer riff rtp 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
done
for path in base net check controller dataprotocol
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
done
LD_LIBRARY_PATH=$GST/gstreamer/gst/.libs:$LD_LIBRARY_PATH
DYLD_LIBRARY_PATH=$GST/gstreamer/gst/.libs:$DYLD_LIBRARY_PATH
export LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH
export PKG_CONFIG_PATH=$GST/prefix/lib/pkgconfig:$GST/gstreamer/pkgconfig:$GST/gst-plugins/pkgconfig:$GST/gst-plugins-base/pkgconfig:$GST/gst-plugins-good/pkgconfig:$GST/gst-python/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}
export GST_PLUGIN_PATH=$GST/gstreamer:$GST/gst-plugins:$GST/gst-plugins-base:$GST/gst-plugins-good:$GST/gst-plugins-ugly:$GST/gst-plugins-bad:$GST/gst-ffmpeg:$GST/gnonlin:$GST/gst-monkeysaudio:$GST/plugins${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
export GST_REGISTRY=$GST/gstreamer/registry.xml
# 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}
# 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