Bring SUSE target to the same level as others.
[blender.git] / build_files / build_environment / install_deps.sh
1 #!/bin/bash
2
3 DISTRO=""
4 SRC="$HOME/src/blender-deps"
5 INST="/opt/lib"
6 CWD=$PWD
7
8 # OSL is horror for manual building even
9 # i would want it to be setteled for manual build first,
10 # and only then do it automatically
11 BUILD_OSL=false
12
13 # Try to link everything statically. Use this to produce protable versions of blender.
14 ALL_STATIC=false
15
16 THREADS=`cat /proc/cpuinfo | grep cores | uniq | sed -e "s/.*: *\(.*\)/\\1/"`
17 if [ -z "$THREADS" ]; then
18   THREADS=1
19 fi
20
21 COMMON_INFO="Source code of dependencies needed to be compiled will be downloaded and extracted into '$SRC'.
22 Built libs of dependencies needed to be compiled will be installed into '$INST'.
23 Please edit \$SRC and/or \$INST variables at the begining of this script if you want to use other paths!
24
25 Number of threads for building: $THREADS.
26 Building OSL: $BUILD_OSL (edit \$BUILD_OSL var to change this).
27 All static linking: $ALL_STATIC (edit \$ALL_STATIC var to change this)."
28
29
30 PYTHON_VERSION="3.3.0"
31 PYTHON_VERSION_MIN="3.3"
32 PYTHON_SOURCE="http://python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tar.bz2"
33
34 BOOST_VERSION="1.51.0"
35 _boost_version_nodots=`echo "$BOOST_VERSION" | sed -r 's/\./_/g'`
36 BOOST_SOURCE="http://sourceforge.net/projects/boost/files/boost/$BOOST_VERSION/boost_$_boost_version_nodots.tar.bz2/download"
37 BOOST_VERSION_MIN="1.49"
38
39 OCIO_VERSION="1.0.7"
40 OCIO_SOURCE="https://github.com/imageworks/OpenColorIO/tarball/v$OCIO_VERSION"
41 OCIO_VERSION_MIN="1.0"
42
43 OIIO_VERSION="1.1.1"
44 OIIO_SOURCE="https://github.com/OpenImageIO/oiio/tarball/Release-$OIIO_VERSION"
45 OIIO_VERSION_MIN="1.1"
46
47 LLVM_VERSION="3.1"
48 LLVM_VERSION_MIN="3.0"
49 LLVM_VERSION_FOUND=""
50 LLVM_SOURCE="http://llvm.org/releases/$LLVM_VERSION/llvm-$LLVM_VERSION.src.tar.gz"
51 LLVM_CLANG_SOURCE="http://llvm.org/releases/$LLVM_VERSION/clang-$LLVM_VERSION.src.tar.gz"
52
53 # OSL needs to be compiled for now!
54 OSL_VERSION="1.2.0"
55 OSL_SOURCE="https://github.com/mont29/OpenShadingLanguage/archive/blender-fixes.tar.gz"
56
57 FFMPEG_VERSION="1.0"
58 FFMPEG_SOURCE="http://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2"
59 FFMPEG_VERSION_MIN="0.7.6"
60 _ffmpeg_list_sep=";"
61
62 # FFMPEG optional libs.
63 VORBIS_USE=false
64 VORBIS_DEV=""
65 SCHRO_USE=false
66 SCRHO_DEV=""
67 THEORA_USE=false
68 THEORA_DEV=""
69 XVID_USE=false
70 XVID_DEV=""
71 X264_USE=false
72 X264_DEV=""
73 X264_VERSION_MIN=0.118
74 VPX_USE=false
75 VPX_VERSION_MIN=0.9.7
76 VPX_DEV=""
77 MP3LAME_USE=false
78 MP3LAME_DEV=""
79 OPENJPEG_USE=false
80 OPENJPEG_DEV=""
81
82 # Switch to english language, else some things (like check_package_DEB()) won't work!
83 LANG_BACK=$LANG
84 LANG=""
85 export LANG
86
87 ERROR() {
88   echo "${@}"
89 }
90
91 INFO() {
92   echo "${@}"
93 }
94
95 # Return 0 if $1 = $2 (i.e. 1.01.0 = 1.1, but 1.1.1 != 1.1), else 1.
96 # $1 and $2 should be version numbers made of numbers only.
97 version_eq() {
98   backIFS=$IFS
99   IFS='.'
100
101   # Split both version numbers into their numeric elements.
102   arr1=( $1 )
103   arr2=( $2 )
104
105   ret=1
106
107   count1=${#arr1[@]}
108   count2=${#arr2[@]}
109   if [ $count2 -ge $count1 ]; then
110     _t=$count1
111     count1=$count2
112     count2=$_t
113     arr1=( $2 )
114     arr2=( $1 )
115   fi
116
117   ret=0
118   for (( i=0; $i < $count2; i++ ))
119   do
120     if [ $(( 10#${arr1[$i]} )) -ne $(( 10#${arr2[$i]} )) ]; then
121       ret=1
122       break
123     fi
124   done
125
126   for (( i=$count2; $i < $count1; i++ ))
127   do
128     if [ $(( 10#${arr1[$i]} )) -ne 0 ]; then
129       ret=1
130       break
131     fi
132   done
133
134   IFS=$backIFS
135   return $ret
136 }
137
138 # Return 0 if $1 >= $2, else 1.
139 # $1 and $2 should be version numbers made of numbers only.
140 version_ge() {
141   version_eq $1 $2
142   if [ $? -eq 1 -a $(echo -e "$1\n$2" | sort --version-sort | head --lines=1) = "$1" ]; then
143     return 1
144   else
145     return 0
146   fi
147 }
148
149 # Return 0 if $1 is into $2 (e.g. 3.3.2 is into 3.3, but not 3.3.0 or 3.3.5), else 1.
150 # $1 and $2 should be version numbers made of numbers only.
151 # $1 should be at least as long as $2!
152 version_match() {
153   backIFS=$IFS
154   IFS='.'
155
156   # Split both version numbers into their numeric elements.
157   arr1=( $1 )
158   arr2=( $2 )
159
160   ret=1
161
162   count1=${#arr1[@]}
163   count2=${#arr2[@]}
164   if [ $count1 -ge $count2 ]; then
165     ret=0
166     for (( i=0; $i < $count2; i++ ))
167     do
168       if [ $(( 10#${arr1[$i]} )) -ne $(( 10#${arr2[$i]} )) ]; then
169         ret=1
170         break
171       fi
172     done
173   fi
174
175   IFS=$backIFS
176   return $ret
177 }
178
179 detect_distro() {
180   if [ -f /etc/debian_version ]; then
181     DISTRO="DEB"
182   elif [ -f /etc/redhat-release ]; then
183     DISTRO="RPM"
184   elif [ -f /etc/SuSE-release ]; then
185     DISTRO="SUSE"
186   fi
187 }
188
189 prepare_opt() {
190   INFO "Ensuring $INST exists and is writable by us"
191   sudo mkdir -p $INST
192   sudo chown $USER $INST
193   sudo chmod 775 $INST
194 }
195
196 # Check whether the current package needs to be recompiled, based on a dummy file containing a magic number in its name...
197 magic_compile_check() {
198   if [ -f $INST/.$1-magiccheck-$2 ]; then
199     return 0
200   else
201     return 1
202   fi
203 }
204
205 magic_compile_set() {
206   rm -f $INST/.$1-magiccheck-*
207   touch $INST/.$1-magiccheck-$2
208 }
209
210 compile_Python() {
211   # To be changed each time we make edits that would modify the compiled result!
212   py_magic=0
213
214   _src=$SRC/Python-$PYTHON_VERSION
215   _inst=$INST/python-$PYTHON_VERSION
216
217   # Clean install if needed!
218   magic_compile_check python-$PYTHON_VERSION $py_magic
219   if [ $? -eq 1 ]; then
220     rm -rf $_inst
221   fi
222
223   if [ ! -d $_inst ]; then
224     INFO "Building Python-$PYTHON_VERSION"
225
226     prepare_opt
227
228     if [ ! -d $_src ]; then
229       mkdir -p $SRC
230       wget -c $PYTHON_SOURCE -O $_src.tar.bz2
231
232       INFO "Unpacking Python-$PYTHON_VERSION"
233       tar -C $SRC -xf $_src.tar.bz2
234     fi
235
236     cd $_src
237
238     ./configure --prefix=$_inst --enable-ipv6 \
239         --enable-loadable-sqlite-extensions --with-dbmliborder=bdb \
240         --with-computed-gotos --with-pymalloc
241
242     make -j$THREADS && make install
243     make clean
244
245     if [ -d $_inst ]; then
246       rm -f $INST/python-3.3
247       ln -s python-$PYTHON_VERSION $INST/python-3.3
248     else
249       ERROR "Python--$PYTHON_VERSION failed to compile, exiting"
250       exit 1
251     fi
252
253     magic_compile_set python-$PYTHON_VERSION $py_magic
254
255     cd $CWD
256   else
257     INFO "Own Python-$PYTHON_VERSION is up to date, nothing to do!"
258     INFO "If you want to force rebuild of this lib, delete the '$_src' and '$_inst' directories."
259   fi
260 }
261
262 compile_Boost() {
263   # To be changed each time we make edits that would modify the compiled result!
264   boost_magic=7
265
266   _src=$SRC/boost-$BOOST_VERSION
267   _inst=$INST/boost-$BOOST_VERSION
268
269   # Clean install if needed!
270   magic_compile_check boost-$BOOST_VERSION $boost_magic
271   if [ $? -eq 1 ]; then
272     rm -rf $_inst
273   fi
274
275   if [ ! -d $_inst ]; then
276     INFO "Building Boost-$BOOST_VERSION"
277
278     prepare_opt
279
280     if [ ! -d $_src ]; then
281       INFO "Downloading Boost-$BOOST_VERSION"
282       mkdir -p $SRC
283       wget -c $BOOST_SOURCE -O $_src.tar.bz2
284       tar -C $SRC --transform "s,(.*/?)boost_1_[^/]+(.*),\1boost-$BOOST_VERSION\2,x" -xf $_src.tar.bz2
285     fi
286
287     cd $_src
288     if [ ! -f $_src/b2 ]; then
289       ./bootstrap.sh
290     fi
291     ./b2 -j$THREADS -a --with-system --with-filesystem --with-thread --with-regex --with-locale --with-date_time \
292          --prefix=$_inst --disable-icu boost.locale.icu=off install
293     ./b2 --clean
294
295     if [ -d $_inst ]; then
296       rm -f $INST/boost
297       ln -s boost-$BOOST_VERSION $INST/boost
298     else
299       ERROR "Boost-$BOOST_VERSION failed to compile, exiting"
300       exit 1
301     fi
302
303     magic_compile_set boost-$BOOST_VERSION $boost_magic
304
305     cd $CWD
306   else
307     INFO "Own Boost-$BOOST_VERSION is up to date, nothing to do!"
308     INFO "If you want to force rebuild of this lib, delete the '$_src' and '$_inst' directories."
309   fi
310 }
311
312 compile_OCIO() {
313   # To be changed each time we make edits that would modify the compiled result!
314   ocio_magic=1
315
316   _src=$SRC/OpenColorIO-$OCIO_VERSION
317   _inst=$INST/ocio-$OCIO_VERSION
318
319   # Clean install if needed!
320   magic_compile_check ocio-$OCIO_VERSION $ocio_magic
321   if [ $? -eq 1 ]; then
322     rm -rf $_inst
323   fi
324
325   if [ ! -d $_inst ]; then
326     INFO "Building OpenColorIO-$OCIO_VERSION"
327
328     prepare_opt
329
330     if [ ! -d $_src ]; then
331       INFO "Downloading OpenColorIO-$OCIO_VERSION"
332       mkdir -p $SRC
333       wget -c $OCIO_SOURCE -O $_src.tar.gz
334
335       INFO "Unpacking OpenColorIO-$OCIO_VERSION"
336       tar -C $SRC --transform "s,(.*/?)imageworks-OpenColorIO[^/]*(.*),\1OpenColorIO-$OCIO_VERSION\2,x" \
337           -xf $_src.tar.gz
338     fi
339
340     cd $_src
341     # Always refresh the whole build!
342     if [ -d build ]; then
343       rm -rf build
344     fi    
345     mkdir build
346     cd build
347
348     if file /bin/cp | grep -q '32-bit'; then
349       cflags="-fPIC -m32 -march=i686"
350     else
351       cflags="-fPIC"
352     fi
353
354     cmake -D CMAKE_BUILD_TYPE=Release \
355           -D CMAKE_PREFIX_PATH=$_inst \
356           -D CMAKE_INSTALL_PREFIX=$_inst \
357           -D CMAKE_CXX_FLAGS="$cflags" \
358           -D CMAKE_EXE_LINKER_FLAGS="-lgcc_s -lgcc" \
359           -D OCIO_BUILD_APPS=OFF \
360           -D OCIO_BUILD_PYGLUE=OFF \
361           ..
362
363     make -j$THREADS && make install
364
365     # Force linking against static libs
366     rm -f $_inst/lib/*.so*
367
368     # Additional depencencies
369     cp ext/dist/lib/libtinyxml.a $_inst/lib
370     cp ext/dist/lib/libyaml-cpp.a $_inst/lib
371
372     make clean
373
374     if [ -d $_inst ]; then
375       rm -f $INST/ocio
376       ln -s ocio-$OCIO_VERSION $INST/ocio
377     else
378       ERROR "OpenColorIO-$OCIO_VERSION failed to compile, exiting"
379       exit 1
380     fi
381
382     magic_compile_set ocio-$OCIO_VERSION $ocio_magic
383
384     cd $CWD
385   else
386     INFO "Own OpenColorIO-$OCIO_VERSION is up to date, nothing to do!"
387     INFO "If you want to force rebuild of this lib, delete the '$_src' and '$_inst' directories."
388   fi
389 }
390
391 compile_OIIO() {
392   # To be changed each time we make edits that would modify the compiled result!
393   oiio_magic=5
394
395   _src=$SRC/OpenImageIO-$OIIO_VERSION
396   _inst=$INST/oiio-$OIIO_VERSION
397
398   # Clean install if needed!
399   magic_compile_check oiio-$OIIO_VERSION $oiio_magic
400   if [ $? -eq 1 ]; then
401     rm -rf $_inst
402   fi
403
404   if [ ! -d $_inst ]; then
405     INFO "Building OpenImageIO-$OIIO_VERSION"
406
407     prepare_opt
408
409     if [ ! -d $_src ]; then
410       wget -c $OIIO_SOURCE -O "$_src.tar.gz"
411
412       INFO "Unpacking OpenImageIO-$OIIO_VERSION"
413       tar -C $SRC --transform "s,(.*/?)OpenImageIO-oiio[^/]*(.*),\1OpenImageIO-$OIIO_VERSION\2,x" \
414           -xf $_src.tar.gz
415
416       cd $_src
417
418       # XXX Ugly patching hack!
419       cat << EOF | patch -p1
420 diff --git a/src/libutil/SHA1.cpp b/src/libutil/SHA1.cpp
421 index b9e6c8b..c761185 100644
422 --- a/src/libutil/SHA1.cpp
423 +++ b/src/libutil/SHA1.cpp
424 @@ -8,9 +8,9 @@
425  
426  // If compiling with MFC, you might want to add #include "StdAfx.h"
427  
428 +#include "SHA1.h"
429  #include "hash.h"
430  #include "dassert.h"
431 -#include "SHA1.h"
432  
433  #ifdef SHA1_UTILITY_FUNCTIONS
434  #define SHA1_MAX_FILE_BUFFER 8000
435 EOF
436
437       cd $CWD
438
439     fi
440
441     cd $_src
442     # Always refresh the whole build!
443     if [ -d build ]; then
444       rm -rf build
445     fi    
446     mkdir build
447     cd build
448
449     cmake_d="-D CMAKE_BUILD_TYPE=Release \
450              -D CMAKE_PREFIX_PATH=$_inst \
451              -D CMAKE_INSTALL_PREFIX=$_inst \
452              -D BUILDSTATIC=ON"
453
454     if [ -d $INST/boost ]; then
455       cmake_d="$cmake_d -D BOOST_ROOT=$INST/boost -D Boost_NO_SYSTEM_PATHS=ON"
456       if $ALL_STATIC; then
457         cmake_d="$cmake_d -D Boost_USE_STATIC_LIBS=ON"        
458       fi
459     fi
460
461     # Looks like we do not need ocio in oiio for now...
462 #    if [ -d $INST/ocio ]; then
463 #      cmake_d="$cmake_d -D OCIO_PATH=$INST/ocio"
464 #    fi
465
466     if file /bin/cp | grep -q '32-bit'; then
467       cflags="-fPIC -m32 -march=i686"
468     else
469       cflags="-fPIC"
470     fi
471
472     cmake $cmake_d -D CMAKE_CXX_FLAGS="$cflags" -D CMAKE_EXE_LINKER_FLAGS="-lgcc_s -lgcc" ../src
473
474     make -j$THREADS && make install
475     make clean
476
477     if [ -d $_inst ]; then
478       rm -f $INST/oiio
479       ln -s oiio-$OIIO_VERSION $INST/oiio
480     else
481       ERROR "OpenImageIO-$OIIO_VERSION failed to compile, exiting"
482       exit 1
483     fi
484
485     magic_compile_set oiio-$OIIO_VERSION $oiio_magic
486
487     cd $CWD
488   else
489     INFO "Own OpenImageIO-$OIIO_VERSION is up to date, nothing to do!"
490     INFO "If you want to force rebuild of this lib, delete the '$_src' and '$_inst' directories."
491   fi
492 }
493
494 compile_LLVM() {
495   # To be changed each time we make edits that would modify the compiled result!
496   llvm_magic=1
497
498   _src=$SRC/LLVM-$LLVM_VERSION
499   _inst=$INST/llvm-$LLVM_VERSION
500   _src_clang=$SRC/CLANG-$LLVM_VERSION
501
502   # Clean install if needed!
503   magic_compile_check llvm-$LLVM_VERSION $llvm_magic
504   if [ $? -eq 1 ]; then
505     rm -rf $_inst
506     rm -rf $_inst_clang
507   fi
508
509   if [ ! -d $_inst ]; then
510     INFO "Building LLVM-$LLVM_VERSION (CLANG included!)"
511
512     prepare_opt
513
514     if [ ! -d $_src -o true ]; then
515       wget -c $LLVM_SOURCE -O "$_src.tar.gz"
516       wget -c $LLVM_CLANG_SOURCE -O "$_src_clang.tar.gz"
517
518       INFO "Unpacking LLVM-$LLVM_VERSION"
519       tar -C $SRC --transform "s,([^/]*/?)llvm-[^/]*(.*),\1LLVM-$LLVM_VERSION\2,x" \
520           -xf $_src.tar.gz
521       INFO "Unpacking CLANG-$LLVM_VERSION to $_src/tools/clang"
522       tar -C $_src/tools \
523           --transform "s,([^/]*/?)clang-[^/]*(.*),\1clang\2,x" \
524           -xf $_src_clang.tar.gz
525
526       cd $_src
527
528       # XXX Ugly patching hack!
529       cat << EOF | patch -p1
530 --- a/CMakeLists.txt
531 +++ b/CMakeLists.txt
532 @@ -13,7 +13,7 @@
533  set(LLVM_VERSION_MAJOR 3)
534  set(LLVM_VERSION_MINOR 1)
535  
536 -set(PACKAGE_VERSION "\${LLVM_VERSION_MAJOR}.\${LLVM_VERSION_MINOR}svn")
537 +set(PACKAGE_VERSION "\${LLVM_VERSION_MAJOR}.\${LLVM_VERSION_MINOR}")
538  
539  set_property(GLOBAL PROPERTY USE_FOLDERS ON)
540  
541 EOF
542
543       cd $CWD
544
545     fi
546
547     cd $_src
548
549     # Always refresh the whole build!
550     if [ -d build ]; then
551       rm -rf build
552     fi    
553     mkdir build
554     cd build
555
556     cmake_d="-D CMAKE_BUILD_TYPE=Release"
557     cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst"
558     cmake_d="$cmake_d -D LLVM_ENABLE_FFI=ON"
559
560     cmake $cmake_d ..
561
562     make -j$THREADS && make install
563     make clean
564
565     if [ -d $_inst ]; then
566       rm -f $INST/llvm
567       ln -s llvm-$LLVM_VERSION $INST/llvm
568     else
569       ERROR "LLVM-$LLVM_VERSION failed to compile, exiting"
570       exit 1
571     fi
572
573     magic_compile_set llvm-$LLVM_VERSION $llvm_magic
574
575     cd $CWD
576   else
577     INFO "Own LLVM-$LLVM_VERSION (CLANG included) is up to date, nothing to do!"
578     INFO "If you want to force rebuild of this lib, delete the '$_src' and '$_inst' directories."
579   fi
580 }
581
582 compile_OSL() {
583   # To be changed each time we make edits that would modify the compiled result!
584   osl_magic=7
585
586   _src=$SRC/OpenShadingLanguage-$OSL_VERSION
587   _inst=$INST/osl-$OSL_VERSION
588
589   # Clean install if needed!
590   magic_compile_check osl-$OSL_VERSION $osl_magic
591   if [ $? -eq 1 ]; then
592     rm -rf $_inst
593   fi
594
595   if [ ! -d $_inst ]; then
596     INFO "Building OpenShadingLanguage-$OSL_VERSION"
597
598     prepare_opt
599
600     if [ ! -d $_src ]; then
601       # XXX Using git on my own repo for now, looks like archives are not updated immediately... :/
602 #      wget -c $OSL_SOURCE -O "$_src.tar.gz"
603
604 #      INFO "Unpacking OpenShadingLanguage-$OSL_VERSION"
605 #      tar -C $SRC --transform "s,(.*/?)OpenShadingLanguage-[^/]*(.*),\1OpenShadingLanguage-$OSL_VERSION\2,x" \
606 #          -xf $_src.tar.gz
607       git clone https://github.com/mont29/OpenShadingLanguage.git $_src
608       cd $_src
609       git checkout blender-fixes
610       cd $CWD
611     fi
612
613     cd $_src
614     # XXX For now, always update from latest repo...
615     git checkout .
616
617     # Always refresh the whole build!
618     if [ -d build ]; then
619       rm -rf build
620     fi    
621     mkdir build
622     cd build
623
624     cmake_d="-D CMAKE_BUILD_TYPE=Release"
625     cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst"
626     cmake_d="$cmake_d -D BUILDSTATIC=ON"
627     cmake_d="$cmake_d -D BUILD_TESTING=OFF"
628
629     if [ -d $INST/boost ]; then
630       cmake_d="$cmake_d -D BOOST_ROOT=$INST/boost -D Boost_NO_SYSTEM_PATHS=ON"
631       if $ALL_STATIC; then
632         cmake_d="$cmake_d -D Boost_USE_STATIC_LIBS=ON"        
633       fi
634     fi
635
636     if [ -d $INST/oiio ]; then
637       cmake_d="$cmake_d -D OPENIMAGEIOHOME=$INST/oiio"
638     fi
639
640     if [ ! -z $LLVM_VERSION_FOUND ]; then
641       cmake_d="$cmake_d -D LLVM_VERSION=$LLVM_VERSION_FOUND"
642       if [ -d $INST/llvm ]; then
643         cmake_d="$cmake_d -D LLVM_DIRECTORY=$INST/llvm"
644         cmake_d="$cmake_d -D LLVM_STATIC=ON"
645       fi
646     fi
647
648     cmake $cmake_d ../src
649
650     make -j$THREADS && make install
651     make clean
652
653     if [ -d $_inst ]; then
654       rm -f $INST/osl
655       ln -s osl-$OSL_VERSION $INST/osl
656     else
657       ERROR "OpenShadingLanguage-$OSL_VERSION failed to compile, exiting"
658       exit 1
659     fi
660
661     magic_compile_set osl-$OSL_VERSION $osl_magic
662
663     cd $CWD
664   else
665     INFO "Own OpenShadingLanguage-$OSL_VERSION is up to date, nothing to do!"
666     INFO "If you want to force rebuild of this lib, delete the '$_src' and '$_inst' directories."
667   fi
668 }
669
670 compile_FFmpeg() {
671   # To be changed each time we make edits that would modify the compiled result!
672   ffmpeg_magic=3
673
674   _src=$SRC/ffmpeg-$FFMPEG_VERSION
675   _inst=$INST/ffmpeg-$FFMPEG_VERSION
676
677   # Clean install if needed!
678   magic_compile_check ffmpeg-$FFMPEG_VERSION $ffmpeg_magic
679   if [ $? -eq 1 ]; then
680     rm -rf $_inst
681   fi
682
683   if [ ! -d $_inst ]; then
684     INFO "Building ffmpeg-$FFMPEG_VERSION"
685
686     prepare_opt
687
688     if [ ! -d $_src ]; then
689       INFO "Downloading ffmpeg-$FFMPEG_VERSION"
690       wget -c $FFMPEG_SOURCE -O "$_src.tar.bz2"
691
692       INFO "Unpacking ffmpeg-$FFMPEG_VERSION"
693       tar -C $SRC -xf $_src.tar.bz2
694     fi
695
696     cd $_src
697
698     extra=""
699
700     if $VORBIS_USE; then
701       extra="$extra --enable-libvorbis"
702     fi
703
704     if $THEORA_USE; then
705       extra="$extra --enable-libtheora"
706     fi
707
708     # XXX At under Debian, static schro gives problem at blender linking time... :/
709     if $SCHRO_USE && ! $ALL_STATIC; then
710       extra="$extra --enable-libschroedinger"
711     fi
712
713     if $XVID_USE; then
714       extra="$extra --enable-libxvid"
715     fi
716
717     if $X264_USE; then
718       extra="$extra --enable-libx264"
719     fi
720
721     if $VPX_USE; then
722       extra="$extra --enable-libvpx"
723     fi
724
725     if $MP3LAME_USE; then
726       extra="$extra --enable-libmp3lame"
727     fi
728
729     if $OPENJPEG_USE; then
730       extra="$extra --enable-libopenjpeg"
731     fi
732
733     ./configure --cc="gcc -Wl,--as-needed" \
734         --extra-ldflags="-pthread -static-libgcc" \
735         --prefix=$_inst --enable-static \
736         --disable-ffplay --disable-ffserver --disable-doc \
737         --enable-gray \
738         --enable-avfilter --disable-vdpau \
739         --disable-bzlib --disable-libgsm --disable-libspeex \
740         --enable-pthreads --enable-zlib --enable-stripping --enable-runtime-cpudetect \
741         --disable-vaapi  --disable-libfaac --disable-nonfree --enable-gpl \
742         --disable-postproc --disable-x11grab  --disable-librtmp  --disable-libopencore-amrnb \
743         --disable-libopencore-amrwb --disable-libdc1394 --disable-version3  --disable-outdev=sdl \
744         --disable-outdev=alsa --disable-indev=sdl --disable-indev=alsa --disable-indev=jack \
745         --disable-indev=lavfi $extra
746
747     make -j$THREADS && make install
748     make clean
749
750     if [ -d $_inst ]; then
751       rm -f $INST/ffmpeg
752       ln -s ffmpeg-$FFMPEG_VERSION $INST/ffmpeg
753     else
754       ERROR "FFmpeg-$FFMPEG_VERSION failed to compile, exiting"
755       exit 1
756     fi
757
758     magic_compile_set ffmpeg-$FFMPEG_VERSION $ffmpeg_magic
759
760     cd $CWD
761   else
762     INFO "Own ffmpeg-$FFMPEG_VERSION is up to date, nothing to do!"
763     INFO "If you want to force rebuild of this lib, delete the '$_src' and '$_inst' directories."
764   fi
765 }
766
767 get_package_version_DEB() {
768     dpkg-query -W -f '${Version}' $1 | sed -r 's/.*:\s*([0-9]+:)(([0-9]+\.?)+).*/\2/'
769 }
770
771 check_package_DEB() {
772   r=`apt-cache policy $1 | grep -c 'Candidate:'`
773
774   if [ $r -ge 1 ]; then
775     return 0
776   else
777     return 1
778   fi
779 }
780
781 check_package_version_match_DEB() {
782   v=`apt-cache policy $1 | grep 'Candidate:' | sed -r 's/.*:\s*([0-9]+:)(([0-9]+\.?)+).*/\2/'`
783
784   if [ -z "$v" ]; then
785     return 1
786   fi
787
788   version_match $v $2
789   return $?
790 }
791
792 check_package_version_ge_DEB() {
793   v=`apt-cache policy $1 | grep 'Candidate:' | sed -r 's/.*:\s*([0-9]+:)?(([0-9]+\.?)+).*/\2/'`
794
795   if [ -z "$v" ]; then
796     return 1
797   fi
798
799   version_ge $v $2
800   return $?
801 }
802
803 install_DEB() {
804   INFO ""
805   INFO "Installing dependencies for DEB-based distribution"
806   INFO "$COMMON_INFO"
807   INFO ""
808
809   sudo apt-get update
810 # XXX Why in hell? Let's let this stuff to the user's responsability!!!
811 #  sudo apt-get -y upgrade
812
813   # These libs should always be available in debian/ubuntu official repository...
814   OPENJPEG_DEV="libopenjpeg-dev"
815   SCHRO_DEV="libschroedinger-dev"
816   VORBIS_DEV="libvorbis-dev"
817   THEORA_DEV="libtheora-dev"
818
819   sudo apt-get install -y gawk cmake scons gcc g++ libjpeg-dev libpng-dev libtiff-dev \
820     libfreetype6-dev libx11-dev libxi-dev wget libsqlite3-dev libbz2-dev libncurses5-dev \
821     libssl-dev liblzma-dev libreadline-dev $OPENJPEG_DEV libopenexr-dev libopenal-dev \
822     libglew-dev yasm $SCHRO_DEV $THEORA_DEV $VORBIS_DEV libsdl1.2-dev \
823     libfftw3-dev libjack-dev python-dev patch
824
825   OPENJPEG_USE=true
826   SCHRO_USE=true
827   VORBIS_USE=true
828   THEORA_USE=true
829
830   # Grmpf, debian is libxvidcore-dev and ubuntu libxvidcore4-dev!
831   XVID_DEV="libxvidcore-dev"
832   check_package_DEB $XVID_DEV
833   if [ $? -eq 0 ]; then
834     sudo apt-get install -y $XVID_DEV
835     XVID_USE=true
836   else
837     XVID_DEV="libxvidcore4-dev"
838     check_package_DEB $XVID_DEV
839     if [ $? -eq 0 ]; then
840       sudo apt-get install -y $XVID_DEV
841       XVID_USE=true
842     fi
843   fi
844
845   MP3LAME_DEV="libmp3lame-dev"
846   check_package_DEB $MP3LAME_DEV
847   if [ $? -eq 0 ]; then
848     sudo apt-get install -y $MP3LAME_DEV
849     MP3LAME_USE=true
850   fi
851
852   X264_DEV="libx264-dev"
853   check_package_version_ge_DEB $X264_DEV $X264_VERSION_MIN
854   if [ $? -eq 0 ]; then
855     sudo apt-get install -y $X264_DEV
856     X264_USE=true
857   fi
858
859   VPX_DEV="libvpx-dev"
860   check_package_version_ge_DEB $VPX_DEV $VPX_VERSION_MIN
861   if [ $? -eq 0 ]; then
862     sudo apt-get install -y $VPX_DEV
863     VPX_USE=true
864   fi
865
866   check_package_DEB libspnav-dev
867   if [ $? -eq 0 ]; then
868     sudo apt-get install -y libspnav-dev
869   fi
870
871   check_package_DEB python3.3-dev
872   if [ $? -eq 0 ]; then
873     sudo apt-get install -y python3.3-dev
874   else
875     compile_Python
876   fi
877
878   check_package_version_ge_DEB libboost-dev $BOOST_VERSION_MIN
879   if [ $? -eq 0 ]; then
880     sudo apt-get install -y libboost-dev
881
882     boost_version=$(echo `get_package_version_DEB libboost-dev` | sed -r 's/^([0-9]+\.[0-9]+).*/\1/')
883
884     check_package_DEB libboost-locale$boost_version-dev
885     if [ $? -eq 0 ]; then
886       sudo apt-get install -y libboost-locale$boost_version-dev libboost-filesystem$boost_version-dev \
887                               libboost-regex$boost_version-dev libboost-system$boost_version-dev \
888                               libboost-thread$boost_version-dev
889     else
890       compile_Boost
891     fi
892   else
893     compile_Boost
894   fi
895
896   check_package_version_ge_DEB libopencolorio-dev $OCIO_VERSION_MIN
897   if [ $? -eq 0 ]; then
898     sudo apt-get install -y libopencolorio-dev
899   else
900     compile_OCIO
901   fi
902
903   check_package_version_ge_DEB libopenimageio-dev $OIIO_VERSION_MIN
904   if [ $? -eq 0 ]; then
905     sudo apt-get install -y libopenimageio-dev
906   else
907     compile_OIIO
908   fi
909
910   if $BUILD_OSL; then
911     have_llvm=false
912
913     check_package_DEB llvm-$LLVM_VERSION-dev
914     if [ $? -eq 0 ]; then
915       sudo apt-get install -y llvm-$LLVM_VERSION-dev
916       have_llvm=true
917       LLVM_VERSION_FOUND=$LLVM_VERSION
918     else
919       check_package_DEB llvm-$LLVM_VERSION_MIN-dev
920       if [ $? -eq 0 ]; then
921         sudo apt-get install -y llvm-$LLVM_VERSION_MIN-dev
922         have_llvm=true
923         LLVM_VERSION_FOUND=$LLVM_VERSION_MIN
924       fi
925     fi
926
927     if $have_llvm; then
928       sudo apt-get install -y clang flex bison libtbb-dev git
929       # No package currently!
930       compile_OSL
931     fi
932   fi
933
934 #  XXX Debian features libav packages as ffmpeg, those are not really compatible with blender code currently :/
935 #      So for now, always build our own ffmpeg.
936 #  check_package_DEB ffmpeg
937 #  if [ $? -eq 0 ]; then
938 #    sudo apt-get install -y ffmpeg
939 #    ffmpeg_version=`get_package_version_DEB ffmpeg`
940 #    INFO "ffmpeg version: $ffmpeg_version"
941 #    if [ ! -z "$ffmpeg_version" ]; then
942 #      if  dpkg --compare-versions $ffmpeg_version gt 0.7.2; then
943 #        sudo apt-get install -y libavfilter-dev libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev libswscale-dev
944 #      else
945 #        compile_FFmpeg
946 #      fi
947 #    fi
948 #  fi
949   compile_FFmpeg
950 }
951
952 get_package_version_RPM() {
953   yum info $1 | grep Version | tail -n 1 | sed -r 's/.*:\s+(([0-9]+\.?)+).*/\1/'
954 }
955
956 check_package_RPM() {
957   r=`yum info $1 | grep -c 'Summary'`
958
959   if [ $r -ge 1 ]; then
960     return 0
961   else
962     return 1
963   fi
964 }
965
966 check_package_version_match_RPM() {
967   v=`get_package_version_RPM $1`
968
969   if [ -z "$v" ]; then
970     return 1
971   fi
972
973   version_match $v $2
974   return $?
975 }
976
977 check_package_version_ge_RPM() {
978   v=`get_package_version_RPM $1`
979
980   if [ -z "$v" ]; then
981     return 1
982   fi
983
984   version_ge $v $2
985   return $?
986 }
987
988 install_RPM() {
989   INFO ""
990   INFO "Installing dependencies for RPM-based distribution"
991   INFO "$COMMON_INFO"
992   INFO ""
993
994   sudo yum -y update
995
996   # These libs should always be available in debian/ubuntu official repository...
997   OPENJPEG_DEV="openjpeg-devel"
998   SCHRO_DEV="schroedinger-devel"
999   VORBIS_DEV="libvorbis-devel"
1000   THEORA_DEV="libtheora-devel"
1001
1002   sudo yum -y install gawk gcc gcc-c++ cmake scons libpng-devel libtiff-devel \
1003     freetype-devel libX11-devel libXi-devel wget libsqlite3x-devel ncurses-devel \
1004     readline-devel $OPENJPEG_DEV openexr-devel openal-soft-devel \
1005     glew-devel yasm $SCHRO_DEV $THEORA_DEV $VORBIS_DEV SDL-devel \
1006     fftw-devel lame-libs jack-audio-connection-kit-devel libspnav-devel \
1007     libjpeg-devel patch python-devel
1008
1009   OPENJPEG_USE=true
1010   SCHRO_USE=true
1011   VORBIS_USE=true
1012   THEORA_USE=true
1013
1014   X264_DEV="x264-devel"
1015   check_package_version_ge_RPM $X264_DEV $X264_VERSION_MIN
1016   if [ $? -eq 0 ]; then
1017     sudo yum install -y $X264_DEV
1018     X264_USE=true
1019   fi
1020
1021   XVID_DEV="xvidcore-devel"
1022   check_package_RPM $XVID_DEV
1023   if [ $? -eq 0 ]; then
1024     sudo yum install -y $XVID_DEV
1025     XVID_USE=true
1026   fi
1027
1028   VPX_DEV="libvpx-devel"
1029   check_package_version_ge_RPM $VPX_DEV $VPX_VERSION_MIN
1030   if [ $? -eq 0 ]; then
1031     sudo yum install -y $VPX_DEV
1032     VPX_USE=true
1033   fi
1034
1035   MP3LAME_DEV="lame-devel"
1036   check_package_RPM $MP3LAME_DEV
1037   if [ $? -eq 0 ]; then
1038     sudo yum install -y $MP3LAME_DEV
1039     MP3LAME_USE=true
1040   fi
1041
1042   check_package_version_match_RPM python3-devel $PYTHON_VERSION_MIN
1043   if [ $? -eq 0 ]; then
1044     sudo yum install -y python3-devel
1045   else
1046     compile_Python
1047   fi
1048
1049   check_package_version_ge_RPM boost-devel $BOOST_VERSION_MIN
1050   if [ $? -eq 0 ]; then
1051     sudo yum install -y boost-devel
1052   else
1053     compile_Boost
1054   fi
1055
1056   check_package_version_ge_RPM OpenColorIO-devel $OCIO_VERSION_MIN
1057   if [ $? -eq 0 ]; then
1058     sudo yum install -y OpenColorIO-devel
1059   else
1060     compile_OCIO
1061   fi
1062
1063   check_package_version_ge_RPM OpenImageIO-devel $OIIO_VERSION_MIN
1064   if [ $? -eq 0 ]; then
1065     sudo yum install -y OpenImageIO-devel
1066   else
1067     compile_OIIO
1068   fi
1069
1070   if $BUILD_OSL; then
1071     have_llvm=false
1072
1073     check_package_RPM llvm-$LLVM_VERSION-devel
1074     if [ $? -eq 0 ]; then
1075       sudo yum install -y llvm-$LLVM_VERSION-devel
1076       have_llvm=true
1077       LLVM_VERSION_FOUND=$LLVM_VERSION
1078     else
1079       check_package_RPM llvm-$LLVM_VERSION_MIN-devel
1080       if [ $? -eq 0 ]; then
1081         sudo yum install -y llvm-$LLVM_VERSION_MIN-devel
1082         have_llvm=true
1083         LLVM_VERSION_FOUND=$LLVM_VERSION_MIN
1084       else
1085         check_package_version_ge_RPM llvm-devel $LLVM_VERSION_MIN
1086         if [ $? -eq 0 ]; then
1087           sudo yum install -y llvm-devel
1088           have_llvm=true
1089           LLVM_VERSION_FOUND=`get_package_version_RPM llvm-devel`
1090         fi
1091       fi
1092     fi
1093
1094     if $have_llvm; then
1095       sudo yum install -y flex bison clang tbb-devel git
1096       # No package currently!
1097       compile_OSL
1098     fi
1099   fi
1100
1101   # Always for now, not sure which packages should be installed
1102   compile_FFmpeg
1103 }
1104
1105 get_package_version_SUSE() {
1106   zypper info $1 | grep Version | tail -n 1 | sed -r 's/.*:\s+(([0-9]+\.?)+).*/\1/'
1107 }
1108
1109 check_package_SUSE() {
1110   r=`zypper info $1 | grep -c 'Summary'`
1111
1112   if [ $r -ge 1 ]; then
1113     return 0
1114   else
1115     return 1
1116   fi
1117 }
1118
1119 check_package_version_match_SUSE() {
1120   v=`get_package_version_SUSE $1`
1121
1122   if [ -z "$v" ]; then
1123     return 1
1124   fi
1125
1126   version_match $v $2
1127   return $?
1128 }
1129
1130 check_package_version_ge_SUSE() {
1131   v=`get_package_version_SUSE $1`
1132
1133   if [ -z "$v" ]; then
1134     return 1
1135   fi
1136
1137   version_ge $v $2
1138   return $?
1139 }
1140
1141 install_SUSE() {
1142   INFO ""
1143   INFO "Installing dependencies for SuSE-based distribution"
1144   INFO "$COMMON_INFO"
1145   INFO ""
1146
1147   sudo zypper --non-interactive update --auto-agree-with-licenses
1148
1149   # These libs should always be available in debian/ubuntu official repository...
1150   OPENJPEG_DEV="openjpeg-devel"
1151   SCHRO_DEV="schroedinger-devel"
1152   VORBIS_DEV="libvorbis-devel"
1153   THEORA_DEV="libtheora-devel"
1154
1155   sudo zypper --non-interactive install --auto-agree-with-licenses \
1156     gawk gcc gcc-c++ cmake scons libpng12-devel libtiff-devel \
1157     freetype-devel libX11-devel libXi-devel wget sqlite3-devel ncurses-devel \
1158     readline-devel $OPENJPEG_DEV libopenexr-devel openal-soft-devel \
1159     glew-devel yasm $SCHRO_DEV $THEORA_DEV $VORBIS_DEV libSDL-devel \
1160     fftw3-devel libjack-devel libspnav-devel \
1161     libjpeg62-devel patch python-devel
1162
1163   OPENJPEG_USE=true
1164   SCHRO_USE=true
1165   VORBIS_USE=true
1166   THEORA_USE=true
1167
1168   X264_DEV="x264-devel"
1169   check_package_version_ge_SUSE $X264_DEV $X264_VERSION_MIN
1170   if [ $? -eq 0 ]; then
1171     sudo zypper --non-interactive install --auto-agree-with-licenses $X264_DEV
1172     X264_USE=true
1173   fi
1174
1175   XVID_DEV="xvidcore-devel"
1176   check_package_SUSE $XVID_DEV
1177   if [ $? -eq 0 ]; then
1178     sudo zypper --non-interactive install --auto-agree-with-licenses $XVID_DEV
1179     XVID_USE=true
1180   fi
1181
1182   VPX_DEV="libvpx-devel"
1183   check_package_version_ge_SUSE $VPX_DEV $VPX_VERSION_MIN
1184   if [ $? -eq 0 ]; then
1185     sudo zypper --non-interactive install --auto-agree-with-licenses $VPX_DEV
1186     VPX_USE=true
1187   fi
1188
1189   # No mp3 in suse, it seems.
1190   MP3LAME_DEV="lame-devel"
1191   check_package_SUSE $MP3LAME_DEV
1192   if [ $? -eq 0 ]; then
1193     sudo zypper --non-interactive install --auto-agree-with-licenses $MP3LAME_DEV
1194     MP3LAME_USE=true
1195   fi
1196
1197   check_package_version_match_SUSE python3-devel 3.3.
1198   if [ $? -eq 0 ]; then
1199     sudo zypper --non-interactive install --auto-agree-with-licenses python3-devel
1200   else
1201     compile_Python
1202   fi
1203
1204   # No boost_locale currently available, so let's build own boost.
1205   compile_Boost
1206
1207   # No ocio currently available, so let's build own boost.
1208   compile_OCIO
1209
1210   # No oiio currently available, so let's build own boost.
1211   compile_OIIO
1212
1213   if $BUILD_OSL; then
1214     have_llvm=false
1215
1216     # Suse llvm package *_$SUCKS$_* (tm) !!!
1217 #    check_package_version_ge_SUSE llvm-devel $LLVM_VERSION_MIN
1218 #    if [ $? -eq 0 ]; then
1219 #      sudo zypper --non-interactive install --auto-agree-with-licenses llvm-devel
1220 #      have_llvm=true
1221 #      LLVM_VERSION_FOUND=`get_package_version_SUSE llvm-devel`
1222 #    fi
1223
1224     sudo zypper --non-interactive install --auto-agree-with-licenses libffi47-devel
1225     compile_LLVM
1226     have_llvm=true
1227     LLVM_VERSION_FOUND=$LLVM_VERSION
1228
1229     if $have_llvm; then
1230       # XXX No tbb lib!
1231       sudo zypper --non-interactive install --auto-agree-with-licenses flex bison git
1232       # No package currently!
1233       compile_OSL
1234     fi
1235   fi
1236
1237   # No ffmpeg currently available, so let's build own boost.
1238   compile_FFmpeg
1239 }
1240
1241 print_info_ffmpeglink_DEB() {
1242   if $ALL_STATIC; then
1243     dpkg -L $_packages | grep -e ".*\/lib[^\/]\+\.a" | gawk '{ printf(nlines ? "'"$_ffmpeg_list_sep"'%s" : "%s", $0); nlines++ }'
1244   else
1245     dpkg -L $_packages | grep -e ".*\/lib[^\/]\+\.so" | gawk '{ printf(nlines ? "'"$_ffmpeg_list_sep"'%s" : "%s", gensub(/.*lib([^\/]+)\.so/, "\\1", "g", $0)); nlines++ }'
1246   fi
1247 }
1248
1249 print_info_ffmpeglink_RPM() {
1250   if $ALL_STATIC; then
1251     rpm -ql $_packages | grep -e ".*\/lib[^\/]\+\.a" | gawk '{ printf(nlines ? "'"$_ffmpeg_list_sep"'%s" : "%s", $0); nlines++ }'
1252   else
1253     rpm -ql $_packages | grep -e ".*\/lib[^\/]\+\.so" | gawk '{ printf(nlines ? "'"$_ffmpeg_list_sep"'%s" : "%s", gensub(/.*lib([^\/]+)\.so/, "\\1", "g", $0)); nlines++ }'
1254   fi
1255 }
1256
1257 print_info_ffmpeglink_SUSE() {
1258   if $ALL_STATIC; then
1259     rpm -ql $_packages | grep -e ".*\/lib[^\/]\+\.a" | gawk '{ printf(nlines ? "'"$_ffmpeg_list_sep"'%s" : "%s", $0); nlines++ }'
1260   else
1261     rpm -ql $_packages | grep -e ".*\/lib[^\/]\+\.so" | gawk '{ printf(nlines ? "'"$_ffmpeg_list_sep"'%s" : "%s", gensub(/.*lib([^\/]+)\.so/, "\\1", "g", $0)); nlines++ }'
1262   fi
1263 }
1264
1265 print_info_ffmpeglink() {
1266   # This func must only print a ';'-separated list of libs...
1267   if [ -z "$DISTRO" ]; then
1268     ERROR "Failed to detect distribution type"
1269     exit 1
1270   fi
1271
1272   # Create list of packages from which to get libs names...
1273   _packages=""
1274
1275   if $THEORA_USE; then
1276     _packages="$_packages $THEORA_DEV"
1277   fi
1278
1279   if $VORBIS_USE; then
1280     _packages="$_packages $VORBIS_DEV"
1281   fi
1282
1283   if $XVID_USE; then
1284     _packages="$_packages $XVID_DEV"
1285   fi
1286
1287   if $VPX_USE; then
1288     _packages="$_packages $VPX_DEV"
1289   fi
1290
1291   if $MP3LAME_USE; then
1292     _packages="$_packages $MP3LAME_DEV"
1293   fi
1294
1295   if $X264_USE; then
1296     _packages="$_packages $X264_DEV"
1297   fi
1298
1299   if $OPENJPEG_USE; then
1300     _packages="$_packages $OPENJPEG_DEV"
1301   fi
1302
1303   # XXX At least under Debian, static schro give problem at blender linking time... :/
1304   if $SCHRO_USE && ! $ALL_STATIC; then
1305     _packages="$_packages $SCHRO_DEV"
1306   fi
1307
1308   if [ "$DISTRO" = "DEB" ]; then
1309     print_info_ffmpeglink_DEB
1310   elif [ "$DISTRO" = "RPM" ]; then
1311     print_info_ffmpeglink_RPM
1312   elif [ "$DISTRO" = "SUSE" ]; then
1313     print_info_ffmpeglink_SUSE
1314   # XXX TODO!
1315   else INFO "<Could not determine additional link libraries needed for ffmpeg, replace this by valid list of libs...>"
1316   fi
1317 }
1318
1319 print_info() {
1320   INFO ""
1321   INFO "If you're using CMake add this to your configuration flags:"
1322
1323   if $ALL_STATIC; then
1324     INFO "  -D WITH_STATIC_LIBS=ON"
1325   fi
1326
1327   if [ -d $INST/boost ]; then
1328     INFO "  -D BOOST_ROOT=$INST/boost"
1329     INFO "  -D Boost_NO_SYSTEM_PATHS=ON"
1330   elif $ALL_STATIC; then
1331     INFO "  -D Boost_USE_ICU=ON"
1332   fi
1333
1334   if [ -d $INST/osl ]; then
1335     INFO "  -D CYCLES_OSL=$INST/osl"
1336     INFO "  -D WITH_CYCLES_OSL=ON"
1337     INFO "  -D LLVM_VERSION=$LLVM_VERSION_FOUND"
1338     if [ -d $INST/llvm ]; then
1339       cmake_d="$cmake_d -D LLVM_DIRECTORY=$INST/llvm"
1340       cmake_d="$cmake_d -D LLVM_STATIC=ON"
1341     fi
1342   fi
1343
1344   if [ -d $INST/ffmpeg ]; then
1345     INFO "  -D WITH_CODEC_FFMPEG=ON"
1346     INFO "  -D FFMPEG=$INST/ffmpeg"
1347     INFO "  -D FFMPEG_LIBRARIES='avformat;avcodec;avutil;avdevice;swscale;rt;`print_info_ffmpeglink`'"
1348   fi
1349
1350   INFO ""
1351   INFO "If you're using SCons add this to your user-config:"
1352
1353   if [ -d $INST/python-3.3 ]; then
1354     INFO "BF_PYTHON = '$INST/python-3.3'"
1355     INFO "BF_PYTHON_ABI_FLAGS = 'm'"
1356   fi
1357
1358   if [ -d $INST/ocio ]; then
1359     INFO "BF_OCIO = '$INST/ocio'"
1360   fi
1361
1362   if [ -d $INST/oiio ]; then
1363     INFO "BF_OIIO = '$INST/oiio'"
1364   fi
1365
1366   if [ -d $INST/boost ]; then
1367     INFO "BF_BOOST = '$INST/boost'"
1368   fi
1369
1370   if [ -d $INST/ffmpeg ]; then
1371     INFO "BF_FFMPEG = '$INST/ffmpeg'"
1372     _ffmpeg_list_sep=" "
1373     INFO "BF_FFMPEG_LIB = 'avformat avcodec swscale avutil avdevice `print_info_ffmpeglink`'"
1374   fi
1375
1376   INFO ""
1377   INFO ""
1378   INFO "WARNING: If this script had to build boost into $INST, and you are dynamically linking "
1379   INFO "         blender against it, you will have to run those commands as root user:"
1380   INFO ""
1381   INFO "    echo \"$INST/boost/lib\" > /etc/ld.so.conf.d/boost.conf"
1382   INFO "    ldconfig"
1383   INFO ""
1384 }
1385
1386 # Detect distributive type used on this machine
1387 detect_distro
1388
1389 if [ -z "$DISTRO" ]; then
1390   ERROR "Failed to detect distribution type"
1391   exit 1
1392 elif [ "$DISTRO" = "DEB" ]; then
1393   install_DEB
1394 elif [ "$DISTRO" = "RPM" ]; then
1395   install_RPM
1396 elif [ "$DISTRO" = "SUSE" ]; then
1397   install_SUSE
1398 fi
1399
1400 print_info
1401
1402 # Switch back to user language.
1403 LANG=LANG_BACK
1404 export LANG