Building 2.49b on Raspberry Pi 3

Howdy, folks! I’m in the process of trying to build 2.49b on my Raspberry Pi 3 because newer versions of Blender don’t support the export script that I need. I’ve already overcome the first few obstacles (building an archaic version of freetype, and adding “#include <stddef.h>” to MEM_Allocator.h, and “#include <stdlib.h>” to ntl_bsptree.h), and now I’m on to the next error, which I’ve pasted below. The “‘ABS’ was not declared in this scope” was the error that I fixed in ntl_bsptree.h by including stdlib.h, but the next file that throws an error already has this line included (ntl_bsptree.h), so I’m stuck.

Any help with this would be highly appreciated. Keep in mind I’m not a programmer and I’m in a little bit over my head. :slight_smile:


[email protected]:~/temp $ make
[  1%] Built target bf_soundsystem
[  1%] Built target bf_string
[  3%] Built target bf_ghost
[  3%] Built target bf_guardedalloc
[  4%] Built target bf_bmfont
[  5%] Built target bf_moto
[  5%] Built target blender_CTR
[  5%] Built target bf_memutil
[  6%] Built target bf_decimation
[  6%] Built target bf_IK
[  7%] Built target blender_bop
[ 10%] Built target blender_ONL
Scanning dependencies of target bf_elbeem
[ 10%] Building CXX object intern/elbeem/CMakeFiles/bf_elbeem.dir/intern/solver_init.o
[ 10%] Building CXX object intern/elbeem/CMakeFiles/bf_elbeem.dir/intern/solver_adap.o
[ 10%] Building CXX object intern/elbeem/CMakeFiles/bf_elbeem.dir/intern/parametrizer.o
[ 10%] Building CXX object intern/elbeem/CMakeFiles/bf_elbeem.dir/intern/ntl_blenderdumper.o
[ 11%] Building CXX object intern/elbeem/CMakeFiles/bf_elbeem.dir/intern/solver_control.o
[ 11%] Building CXX object intern/elbeem/CMakeFiles/bf_elbeem.dir/intern/isosurface.o
[ 11%] Building CXX object intern/elbeem/CMakeFiles/bf_elbeem.dir/intern/controlparticles.o
[ 11%] Building CXX object intern/elbeem/CMakeFiles/bf_elbeem.dir/intern/ntl_world.o
[ 11%] Building CXX object intern/elbeem/CMakeFiles/bf_elbeem.dir/intern/mvmcoords.o
[ 11%] Building CXX object intern/elbeem/CMakeFiles/bf_elbeem.dir/intern/simulation_object.o
[ 11%] Building CXX object intern/elbeem/CMakeFiles/bf_elbeem.dir/intern/ntl_geometrymodel.o
[ 11%] Building CXX object intern/elbeem/CMakeFiles/bf_elbeem.dir/intern/ntl_bsptree.o
In file included from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_bsptree.h:12:0,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_bsptree.cpp:11:
/home/pi/blender-2.49b/intern/elbeem/intern/ntl_vector3dim.h: In instantiation of ‘bool equal(const ntlVector3Dim&lt;Scalar&gt;&, const ntlVector3Dim&lt;Scalar&gt;&) [with Scalar = float]’:
/home/pi/blender-2.49b/intern/elbeem/intern/ntl_bsptree.cpp:192:44:   required from here
/home/pi/blender-2.49b/intern/elbeem/intern/ntl_vector3dim.h:1000:24: error: ‘ABS’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
   return (ABS(v[0]-c[0]) + 
                        ^
In file included from /home/pi/blender-2.49b/intern/elbeem/intern/attributes.h:13:0,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_geometryclass.h:14,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_geometryobject.h:13,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_ray.h:15,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_bsptree.h:13,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_bsptree.cpp:11:
/home/pi/blender-2.49b/intern/elbeem/intern/utilities.h:177:1: note: ‘template&lt;class T&gt; T ABS(T)’ declared here, later in the translation unit
 ABS( T a )
 ^
In file included from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_bsptree.h:12:0,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_bsptree.cpp:11:
/home/pi/blender-2.49b/intern/elbeem/intern/ntl_vector3dim.h:1001:17: error: ‘ABS’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
    ABS(v[1]-c[1]) + 
                 ^
In file included from /home/pi/blender-2.49b/intern/elbeem/intern/attributes.h:13:0,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_geometryclass.h:14,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_geometryobject.h:13,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_ray.h:15,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_bsptree.h:13,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_bsptree.cpp:11:
/home/pi/blender-2.49b/intern/elbeem/intern/utilities.h:177:1: note: ‘template&lt;class T&gt; T ABS(T)’ declared here, later in the translation unit
 ABS( T a )
 ^
In file included from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_bsptree.h:12:0,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_bsptree.cpp:11:
/home/pi/blender-2.49b/intern/elbeem/intern/ntl_vector3dim.h:1002:17: error: ‘ABS’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
    ABS(v[2]-c[2]) &lt; VECTOR_EPSILON);
                 ^
In file included from /home/pi/blender-2.49b/intern/elbeem/intern/attributes.h:13:0,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_geometryclass.h:14,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_geometryobject.h:13,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_ray.h:15,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_bsptree.h:13,
                 from /home/pi/blender-2.49b/intern/elbeem/intern/ntl_bsptree.cpp:11:
/home/pi/blender-2.49b/intern/elbeem/intern/utilities.h:177:1: note: ‘template&lt;class T&gt; T ABS(T)’ declared here, later in the translation unit
 ABS( T a )
 ^
intern/elbeem/CMakeFiles/bf_elbeem.dir/build.make:330: recipe for target 'intern/elbeem/CMakeFiles/bf_elbeem.dir/intern/ntl_bsptree.o' failed
make[2]: *** [intern/elbeem/CMakeFiles/bf_elbeem.dir/intern/ntl_bsptree.o] Error 1
CMakeFiles/Makefile2:729: recipe for target 'intern/elbeem/CMakeFiles/bf_elbeem.dir/all' failed
make[1]: *** [intern/elbeem/CMakeFiles/bf_elbeem.dir/all] Error 2
Makefile:76: recipe for target 'all' failed
make: *** [all] Error 2

Progress!

After adding this line to linux2-config.py, I got farther along into the build process:


BF_NO_ELBEEM = True

Now I’m getting a different error, about truetype. I built and installed libtruetype2, but that didn’t seem to help.

[email protected]:~/blender-2.49b $ python scons/scons.py
scons: Reading SConscript files ...
Command-line arguments
    No  command-line arguments given
Command-line targets
    No targets given, using default
Using config file: config/linux2-config.py
Using user-config file: user-config.py
Build with 1 parallel jobs
Building in ../build/linux2/
Configuring library bf_soundsystem
Configuring library bf_string
Configuring library bf_ghost
Configuring library bf_guardedalloc
Configuring library bf_bmfont
Configuring library bf_moto
Configuring library blender_CTR
Configuring library bf_memutil
Configuring library bf_decimation
Configuring library bf_IK
Configuring library blender_bop
Configuring library blender_ONL
Configuring library blender_BSP
Configuring library extern_glew
Configuring library extern_ftgl
Configuring library extern_openjpeg
Configuring library extern_binreloc
Configuring library bf_avi
Configuring library bf_blenkernel
Configuring library bf_blenlib
Configuring library bf_blenloader
Configuring library bf_blenpluginapi
Configuring library bf_gpu
Configuring library bf_imbuf
Configuring library bf_cineon
Configuring library bf_dna
Configuring library blender_radiosity
Configuring library bf_readblenfile
Configuring library blender_render
Configuring library src
Configuring library bf_nodes
Configuring library bf_cmpnodes
Configuring library bf_shdnodes
Configuring library bf_texnodes
Configuring library blender_python
Configuring library bf_ftfont
Configuring library bf_dds
Configuring library bf_openexr
Configuring library bf_kernel
Configuring library blender_creator
Configuring program blender
scons: done reading SConscript files.
scons: Building targets ...
scons: `/home/pi/build/linux2/lib/libbf_soundsystem.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_string.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_ghost.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_guardedalloc.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_bmfont.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_moto.a' is up to date.
scons: `/home/pi/build/linux2/lib/libblender_CTR.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_memutil.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_decimation.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_IK.a' is up to date.
scons: `/home/pi/build/linux2/lib/libblender_bop.a' is up to date.
scons: `/home/pi/build/linux2/lib/libblender_ONL.a' is up to date.
scons: `/home/pi/build/linux2/lib/libblender_BSP.a' is up to date.
scons: `/home/pi/build/linux2/lib/libextern_glew.a' is up to date.
scons: `/home/pi/build/linux2/lib/libextern_ftgl.a' is up to date.
scons: `/home/pi/build/linux2/lib/libextern_openjpeg.a' is up to date.
scons: `/home/pi/build/linux2/lib/libextern_binreloc.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_avi.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_blenkernel.a' is up to date.
Compiling ==> 'freetypefont.c'
source/blender/blenlib/intern/freetypefont.c:44:31: fatal error: freetype/ttnameid.h: No such file or directory
 #include <freetype/ttnameid.h>
                               ^
compilation terminated.
scons: *** [/home/pi/build/linux2/source/blender/blenlib/intern/freetypefont.o] Error 1
scons: building terminated because of errors.

If I comment out the offending line (#include <freetype/ttnameid.h>), then I get this:

[email protected]:~/blender-2.49b $ python scons/scons.py
scons: Reading SConscript files ...
Command-line arguments
    No  command-line arguments given
Command-line targets
    No targets given, using default
Using config file: config/linux2-config.py
Using user-config file: user-config.py
Build with 1 parallel jobs
Building in ../build/linux2/
Configuring library bf_soundsystem
Configuring library bf_string
Configuring library bf_ghost
Configuring library bf_guardedalloc
Configuring library bf_bmfont
Configuring library bf_moto
Configuring library blender_CTR
Configuring library bf_memutil
Configuring library bf_decimation
Configuring library bf_IK
Configuring library blender_bop
Configuring library blender_ONL
Configuring library blender_BSP
Configuring library extern_glew
Configuring library extern_ftgl
Configuring library extern_openjpeg
Configuring library extern_binreloc
Configuring library bf_avi
Configuring library bf_blenkernel
Configuring library bf_blenlib
Configuring library bf_blenloader
Configuring library bf_blenpluginapi
Configuring library bf_gpu
Configuring library bf_imbuf
Configuring library bf_cineon
Configuring library bf_dna
Configuring library blender_radiosity
Configuring library bf_readblenfile
Configuring library blender_render
Configuring library src
Configuring library bf_nodes
Configuring library bf_cmpnodes
Configuring library bf_shdnodes
Configuring library bf_texnodes
Configuring library blender_python
Configuring library bf_ftfont
Configuring library bf_dds
Configuring library bf_openexr
Configuring library bf_kernel
Configuring library blender_creator
Configuring program blender
scons: done reading SConscript files.
scons: Building targets ...
scons: `/home/pi/build/linux2/lib/libbf_soundsystem.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_string.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_ghost.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_guardedalloc.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_bmfont.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_moto.a' is up to date.
scons: `/home/pi/build/linux2/lib/libblender_CTR.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_memutil.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_decimation.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_IK.a' is up to date.
scons: `/home/pi/build/linux2/lib/libblender_bop.a' is up to date.
scons: `/home/pi/build/linux2/lib/libblender_ONL.a' is up to date.
scons: `/home/pi/build/linux2/lib/libblender_BSP.a' is up to date.
scons: `/home/pi/build/linux2/lib/libextern_glew.a' is up to date.
scons: `/home/pi/build/linux2/lib/libextern_ftgl.a' is up to date.
scons: `/home/pi/build/linux2/lib/libextern_openjpeg.a' is up to date.
scons: `/home/pi/build/linux2/lib/libextern_binreloc.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_avi.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_blenkernel.a' is up to date.
Compiling ==&gt; 'freetypefont.c'
scons: `/home/pi/build/linux2/lib/libbf_blenlib.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_blenloader.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_blenpluginapi.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_gpu.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_imbuf.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_cineon.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_dna.a' is up to date.
scons: `/home/pi/build/linux2/lib/libblender_radiosity.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_readblenfile.a' is up to date.
scons: `/home/pi/build/linux2/lib/libblender_render.a' is up to date.
scons: `/home/pi/build/linux2/lib/libsrc.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_nodes.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_cmpnodes.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_shdnodes.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_texnodes.a' is up to date.
scons: `/home/pi/build/linux2/lib/libblender_python.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_ftfont.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_dds.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_openexr.a' is up to date.
scons: `/home/pi/build/linux2/lib/libbf_kernel.a' is up to date.
scons: `/home/pi/build/linux2/lib/libblender_creator.a' is up to date.
Compiling ==&gt; 'buildinfo.c'
gcc: error: directory': No such file or directory
scons: *** [/home/pi/build/linux2/source/creator/dynamic_buildinfo.o] Error 1
scons: building terminated because of errors.

… anybody?

Been lurking here… No hardware to support, unfortunately.

From the sources: BoolVariable(‘BF_NO_ELBEEM’, ‘Disable Fluid Sim’

freetype/ttnameid.h:
“file containing the enumeration values which identify name strings, languages, encodings, etc. This file really contains a large set of constant macro definitions, taken from the TrueType and OpenType specifications.”

Don’t know much about scons building (i had more success using cmake) but the last error seems to do with what probably could have been omitted using (or not) -DWITH_BUILDINFO flag for cmake.

There is this btools.py file… If this has to do with scons and build parameters as i think, there is line


(BoolVariable('BF_BUILDINFO', 'Buildtime in splash if true', True)),

Again, not that i do compile blender much ;)…
Good luck!