Installation of yade on fedora

From Yade

Revision as of 13:47, 28 July 2008 by Eudoxos (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Installation browse

<categorytree mode=pages>Installation</categorytree>


THESE INSTRUCTIONS ARE OBSOLETE and you are welcome to update them if you happen to run fedora.

Fedora Extras 6

Get prequisities:

yum install gcc-c++ qt-devel glut boost boost-devel scons wget tar gunzip tar make libXmu libXmu-devel diff glut-devel 
yum install ScientificPython python-devel   # those are optional
wget http://artis.imag.fr/Members/Gilles.Debunne/QGLViewer/src/libQGLViewer-2.2.5-1.src.rpm
PATH=$PATH:/usr/lib/qt-3.3/bin QTDIR=/usr/lib/qt-3.3/ rpmbuild --rebuild libQGLViewer-2.2.5-1.src.rpm

Optionally you might want to install the wildmagic 3 library, which can be used by Lattice Geometrical Model. But is not absolutely necassary (used only for Delaunay mesh generation method in lattice model).

Run command below from inside yade-0.11.0/ directory to install yade as a local user without root privileages (recommended):

scons PREFIX=/home/username/YADE optimize=1

Replace username with your user name. Be sure to check out scons options on installation details page for optimized builds or different installation directory.

Fedora core 4 note

On fedora core 4 the gcc 4 generates an error when it encounters an anonymous enum. It is no longer possible to write

enum {value = 1 }

It must be written instead:

enum enumname {value = 1 }

Under fedora 4 the default compiler is gcc 4 and some header files from stl still contain anonymous enums. You must edit those .h files and give any name to those enums. Among other files this must be corrected: /usr/include/c++/4.0.?/bits/cpp_type_traits.h, and some of QT headers, like qcolor.h. Remember to give different name to each enum. Inside there is something like this:

template<>
    struct __is_integer<bool>
    {
      enum { __value = 1 };
      typedef __true_type __type;
    };

Replace it with:

template<>
    struct __is_integer<bool>
    {
      enum enumname1 { __value = 1 };
      typedef __true_type __type;
    };

In above case the compilation error was reported as:

.../yade/yade-lib-wm3-math/Math.ipp:53: error:
`std::__is _integer<double>::<anonymous enum>' is/uses anonymous type

Mach chroot under ubuntu

Mach is automated chroot builder for rpm-based distributions; it is run like this (on ubuntu):

mach -r [distribution-variant] setup build 

The [distribution-variant] needs to be looked up in /etc/mach/dist.d/* and is defined as 'alias'; in my case, it was fedora-6-i386-extras

mach -r ... yum install yum
mach -r ... chroot 
yum install ... # this is inside the chroot; check /etc/resolv.conf also