# This patch removes all need for the ThirdParty files of OpenFOAM:
# we use EB dependencies for everything. It adjusts the paths, variables, etc
# We also let the install dir, compiler, etc be set by EB.
# Lastly, we also fix a small compile issue in 'ptscotchDecomp.C'
# Ward Poelmans <wpoely86@gmail.com>
diff -ur OpenFOAM-4.1.orig/applications/utilities/mesh/manipulation/setSet/Allwmake OpenFOAM-4.1/applications/utilities/mesh/manipulation/setSet/Allwmake
--- OpenFOAM-4.1.orig/applications/utilities/mesh/manipulation/setSet/Allwmake	2016-06-24 23:33:52.000000000 +0200
+++ OpenFOAM-4.1/applications/utilities/mesh/manipulation/setSet/Allwmake	2016-09-02 15:44:36.305512075 +0200
@@ -9,11 +9,11 @@
 #
 # use readline if available
 #
-if [ -f /usr/include/readline/readline.h ]
+if [ -f $EBROOTLIBREADLINE/include/readline/readline.h ]
 then
     echo "Found <readline/readline.h>  --  enabling readline support."
     export COMP_FLAGS="-DHAS_READLINE"
-    export LINK_FLAGS="-lreadline"
+    export LINK_FLAGS="-L$EBROOTLIBREADLINE/lib -lreadline -L$EBROOTNCURSES -lncurses"
 fi

 wmake
diff -ur OpenFOAM-4.1.orig/applications/utilities/postProcessing/graphics/PVReaders/Allwmake OpenFOAM-4.1/applications/utilities/postProcessing/graphics/PVReaders/Allwmake
--- OpenFOAM-4.1.orig/applications/utilities/postProcessing/graphics/PVReaders/Allwmake	2016-06-24 23:33:52.000000000 +0200
+++ OpenFOAM-4.1/applications/utilities/postProcessing/graphics/PVReaders/Allwmake	2016-09-02 15:44:36.305512075 +0200
@@ -16,7 +16,7 @@
         }

         # ensure CMake gets the correct C++ compiler
-        [ -n "$WM_CXX" ] && export CXX="$WM_CXX"
+#        [ -n "$WM_CXX" ] && export CXX="$WM_CXX"

         wmake $targetType vtkPVReaders
         PVblockMeshReader/Allwmake $*
diff -ur OpenFOAM-4.1.orig/etc/bashrc OpenFOAM-4.1/etc/bashrc
--- OpenFOAM-4.1.orig/etc/bashrc	2016-06-24 23:33:52.000000000 +0200
+++ OpenFOAM-4.1/etc/bashrc	2016-09-02 15:43:37.773220097 +0200
@@ -42,9 +42,8 @@
 #
 # Please set to the appropriate path if the default is not correct.
 #
-[ $BASH_SOURCE ] && \
-export FOAM_INST_DIR=$(cd ${BASH_SOURCE%/*/*/*} && pwd -P) || \
-export FOAM_INST_DIR=$HOME/$WM_PROJECT
+# For Easybuild: set by the module
+#
 # export FOAM_INST_DIR=~$WM_PROJECT
 # export FOAM_INST_DIR=/opt/$WM_PROJECT
 # export FOAM_INST_DIR=/usr/local/$WM_PROJECT
diff -ur OpenFOAM-4.1.orig/etc/config.sh/CGAL OpenFOAM-4.1/etc/config.sh/CGAL
--- OpenFOAM-4.1.orig/etc/config.sh/CGAL	2016-06-24 23:33:52.000000000 +0200
+++ OpenFOAM-4.1/etc/config.sh/CGAL	2016-09-02 15:43:37.773220097 +0200
@@ -36,37 +36,7 @@
 #
 #------------------------------------------------------------------------------

