Various "user-friendly" edits, mostly adding command-line args parsing... So now you can try to build OSL with just install_deps.sh --with-osl

This commit is contained in:
Bastien Montagne
2012-12-01 18:07:45 +00:00
parent c324895136
commit 19e9571b1b

View File

@@ -1,13 +1,20 @@
#!/bin/bash #!/bin/bash
# Parse command line!
ARGS=$( \
getopt \
-o s:i:t:h \
--long source:,install:,threads:,help,with-osl,all-static,force-python,force-boost,\
force-ocio,force-oiio,force-llvm,force-osl,force-ffmpeg \
-- "$@" \
)
DISTRO="" DISTRO=""
SRC="$HOME/src/blender-deps" SRC="$HOME/src/blender-deps"
INST="/opt/lib" INST="/opt/lib"
CWD=$PWD CWD=$PWD
# OSL is horror for manual building even # Do not yet enable osl, use --build-osl option to try it.
# i would want it to be setteled for manual build first,
# and only then do it automatically
BUILD_OSL=false BUILD_OSL=false
# Try to link everything statically. Use this to produce protable versions of blender. # Try to link everything statically. Use this to produce protable versions of blender.
@@ -18,45 +25,52 @@ if [ -z "$THREADS" ]; then
THREADS=1 THREADS=1
fi fi
COMMON_INFO="Source code of dependencies needed to be compiled will be downloaded and extracted into '$SRC'. COMMON_INFO="\"Source code of dependencies needed to be compiled will be downloaded and extracted into '\$SRC'.
Built libs of dependencies needed to be compiled will be installed into '$INST'. Built libs of dependencies needed to be compiled will be installed into '\$INST'.
Please edit \$SRC and/or \$INST variables at the begining of this script if you want to use other paths! Please edit \\\$SRC and/or \\\$INST variables at the begining of this script,
or use --source/--install options, if you want to use other paths!
Number of threads for building: $THREADS.
Building OSL: $BUILD_OSL (edit \$BUILD_OSL var to change this).
All static linking: $ALL_STATIC (edit \$ALL_STATIC var to change this)."
Number of threads for building: \$THREADS (automatically detected, use --threads=<nbr> to override it).
Building OSL: \$BUILD_OSL (use --with-osl option to enable it).
All static linking: \$ALL_STATIC (use --all-static option to enable it).\""
PYTHON_VERSION="3.3.0" PYTHON_VERSION="3.3.0"
PYTHON_VERSION_MIN="3.3" PYTHON_VERSION_MIN="3.3"
PYTHON_SOURCE="http://python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tar.bz2" PYTHON_SOURCE="http://python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tar.bz2"
PYTHON_FORCE_REBUILD=false
BOOST_VERSION="1.51.0" BOOST_VERSION="1.51.0"
_boost_version_nodots=`echo "$BOOST_VERSION" | sed -r 's/\./_/g'` _boost_version_nodots=`echo "$BOOST_VERSION" | sed -r 's/\./_/g'`
BOOST_SOURCE="http://sourceforge.net/projects/boost/files/boost/$BOOST_VERSION/boost_$_boost_version_nodots.tar.bz2/download" BOOST_SOURCE="http://sourceforge.net/projects/boost/files/boost/$BOOST_VERSION/boost_$_boost_version_nodots.tar.bz2/download"
BOOST_VERSION_MIN="1.49" BOOST_VERSION_MIN="1.49"
BOOST_FORCE_REBUILD=false
OCIO_VERSION="1.0.7" OCIO_VERSION="1.0.7"
OCIO_SOURCE="https://github.com/imageworks/OpenColorIO/tarball/v$OCIO_VERSION" OCIO_SOURCE="https://github.com/imageworks/OpenColorIO/tarball/v$OCIO_VERSION"
OCIO_VERSION_MIN="1.0" OCIO_VERSION_MIN="1.0"
OCIO_FORCE_REBUILD=false
OIIO_VERSION="1.1.1" OIIO_VERSION="1.1.1"
OIIO_SOURCE="https://github.com/OpenImageIO/oiio/tarball/Release-$OIIO_VERSION" OIIO_SOURCE="https://github.com/OpenImageIO/oiio/tarball/Release-$OIIO_VERSION"
OIIO_VERSION_MIN="1.1" OIIO_VERSION_MIN="1.1"
OIIO_FORCE_REBUILD=false
LLVM_VERSION="3.1" LLVM_VERSION="3.1"
LLVM_VERSION_MIN="3.0" LLVM_VERSION_MIN="3.0"
LLVM_VERSION_FOUND="" LLVM_VERSION_FOUND=""
LLVM_SOURCE="http://llvm.org/releases/$LLVM_VERSION/llvm-$LLVM_VERSION.src.tar.gz" LLVM_SOURCE="http://llvm.org/releases/$LLVM_VERSION/llvm-$LLVM_VERSION.src.tar.gz"
LLVM_CLANG_SOURCE="http://llvm.org/releases/$LLVM_VERSION/clang-$LLVM_VERSION.src.tar.gz" LLVM_CLANG_SOURCE="http://llvm.org/releases/$LLVM_VERSION/clang-$LLVM_VERSION.src.tar.gz"
LLVM_FORCE_REBUILD=false
# OSL needs to be compiled for now! # OSL needs to be compiled for now!
OSL_VERSION="1.2.0" OSL_VERSION="1.2.0"
OSL_SOURCE="https://github.com/mont29/OpenShadingLanguage/archive/blender-fixes.tar.gz" OSL_SOURCE="https://github.com/mont29/OpenShadingLanguage/archive/blender-fixes.tar.gz"
OSL_FORCE_REBUILD=false
FFMPEG_VERSION="1.0" FFMPEG_VERSION="1.0"
FFMPEG_SOURCE="http://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2" FFMPEG_SOURCE="http://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2"
FFMPEG_VERSION_MIN="0.7.6" FFMPEG_VERSION_MIN="0.7.6"
FFMPEG_FORCE_REBUILD=false
_ffmpeg_list_sep=";" _ffmpeg_list_sep=";"
# FFMPEG optional libs. # FFMPEG optional libs.
@@ -84,14 +98,86 @@ LANG_BACK=$LANG
LANG="" LANG=""
export LANG export LANG
_echo() {
if [ "X$1" = "X-n" ]; then
shift; printf "%s" "$@"
else
printf "%s\n" "$@"
fi
}
ERROR() { ERROR() {
echo "${@}" _echo "$@"
} }
INFO() { INFO() {
echo "${@}" _echo "$@"
} }
# Finish parsing the commandline args.
eval set -- "$ARGS"
while true; do
case $1 in
-s|--source)
SRC="$2"; shift; shift; continue
;;
-i|--install)
INST="$2"; shift; shift; continue
;;
-t|--threads)
THREADS="$2"; shift; shift; continue
;;
-h|--help)
INFO ""
INFO "USAGE:"
INFO ""
INFO "`eval _echo "$COMMON_INFO"`"
INFO ""
exit 0
;;
--with-osl)
BUILD_OSL=true; shift; continue
;;
--all-static)
ALL_STATIC=true; shift; continue
;;
--force-python)
PYTHON_FORCE_REBUILD=true; shift; continue
;;
--force-boost)
BOOST_FORCE_REBUILD=true; shift; continue
;;
--force-ocio)
OCIO_FORCE_REBUILD=true; shift; continue
;;
--force-oiio)
OIIO_FORCE_REBUILD=true; shift; continue
;;
--force-llvm)
LLVM_FORCE_REBUILD=true; shift; continue
;;
--force-osl)
OSL_FORCE_REBUILD=true; shift; continue
;;
--force-ffmpeg)
FFMPEG_FORCE_REBUILD=true; shift; continue
;;
--)
# no more arguments to parse
break
;;
*)
INFO ""
INFO "Wrong parameter! Usage:"
INFO ""
INFO "`eval _echo "$COMMON_INFO"`"
INFO ""
exit 1
;;
esac
done
# Return 0 if $1 = $2 (i.e. 1.01.0 = 1.1, but 1.1.1 != 1.1), else 1. # Return 0 if $1 = $2 (i.e. 1.01.0 = 1.1, but 1.1.1 != 1.1), else 1.
# $1 and $2 should be version numbers made of numbers only. # $1 and $2 should be version numbers made of numbers only.
version_eq() { version_eq() {
@@ -139,7 +225,7 @@ version_eq() {
# $1 and $2 should be version numbers made of numbers only. # $1 and $2 should be version numbers made of numbers only.
version_ge() { version_ge() {
version_eq $1 $2 version_eq $1 $2
if [ $? -eq 1 -a $(echo -e "$1\n$2" | sort --version-sort | head --lines=1) = "$1" ]; then if [ $? -eq 1 -a $(_echo "$1\n$2" | sort --version-sort | head --lines=1) = "$1" ]; then
return 1 return 1
else else
return 0 return 0
@@ -221,7 +307,7 @@ compile_Python() {
# Clean install if needed! # Clean install if needed!
magic_compile_check python-$PYTHON_VERSION $py_magic magic_compile_check python-$PYTHON_VERSION $py_magic
if [ $? -eq 1 ]; then if [ $? -eq 1 -o $PYTHON_FORCE_REBUILD == true ]; then
rm -rf $_inst rm -rf $_inst
fi fi
@@ -258,9 +344,10 @@ compile_Python() {
magic_compile_set python-$PYTHON_VERSION $py_magic magic_compile_set python-$PYTHON_VERSION $py_magic
cd $CWD cd $CWD
INFO "Done compiling Python-$PYTHON_VERSION!"
else else
INFO "Own Python-$PYTHON_VERSION is up to date, nothing to do!" INFO "Own Python-$PYTHON_VERSION is up to date, nothing to do!"
INFO "If you want to force rebuild of this lib, delete the '$_src' and '$_inst' directories." INFO "If you want to force rebuild of this lib, use the --force-python option."
fi fi
} }
@@ -273,7 +360,7 @@ compile_Boost() {
# Clean install if needed! # Clean install if needed!
magic_compile_check boost-$BOOST_VERSION $boost_magic magic_compile_check boost-$BOOST_VERSION $boost_magic
if [ $? -eq 1 ]; then if [ $? -eq 1 -o $BOOST_FORCE_REBUILD == true ]; then
rm -rf $_inst rm -rf $_inst
fi fi
@@ -307,10 +394,15 @@ compile_Boost() {
magic_compile_set boost-$BOOST_VERSION $boost_magic magic_compile_set boost-$BOOST_VERSION $boost_magic
# Rebuild dependecies as well!
OIIO_FORCE_REBUILD=true
OSL_FORCE_REBUILD=true
cd $CWD cd $CWD
INFO "Done compiling Boost-$BOOST_VERSION!"
else else
INFO "Own Boost-$BOOST_VERSION is up to date, nothing to do!" INFO "Own Boost-$BOOST_VERSION is up to date, nothing to do!"
INFO "If you want to force rebuild of this lib, delete the '$_src' and '$_inst' directories." INFO "If you want to force rebuild of this lib, use the --force-boost option."
fi fi
} }
@@ -323,7 +415,7 @@ compile_OCIO() {
# Clean install if needed! # Clean install if needed!
magic_compile_check ocio-$OCIO_VERSION $ocio_magic magic_compile_check ocio-$OCIO_VERSION $ocio_magic
if [ $? -eq 1 ]; then if [ $? -eq 1 -o $OCIO_FORCE_REBUILD == true ]; then
rm -rf $_inst rm -rf $_inst
fi fi
@@ -387,9 +479,10 @@ compile_OCIO() {
magic_compile_set ocio-$OCIO_VERSION $ocio_magic magic_compile_set ocio-$OCIO_VERSION $ocio_magic
cd $CWD cd $CWD
INFO "Done compiling OpenColorIO-$OCIO_VERSION!"
else else
INFO "Own OpenColorIO-$OCIO_VERSION is up to date, nothing to do!" INFO "Own OpenColorIO-$OCIO_VERSION is up to date, nothing to do!"
INFO "If you want to force rebuild of this lib, delete the '$_src' and '$_inst' directories." INFO "If you want to force rebuild of this lib, use the --force-ocio option."
fi fi
} }
@@ -402,7 +495,7 @@ compile_OIIO() {
# Clean install if needed! # Clean install if needed!
magic_compile_check oiio-$OIIO_VERSION $oiio_magic magic_compile_check oiio-$OIIO_VERSION $oiio_magic
if [ $? -eq 1 ]; then if [ $? -eq 1 -o $OIIO_FORCE_REBUILD == true ]; then
rm -rf $_inst rm -rf $_inst
fi fi
@@ -495,10 +588,14 @@ EOF
magic_compile_set oiio-$OIIO_VERSION $oiio_magic magic_compile_set oiio-$OIIO_VERSION $oiio_magic
# Rebuild dependecies as well!
OSL_FORCE_REBUILD=true
cd $CWD cd $CWD
INFO "Done compiling OpenImageIO-$OIIO_VERSION!"
else else
INFO "Own OpenImageIO-$OIIO_VERSION is up to date, nothing to do!" INFO "Own OpenImageIO-$OIIO_VERSION is up to date, nothing to do!"
INFO "If you want to force rebuild of this lib, delete the '$_src' and '$_inst' directories." INFO "If you want to force rebuild of this lib, use the --force-oiio option."
fi fi
} }
@@ -512,7 +609,7 @@ compile_LLVM() {
# Clean install if needed! # Clean install if needed!
magic_compile_check llvm-$LLVM_VERSION $llvm_magic magic_compile_check llvm-$LLVM_VERSION $llvm_magic
if [ $? -eq 1 ]; then if [ $? -eq 1 -o $LLVM_FORCE_REBUILD == true ]; then
rm -rf $_inst rm -rf $_inst
rm -rf $_inst_clang rm -rf $_inst_clang
fi fi
@@ -588,10 +685,14 @@ EOF
magic_compile_set llvm-$LLVM_VERSION $llvm_magic magic_compile_set llvm-$LLVM_VERSION $llvm_magic
# Rebuild dependecies as well!
OSL_FORCE_REBUILD=true
cd $CWD cd $CWD
INFO "Done compiling LLVM-$LLVM_VERSION (CLANG included)!"
else else
INFO "Own LLVM-$LLVM_VERSION (CLANG included) is up to date, nothing to do!" INFO "Own LLVM-$LLVM_VERSION (CLANG included) is up to date, nothing to do!"
INFO "If you want to force rebuild of this lib, delete the '$_src' and '$_inst' directories." INFO "If you want to force rebuild of this lib, use the --force-llvm option."
fi fi
} }
@@ -604,7 +705,7 @@ compile_OSL() {
# Clean install if needed! # Clean install if needed!
magic_compile_check osl-$OSL_VERSION $osl_magic magic_compile_check osl-$OSL_VERSION $osl_magic
if [ $? -eq 1 ]; then if [ $? -eq 1 -o $OSL_FORCE_REBUILD == true ]; then
rm -rf $_inst rm -rf $_inst
fi fi
@@ -679,9 +780,10 @@ compile_OSL() {
magic_compile_set osl-$OSL_VERSION $osl_magic magic_compile_set osl-$OSL_VERSION $osl_magic
cd $CWD cd $CWD
INFO "Done compiling OpenShadingLanguage-$OSL_VERSION!"
else else
INFO "Own OpenShadingLanguage-$OSL_VERSION is up to date, nothing to do!" INFO "Own OpenShadingLanguage-$OSL_VERSION is up to date, nothing to do!"
INFO "If you want to force rebuild of this lib, delete the '$_src' and '$_inst' directories." INFO "If you want to force rebuild of this lib, use the --force-osl option."
fi fi
} }
@@ -694,7 +796,7 @@ compile_FFmpeg() {
# Clean install if needed! # Clean install if needed!
magic_compile_check ffmpeg-$FFMPEG_VERSION $ffmpeg_magic magic_compile_check ffmpeg-$FFMPEG_VERSION $ffmpeg_magic
if [ $? -eq 1 ]; then if [ $? -eq 1 -o $FFMPEG_FORCE_REBUILD == true ]; then
rm -rf $_inst rm -rf $_inst
fi fi
@@ -777,9 +879,10 @@ compile_FFmpeg() {
magic_compile_set ffmpeg-$FFMPEG_VERSION $ffmpeg_magic magic_compile_set ffmpeg-$FFMPEG_VERSION $ffmpeg_magic
cd $CWD cd $CWD
INFO "Done compiling ffmpeg-$FFMPEG_VERSION!"
else else
INFO "Own ffmpeg-$FFMPEG_VERSION is up to date, nothing to do!" INFO "Own ffmpeg-$FFMPEG_VERSION is up to date, nothing to do!"
INFO "If you want to force rebuild of this lib, delete the '$_src' and '$_inst' directories." INFO "If you want to force rebuild of this lib, use the --force-ffmpeg option."
fi fi
} }
@@ -822,7 +925,8 @@ check_package_version_ge_DEB() {
install_DEB() { install_DEB() {
INFO "" INFO ""
INFO "Installing dependencies for DEB-based distribution" INFO "Installing dependencies for DEB-based distribution"
INFO "$COMMON_INFO" INFO ""
INFO "`eval _echo "$COMMON_INFO"`"
INFO "" INFO ""
if [ ! -z "`cat /etc/debian_version | grep ^6`" ]; then if [ ! -z "`cat /etc/debian_version | grep ^6`" ]; then
@@ -845,6 +949,7 @@ install_DEB() {
INFO "Hit Enter to continue running the script, or hit Ctrl-C to abort the script" INFO "Hit Enter to continue running the script, or hit Ctrl-C to abort the script"
read read
INFO ""
fi fi
fi fi
@@ -858,6 +963,7 @@ install_DEB() {
VORBIS_DEV="libvorbis-dev" VORBIS_DEV="libvorbis-dev"
THEORA_DEV="libtheora-dev" THEORA_DEV="libtheora-dev"
INFO ""
sudo apt-get install -y gawk cmake scons gcc g++ libjpeg-dev libpng-dev libtiff-dev \ sudo apt-get install -y gawk cmake scons gcc g++ libjpeg-dev libpng-dev libtiff-dev \
libfreetype6-dev libx11-dev libxi-dev wget libsqlite3-dev libbz2-dev libncurses5-dev \ libfreetype6-dev libx11-dev libxi-dev wget libsqlite3-dev libbz2-dev libncurses5-dev \
libssl-dev liblzma-dev libreadline-dev $OPENJPEG_DEV libopenexr-dev libopenal-dev \ libssl-dev liblzma-dev libreadline-dev $OPENJPEG_DEV libopenexr-dev libopenal-dev \
@@ -869,6 +975,7 @@ install_DEB() {
VORBIS_USE=true VORBIS_USE=true
THEORA_USE=true THEORA_USE=true
INFO ""
# Grmpf, debian is libxvidcore-dev and ubuntu libxvidcore4-dev! # Grmpf, debian is libxvidcore-dev and ubuntu libxvidcore4-dev!
XVID_DEV="libxvidcore-dev" XVID_DEV="libxvidcore-dev"
check_package_DEB $XVID_DEV check_package_DEB $XVID_DEV
@@ -884,6 +991,7 @@ install_DEB() {
fi fi
fi fi
INFO ""
MP3LAME_DEV="libmp3lame-dev" MP3LAME_DEV="libmp3lame-dev"
check_package_DEB $MP3LAME_DEV check_package_DEB $MP3LAME_DEV
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
@@ -891,6 +999,7 @@ install_DEB() {
MP3LAME_USE=true MP3LAME_USE=true
fi fi
INFO ""
X264_DEV="libx264-dev" X264_DEV="libx264-dev"
check_package_version_ge_DEB $X264_DEV $X264_VERSION_MIN check_package_version_ge_DEB $X264_DEV $X264_VERSION_MIN
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
@@ -898,6 +1007,7 @@ install_DEB() {
X264_USE=true X264_USE=true
fi fi
INFO ""
VPX_DEV="libvpx-dev" VPX_DEV="libvpx-dev"
check_package_version_ge_DEB $VPX_DEV $VPX_VERSION_MIN check_package_version_ge_DEB $VPX_DEV $VPX_VERSION_MIN
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
@@ -905,11 +1015,13 @@ install_DEB() {
VPX_USE=true VPX_USE=true
fi fi
INFO ""
check_package_DEB libspnav-dev check_package_DEB libspnav-dev
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
sudo apt-get install -y libspnav-dev sudo apt-get install -y libspnav-dev
fi fi
INFO ""
check_package_DEB python3.3-dev check_package_DEB python3.3-dev
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
sudo apt-get install -y python3.3-dev sudo apt-get install -y python3.3-dev
@@ -917,6 +1029,7 @@ install_DEB() {
compile_Python compile_Python
fi fi
INFO ""
check_package_version_ge_DEB libboost-dev $BOOST_VERSION_MIN check_package_version_ge_DEB libboost-dev $BOOST_VERSION_MIN
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
sudo apt-get install -y libboost-dev sudo apt-get install -y libboost-dev
@@ -935,6 +1048,7 @@ install_DEB() {
compile_Boost compile_Boost
fi fi
INFO ""
check_package_version_ge_DEB libopencolorio-dev $OCIO_VERSION_MIN check_package_version_ge_DEB libopencolorio-dev $OCIO_VERSION_MIN
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
sudo apt-get install -y libopencolorio-dev sudo apt-get install -y libopencolorio-dev
@@ -942,6 +1056,7 @@ install_DEB() {
compile_OCIO compile_OCIO
fi fi
INFO ""
check_package_version_ge_DEB libopenimageio-dev $OIIO_VERSION_MIN check_package_version_ge_DEB libopenimageio-dev $OIIO_VERSION_MIN
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
sudo apt-get install -y libopenimageio-dev sudo apt-get install -y libopenimageio-dev
@@ -952,6 +1067,7 @@ install_DEB() {
if $BUILD_OSL; then if $BUILD_OSL; then
have_llvm=false have_llvm=false
INFO ""
check_package_DEB llvm-$LLVM_VERSION-dev check_package_DEB llvm-$LLVM_VERSION-dev
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
sudo apt-get install -y llvm-$LLVM_VERSION-dev sudo apt-get install -y llvm-$LLVM_VERSION-dev
@@ -963,12 +1079,20 @@ install_DEB() {
sudo apt-get install -y llvm-$LLVM_VERSION_MIN-dev sudo apt-get install -y llvm-$LLVM_VERSION_MIN-dev
have_llvm=true have_llvm=true
LLVM_VERSION_FOUND=$LLVM_VERSION_MIN LLVM_VERSION_FOUND=$LLVM_VERSION_MIN
else
sudo apt-get install -y libffi-dev
INFO ""
compile_LLVM
have_llvm=true
LLVM_VERSION_FOUND=$LLVM_VERSION
fi fi
fi fi
if $have_llvm; then if $have_llvm; then
INFO ""
sudo apt-get install -y clang flex bison libtbb-dev git sudo apt-get install -y clang flex bison libtbb-dev git
# No package currently! # No package currently!
INFO ""
compile_OSL compile_OSL
fi fi
fi fi
@@ -988,6 +1112,7 @@ install_DEB() {
# fi # fi
# fi # fi
# fi # fi
INFO ""
compile_FFmpeg compile_FFmpeg
} }
@@ -1030,7 +1155,8 @@ check_package_version_ge_RPM() {
install_RPM() { install_RPM() {
INFO "" INFO ""
INFO "Installing dependencies for RPM-based distribution" INFO "Installing dependencies for RPM-based distribution"
INFO "$COMMON_INFO" INFO ""
INFO "`eval _echo "$COMMON_INFO"`"
INFO "" INFO ""
sudo yum -y update sudo yum -y update
@@ -1041,6 +1167,7 @@ install_RPM() {
VORBIS_DEV="libvorbis-devel" VORBIS_DEV="libvorbis-devel"
THEORA_DEV="libtheora-devel" THEORA_DEV="libtheora-devel"
INFO ""
sudo yum -y install gawk gcc gcc-c++ cmake scons libpng-devel libtiff-devel \ sudo yum -y install gawk gcc gcc-c++ cmake scons libpng-devel libtiff-devel \
freetype-devel libX11-devel libXi-devel wget libsqlite3x-devel ncurses-devel \ freetype-devel libX11-devel libXi-devel wget libsqlite3x-devel ncurses-devel \
readline-devel $OPENJPEG_DEV openexr-devel openal-soft-devel \ readline-devel $OPENJPEG_DEV openexr-devel openal-soft-devel \
@@ -1053,6 +1180,7 @@ install_RPM() {
VORBIS_USE=true VORBIS_USE=true
THEORA_USE=true THEORA_USE=true
INFO ""
X264_DEV="x264-devel" X264_DEV="x264-devel"
check_package_version_ge_RPM $X264_DEV $X264_VERSION_MIN check_package_version_ge_RPM $X264_DEV $X264_VERSION_MIN
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
@@ -1060,6 +1188,7 @@ install_RPM() {
X264_USE=true X264_USE=true
fi fi
INFO ""
XVID_DEV="xvidcore-devel" XVID_DEV="xvidcore-devel"
check_package_RPM $XVID_DEV check_package_RPM $XVID_DEV
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
@@ -1067,6 +1196,7 @@ install_RPM() {
XVID_USE=true XVID_USE=true
fi fi
INFO ""
VPX_DEV="libvpx-devel" VPX_DEV="libvpx-devel"
check_package_version_ge_RPM $VPX_DEV $VPX_VERSION_MIN check_package_version_ge_RPM $VPX_DEV $VPX_VERSION_MIN
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
@@ -1074,6 +1204,7 @@ install_RPM() {
VPX_USE=true VPX_USE=true
fi fi
INFO ""
MP3LAME_DEV="lame-devel" MP3LAME_DEV="lame-devel"
check_package_RPM $MP3LAME_DEV check_package_RPM $MP3LAME_DEV
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
@@ -1081,6 +1212,7 @@ install_RPM() {
MP3LAME_USE=true MP3LAME_USE=true
fi fi
INFO ""
check_package_version_match_RPM python3-devel $PYTHON_VERSION_MIN check_package_version_match_RPM python3-devel $PYTHON_VERSION_MIN
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
sudo yum install -y python3-devel sudo yum install -y python3-devel
@@ -1088,6 +1220,7 @@ install_RPM() {
compile_Python compile_Python
fi fi
INFO ""
check_package_version_ge_RPM boost-devel $BOOST_VERSION_MIN check_package_version_ge_RPM boost-devel $BOOST_VERSION_MIN
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
sudo yum install -y boost-devel sudo yum install -y boost-devel
@@ -1095,6 +1228,7 @@ install_RPM() {
compile_Boost compile_Boost
fi fi
INFO ""
check_package_version_ge_RPM OpenColorIO-devel $OCIO_VERSION_MIN check_package_version_ge_RPM OpenColorIO-devel $OCIO_VERSION_MIN
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
sudo yum install -y OpenColorIO-devel sudo yum install -y OpenColorIO-devel
@@ -1102,6 +1236,7 @@ install_RPM() {
compile_OCIO compile_OCIO
fi fi
INFO ""
check_package_version_ge_RPM OpenImageIO-devel $OIIO_VERSION_MIN check_package_version_ge_RPM OpenImageIO-devel $OIIO_VERSION_MIN
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
sudo yum install -y OpenImageIO-devel sudo yum install -y OpenImageIO-devel
@@ -1112,6 +1247,7 @@ install_RPM() {
if $BUILD_OSL; then if $BUILD_OSL; then
have_llvm=false have_llvm=false
INFO ""
check_package_RPM llvm-$LLVM_VERSION-devel check_package_RPM llvm-$LLVM_VERSION-devel
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
sudo yum install -y llvm-$LLVM_VERSION-devel sudo yum install -y llvm-$LLVM_VERSION-devel
@@ -1134,19 +1270,23 @@ install_RPM() {
sudo yum install -y libffi-devel sudo yum install -y libffi-devel
# XXX Stupid fedora puts ffi header into a darn stupid dir! # XXX Stupid fedora puts ffi header into a darn stupid dir!
_FFI_INCLUDE_DIR=`rpm -ql libffi-devel | grep -e ".*/ffi.h" | sed -r 's/(.*)\/ffi.h/\1/'` _FFI_INCLUDE_DIR=`rpm -ql libffi-devel | grep -e ".*/ffi.h" | sed -r 's/(.*)\/ffi.h/\1/'`
INFO ""
compile_LLVM compile_LLVM
have_llvm=true have_llvm=true
LLVM_VERSION_FOUND=$LLVM_VERSION LLVM_VERSION_FOUND=$LLVM_VERSION
fi fi
if $have_llvm; then if $have_llvm; then
INFO ""
sudo yum install -y flex bison clang tbb-devel git sudo yum install -y flex bison clang tbb-devel git
# No package currently! # No package currently!
INFO ""
compile_OSL compile_OSL
fi fi
fi fi
# Always for now, not sure which packages should be installed # Always for now, not sure which packages should be installed
INFO ""
compile_FFmpeg compile_FFmpeg
} }
@@ -1189,7 +1329,8 @@ check_package_version_ge_SUSE() {
install_SUSE() { install_SUSE() {
INFO "" INFO ""
INFO "Installing dependencies for SuSE-based distribution" INFO "Installing dependencies for SuSE-based distribution"
INFO "$COMMON_INFO" INFO ""
INFO "`eval _echo "$COMMON_INFO"`"
INFO "" INFO ""
sudo zypper --non-interactive update --auto-agree-with-licenses sudo zypper --non-interactive update --auto-agree-with-licenses
@@ -1200,6 +1341,7 @@ install_SUSE() {
VORBIS_DEV="libvorbis-devel" VORBIS_DEV="libvorbis-devel"
THEORA_DEV="libtheora-devel" THEORA_DEV="libtheora-devel"
INFO ""
sudo zypper --non-interactive install --auto-agree-with-licenses \ sudo zypper --non-interactive install --auto-agree-with-licenses \
gawk gcc gcc-c++ cmake scons libpng12-devel libtiff-devel \ gawk gcc gcc-c++ cmake scons libpng12-devel libtiff-devel \
freetype-devel libX11-devel libXi-devel wget sqlite3-devel ncurses-devel \ freetype-devel libX11-devel libXi-devel wget sqlite3-devel ncurses-devel \
@@ -1213,6 +1355,7 @@ install_SUSE() {
VORBIS_USE=true VORBIS_USE=true
THEORA_USE=true THEORA_USE=true
INFO ""
X264_DEV="x264-devel" X264_DEV="x264-devel"
check_package_version_ge_SUSE $X264_DEV $X264_VERSION_MIN check_package_version_ge_SUSE $X264_DEV $X264_VERSION_MIN
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
@@ -1220,6 +1363,7 @@ install_SUSE() {
X264_USE=true X264_USE=true
fi fi
INFO ""
XVID_DEV="xvidcore-devel" XVID_DEV="xvidcore-devel"
check_package_SUSE $XVID_DEV check_package_SUSE $XVID_DEV
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
@@ -1227,6 +1371,7 @@ install_SUSE() {
XVID_USE=true XVID_USE=true
fi fi
INFO ""
VPX_DEV="libvpx-devel" VPX_DEV="libvpx-devel"
check_package_version_ge_SUSE $VPX_DEV $VPX_VERSION_MIN check_package_version_ge_SUSE $VPX_DEV $VPX_VERSION_MIN
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
@@ -1234,6 +1379,7 @@ install_SUSE() {
VPX_USE=true VPX_USE=true
fi fi
INFO ""
# No mp3 in suse, it seems. # No mp3 in suse, it seems.
MP3LAME_DEV="lame-devel" MP3LAME_DEV="lame-devel"
check_package_SUSE $MP3LAME_DEV check_package_SUSE $MP3LAME_DEV
@@ -1242,6 +1388,7 @@ install_SUSE() {
MP3LAME_USE=true MP3LAME_USE=true
fi fi
INFO ""
check_package_version_match_SUSE python3-devel 3.3. check_package_version_match_SUSE python3-devel 3.3.
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
sudo zypper --non-interactive install --auto-agree-with-licenses python3-devel sudo zypper --non-interactive install --auto-agree-with-licenses python3-devel
@@ -1249,18 +1396,22 @@ install_SUSE() {
compile_Python compile_Python
fi fi
INFO ""
# No boost_locale currently available, so let's build own boost. # No boost_locale currently available, so let's build own boost.
compile_Boost compile_Boost
INFO ""
# No ocio currently available, so let's build own boost. # No ocio currently available, so let's build own boost.
compile_OCIO compile_OCIO
INFO ""
# No oiio currently available, so let's build own boost. # No oiio currently available, so let's build own boost.
compile_OIIO compile_OIIO
if $BUILD_OSL; then if $BUILD_OSL; then
have_llvm=false have_llvm=false
INFO ""
# Suse llvm package *_$SUCKS$_* (tm) !!! # Suse llvm package *_$SUCKS$_* (tm) !!!
# check_package_version_ge_SUSE llvm-devel $LLVM_VERSION_MIN # check_package_version_ge_SUSE llvm-devel $LLVM_VERSION_MIN
# if [ $? -eq 0 ]; then # if [ $? -eq 0 ]; then
@@ -1270,19 +1421,23 @@ install_SUSE() {
# fi # fi
sudo zypper --non-interactive install --auto-agree-with-licenses libffi47-devel sudo zypper --non-interactive install --auto-agree-with-licenses libffi47-devel
INFO ""
compile_LLVM compile_LLVM
have_llvm=true have_llvm=true
LLVM_VERSION_FOUND=$LLVM_VERSION LLVM_VERSION_FOUND=$LLVM_VERSION
if $have_llvm; then if $have_llvm; then
INFO ""
# XXX No tbb lib! # XXX No tbb lib!
sudo zypper --non-interactive install --auto-agree-with-licenses flex bison git sudo zypper --non-interactive install --auto-agree-with-licenses flex bison git
# No package currently! # No package currently!
INFO ""
compile_OSL compile_OSL
fi fi
fi fi
# No ffmpeg currently available, so let's build own boost. # No ffmpeg currently available, so let's build own boost.
INFO ""
compile_FFmpeg compile_FFmpeg
} }
@@ -1379,7 +1534,7 @@ print_info() {
INFO " -D Boost_USE_ICU=ON" INFO " -D Boost_USE_ICU=ON"
fi fi
if [ -d $INST/osl ]; then if [ -d $INST/osl -a $BUILD_OSL == true ]; then
INFO " -D CYCLES_OSL=$INST/osl" INFO " -D CYCLES_OSL=$INST/osl"
INFO " -D WITH_CYCLES_OSL=ON" INFO " -D WITH_CYCLES_OSL=ON"
INFO " -D LLVM_VERSION=$LLVM_VERSION_FOUND" INFO " -D LLVM_VERSION=$LLVM_VERSION_FOUND"