3 # this script is in git as gstreamer/scripts/gst-uninstalled
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
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.
15 # This script assumes that the relevant modules are checked out one by one
16 # under a given tree specified below in MYGST.
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.
23 # - mkdir $HOME/gst/head
24 # - ln -sf gst-uninstalled $HOME/bin/gst-head
25 # - checkout copies of gstreamer modules in $HOME/gst/head
28 # This script is run -i so that PS1 doesn't get cleared
30 if [ -z $GST_UNINSTALLED_ROOT ];
32 # Change this variable to the location of your gstreamer git checkouts
36 # Everything below this line shouldn't be edited!
39 # extract version from $0
40 # if this script is called "gst-head" then version will be "head"
41 VERSION=`echo $0 | sed s/.*gst-//g`
43 # base path under which dirs are installed
46 # Alternatively, you can set the GST_UNINSTALLED_ROOT environment variable to the
47 # location of your checkout and call this script directly.
49 # Ex: GST_UNINSTALLED_ROOT=$HOME/checkout/location gst-uninstalled
51 GST=$GST_UNINSTALLED_ROOT
54 GST_PREFIX=$GST/prefix
55 if test ! -e $GST; then
56 echo "$GST does not exist !"
60 # set up a bunch of paths
62 $GST/gstreamer/tools:\
63 $GST/gst-plugins-base/tools:\
66 $GST/gstreamer-sharp/tools:\
71 # /some/path: makes the dynamic linker look in . too, so avoid this
72 LD_LIBRARY_PATH=$GST_PREFIX/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
73 DYLD_LIBRARY_PATH=$GST_PREFIX/lib${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH}
74 GI_TYPELIB_PATH=$GST_PREFIX/share/gir-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}
77 LD_LIBRARY_PATH=$GST/orc/orc/.libs:$GST/orc/orc-test/.libs:$LD_LIBRARY_PATH
78 DYLD_LIBRARY_PATH=$GST/orc/orc/.libs:$GST/orc/orc-test/.libs:$DYLD_LIBRARY_PATH
80 # GStreamer rtsp server library
81 LD_LIBRARY_PATH=$GST/gst-rtsp-server/gst/rtsp-server/.libs:$LD_LIBRARY_PATH
82 DYLD_LIBRARY_PATH=$GST/gst-rtsp-server/gst/rtsp-server/.libs:$DYLD_LIBRARY_PATH
83 GI_TYPELIB_PATH=$GST/gst-rtsp-server/gst/rtsp-server:$GI_TYPELIB_PATH
85 # GStreamer Editing Services library
86 LD_LIBRARY_PATH=$GST/gst-editing-services/ges/.libs:$LD_LIBRARY_PATH
87 DYLD_LIBRARY_PATH=$GST/gst-editing-services/ges/.libs:$DYLD_LIBRARY_PATH
88 GI_TYPELIB_PATH=$GST/gst-editing-services/ges:$GI_TYPELIB_PATH
89 PATH=$GST/gst-editing-services/tools:$PATH
92 # GStreamer plugins base libraries
93 for path in allocators app audio fft pbutils riff rtp rtsp sdp tag utils video
95 LD_LIBRARY_PATH=$GST/gst-plugins-base/gst-libs/gst/$path/.libs:$LD_LIBRARY_PATH
96 DYLD_LIBRARY_PATH=$GST/gst-plugins-base/gst-libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
97 GI_TYPELIB_PATH=$GST/gst-plugins-base/gst-libs/gst/$path:$GI_TYPELIB_PATH
100 # GStreamer plugins bad libraries
101 for path in basecamerabinsrc codecparsers uridownloader egl insertbin interfaces mpegts
103 LD_LIBRARY_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path/.libs:$LD_LIBRARY_PATH
104 DYLD_LIBRARY_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
105 GI_TYPELIB_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path:$GI_TYPELIB_PATH
108 # GStreamer core libraries
109 for path in base check controller net
111 LD_LIBRARY_PATH=$GST/gstreamer/libs/gst/$path/.libs:$LD_LIBRARY_PATH
112 DYLD_LIBRARY_PATH=$GST/gstreamer/libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
113 GI_TYPELIB_PATH=$GST/gstreamer/libs/gst/$path:$GI_TYPELIB_PATH
115 LD_LIBRARY_PATH=$GST/gstreamer/gst/.libs:$LD_LIBRARY_PATH
116 DYLD_LIBRARY_PATH=$GST/gstreamer/gst/.libs:$DYLD_LIBRARY_PATH
117 GI_TYPELIB_PATH=$GST/gstreamer/gst:$GI_TYPELIB_PATH
118 export LD_LIBRARY_PATH
119 export DYLD_LIBRARY_PATH
120 export GI_TYPELIB_PATH
122 export PKG_CONFIG_PATH="\
123 $GST_PREFIX/lib/pkgconfig\
124 :$GST/gstreamer/pkgconfig\
125 :$GST/gst-plugins-base/pkgconfig\
126 :$GST/gst-plugins-good/pkgconfig\
127 :$GST/gst-plugins-ugly/pkgconfig\
128 :$GST/gst-plugins-bad/pkgconfig\
129 :$GST/gst-libav/pkgconfig\
130 :$GST/gst-ffmpeg/pkgconfig\
131 :$GST/gst-python/pkgconfig\
132 :$GST/gst-rtsp-server/pkgconfig\
133 :$GST/gst-editing-services/pkgconfig\
134 :$GST/gstreamer-sharp/pkgconfig\
138 ${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
140 export GST_PLUGIN_PATH="\
141 $GST/gstreamer/plugins\
142 :$GST/gst-plugins-base/ext\
143 :$GST/gst-plugins-base/gst\
144 :$GST/gst-plugins-base/sys\
145 :$GST/gst-plugins-good/ext\
146 :$GST/gst-plugins-good/gst\
147 :$GST/gst-plugins-good/sys\
148 :$GST/gst-plugins-ugly/ext\
149 :$GST/gst-plugins-ugly/gst\
150 :$GST/gst-plugins-ugly/sys\
151 :$GST/gst-plugins-bad/ext\
152 :$GST/gst-plugins-bad/gst\
153 :$GST/gst-plugins-bad/sys\
154 :$GST/gst-libav/ext/\
155 :$GST/gst-ffmpeg/ext/\
156 :$GST/gnonlin/gnl/.libs\
157 :$GST/gst-openmax/omx/.libs\
158 :$GST/gst-omx/omx/.libs\
159 :$GST/gst-plugins-gl/gst/gl/.libs\
160 :$GST/clutter-gst/clutter-gst/.libs\
163 :$GST/farsight2/transmitters\
165 ${GST_PLUGIN_PATH:+:$GST_PLUGIN_PATH}"
167 # don't use any system-installed plug-ins at all
168 export GST_PLUGIN_SYSTEM_PATH=
169 # set our registry somewhere else so we don't mess up the registry generated
170 # by an installed copy
171 rm -f $GST/gstreamer/registry.xml 2>/dev/null
172 export GST_REGISTRY=$GST/gstreamer/registry.dat
173 # Point at the uninstalled plugin scanner
174 export GST_PLUGIN_SCANNER=$GST/gstreamer/libs/gst/helpers/gst-plugin-scanner
176 # once MANPATH is set, it needs at least an "empty"component to keep pulling
177 # in the system-configured man paths from man.config
178 # this still doesn't make it work for the uninstalled case, since man goes
179 # look for a man directory "nearby" instead of the directory I'm telling it to
180 export MANPATH=$GST/gstreamer/tools:$GST_PREFIX/share/man:$MANPATH
181 pythonver=`python -c "import sys; print sys.version[:3]"`
182 export PYTHONPATH=$GST/gst-python:$GST_PREFIX/lib/python$pythonver/site-packages${PYTHONPATH:+:$PYTHONPATH}
185 export PKG_CONFIG_PATH=$GST/clutter-gst:$PKG_CONFIG_PATH
186 export LD_LIBRARY_PATH=$GST/clutter-gst/clutter-gst/.libs:$LD_LIBRARY_PATH
187 export DYLD_LIBRARY_PATH=$GST/clutter-gst/clutter-gst/.libs:$DYLD_LIBRARY_PATH
190 export PKG_CONFIG_PATH=$GST/totem-pl-parser:$PKG_CONFIG_PATH
191 export LD_LIBRARY_PATH=$GST/totem-pl-parser/plparse/.libs:$LD_LIBRARY_PATH
192 export DYLD_LIBRARY_PATH=$GST/totem-pl-parser/plparse/.libs:$DYLD_LIBRARY_PATH
195 export PATH=$GST/totem/src:$PATH
198 export MONO_PATH=$GST/gstreamer-sharp/gstreamer-sharp:$MONO_PATH
199 export LD_LIBRARY_PATH=$GST/gstreamer-sharp/gstreamer-sharp/glue/.libs:$LD_LIBRARY_PATH
200 export DYLD_LIBRARY_PATH=$GST/gstreamer-sharp/gstreamer-sharp/glue/.libs:$DYLD_LIBRARY_PATH
203 export PYTHONPATH=$GST/insanity:$PYTHONPATH
204 export PATH=$GST/insanity/bin:$PATH
205 export PKG_CONFIG_PATH=$GST/insanity/lib:$GST/insanity-gst/lib:$PKG_CONFIG_PATH
206 export GI_TYPELIB_PATH=$GST/insanity/lib/insanity:$GST/insanity-gst/lib/insanity-gst:$GI_TYPELIB_PATH
208 if [ -d "$GST/gst-libav" -a -d "$GST/gst-ffmpeg" ]; then
210 echo "====================================================================="
211 echo " You have both an uninstalled gst-ffmpeg checkout and a gst-libav"
212 echo " checkout. You need to remove one of those. You should remove"
214 echo " $GST/gst-ffmpeg"
216 echo " since gst-libav replaces gst-ffmpeg."
217 echo "====================================================================="
221 # if we got a command, run it, else start a shell
228 # set up prompt to help us remember we're in a subshell, cd to
229 # the gstreamer base dir and start $SHELL
232 if test "x$SHELL" = "x/bin/bash"
234 # debian/ubuntu resets our PS1. bastards.
235 shell="$SHELL --noprofile"
237 PS1="[gst-$VERSION] $PS1" $shell