-boost_version=boost-system
-cgal_version=cgal-system
-#cgal_version=CGAL-4.8
-
-if [ -z "$SOURCE_CGAL_VERSIONS_ONLY" ]
-then
-
-    common_path=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER
-
-    export BOOST_ARCH_PATH=$common_path/$boost_version
-    export CGAL_ARCH_PATH=$common_path/$cgal_version
-
-    if [ "$FOAM_VERBOSE" -a "$PS1" ]
-    then
-        echo "Using CGAL and boost" 1>&2
-        echo "    $cgal_version at $CGAL_ARCH_PATH" 1>&2
-        echo "    $boost_version at $BOOST_ARCH_PATH" 1>&2
-    fi
-
-    if [ -d "$CGAL_ARCH_PATH" -a "$cgal_version" != "cgal-system" ]
-    then
-        _foamAddLib $CGAL_ARCH_PATH/lib
-    fi
-
-    if [ -d "$BOOST_ARCH_PATH" -a "$boost_version" != "boost-system" ]
-    then
-        _foamAddLib $BOOST_ARCH_PATH/lib
-    fi
-
-    unset boost_version cgal_version common_path
-
-fi
+export CGAL_ARCH_PATH=$EBROOTCGAL
+export BOOST_ARCH_PATH=$EBROOTBOOST

 #------------------------------------------------------------------------------
diff -ur OpenFOAM-4.1.orig/etc/config.sh/gperftools OpenFOAM-4.1/etc/config.sh/gperftools
--- OpenFOAM-4.1.orig/etc/config.sh/gperftools	2016-06-24 23:33:52.000000000 +0200
+++ OpenFOAM-4.1/etc/config.sh/gperftools	2016-09-02 15:43:37.773220097 +0200
@@ -29,13 +29,7 @@
 #
 #------------------------------------------------------------------------------

-version=svn
-gperftools_install=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER
-
-GPERFTOOLS_VERSION=gperftools-$version
-GPERFTOOLS_ARCH_PATH=$gperftools_install/$GPERFTOOLS_VERSION
-
-export PATH=$GPERFTOOLS_ARCH_PATH/bin:$PATH
-export LD_LIBRARY_PATH=$GPERFTOOLS_ARCH_PATH/lib:$LD_LIBRARY_PATH
+GPERFTOOLS_VERSION=gperftools-$EBVERSIONGPERFTOOLS
+GPERFTOOLS_ARCH_PATH=$EBROOTGPERFTOOLS

 #------------------------------------------------------------------------------
diff -ur OpenFOAM-4.1.orig/etc/config.sh/metis OpenFOAM-4.1/etc/config.sh/metis
--- OpenFOAM-4.1.orig/etc/config.sh/metis	2016-06-24 23:33:52.000000000 +0200
+++ OpenFOAM-4.1/etc/config.sh/metis	2016-09-02 15:43:37.773220097 +0200
@@ -34,7 +34,7 @@
 #
 #------------------------------------------------------------------------------

-export METIS_VERSION=metis-5.1.0
-export METIS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$METIS_VERSION
+export METIS_VERSION=metis-$EBVERSIONMETIS
+export METIS_ARCH_PATH=$EBROOTMETIS

 #------------------------------------------------------------------------------
diff -ur OpenFOAM-4.1.orig/etc/config.sh/mpi OpenFOAM-4.1/etc/config.sh/mpi
--- OpenFOAM-4.1.orig/etc/config.sh/mpi	2016-06-24 23:33:52.000000000 +0200
+++ OpenFOAM-4.1/etc/config.sh/mpi	2016-09-02 15:43:37.773220097 +0200
@@ -243,6 +243,9 @@
     _foamAddPath    $MPI_ARCH_PATH/bin64
     _foamAddLib     $MPI_ARCH_PATH/lib64
     ;;
+EASYBUILDMPI)
+    export FOAM_MPI=mpi
+    ;;
 *)
     export FOAM_MPI=dummy
     ;;
diff -ur OpenFOAM-4.1.orig/etc/config.sh/paraview OpenFOAM-4.1/etc/config.sh/paraview
--- OpenFOAM-4.1.orig/etc/config.sh/paraview	2016-06-24 23:33:52.000000000 +0200
+++ OpenFOAM-4.1/etc/config.sh/paraview	2016-09-02 15:43:37.773220097 +0200
@@ -41,21 +41,6 @@
         ) \
         && PATH="$cleaned"

