Veo que cambiaron muchisimas cosas, asi que decidí hacer una guia para compilar Blender en Ubuntu 13.10 desde cero.
Entiendo que para este tutorial contamos con una instalación de Ubuntu.
- Primero instalamos el compilador y los programas para descargar el código fuente.
sudo apt-get update; sudo apt-get install git build-essential subversion
- Con cd navegamos una carpeta donde querramos instalar... por ejemplo...
cd /home/usuario/BlenderCompilacion
- Luego con estas lineas vamos a crear una carpeta, luego baja el source y lo mete dentro (puede tardar bastante). Al final baja los addons y los archivos extras.
mkdir ~/blender-git cd ~/blender-git git clone http://git.blender.org/blender.git cd blender git submodule update --init --recursive git submodule foreach git checkout master git submodule foreach git pull --rebase origin master
- Para actualizar cada vez podemos hacer
git pull --rebase git submodule foreach git pull --rebase origin master
- Con esto listo vamos a buscar y vamos a modificar el script para compilar. El mismo se encuentra en blender/build_environment/install_deps.sh
Lo copiamos y lo pegamos en la carpeta que creamos al principio de todo (/home/usuario/BlenderCompilacion).
Entramos a editarlo y modificamos la linea de SRC por lo siguiente:
SRC="/home/usuario/BlenderCompilacion/src/blender-deps"
- Si queremos con todos los complementos, que es mas peligroso de entrada, modificamos las lineas WITH_ALL y WITH_OPENCOLLADA a true:
WITH_ALL=true
WITH_OPENCOLLADA=true
- Con esto listo abrimos una Konsola, arrastramos el .sh dentro y lo corremos... le ponemos la "Y" y la contraseña. Va a tardar un largo rato, ya que baja todas las librerias las compila y las instala.
- Termiando esto nos dará unas lineas para pegar en la terminal, usamos las de cmake, para mi fue asi:
make -j8 BUILD_CMAKE_ARGS=" -D OPENEXR_ROOT_DIR=/opt/lib/openexr -D OPENIMAGEIO_ROOT_DIR=/opt/lib/oiio -D WITH_CYCLES_OSL=ON -D WITH_LLVM=ON -D LLVM_VERSION=3.3 -D CYCLES_OSL=/opt/lib/osl -D WITH_OPENCOLLADA=ON -D WITH_CODEC_FFMPEG=ON -D FFMPEG_LIBRARIES='avformat;avcodec;avutil;avdevice;swscale;rt;theoradec;theoraenc;theora;vorbisenc;vorbisfile;vorbis;ogg;xvidcore;vpx;mp3lame;x264;openjpeg' -D FFMPEG=/opt/lib/ffmpeg"
- Con esto listo copiamos esta linea de código y hacemos un .sh.
- Modificamos el contenido agregando al final ../blender , por lo que quedaría asi:
make -j8 BUILD_CMAKE_ARGS=" -D OPENEXR_ROOT_DIR=/opt/lib/openexr -D OPENIMAGEIO_ROOT_DIR=/opt/lib/oiio -D WITH_CYCLES_OSL=ON -D WITH_LLVM=ON -D LLVM_VERSION=3.3 -D CYCLES_OSL=/opt/lib/osl -D WITH_OPENCOLLADA=ON -D WITH_CODEC_FFMPEG=ON -D FFMPEG_LIBRARIES='avformat;avcodec;avutil;avdevice;swscale;rt;theoradec;theoraenc;theora;vorbisenc;vorbisfile;vorbis;ogg;xvidcore;vpx;mp3lame;x264;openjpeg' -D FFMPEG=/opt/lib/ffmpeg ../blender && make -j8 install"- Crear dentro de la carpeta principal una carpeta llamada "Cmake", pegar el .sh este dentro.
- Abrir una terminal y navegar este folder "cd /home/usuario/BlenderCompilacion/Cmake"
- Correr este .sh y se compilará.
-------------------------------------------------------------------------------------------------
Compilar con CUDA (el gran desafio)!!!
Lo primero a saber es que CUDA no compila con gcc 4.8, para lo que debemos usar el gcc 4.4.
Bajamos el CUDA 5.0 TOOLKIT del sitio de Nvidia.
sudo apt-get install gcc-4.4 g++-4.4
El gran problema es que CUDA va a buscar el compilador 4.4, sino no anda! Entonces vamos a buscar una forma de decirle que ya lo tenemos, y para esto usamos update-alternatives
sudo update-alternatives --remove-all gcc
sudo update-alternatives --remove-all g++
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 10
Para comprobar si está bien la versión hagan
gcc --version
g++ --version
y deberia darles 4.4
Después de esperar esos 700 megas corremos el archivo vamos a instalarlo.
sudo sh archivo_bajado.sh
Vamos a hacer pasar las cataratas de legales... vamos a aceptar el EULA, vamos a decir que no al Driver, y Yes al toolkit.
Le damos enter al path para el toolkit, y finalmente NO a las librerias de CUDA.
Con esto CUDA deberia instalarse correctamente, tarda unos segundos y dice que fue instalado.
Finalmente vamos a compilar blender con la version 4.8 del compilador, ya que la 4.4 es un tanto vieja.
Con estas lineas vamos a instalar mas versiones del compilador, y vamos a setear las alternativas. Por default quedará la 4.8
sudo update-alternatives --remove-all gcc
sudo update-alternatives --remove-all g++
sudo apt-get install gcc-4.4 gcc-4.6 gcc-4.7 g++-4.4 g++-4.6 g++-4.7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 30
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 30
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 40
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
Ahora debería poderse compilar Blender bien... solo hace falta indicarle a Blender que incluya CUDA en la compilación, y eso es agregando un argumento al archivo de compilacion...
-D WITH_CYCLES_CUDA_BINARIES=ON
Los errores frecuentes es que no encuentre el cc1plus o que la version del compilador sea mayor a la indicada... pero con esto debería corregirse.
Es realmente complejo, pero funciona!