866eba4dfc0fa44bf7ba2f92acb145f2c1934e72
[glsdk/gstreamer0-10.git] / docs / faq / gst-uninstalled
1 #!/bin/bash -i
2 #
3 # this script is in git as gstreamer/docs/faq/gst-uninstalled
4 #
5 # It will set up the environment to use and develop gstreamer and projects
6 # that use gstreamer with an uninstalled git checkout of gstreamer and the
7 # plugin modules.
8 #
9 # It will set up LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, PKG_CONFIG_PATH,
10 # GST_PLUGIN_PATH, GST_PLUGIN_SYSTEM_PATH, GST_REGISTRY, MANPATH, PYTHONPATH
11 # to prefer the uninstalled versions but also contain the installed ones.
12 # The only exception to this is, that no system installed plugins will be
13 # used but only the uninstalled ones.
14 #
15 # This script assumes that the relevant modules are checked out one by one
16 # under a given tree specified below in MYGST.
17 #
18 # Symlink this script in a directory in your path (for example $HOME/bin). You
19 # must name the symlink gst-something, where something is the subdirectory
20 # of MYGST that contains your gstreamer module checkouts.
21 #
22 # e.g.:
23 # - mkdir $HOME/gst/head
24 # - ln -sf gst-uninstalled $HOME/bin/gst-head
25 # - checkout copies of gstreamer modules in $HOME/gst/head
26 # - gst-head
28 # This script is run -i so that PS1 doesn't get cleared
30 # Change this variable to the location of your gstreamer git checkouts
31 MYGST=$HOME/gst
33 #
34 # Everything below this line shouldn't be edited!
35 #
37 # extract version from $0
38 # if this script is called "gst-head" then version will be "head"
39 VERSION=`echo $0 | sed s/.*gst-//g`
41 # base path under which dirs are installed
42 GST=$MYGST/$VERSION
43 if test ! -e $GST; then
44   echo "$GST does not exist !"
45   exit
46 fi
48 # set up a bunch of paths
49 PATH=$GST/gstreamer/tools:$GST/gst-plugins/tools:$GST/gst-player/src:$GST/gst-editor/src:$GST/prefix/bin:$PATH
51 # /some/path: makes the dynamic linker look in . too, so avoid this
52 LD_LIBRARY_PATH=$GST/prefix/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
53 DYLD_LIBRARY_PATH=$GST/prefix/lib${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH}
55 # Gstreamer ffmpeg libraries
56 for path in libavformat libavutil libavcodec libpostproc libavdevice
57 do
58    LD_LIBRARY_PATH=$GST/gst-ffmpeg/gst-libs/ext/ffmpeg/$path:$LD_LIBRARY_PATH
59    DYLD_LIBRARY_PATH=$GST/gst-ffmpeg/gst-libs/ext/ffmpeg/$path:$DYLD_LIBRARY_PATH
60 done
62 # GStreamer plugins base libraries
63 for path in app audio cdda fft interfaces pbutils netbuffer riff rtp rtsp sdp tag utils video 
64 do
65   LD_LIBRARY_PATH=$GST/gst-plugins-base/gst-libs/gst/$path/.libs:$LD_LIBRARY_PATH
66   DYLD_LIBRARY_PATH=$GST/gst-plugins-base/gst-libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
67 done
69 # GStreamer core libraries
70 for path in base net check controller dataprotocol
71 do
72   LD_LIBRARY_PATH=$GST/gstreamer/libs/gst/$path/.libs:$LD_LIBRARY_PATH
73   DYLD_LIBRARY_PATH=$GST/gstreamer/libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
74 done
75 LD_LIBRARY_PATH=$GST/gstreamer/gst/.libs:$LD_LIBRARY_PATH
76 DYLD_LIBRARY_PATH=$GST/gstreamer/gst/.libs:$DYLD_LIBRARY_PATH
77 export LD_LIBRARY_PATH
78 export DYLD_LIBRARY_PATH
79   
80 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}
81 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/gst-plugins-gl:$GST/plugins${GST_PLUGIN_PATH:+:$GST_PLUGIN_PATH}
82 # don't use any system-installed plug-ins at all
83 export GST_PLUGIN_SYSTEM_PATH=
84 # set our registry somewhere else so we don't mess up the registry generated
85 # by an installed copy
86 export GST_REGISTRY=$GST/gstreamer/registry.xml
87 # once MANPATH is set, it needs at least an "empty"component to keep pulling
88 # in the system-configured man paths from man.config
89 # this still doesn't make it work for the uninstalled case, since man goes
90 # look for a man directory "nearby" instead of the directory I'm telling it to
91 export MANPATH=$GST/gstreamer/tools:$GST/prefix/share/man:$MANPATH
92 pythonver=`python -c "import sys; print sys.version[:3]"`
93 export PYTHONPATH=$GST/gst-python:$GST/prefix/lib/python$pythonver/site-packages${PYTHONPATH:+:$PYTHONPATH}
95 # if we got a command, run it, else start a shell
96 if test ! -z "$1";
97 then
98   $@
99   exit $?
100 fi
102 # set up prompt to help us remember we're in a subshell, cd to
103 # the gstreamer base dir and start $SHELL
104 cd $GST
105 shell=$SHELL
106 if test "x$SHELL" == "x/bin/bash"
107 then
108   # debian/ubuntu resets our PS1.  bastards.
109   shell="$SHELL --noprofile"
110 fi
111 PS1="[gst-$VERSION] $PS1" $shell