-# Determine the cmake to be used
-unset CMAKE_HOME
-for cmake in cmake-3.2.1 cmake-2.8.12.1 cmake-2.8.8 cmake-2.8.4 cmake-2.8.3 \
-             cmake-2.8.1
-do
-    cmake=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cmake
-    if [ -r $cmake ]
-    then
-        export CMAKE_HOME=$cmake
-        export CMAKE_ROOT=$cmake
-        export PATH=$CMAKE_HOME/bin:$PATH
-        break
-    fi
-done
-

 #- ParaView version, automatically determine major version
 #export ParaView_VERSION=3.12.0
@@ -64,7 +49,7 @@
 #export ParaView_VERSION=4.3.1
 #export ParaView_VERSION=4.4.0
 #export ParaView_VERSION=5.0.0
-export ParaView_VERSION=5.0.1
+export ParaView_VERSION=$EBVERSIONPARAVIEW
 export ParaView_MAJOR=detect


@@ -105,21 +90,15 @@
 paraviewInstDir=$WM_THIRD_PARTY_DIR/ParaView-$ParaView_VERSION
 paraviewArchName=ParaView-$ParaView_VERSION

-export ParaView_DIR=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$paraviewArchName
+export ParaView_DIR=$EBROOTPARAVIEW

 # Set paths if binaries or source are present
 if [ -r $ParaView_DIR -o -r $paraviewInstDir ]
 then
     export ParaView_INCLUDE_DIR=$ParaView_DIR/include/paraview-$ParaView_MAJOR
-    if [ ! -d $ParaView_INCLUDE_DIR -a -d $ParaView_DIR/include/paraview-3.0 ]
-    then
-        export ParaView_INCLUDE_DIR=$ParaView_DIR/include/paraview-3.0
-    fi

     ParaView_LIB_DIR=$ParaView_DIR/lib/paraview-$ParaView_MAJOR

-    export PATH=$ParaView_DIR/bin:$PATH
-    export LD_LIBRARY_PATH=$ParaView_LIB_DIR:$LD_LIBRARY_PATH
     export PV_PLUGIN_PATH=$FOAM_LIBBIN/paraview-$ParaView_MAJOR

     if [ "$FOAM_VERBOSE" -a "$PS1" ]
@@ -131,17 +110,6 @@
         echo "    PV_PLUGIN_PATH       : $PV_PLUGIN_PATH"
     fi

-    # Add in python libraries if required
-    paraviewPython=$ParaView_DIR/Utilities/VTKPythonWrapping
-    if [ -r $paraviewPython ]
-    then
-        if [ "$PYTHONPATH" ]
-        then
-            export PYTHONPATH=$PYTHONPATH:$paraviewPython:$ParaView_LIB_DIR
-        else
-            export PYTHONPATH=$paraviewPython:$ParaView_LIB_DIR
-        fi
-    fi
 else
     unset PV_PLUGIN_PATH
 fi
diff -ur OpenFOAM-4.1.orig/etc/config.sh/scotch OpenFOAM-4.1/etc/config.sh/scotch
--- OpenFOAM-4.1.orig/etc/config.sh/scotch	2016-06-24 23:33:52.000000000 +0200
+++ OpenFOAM-4.1/etc/config.sh/scotch	2016-09-02 15:43:37.773220097 +0200
@@ -37,7 +37,7 @@
 #
 #------------------------------------------------------------------------------

-export SCOTCH_VERSION=scotch_6.0.3
-export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$SCOTCH_VERSION
+export SCOTCH_VERSION=scotch_$EBVERSIONSCOTCH
+export SCOTCH_ARCH_PATH=$EBROOTSCOTCH

 #------------------------------------------------------------------------------
