Below are the build instructions for Raspbian Jessie (November 2015) These instructions assume that your Raspbian installation is up and running with full network access. If not, please visit the following Web sites for further instructions. As always, Google will also be your friend. https://www.raspberrypi.org/documentation/ https://www.raspberrypi.org/downloads/raspbian/ * Update your Raspbian installation: sudo apt-get update sudo apt-get upgrade * Install required packages: sudo apt-get install git gcc cmake bison flex make build-essential \ bison zlib1g-dev qt4-dev-tools libqt4-dev libopenmpi-dev openmpi-bin \ rpm libncurses-dev libxt-dev libboost-system-dev libboost-thread-dev \ libgmp-dev libmpfr-dev * Create the foam-extend installation directory: These instructions assume that you install in the default location, which is ~/foam/ . Create this folder with: mkdir ~/foam * Obtain and unpack source code (if you read this, you probably already have): The recommended way is to get the source code through git source code management system. This way, you can get updates and bugfixes easily by running "git pull". To install into the default location run: cd ~/foam git clone git://git.code.sf.net/p/foam-extend/foam-extend-3.2 * For Raspbian, you need to customize your file etc/prefs.sh in order to enable the usage of system-provided packages, and to enable the compilation of other. Here is a list of commands that will do just that. You can copy/paste the following block of commands in a control terminal in order to make the necessary adjustments. You will need to be located at the root of your foam-extend-3.2 installation for those commands to work. ### - Start to copy commands here ########################################### # cd ~/foam/foam-extend-3.2 # Create a prefs.sh file cp etc/prefs.sh-EXAMPLE etc/prefs.sh # Create a patch file cat <<'EOF' >> patch.txt --- etc/prefs.sh-EXAMPLE 2015-11-26 05:01:05.676022832 +0000 +++ etc/prefs.sh 2015-12-05 17:27:58.100579669 +0000 @@ -36,8 +36,9 @@ # Specify system compiler # ~~~~~~~~~~~~~~~~~~~~~~~ -#compilerInstall=System +compilerInstall=System #compilerInstall=FOAM +#WM_COMPILER=Gcc49 # Specify system openmpi # ~~~~~~~~~~~~~~~~~~~~~~ @@ -46,14 +47,14 @@ # The other openmpi related variables will be initialized using # the command mpicc --showme: # -#export WM_MPLIB=SYSTEMOPENMPI -#export OPENMPI_DIR=path_to_system_installed_openmpi -#export OPENMPI_BIN_DIR=$OPENMPI_DIR/bin -# -#export OPENMPI_LIB_DIR="`$OPENMPI_BIN_DIR/mpicc --showme:libdirs`" -#export OPENMPI_INCLUDE_DIR="`$OPENMPI_BIN_DIR/mpicc --showme:incdirs`" -#export OPENMPI_COMPILE_FLAGS="`$OPENMPI_BIN_DIR/mpicc --showme:compile`" -#export OPENMPI_LINK_FLAGS="`$OPENMPI_BIN_DIR/mpicc --showme:link`" +export WM_MPLIB=SYSTEMOPENMPI +export OPENMPI_DIR=/usr +export OPENMPI_BIN_DIR=$OPENMPI_DIR/bin +# +export OPENMPI_LIB_DIR="`$OPENMPI_BIN_DIR/mpicc --showme:libdirs`" +export OPENMPI_INCLUDE_DIR="`$OPENMPI_BIN_DIR/mpicc --showme:incdirs`" +export OPENMPI_COMPILE_FLAGS="`$OPENMPI_BIN_DIR/mpicc --showme:compile`" +export OPENMPI_LINK_FLAGS="`$OPENMPI_BIN_DIR/mpicc --showme:link`" # Specify system installed ThirdParty packages/libraries # NB: The packages installed under $WM_THIRD_PARTY_DIR @@ -201,7 +202,6 @@ # For AllMake.stage1 #export WM_THIRD_PARTY_USE_GCC_492=1 #export WM_THIRD_PARTY_USE_GCC_484=1 -#export WM_THIRD_PARTY_USE_GCC_474=1 #export WM_THIRD_PARTY_USE_GCC_463=1 #export WM_THIRD_PARTY_USE_GCC_451=1 #export WM_THIRD_PARTY_USE_GCC_445=1 @@ -209,7 +209,8 @@ #export WM_THIRD_PARTY_USE_M4_1416=1 #export WM_THIRD_PARTY_USE_BISON_27=1 #export WM_THIRD_PARTY_USE_FLEX_2535=1 -export WM_THIRD_PARTY_USE_CMAKE_322=1 +#export WM_THIRD_PARTY_USE_CMAKE_322=1 +unset WM_THIRD_PARTY_USE_CMAKE_322 # # For AllMake.stage2 EOF # Patch the file prefs.sh patch -p0 < patch.txt # Cleanup rm patch.txt # You are done # ### - Stop to copy commands here ########################################### ############################################################################ * Set environment variables: cd ~/foam/foam-extend-3.2 . etc/bashrc * Before compiling on the Raspberry Pi 2: Even though the Raspberry Pi2 has a more onboard RAM memory (1 GB), it cannot compile some parts of foam-extend in parallel without borrowing some virtual memory (swap). Depending on your system configuration and the amount of enabled services on your Raspberry Pi, you might even ran out of memory completely. So it is recommended not to compile foam-extend in parallel unless you keep an eye regularly on the compilation process and adjust your environment variable WM_NCOMPPROCS accordingly so you can compile some libraries/applications in parallel and some others using just 1 core. export WM_NCOMPPROCS=1 # or maybe 2 * Compile: # This will take a very long time but it will compile completely ./Allwmake.firstInstall * Create user directory: mkdir -p $FOAM_RUN And you are ready to start.