sábado, 17 de noviembre de 2012

Compilar Blender en Ubuntu 12.10

Hoy es el turno de ver nuevamente como se compila Blender para la última versión del Ubuntu.

Actualmente la filosofía cambió por suerte, y los desarrolladores ya no nos brindan las librererias compuestas ni nos hacen compilar todo a nosotros. La nueva filosofía es un script que construye el entorno.

-Primero bajamos el encargado de sincronizar el source.
sudo apt-get install subversion
Con esto listo bajamos el source en una carpeta que no se mueva, en mi caso BLENDER-DEV
cd BLENDER-DEV.
svn co https://svn.blender.org/svnroot/bf-blender/trunk/blender

-Si queremos instalar cuda para usar la tarjeta gráfica (opcional): - Bajamos el CUDA TOOLKIT para Ubuntu de http://developer.nvidia.com/cuda-toolkit-40
- Abrimos una terminal una vez bajado, y tipeamos:
sudo sh archivoCuda.run
- Cuando nos pregunte por el path a usar solo tocamos enter.
- Para versiones modernas de gcc (>4.5) debemos hacer lo siguiente, sinó no anda:
Del archivo /usr/local/cuda/include/host_config.h borrar la linea
#error -- unsupported GNU version! gcc 4.5 and up are not supported!
Bien, ahora vamos a buscar el script para generar el entorno, situado en:
BLENDER-DEV/blender/build_files/build_environment/install_deps.sh
Antes que nada hacemos una copia de esto en la carpeta raiz, asi lo podemos editar.
Abrimos el archivo con el gedit y:

Para Osl cambiar: BUILD_OSL=false por BUILD_OSL=true
Para tener los archivos comprimidos guardados: SRC="$HOME/src/blender-deps" por SRC="BLENDER-DEV/src/blender-deps"

Ahora si, abrimos terminal, arrastramos el sh dentro y corremos.
Vamos a ver como se recarga el source y empiezan a bajar millones de librerias.
Casi seguro cuando quiera compilar OSL va a tirar un error que no reconoce el llvm (dato aportado por SephirothTBM), entonces, para solventar esto nos vamos a /usr/lib/llvm y nos fijamos si tenemos la versión 3.0 o 3.1.
En mi caso al tener la versión 3.1 vuelvo al archivo install_deps.sh y nos fijamos que hay una sección llamada compile_OSL(), es la encargada de compilar esto, entonces, abajo vamos a ver algo asi:


 cmake_d="-D CMAKE_BUILD_TYPE=Release \
             -D CMAKE_INSTALL_PREFIX=$_inst
             -D BUILDSTATIC=ON \
             -D BUILD_TESTING=OFF"
A lo que le agregamos


 cmake_d="-D CMAKE_BUILD_TYPE=Release \
             -D CMAKE_INSTALL_PREFIX=$_inst
             -D BUILDSTATIC=ON \
             -D BUILD_TESTING=OFF
             -D LLVM_DIRECTORY=/usr/lib/llvm-3.0"

Guardamos y volvemos a correr el sh.
Si todo sale bien esto va a llegar al final y nos va a decir que si tenemos pensado usar cmake agregar unos flags, y lo mismo para scons. Los anotamos por ahi y seguimos.

Si queremos usar collada recordar instalar libxml2 versión dev!.

Ahora, vamos a tener dentro de BLENDER-DEV una carpeta con el source llamada blender. En el mismo nivel de "blender" hacemos una llamada "cmake" que va a ser nuestro taller.
Abrimos un terminal y hacemos lo siguiente:


cd 'BLENDER-DEV/cmake' && cmake ../blender  && make -j8 install


Esta es la compilación sin nada... pero si queremos empezar a sumarle complementos abrimos el texto que nos dió cuando terminamos de construir el entorno y hacemos una lista que quedaría algo como lo siguiente (en mi caso):


cd '/media/WORKS/BLENDER_BUILDS/BLENDER-DEV/cmake' && cmake ../blender -DWITH_CYCLES_CUDA_BINARIES:BOOL=ON -DWITH_FFTW3:BOOL=ON -DWITH_MOD_OCEANSIM:BOOL=ON -DPYTHON_NUMPY_PATH:FOLDERPATH="/usr/include/" -DWITH_OPENCOLLADA:BOOL=ON  -DPYTHON_VERSION:STRING="3.3" -DWITH_CODEC_FFMPEG=ON -DFFMPEG=/opt/lib/ffmpeg -DFFMPEG_LIBRARIES='avformat;avcodec;avutil;avdevice;swscale;rt;theoradec;theoraenc;theora;xvidcore;vpx;mp3lame;x264;openjpeg;schroedinger-1.0' -DCYCLES_OSL:PATH="/opt/lib/osl" -DWITH_CYCLES_OSL:BOOL=ON -DLLVM_DIRECTORY="/usr/lib/llvm-3.0" &&
make -j8 install


El Blender aparecerá dentro de cmake/bin.

Siempre recomiendo empezar por la compilación mas simple asi es mas sencillo encontrar errores.
















-DLLVM_DIRECTORY=/usr/lib/llvm-3.0

No hay comentarios:

Publicar un comentario