diff -ur OpenFOAM-4.1.orig/etc/config.sh/settings OpenFOAM-4.1/etc/config.sh/settings
--- OpenFOAM-4.1.orig/etc/config.sh/settings	2016-06-24 23:33:52.000000000 +0200
+++ OpenFOAM-4.1/etc/config.sh/settings	2016-09-02 15:43:37.773220097 +0200
@@ -56,11 +56,11 @@
         64)
             WM_ARCH=linux64
             export WM_COMPILER_LIB_ARCH=64
-            export WM_CC='gcc'
-            export WM_CXX='g++'
-            export WM_CFLAGS='-m64 -fPIC'
-            export WM_CXXFLAGS='-m64 -fPIC -std=c++0x'
-            export WM_LDFLAGS='-m64'
+            export WM_CC=$CC
+            export WM_CXX=$CXX
+            export WM_CFLAGS=$CFLAGS
+            export WM_CXXFLAGS=$CXXFLAGS
+            export WM_LDFLAGS=$LDFLAGS
             ;;
         *)
             echo "Unknown WM_ARCH_OPTION '$WM_ARCH_OPTION', should be 32 or 64"\
diff -ur OpenFOAM-4.1.orig/src/parallel/decompose/ptscotchDecomp/Make/options OpenFOAM-4.1/src/parallel/decompose/ptscotchDecomp/Make/options
--- OpenFOAM-4.1.orig/src/parallel/decompose/ptscotchDecomp/Make/options	2016-06-24 23:33:52.000000000 +0200
+++ OpenFOAM-4.1/src/parallel/decompose/ptscotchDecomp/Make/options	2016-09-02 15:44:36.305512075 +0200
@@ -3,10 +3,8 @@

 EXE_INC = \
     $(PFLAGS) $(PINC) \
-    -I$(SCOTCH_ROOT)/include \
     -I$(SCOTCH_ARCH_PATH)/include/$(FOAM_MPI) \
-    -I/usr/include/scotch \
     -I../decompositionMethods/lnInclude

 LIB_LIBS = \
-    -L$(SCOTCH_ROOT)/lib -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) -lptscotch -lptscotcherrexit -lscotch ${LINK_FLAGS} -lrt
+    -L$(SCOTCH_ARCH_PATH)/lib -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) -lptscotch -lptscotcherrexit -lscotch ${LINK_FLAGS} -lrt
diff -ur OpenFOAM-4.1.orig/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C OpenFOAM-4.1/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C
--- OpenFOAM-4.1.orig/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C	2016-06-24 23:33:52.000000000 +0200
+++ OpenFOAM-4.1/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C	2016-09-02 15:45:13.376950242 +0200
@@ -30,10 +30,11 @@
 #include "globalIndex.H"
 #include "SubField.H"

+#include <mpi.h>
+
 extern "C"
 {
     #include <stdio.h>
-    #include <mpi.h>
     #include "ptscotch.h"
 }

diff -ur OpenFOAM-4.1.orig/src/parallel/decompose/scotchDecomp/Make/options OpenFOAM-4.1/src/parallel/decompose/scotchDecomp/Make/options
--- OpenFOAM-4.1.orig/src/parallel/decompose/scotchDecomp/Make/options	2016-06-24 23:33:52.000000000 +0200
+++ OpenFOAM-4.1/src/parallel/decompose/scotchDecomp/Make/options	2016-09-02 15:44:36.305512075 +0200
@@ -7,10 +7,8 @@

 EXE_INC = \
     $(PFLAGS) $(PINC) \
-    -I$(SCOTCH_ROOT)/include \
     -I$(SCOTCH_ARCH_PATH)/include \
-    -I/usr/include/scotch \
     -I../decompositionMethods/lnInclude

 LIB_LIBS = \
-    -L$(SCOTCH_ROOT)/lib -L$(FOAM_EXT_LIBBIN) -lscotch -lscotcherrexit -lrt
+    -L$(SCOTCH_ARCH_PATH)/lib -L$(FOAM_EXT_LIBBIN) -lscotch -lscotcherrexit -lrt