scripts: update for gst-ffmpeg -> gst-libav
[platform/upstream/gstreamer.git] / scripts / gst-uninstalled
1 #!/bin/bash -i
2 #
3 # this script is in git as gstreamer/scripts/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
27
28 # This script is run -i so that PS1 doesn't get cleared
29
30 # Change this variable to the location of your gstreamer git checkouts
31 MYGST=$HOME/gst
32
33 #
34 # Everything below this line shouldn't be edited!
35 #
36
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`
40
41 # base path under which dirs are installed
42 GST=$MYGST/$VERSION
43 GST_PREFIX=$GST/prefix
44 if test ! -e $GST; then
45   echo "$GST does not exist !"
46   exit
47 fi
48
49 # set up a bunch of paths
50 PATH="\
51 $GST/gstreamer/tools:\
52 $GST/gst-plugins-base/tools:\
53 $GST/gst-player/src:\
54 $GST/gst-editor/src:\
55 $GST/gstreamer-sharp/tools:\
56 $GST_PREFIX/bin:\
57 $PATH"
58
59 # /some/path: makes the dynamic linker look in . too, so avoid this
60 LD_LIBRARY_PATH=$GST_PREFIX/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
61 DYLD_LIBRARY_PATH=$GST_PREFIX/lib${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH}
62 GI_TYPELIB_PATH=$GST_PREFIX/share/gir-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}
63
64 # GStreamer rtsp server library
65 LD_LIBRARY_PATH=$GST/gst-rtsp-server/gst/rtsp-server/.libs:$LD_LIBRARY_PATH
66 DYLD_LIBRARY_PATH=$GST/gst-rtsp-server/gst/rtsp-server/.libs:$DYLD_LIBRARY_PATH
67 GI_TYPELIB_PATH=$GST/gst-rtsp-server/gst/rtsp-server:$GI_TYPELIB_PATH
68
69 # GStreamer ffmpeg libraries
70 for path in libavformat libavutil libavcodec libpostproc libavdevice
71 do
72    LD_LIBRARY_PATH=$GST/gst-ffmpeg/gst-libs/ext/ffmpeg/$path:$LD_LIBRARY_PATH
73    DYLD_LIBRARY_PATH=$GST/gst-ffmpeg/gst-libs/ext/ffmpeg/$path:$DYLD_LIBRARY_PATH
74 done
75
76 # GStreamer plugins base libraries
77 for path in app audio cdda fft interfaces pbutils netbuffer riff rtp rtsp sdp tag utils video 
78 do
79   LD_LIBRARY_PATH=$GST/gst-plugins-base/gst-libs/gst/$path/.libs:$LD_LIBRARY_PATH
80   DYLD_LIBRARY_PATH=$GST/gst-plugins-base/gst-libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
81   GI_TYPELIB_PATH=$GST/gst-plugins-base/gst-libs/gst/$path:$GI_TYPELIB_PATH
82 done
83
84 # GStreamer plugins bad libraries
85 for path in basecamerabinsrc codecparsers interfaces
86 do
87   LD_LIBRARY_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path/.libs:$LD_LIBRARY_PATH
88   DYLD_LIBRARY_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
89   GI_TYPELIB_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path:$GI_TYPELIB_PATH
90 done
91
92 # GStreamer core libraries
93 for path in base net check controller
94 do
95   LD_LIBRARY_PATH=$GST/gstreamer/libs/gst/$path/.libs:$LD_LIBRARY_PATH
96   DYLD_LIBRARY_PATH=$GST/gstreamer/libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
97   GI_TYPELIB_PATH=$GST/gstreamer/libs/gst/$path:$GI_TYPELIB_PATH
98 done
99 LD_LIBRARY_PATH=$GST/gstreamer/gst/.libs:$LD_LIBRARY_PATH
100 DYLD_LIBRARY_PATH=$GST/gstreamer/gst/.libs:$DYLD_LIBRARY_PATH
101 GI_TYPELIB_PATH=$GST/gstreamer/gst:$GI_TYPELIB_PATH
102 export LD_LIBRARY_PATH
103 export DYLD_LIBRARY_PATH
104 export GI_TYPELIB_PATH
105   
106 export PKG_CONFIG_PATH="\
107 $GST_PREFIX/lib/pkgconfig\
108 :$GST/gstreamer/pkgconfig\
109 :$GST/gst-plugins-base/pkgconfig\
110 :$GST/gst-plugins-good/pkgconfig\
111 :$GST/gst-plugins-ugly/pkgconfig\
112 :$GST/gst-plugins-bad/pkgconfig\
113 :$GST/gst-ffmpeg/pkgconfig\
114 :$GST/gst-python/pkgconfig\
115 :$GST/gst-rtsp-server/pkgconfig\
116 :$GST/gstreamer-sharp/pkgconfig\
117 :$GST/farsight2\
118 :$GST/libnice/nice\
119 ${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
120
121 export GST_PLUGIN_PATH="\
122 $GST/gstreamer/plugins\
123 :$GST/gst-plugins-base/ext\
124 :$GST/gst-plugins-base/gst\
125 :$GST/gst-plugins-base/sys\
126 :$GST/gst-plugins-good/ext\
127 :$GST/gst-plugins-good/gst\
128 :$GST/gst-plugins-good/sys\
129 :$GST/gst-plugins-ugly/ext\
130 :$GST/gst-plugins-ugly/gst\
131 :$GST/gst-plugins-ugly/sys\
132 :$GST/gst-plugins-bad/ext\
133 :$GST/gst-plugins-bad/gst\
134 :$GST/gst-plugins-bad/sys\
135 :$GST/gst-libav/ext/\
136 :$GST/gst-ffmpeg/ext/\
137 :$GST/gnonlin/gnl/.libs\
138 :$GST/gst-openmax/omx/.libs\
139 :$GST/gst-omx/omx/.libs\
140 :$GST/gst-plugins-gl/gst/.libs\
141 :$GST/clutter-gst/clutter-gst/.libs\
142 :$GST/plugins\
143 :$GST/farsight2/gst\
144 :$GST/farsight2/transmitters\
145 :$GST/libnice/gst\
146 ${GST_PLUGIN_PATH:+:$GST_PLUGIN_PATH}"
147
148 # don't use any system-installed plug-ins at all
149 export GST_PLUGIN_SYSTEM_PATH=
150 # set our registry somewhere else so we don't mess up the registry generated
151 # by an installed copy
152 rm -f $GST/gstreamer/registry.xml 2>/dev/null
153 export GST_REGISTRY=$GST/gstreamer/registry.dat
154 # Point at the uninstalled plugin scanner
155 export GST_PLUGIN_SCANNER=$GST/gstreamer/libs/gst/helpers/gst-plugin-scanner
156
157 # once MANPATH is set, it needs at least an "empty"component to keep pulling
158 # in the system-configured man paths from man.config
159 # this still doesn't make it work for the uninstalled case, since man goes
160 # look for a man directory "nearby" instead of the directory I'm telling it to
161 export MANPATH=$GST/gstreamer/tools:$GST_PREFIX/share/man:$MANPATH
162 pythonver=`python -c "import sys; print sys.version[:3]"`
163 export PYTHONPATH=$GST/gst-python:$GST_PREFIX/lib/python$pythonver/site-packages${PYTHONPATH:+:$PYTHONPATH}
164
165 # clutter-gst
166 export PKG_CONFIG_PATH=$GST/clutter-gst:$PKG_CONFIG_PATH
167 export LD_LIBRARY_PATH=$GST/clutter-gst/clutter-gst/.libs:$LD_LIBRARY_PATH
168 export DYLD_LIBRARY_PATH=$GST/clutter-gst/clutter-gst/.libs:$DYLD_LIBRARY_PATH
169
170 # totem-pl-parser
171 export PKG_CONFIG_PATH=$GST/totem-pl-parser:$PKG_CONFIG_PATH
172 export LD_LIBRARY_PATH=$GST/totem-pl-parser/plparse/.libs:$LD_LIBRARY_PATH
173 export DYLD_LIBRARY_PATH=$GST/totem-pl-parser/plparse/.libs:$DYLD_LIBRARY_PATH
174
175 # totem
176 export PATH=$GST/totem/src:$PATH
177
178 # gstreamer-sharp
179 export MONO_PATH=$GST/gstreamer-sharp/gstreamer-sharp:$MONO_PATH
180 export LD_LIBRARY_PATH=$GST/gstreamer-sharp/gstreamer-sharp/glue/.libs:$LD_LIBRARY_PATH
181 export DYLD_LIBRARY_PATH=$GST/gstreamer-sharp/gstreamer-sharp/glue/.libs:$DYLD_LIBRARY_PATH
182
183 # insanity
184 export PYTHONPATH=$GST/insanity:$PYTHONPATH
185 export PATH=$GST/insanity/bin:$PATH
186 export PKG_CONFIG_PATH=$GST/insanity/lib:$GST/insanity-gst/lib:$PKG_CONFIG_PATH
187 export GI_TYPELIB_PATH=$GST/insanity/lib/insanity:$GST/insanity-gst/lib/insanity-gst:$GI_TYPELIB_PATH
188
189 # GStreamer editing services library
190 export LD_LIBRARY_PATH=$GST/gst-editing-services/ges/.libs:$LD_LIBRARY_PATH
191 export DYLD_LIBRARY_PATH=$GST/gst-editing-services/ges/.libs:$DYLD_LIBRARY_PATH
192 export PATH=$GST/gst-editing-services/tools:$PATH
193
194 if [ -d "$GST/gst-libav" -a -d "$GST/gst-ffmpeg" ]; then
195   echo
196   echo "====================================================================="
197   echo " You have both an uninstalled gst-ffmpeg checkout and a gst-libav"
198   echo " checkout. You need to remove one of those. You should remove"
199   echo
200   echo "   $GST/gst-ffmpeg"
201   echo
202   echo " since gst-libav replaces gst-ffmpeg."
203   echo "====================================================================="
204   echo
205 fi
206
207 # if we got a command, run it, else start a shell
208 if test ! -z "$1";
209 then
210   $@
211   exit $?
212 fi
213
214 # set up prompt to help us remember we're in a subshell, cd to
215 # the gstreamer base dir and start $SHELL
216 cd $GST
217 shell=$SHELL
218 if test "x$SHELL" = "x/bin/bash"
219 then
220   # debian/ubuntu resets our PS1.  bastards.
221   shell="$SHELL --noprofile"
222 fi
223 PS1="[gst-$VERSION] $PS1" $shell
224