Compiling Blender 2.57 on Solaris 10 (x86)

2011-04-24

The build itself runs smoothly, although the fact that you need two distinct Python installations has some potential to cause confusion.

Prerequisites

Package Compiler used Remarks
Ilmbase-1.0.1 gcc-4.5.2 installed with prefix /usr/local/dist/openexr-g++4
OpenEXR-1.6.1 gcc-4.5.2

Patch & configuration:

echo 'diff -ru openexr-1.6.1.org/exrenvmap/main.cpp openexr-1.6.1/exrenvmap/main.cpp
--- openexr-1.6.1.org/exrenvmap/main.cpp        Wed Apr 25 03:07:51 2007
+++ openexr-1.6.1/exrenvmap/main.cpp    Mon Apr 25 23:00:04 2011
@@ -45,6 +45,7 @@
 #include <iostream>
 #include <exception>
 #include <stdlib.h>
+#include <cstring>

 using namespace Imf;
 using namespace std;
diff -ru openexr-1.6.1.org/exrmaketiled/main.cpp openexr-1.6.1/exrmaketiled/main.cpp
--- openexr-1.6.1.org/exrmaketiled/main.cpp     Wed Apr 25 03:08:45 2007
+++ openexr-1.6.1/exrmaketiled/main.cpp Mon Apr 25 22:59:36 2011
@@ -44,7 +44,7 @@

 #include <iostream>
 #include <exception>
-#include <string>
+#include <cstring>
 #include <stdlib.h>

 using namespace Imf;'\
| gpatch -p1
./configure --prefix=/usr/local/dist/openexr-g++4 \
    LDFLAGS="-R/usr/local/dist/openexr-g++4/lib"
cmake-2.8.4 Solaris Studio 12.2

Configuration and installation:

../configure --prefix=/usr/local/dist
gmake
gmake install
openal-soft-1.13 gcc-4.5.2

Patch and installation:

echo 'diff -ru openal-soft-1.13/CMakeLists.txt openal-soft-1.13.patched/CMakeLists.txt
--- openal-soft-1.13/CMakeLists.txt     Tue Feb 15 21:05:40 2011
+++ openal-soft-1.13.patched/CMakeLists.txt     Sat Apr 23 16:40:37 2011
@@ -139,7 +139,7 @@

     # Set visibility options if available
     IF(NOT WIN32)
-        CHECK_C_COMPILER_FLAG(-fvisibility=internal HAVE_VISIBILITY_SWITCH)
+        #CHECK_C_COMPILER_FLAG(-fvisibility=internal HAVE_VISIBILITY_SWITCH)
         IF(HAVE_VISIBILITY_SWITCH)
             CHECK_C_SOURCE_COMPILES("int foo() __attribute__((visibility(\"default\")));
                                      int main() {return 0;}" HAVE_GCC_VISIBILITY)
@@ -241,6 +241,7 @@
         MESSAGE(FATAL_ERROR "No timing function found!")
     ENDIF()

+    SET(CMAKE_REQUIRED_LIBRARIES "rt")
     CHECK_FUNCTION_EXISTS(nanosleep HAVE_NANOSLEEP)
     IF(NOT HAVE_NANOSLEEP)
         MESSAGE(FATAL_ERROR "No sleep function found!")'\
| gpatch -p1
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/dist ..
gmake
gmake install
ffmpeg-20101231 gcc-4.5.2

I used a previously installed version of GNU assembler 2.21 to build ffmpeg. Other prerequisites as referenced below (most of them are optional).

Configuration:

./configure --cc=gcc --as=/usr/local/dist/gnu/i386-pc-solaris2.10/bin/as \
    --extra-ldflags='-R/usr/local/dist/lib -L/usr/local/dist/lib' \
    --extra-cflags=-I/usr/local/dist/include --prefix=/usr/local/dist \
    --enable-libxvid --enable-libmp3lame --enable-libx264 --enable-mlib \
    --enable-gpl --enable-shared
fftw-3.2.2 Solaris Studio 12.2 uneventful
libsamplerate-0.1.7 Solaris Studio 12.2 uneventful
Python 3.2 Solaris Studio 12.2

Configuration:

./configure --prefix=/usr/local/dist/python3 CC=cc CXX=CC \
    LDFLAGS='-L/usr/local/dist/lib -R/usr/local/dist/lib' \
    CPPFLAGS='-I/usr/local/dist/include'

Blender

Here's the

Build log:

patch -p1 < blender-2.57-sol10.patch

export PATH=/usr/local/dist/gcc-4.5.2/bin:$PATH
export PATH=/usr/local/dist/python3/bin:$PATH

# Also add RPATH options for Solaris ld
export LD_OPTIONS=-R/usr/local/dist/lib\ \
-R/usr/local/dist/openexr-g++4/lib\ \
-R/usr/local/lib                             
                               
# The build creates a directory ../build
python ./scons/scons.py BF_CONFIG=../sun2-config.py BF_QUIET=0 \
    BF_INSTALLDIR=/usr/local/dist/blender-2.57


Last update 2011-05-08