Skip to content

Legacy Build Instructions

Steven Frank edited this page Jan 20, 2017 · 1 revision

Note on legacy build instructions

When pguyot first released Einstein, it could be cross-compiled for various platforms, such as OpenZaurus and Maemo. It is currently unknown if this still works or if these instructions are still accurate. The original build instructions are kept here for reference.

Build instructions for currently maintained platforms can be found at Build Instructions.


Building on Unix (including OS X) and Cygwin, as a native build, using Jam

  1. Install Jam 2.5. Not btjam, not ftjam, regular jam. You can get it from MacPorts on OS X. On Ubuntu, the debian package jam is fine. You can also compile it from source: ftp://ftp.perforce.com/pub/jam/jam-2.5.zip
  2. Make sure you have libstdc++-devel installed as well.
  3. K is part of the repository. You may have to update Makefiles. Unfortunately it vanished from SourceForge
  4. Compile K with Jam with cd <path_to_K>/_Build_/Jam/ && jam
  5. Get libffi. On OS X, I suggest getting with MacPorts. There seem to be pre-built copies for various platforms in the Einstein project in svn too.
  6. Compile Einstein with Jam with cd <path_to_einstein>/_Build_/Jam/ && jam -sK=<path_to_K> or cd <path_to_einstein>/_Build_/Jam/ && jam -sK=<path_to_K> -sC++FLAGS=-I/path/to/libffi/include -sCCFLAGS=-I/path/to/libffi/include -sLINKFLAGS=-I/path/to/libffi/include if libffi isn't installed in a standard path that the compiler will find. For example:

jam -sjittarget=generic -sC++FLAGS="-I/usr/local/include -I/root/einstein/Einstein/libffi-linux/include/ -L/root/einstein/Einstein/libffi-linux/lib" -sCCFLAGS="-I/usr/local/include -I/root/einstein/Einstein/libffi-linux/include/ -L/root/einstein/Einstein/libffi-linux/lib" -sK=/root/K/

Notes

If you got libffi with MacPorts as suggested, you don't need to specify its path on the command line. You will very probably need to edit the Jamfile to cope with your target.

On Unix (including OS X), as cross build, using Jam

The general method is the following:

  1. Install Jam 2.5. Not btjam, not ftjam, regular jam. You can get it from MacPorts on OS X. On Ubuntu, the debian package jam is fine. You can also compile it from source: ftp://ftp.perforce.com/pub/jam/jam-2.5.zip
  2. Get K (preferably from CVS) at http://sourceforge.net/projects/KLibs/
  3. Edit K's Jamfile so it will work with your setup.
  4. Compile K with Jam with {{{cd <path_to_K>/Build/Jam/ && jam -starget=<cross_target>}}}
  5. Edit Einstein's Jamfile so it will work with your setup.
  6. Compile Einstein with Jam with {{{cd <path_to_einstein>/Build/Jam/ && jam -sK=<path_to_K> -starget=<cross_target>}}}

How I built cross-binaries

  • OpenZaurus 3.4.5: with crosstool compilers, cf Open Zaurus Build Instructions.
  • Nokia 770 OS 2005: with crosstool compilers (built with gcc3 on the Mac).
  • Debian x86: with crosstool compilers.
  • Nokia 770/800 OS 2006: with Code Sourcery compilers ported with MacPorts, cf Nokia Build Instructions