Differences between revisions 1 and 13 (spanning 12 versions)
Revision 1 as of 2005-07-01 21:23:45
Size: 4279
Comment:
Revision 13 as of 2007-02-11 10:22:12
Size: 5154
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Compiling F.O.X. under Linux is normally easy (it is developped using Mandriva Linux). The only difficulty is getting the right graphic libraries (wxWidgets and OpenGL+glut).
As always, send me an email at vincefn@users.sf.net if you have any trouble with the installation.
## page was renamed from FoxInstallLinux
== Installing Fox on Linux ==
Compiling F.O.X. under Linux is normally easy (it is developped using Mandriva Linux). ''The source code for Fox now includes the [http://wxwidgets.org wxWidgets] and [http://freeglut.sf.net freeglut] libraries'', so dependencies should be minimal. As always, send me an email at vincefn@users.sf.net if you have any trouble with the installation.
Line 5: Line 6:
 * '''[#lib 1. Install the required graphical libraries]'''
 * '''[#fox 2. Get, compile & install Fox]'''
Line 8: Line 7:
== Installing the required graphics libraries ==
[[Anchor(lib)]]
Below are '''specific instructions to install the required graphics libaries for the following distributions''' :
 *'''[#mdk Mandriva]'''
 *
'''[#fedora Fedora]'''
 *
'''[#suse Suse]'''
 * '''[#lib Install the required graphical libraries]'''
 * '''[#fox Get, compile & install Fox]'''
 * '''[#optimize Compile an optimized version of Fox] '''

=== Installing
the required graphics libraries ===
[[Anchor(lib)]]  Below are '''specific instructions to install the required graphics libaries for the following distributions''' :

 *
'''[#mdk Mandriva]'''[[BR]]
 *
'''[#fedora Fedora]'''[[BR]]
 * '''[#ubuntu Ubuntu]'''[[BR]]
 *
'''[#suse Suse]'''[[BR]]
Line 15: Line 20:
=== General Instructions (if your distribution is not listed below)[[Anchor(general)]] ===
If your distribution is not listed, just follow the [#general general building instructions]. [[Anchor(general)]]

=
=== General Instructions (if your distribution is not listed below) ====
Line 17: Line 25:
    * You will need valid libraries and development files for '''OpenGL'''. You may require a specific library for your card (NVidia,...), the '''Mesa''', '''Mesa-devel''', '''Xfree-devel''' or libxorg-devel packages. You will also need to install the '''glut''' or '''freeglut''' library (in Fox v1.5, this was not necessary but the new method does not work as expected on some graphic drivers... You can stick to the Fox v.1.5 method by removing the "```-DHAVE_GLUT```" and "```-lglut```" in the ```Fox/ObjCryst/rules.mak``` file). For all major distributions, these packages are included either in the default install or as an additionnal package.
    * You will also need to download and install the '''wxWidgets''' for GTK+ shared libraries (you need the '''wxGTK''', '''wxGTK-gl''' and '''wxGTK-devel''' packages). Note that ''starting with Fox 1.6, only wxWindows > 2.4.x are supported''
          * With wxGTK-2.4.*, after the install you must do:
                * ```ln -s /usr/bin/wxgtk-2.4-config /usr/bin/wx-config```
                or
                *```ln -s /usr/bin/wxgtk2-2.4-config /usr/bin/wx-config```
                depending which version you have...
=== Mandrake & Mandriva ===
[[Anchor(mdk)]]
==== Mandriva 10.2 (200(LE) ====
  The required packages (just ```urpmi``` followed by tha package names - you need the '''main''' and '''contrib''' rpm repositories) are :
    * Development packages (should be obvious but...): ```gcc gcc-c++ gcc-cpp gcc-g77```
    * wxWidgets : ```libwxgtk2.6 libwxgtk2.6-devel libwxgtkgl2.6 wxGTK2.6 libwxgtkgl2.6```
    * OpenGL and glut: ```libMesaGLU1 libMesaGLU1-devel libMesaglut3 libMesaglut3-devel```
    * Xorg development package : ```libxorg-x11-devel```
    
=== Fedora ===

 * You will need valid libraries and development files for '''OpenGL'''. You may require a specific library for your card (NVidia,...), the '''Xfree-devel''' or '''libxorg-devel''', and the '''gtk-devel''' (or '''gtk+-devel''' or '''gtk2-devel'''...) packages. For all major distributions, these packages are included either in the default install or as an additionnal package.

==== Mandrake & Mandriva ====
[[Anchor(mdk)]]
===== Mandriva 10.2 (2006) =====
 The required packages (just ```urpmi``` followed by tha package names - you need the '''main''' and '''contrib''' rpm repositories) are :
  * Development packages: ```gcc gcc-c++ gcc-cpp gfortran```
  * Graphics development packages : `libxorg-x11-devel, libgtk+1.2-devel, libMesaglut3-devel `

==== Fedora ====
Line 35: Line 37:
==== Fedora Core 3 & 4 ====
    * Development packages (should be obvious but...): ```gcc gcc-c++ gcc-g77```
    * wxWidgets (in the ''extra'' packages): ```wxGTK2-2.4.2 wxGTK2-devel-2.4.2 wxGTK2-gl-2.4.2 wxGTK2-stc-2.4.2 wxGTK2-xrc-2.4.2```
    * OpenGL and glut: ```xorg-x11-Mesa-libGL xorg-x11-Mesa-libGLU freeglut freeglut-devel ```
    * Xorg development package : ```xorg-x11-devel```
Line 41: Line 38:
=== SuSE === ===== Fedora Core 3 & 4 =====
 * Development packages: ```gcc gcc-c++ gcc-g77```
 * Graphics development package : `xorg-x11-devel, gtk+-devel`

[[Anchor(ubuntu)]]
==== Ubuntu ====
 * Development packages: ```gcc g++ gcc-g77```
 * Graphics development package : `libgl1-mesa-dev, libglu1-mesa-dev, libgtk1.2-dev`

==== SuSE ====
Line 43: Line 49:
==== SuSE 9.3 ====
    * Development packages (should be obvious but...): ```gcc gcc-c++ gcc-g77```
    * wxWidgets: ``` wxGTK wxGTK-compat wxGTK-debuginfo wxGTK-devel wxGTK-gl ```
    * OpenGL and glut: ```freeglut freeglut-debuginfo freeglut-devel xorg-x11-Mesa xorg-x11-Mesa-devel```
    * Xorg development package : ```xorg-x11-devel```
Line 49: Line 50:
== Get, compile & installing Fox ==
[[Anchor(fox)]]
Get the Fox.tar.bz2 from [http://sourceforge.net/project/showfiles.php?group_id=27546&release_id=203604 SourceForge], [ftp://ftp.ccp14.ac.uk/ccp14/ftp-mirror/objcryst/ CCP14(UK)], [http://ccp14.sims.nrc.ca/ccp/ccp14/ftp-mirror/objcryst/ CCP14(Canada)] or [http://ccp14.semo.edu/ccp/ccp14/ftp-mirror/objcryst/ CCP14(USA)]
===== SuSE 9.3 =====
 * Development packages: ```gcc gcc-c++ gcc-g77```
 * Graphics development package : `xorg-x11-devel, gtk-devel (or gtk2-devel)`
Line 53: Line 54:
Then compile and install Fox: === Get, compile & install Fox ===
[[Anchor(fox)]] Get the Fox.tar.bz2 from [http://sourceforge.net/project/showfiles.php?group_id=27546&release_id=203604 SourceForge], [ftp://ftp.ccp14.ac.uk/ccp14/ftp-mirror/objcryst/ CCP14(UK)], [http://ccp14.sims.nrc.ca/ccp/ccp14/ftp-mirror/objcryst/ CCP14(Canada)] or [http://ccp14.semo.edu/ccp/ccp14/ftp-mirror/objcryst/ CCP14(USA)]
Line 55: Line 57:
  ```tar -xjf Fox-20031213.tar.bz2``` Then compile and install Fox (replace VERSION by your version of Fox):
Line 57: Line 59:
  ```cd Fox-20031213``` {{{
  tar -xjf Fox-VERSION.tar.bz2
  cd Fox-VERSION
  make
  make install (for this last step you must be root).
}}}
Line 59: Line 66:
  ```make``` Fox will be installed in /usr/local/bin/Fox. Otherwise the compiled file is in the `src/Fox` subdirectory.
Line 61: Line 68:
  ```make install``` (for this last step you must be root).  ''Note'': if during the early stages of the compilation (when freeglut is compiled), you get an error message about ```libGL.la```, this can mean that ```libGL.la``` is not in the same directory as other x11 libraries. On my computer, where ```libGL.la``` is provided by the nVidia installer, I needed to do "```ln -s /usr/lib/libGL.la /usr/X11R6/lib/```".
Line 63: Line 70:
Fox will be installed in /usr/local/bin/Fox. Otherwise the compiled file is in the ```src/Fox``` subdirectory. === Compiling an optimized version of Fox ===
[[Anchor(optimize)]]
==== Compile options ====
 The first set of optimizations can be activated by using processor-specific optimizations. If you edit the ```Fox/ObjCryst/rules.mak``` file, and search for the part where the ```CPPFLAGS``` are defined:
 {{{
CPPFLAGS = -O3 -w -ffast-math -fstrict-aliasing -pipe -fomit-frame-pointer -funroll-loops
}}}
 ''Auto-vectorization'': starting with gcc 4.0.0, it is possible to automatically '''vectorize''' some loops: append ```-ftree-vectorize``` to the ```CPPFLAGS``` options to do that (see the examples commented out in the ```rules.mak``` file).

==== Profile driven optimizations ====
Fox can be further optimized by making "test runs" which are used to give hints to the compiler on how to best optimize the code. To do this you (i) compile Fox by enabling the "recording" of the optimization, then (ii) you run a few optimizations, then (iii) you recompile using the recorded profile. ''This requires gcc version 3.2 or above''.To do that from the Fox directory, do:

{{{
make clean
make Fox profile=2
src/Fox --nogui example/pbso4-joint.xml --randomize -n 50000 -o /dev/null
src/Fox --nogui example/Cimetidine-powder.xml --randomize -n 50000 -o /dev/null
src/Fox --speedtest
make clean
make Fox profile=3
make install}}}

This yields about 10% faster code.

Installing Fox on Linux

Compiling F.O.X. under Linux is normally easy (it is developped using Mandriva Linux). The source code for Fox now includes the [http://wxwidgets.org wxWidgets] and [http://freeglut.sf.net freeglut] libraries, so dependencies should be minimal. As always, send me an email at vincefn@users.sf.net if you have any trouble with the installation.

Steps:

  • [#lib Install the required graphical libraries]

  • [#fox Get, compile & install Fox]

  • [#optimize Compile an optimized version of Fox]

Installing the required graphics libraries

Anchor(lib) Below are specific instructions to install the required graphics libaries for the following distributions :

  • [#mdk Mandriva]BR

  • [#fedora Fedora]BR

  • [#ubuntu Ubuntu]BR

  • [#suse Suse]BR

Please add or correct the instructions for your distribution...

If your distribution is not listed, just follow the [#general general building instructions]. Anchor(general)

General Instructions (if your distribution is not listed below)

To install F.O.X. under Linux:

  • You will need valid libraries and development files for OpenGL. You may require a specific library for your card (NVidia,...), the Xfree-devel or libxorg-devel, and the gtk-devel (or gtk+-devel or gtk2-devel...) packages. For all major distributions, these packages are included either in the default install or as an additionnal package.

Mandrake & Mandriva

Anchor(mdk)

Mandriva 10.2 (2006)
  • The required packages (just urpmi followed by tha package names - you need the main and contrib rpm repositories) are :

    • Development packages: gcc gcc-c++ gcc-cpp gfortran

    • Graphics development packages : libxorg-x11-devel, libgtk+1.2-devel, libMesaglut3-devel 

Fedora

Anchor(fedora) This is partially a guess since I do not have this distribution, so feel free to correct these

Fedora Core 3 & 4
  • Development packages: gcc gcc-c++ gcc-g77

  • Graphics development package : xorg-x11-devel, gtk+-devel

Anchor(ubuntu)

Ubuntu

  • Development packages: gcc g++ gcc-g77

  • Graphics development package : libgl1-mesa-dev, libglu1-mesa-dev, libgtk1.2-dev

SuSE

Anchor(suse) This is partially a guess since I do not have this distribution, so feel free to correct these

SuSE 9.3
  • Development packages: gcc gcc-c++ gcc-g77

  • Graphics development package : xorg-x11-devel, gtk-devel (or gtk2-devel)

Get, compile & install Fox

Anchor(fox) Get the Fox.tar.bz2 from [http://sourceforge.net/project/showfiles.php?group_id=27546&release_id=203604 SourceForge], [ftp://ftp.ccp14.ac.uk/ccp14/ftp-mirror/objcryst/ CCP14(UK)], [http://ccp14.sims.nrc.ca/ccp/ccp14/ftp-mirror/objcryst/ CCP14(Canada)] or [http://ccp14.semo.edu/ccp/ccp14/ftp-mirror/objcryst/ CCP14(USA)]

Then compile and install Fox (replace VERSION by your version of Fox):

  tar -xjf Fox-VERSION.tar.bz2
  cd Fox-VERSION
  make
  make install (for this last step you must be root).

Fox will be installed in /usr/local/bin/Fox. Otherwise the compiled file is in the src/Fox subdirectory.

  • Note: if during the early stages of the compilation (when freeglut is compiled), you get an error message about libGL.la, this can mean that libGL.la is not in the same directory as other x11 libraries. On my computer, where libGL.la is provided by the nVidia installer, I needed to do "ln -s /usr/lib/libGL.la /usr/X11R6/lib/".

Compiling an optimized version of Fox

Anchor(optimize)

Compile options

  • The first set of optimizations can be activated by using processor-specific optimizations. If you edit the Fox/ObjCryst/rules.mak file, and search for the part where the CPPFLAGS are defined:

    CPPFLAGS = -O3 -w -ffast-math -fstrict-aliasing -pipe -fomit-frame-pointer -funroll-loops

    Auto-vectorization: starting with gcc 4.0.0, it is possible to automatically vectorize some loops: append -ftree-vectorize to the CPPFLAGS options to do that (see the examples commented out in the rules.mak file).

Profile driven optimizations

Fox can be further optimized by making "test runs" which are used to give hints to the compiler on how to best optimize the code. To do this you (i) compile Fox by enabling the "recording" of the optimization, then (ii) you run a few optimizations, then (iii) you recompile using the recorded profile. This requires gcc version 3.2 or above.To do that from the Fox directory, do:

make clean
make Fox profile=2
src/Fox --nogui example/pbso4-joint.xml --randomize -n 50000 -o /dev/null
src/Fox --nogui example/Cimetidine-powder.xml --randomize -n 50000 -o /dev/null
src/Fox --speedtest
make clean
make Fox profile=3
make install

This yields about 10% faster code.

None: Install/Linux (last edited 2011-06-19 14:29:43 by VincentFavreNicolin)