A bunch of fixes to install_deps.sh (most notably, a bug in oiio's embeded version of tbb, buggy oiio archive handling, moved ilmbase files into openexr dir (as expected by Blender), ...).

Tested with debian testing/i386 this time.
This commit is contained in:
Bastien Montagne 2013-05-24 14:31:57 +00:00
parent 16d35ec94f
commit 66c86d8702

@ -23,7 +23,7 @@
ARGS=$( \ ARGS=$( \
getopt \ getopt \
-o s:i:t:h \ -o s:i:t:h \
--long source:,install:,threads:,help,with-all,with-osl,with-opencollada,all-static,force-all,\ --long source:,install:,tmp:,threads:,help,with-all,with-osl,with-opencollada,all-static,force-all,\
force-python,force-numpy,force-boost,force-ocio,force-oiio,force-llvm,force-osl,force-opencollada,\ force-python,force-numpy,force-boost,force-ocio,force-oiio,force-llvm,force-osl,force-opencollada,\
force-ffmpeg,skip-python,skip-numpy,skip-boost,skip-ocio,skip-oiio,skip-llvm,skip-osl,skip-ffmpeg,\ force-ffmpeg,skip-python,skip-numpy,skip-boost,skip-ocio,skip-oiio,skip-llvm,skip-osl,skip-ffmpeg,\
skip-opencollada \ skip-opencollada \
@ -34,6 +34,7 @@ DISTRO=""
RPM="" RPM=""
SRC="$HOME/src/blender-deps" SRC="$HOME/src/blender-deps"
INST="/opt/lib" INST="/opt/lib"
TMP="/tmp"
CWD=$PWD CWD=$PWD
# Do not install some optional, potentially conflicting libs by default... # Do not install some optional, potentially conflicting libs by default...
@ -79,6 +80,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
-i <path>, --install=<path> -i <path>, --install=<path>
Use a specific path where to install built libraries (defaults to '\$INST'). Use a specific path where to install built libraries (defaults to '\$INST').
--tmp=<path>
Use a specific temp path (defaults to '\$TMP').
-t n, --threads=n -t n, --threads=n
Use a specific number of threads when building the libraries (auto-detected as '\$THREADS'). Use a specific number of threads when building the libraries (auto-detected as '\$THREADS').
@ -203,7 +207,7 @@ OPENEXR_SKIP=false
_with_built_openexr=false _with_built_openexr=false
OIIO_VERSION="1.1.10" OIIO_VERSION="1.1.10"
OIIO_SOURCE="https://github.com/OpenImageIO/oiio/tarball/Release-$OIIO_VERSION.tar.gz" OIIO_SOURCE="https://github.com/OpenImageIO/oiio/archive/Release-$OIIO_VERSION.tar.gz"
OIIO_VERSION_MIN="1.1" OIIO_VERSION_MIN="1.1"
OIIO_FORCE_REBUILD=false OIIO_FORCE_REBUILD=false
OIIO_SKIP=false OIIO_SKIP=false
@ -285,6 +289,9 @@ while true; do
-i|--install) -i|--install)
INST="$2"; shift; shift; continue INST="$2"; shift; shift; continue
;; ;;
--tmp)
TMP="$2"; shift; shift; continue
;;
-t|--threads) -t|--threads)
THREADS="$2"; shift; shift; continue THREADS="$2"; shift; shift; continue
;; ;;
@ -779,22 +786,26 @@ compile_OCIO() {
compile_ILMBASE() { compile_ILMBASE() {
# To be changed each time we make edits that would modify the compiled result! # To be changed each time we make edits that would modify the compiled result!
ilmbase_magic=4 ilmbase_magic=5
_src=$SRC/ILMBase-$ILMBASE_VERSION _src=$SRC/ILMBase-$ILMBASE_VERSION
_inst=$INST/ilmbase-$ILMBASE_VERSION _inst=$TMP/ilmbase-$ILMBASE_VERSION
# Clean install if needed! # Clean install if needed!
magic_compile_check ilmbase-$ILMBASE_VERSION $ilmbase_magic magic_compile_check ilmbase-$ILMBASE_VERSION $ilmbase_magic
if [ $? -eq 1 -o $OPENEXR_FORCE_REBUILD == true ]; then if [ $? -eq 1 -o $OPENEXR_FORCE_REBUILD == true ]; then
rm -rf $_src rm -rf $_src
rm -rf $_openexr_inst
rm -rf $_inst rm -rf $_inst
fi fi
if [ ! -d $_inst ]; then if [ ! -d $_openexr_inst ]; then
INFO "Building ILMBase-$ILMBASE_VERSION" INFO "Building ILMBase-$ILMBASE_VERSION"
# Rebuild dependecies as well!
OPENEXR_FORCE_REBUILD=true
prepare_opt prepare_opt
if [ ! -d $_src ]; then if [ ! -d $_src ]; then
@ -851,8 +862,8 @@ EOF
make clean make clean
if [ -d $_inst ]; then if [ -d $_inst ]; then
rm -f $INST/ilmbase rm -f $TMP/ilmbase
ln -s ilmbase-$ILMBASE_VERSION $INST/ilmbase ln -s ilmbase-$ILMBASE_VERSION $TMP/ilmbase
else else
ERROR "ILMBase-$ILMBASE_VERSION failed to compile, exiting" ERROR "ILMBase-$ILMBASE_VERSION failed to compile, exiting"
exit 1 exit 1
@ -869,13 +880,14 @@ EOF
} }
compile_OPENEXR() { compile_OPENEXR() {
_openexr_inst=$INST/openexr-$OPENEXR_VERSION
compile_ILMBASE compile_ILMBASE
# To be changed each time we make edits that would modify the compiled result! # To be changed each time we make edits that would modify the compiled result!
openexr_magic=10 openexr_magic=10
_src=$SRC/OpenEXR-$OPENEXR_VERSION _src=$SRC/OpenEXR-$OPENEXR_VERSION
_inst=$INST/openexr-$OPENEXR_VERSION _inst=$_openexr_inst
# Clean install if needed! # Clean install if needed!
magic_compile_check openexr-$OPENEXR_VERSION $openexr_magic magic_compile_check openexr-$OPENEXR_VERSION $openexr_magic
@ -1027,7 +1039,7 @@ EOF
cmake_d="-D CMAKE_BUILD_TYPE=Release" cmake_d="-D CMAKE_BUILD_TYPE=Release"
cmake_d="$cmake_d -D CMAKE_PREFIX_PATH=$_inst" cmake_d="$cmake_d -D CMAKE_PREFIX_PATH=$_inst"
cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst" cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst"
cmake_d="$cmake_d -D ILMBASE_PACKAGE_PREFIX=$INST/ilmbase-$ILMBASE_VERSION" cmake_d="$cmake_d -D ILMBASE_PACKAGE_PREFIX=$TMP/ilmbase"
if file /bin/cp | grep -q '32-bit'; then if file /bin/cp | grep -q '32-bit'; then
cflags="-fPIC -m32 -march=i686" cflags="-fPIC -m32 -march=i686"
@ -1047,6 +1059,8 @@ EOF
if [ -d $_inst ]; then if [ -d $_inst ]; then
rm -f $INST/openexr rm -f $INST/openexr
ln -s openexr-$OPENEXR_VERSION $INST/openexr ln -s openexr-$OPENEXR_VERSION $INST/openexr
# Copy ilmbase files here (blender expects same dir for ilmbase and openexr :/).
cp -Lrn $TMP/ilmbase/* $INST/openexr
else else
ERROR "OpenEXR-$OPENEXR_VERSION failed to compile, exiting" ERROR "OpenEXR-$OPENEXR_VERSION failed to compile, exiting"
exit 1 exit 1
@ -1066,7 +1080,7 @@ EOF
compile_OIIO() { compile_OIIO() {
# To be changed each time we make edits that would modify the compiled result! # To be changed each time we make edits that would modify the compiled result!
oiio_magic=10 oiio_magic=11
_src=$SRC/OpenImageIO-$OIIO_VERSION _src=$SRC/OpenImageIO-$OIIO_VERSION
_inst=$INST/oiio-$OIIO_VERSION _inst=$INST/oiio-$OIIO_VERSION
@ -1091,7 +1105,7 @@ compile_OIIO() {
wget -c $OIIO_SOURCE -O "$_src.tar.gz" wget -c $OIIO_SOURCE -O "$_src.tar.gz"
INFO "Unpacking OpenImageIO-$OIIO_VERSION" INFO "Unpacking OpenImageIO-$OIIO_VERSION"
tar -C $SRC --transform "s,(.*/?)OpenImageIO-oiio[^/]*(.*),\1OpenImageIO-$OIIO_VERSION\2,x" \ tar -C $SRC --transform "s,(.*/?)oiio-Release-[^/]*(.*),\1OpenImageIO-$OIIO_VERSION\2,x" \
-xf $_src.tar.gz -xf $_src.tar.gz
cd $_src cd $_src
@ -1224,6 +1238,18 @@ compile_OIIO() {
/usr/local/lib /usr/local/lib
/sw/lib /sw/lib
/opt/local/lib) /opt/local/lib)
--- a/src/libutil/tbb_misc.cpp
+++ b/src/libutil/tbb_misc.cpp
@@ -44,7 +44,8 @@
using namespace std;
-#include "tbb/tbb_machine.h"
+//#include "tbb/tbb_machine.h"
+#include "tbb/tbb_assert_impl.h"
namespace tbb {
EOF EOF
cd $CWD cd $CWD
@ -1244,7 +1270,7 @@ EOF
cmake_d="$cmake_d -D BUILDSTATIC=OFF" cmake_d="$cmake_d -D BUILDSTATIC=OFF"
if [ $_with_built_openexr == true ]; then if [ $_with_built_openexr == true ]; then
cmake_d="$cmake_d -D ILMBASE_HOME=$INST/ilmbase" cmake_d="$cmake_d -D ILMBASE_HOME=$INST/openexr"
cmake_d="$cmake_d -D ILMBASE_VERSION=$ILMBASE_VERSION" cmake_d="$cmake_d -D ILMBASE_VERSION=$ILMBASE_VERSION"
cmake_d="$cmake_d -D OPENEXR_HOME=$INST/openexr" cmake_d="$cmake_d -D OPENEXR_HOME=$INST/openexr"
fi fi
@ -1450,8 +1476,8 @@ compile_OSL() {
cmake_d="$cmake_d -D STOP_ON_WARNING=OFF" cmake_d="$cmake_d -D STOP_ON_WARNING=OFF"
if [ $_with_built_openexr == true ]; then if [ $_with_built_openexr == true ]; then
cmake_d="$cmake_d -D OPENEXR_HOME=$INST/openexr-$OPENEXR_VERSION" #cmake_d="$cmake_d -D OPENEXR_HOME=$INST/openexr"
cmake_d="$cmake_d -D ILMBASE_HOME=$INST/ilmbase-$ILMBASE_VERSION" cmake_d="$cmake_d -D ILMBASE_HOME=$INST/openexr"
fi fi
if [ -d $INST/boost ]; then if [ -d $INST/boost ]; then
@ -2705,6 +2731,12 @@ print_info_ffmpeglink() {
} }
print_info() { print_info() {
INFO ""
INFO ""
INFO "****WARNING****"
INFO "If you are experiencing issues building Blender, _*TRY A FRESH, CLEAN BUILD FIRST*_!"
INFO "Often, changes in the libs built by this script, or in your distro package, cannot simply be handled simply, so..."
INFO ""
INFO "" INFO ""
INFO "If you're using CMake add this to your configuration flags:" INFO "If you're using CMake add this to your configuration flags:"
@ -2755,6 +2787,12 @@ print_info() {
fi fi
fi fi
if [ -d $INST/openexr ]; then
_1="-D OPENEXR_ROOT_DIR=$INST/openexr"
INFO " $_1"
_buildargs="$_buildargs $_1"
fi
if $WITH_OSL; then if $WITH_OSL; then
_1="-D WITH_CYCLES_OSL=ON" _1="-D WITH_CYCLES_OSL=ON"
_2="-D WITH_LLVM=ON" _2="-D WITH_LLVM=ON"
@ -2816,6 +2854,10 @@ print_info() {
INFO "BF_OCIO = '$INST/ocio'" INFO "BF_OCIO = '$INST/ocio'"
fi fi
if [ -d $INST/openexr ]; then
INFO "BF_OPENEXR = '$INST/openexr'"
fi
INFO "WITH_BF_OIIO = True" INFO "WITH_BF_OIIO = True"
if [ -d $INST/oiio ]; then if [ -d $INST/oiio ]; then
INFO "BF_OIIO = '$INST/oiio'" INFO "BF_OIIO = '$INST/oiio'"