From 433b209702ca76905a5e4bd4b4cb53cb4abce848 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@Germany>
Date: Thu, 30 Apr 2009 08:32:48 +0200
Subject: [PATCH] update to openmpi-1.3.2, prepare for newly released gcc-4.4

- added rules for gcc-4.3 in preparation for switching to gcc-4.4

- added 'clean' target for wmake/src/Makefile
  It is probably reasonable to separate the binaries from the rules (TODO)
---
 etc/settings.csh                       |  7 ++++++-
 etc/settings.sh                        |  9 +++++++--
 wmake/rules/linux64Gcc43/X             |  3 +++
 wmake/rules/linux64Gcc43/c             | 16 ++++++++++++++++
 wmake/rules/linux64Gcc43/c++           | 21 +++++++++++++++++++++
 wmake/rules/linux64Gcc43/c++Debug      |  2 ++
 wmake/rules/linux64Gcc43/c++Opt        |  4 ++++
 wmake/rules/linux64Gcc43/c++Prof       |  2 ++
 wmake/rules/linux64Gcc43/cDebug        |  2 ++
 wmake/rules/linux64Gcc43/cOpt          |  2 ++
 wmake/rules/linux64Gcc43/cProf         |  2 ++
 wmake/rules/linux64Gcc43/general       | 11 +++++++++++
 wmake/rules/linux64Gcc43/mplib         |  3 +++
 wmake/rules/linux64Gcc43/mplibGAMMA    |  3 +++
 wmake/rules/linux64Gcc43/mplibHPMPI    |  3 +++
 wmake/rules/linux64Gcc43/mplibLAM      |  3 +++
 wmake/rules/linux64Gcc43/mplibMPICH    |  3 +++
 wmake/rules/linux64Gcc43/mplibMPICH-GM |  3 +++
 wmake/rules/linux64Gcc43/mplibOPENMPI  |  3 +++
 wmake/rules/linux64Gcc43/mplibQSMPI    |  4 ++++
 wmake/rules/linuxGcc43/X               |  3 +++
 wmake/rules/linuxGcc43/c               | 16 ++++++++++++++++
 wmake/rules/linuxGcc43/c++             | 21 +++++++++++++++++++++
 wmake/rules/linuxGcc43/c++Debug        |  2 ++
 wmake/rules/linuxGcc43/c++Opt          |  2 ++
 wmake/rules/linuxGcc43/c++Prof         |  2 ++
 wmake/rules/linuxGcc43/cDebug          |  2 ++
 wmake/rules/linuxGcc43/cOpt            |  2 ++
 wmake/rules/linuxGcc43/cProf           |  2 ++
 wmake/rules/linuxGcc43/general         | 10 ++++++++++
 wmake/rules/linuxGcc43/mplib           |  3 +++
 wmake/rules/linuxGcc43/mplibGAMMA      |  3 +++
 wmake/rules/linuxGcc43/mplibHPMPI      |  3 +++
 wmake/rules/linuxGcc43/mplibLAM        |  3 +++
 wmake/rules/linuxGcc43/mplibMPICH      |  3 +++
 wmake/rules/linuxGcc43/mplibMPICH-GM   |  3 +++
 wmake/rules/linuxGcc43/mplibOPENMPI    |  3 +++
 wmake/src/Makefile                     |  8 +++++++-
 38 files changed, 193 insertions(+), 4 deletions(-)
 create mode 100644 wmake/rules/linux64Gcc43/X
 create mode 100644 wmake/rules/linux64Gcc43/c
 create mode 100644 wmake/rules/linux64Gcc43/c++
 create mode 100644 wmake/rules/linux64Gcc43/c++Debug
 create mode 100644 wmake/rules/linux64Gcc43/c++Opt
 create mode 100644 wmake/rules/linux64Gcc43/c++Prof
 create mode 100644 wmake/rules/linux64Gcc43/cDebug
 create mode 100644 wmake/rules/linux64Gcc43/cOpt
 create mode 100644 wmake/rules/linux64Gcc43/cProf
 create mode 100644 wmake/rules/linux64Gcc43/general
 create mode 100644 wmake/rules/linux64Gcc43/mplib
 create mode 100644 wmake/rules/linux64Gcc43/mplibGAMMA
 create mode 100644 wmake/rules/linux64Gcc43/mplibHPMPI
 create mode 100644 wmake/rules/linux64Gcc43/mplibLAM
 create mode 100644 wmake/rules/linux64Gcc43/mplibMPICH
 create mode 100644 wmake/rules/linux64Gcc43/mplibMPICH-GM
 create mode 100644 wmake/rules/linux64Gcc43/mplibOPENMPI
 create mode 100644 wmake/rules/linux64Gcc43/mplibQSMPI
 create mode 100644 wmake/rules/linuxGcc43/X
 create mode 100644 wmake/rules/linuxGcc43/c
 create mode 100644 wmake/rules/linuxGcc43/c++
 create mode 100644 wmake/rules/linuxGcc43/c++Debug
 create mode 100644 wmake/rules/linuxGcc43/c++Opt
 create mode 100644 wmake/rules/linuxGcc43/c++Prof
 create mode 100644 wmake/rules/linuxGcc43/cDebug
 create mode 100644 wmake/rules/linuxGcc43/cOpt
 create mode 100644 wmake/rules/linuxGcc43/cProf
 create mode 100644 wmake/rules/linuxGcc43/general
 create mode 100644 wmake/rules/linuxGcc43/mplib
 create mode 100644 wmake/rules/linuxGcc43/mplibGAMMA
 create mode 100644 wmake/rules/linuxGcc43/mplibHPMPI
 create mode 100644 wmake/rules/linuxGcc43/mplibLAM
 create mode 100644 wmake/rules/linuxGcc43/mplibMPICH
 create mode 100644 wmake/rules/linuxGcc43/mplibMPICH-GM
 create mode 100644 wmake/rules/linuxGcc43/mplibOPENMPI

diff --git a/etc/settings.csh b/etc/settings.csh
index d0a1e996650..639f2eac63c 100644
--- a/etc/settings.csh
+++ b/etc/settings.csh
@@ -83,6 +83,11 @@ case OpenFOAM:
         _foamAddLib $WM_THIRD_PARTY_DIR/mpfr-2.4.1/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
         _foamAddLib $WM_THIRD_PARTY_DIR/gmp-4.2.4/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
     breaksw
+    case Gcc43:
+        setenv WM_COMPILER_DIR $WM_THIRD_PARTY_DIR/gcc-4.3.3/platforms/$WM_ARCH$WM_COMPILER_ARCH
+        _foamAddLib $WM_THIRD_PARTY_DIR/mpfr-2.4.1/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
+        _foamAddLib $WM_THIRD_PARTY_DIR/gmp-4.2.4/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
+    breaksw
     case Gcc42:
         setenv WM_COMPILER_DIR $WM_THIRD_PARTY_DIR/gcc-4.2.4/platforms/$WM_ARCH$WM_COMPILER_ARCH
     breaksw
@@ -113,7 +118,7 @@ unset MPI_ARCH_PATH
 
 switch ("$WM_MPLIB")
 case OPENMPI:
-    set mpi_version=openmpi-1.3
+    set mpi_version=openmpi-1.3.2
     setenv MPI_HOME $WM_THIRD_PARTY_DIR/$mpi_version
     setenv MPI_ARCH_PATH $MPI_HOME/platforms/$WM_OPTIONS
 
diff --git a/etc/settings.sh b/etc/settings.sh
index 14258eac677..aacd41f8bca 100644
--- a/etc/settings.sh
+++ b/etc/settings.sh
@@ -93,7 +93,7 @@ unset compilerBin compilerLib
 # compilerInstall = OpenFOAM | System
 compilerInstall=OpenFOAM
 
-case "$compilerInstall" in
+case "${compilerInstall:-OpenFOAM}" in
 OpenFOAM)
     case "$WM_COMPILER" in
     Gcc)
@@ -101,6 +101,11 @@ OpenFOAM)
         _foamAddLib $WM_THIRD_PARTY_DIR/mpfr-2.4.1/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
         _foamAddLib $WM_THIRD_PARTY_DIR/gmp-4.2.4/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
         ;;
+    Gcc43)
+        export WM_COMPILER_DIR=$WM_THIRD_PARTY_DIR/gcc-4.3.3/platforms/$WM_ARCH$WM_COMPILER_ARCH
+        _foamAddLib $WM_THIRD_PARTY_DIR/mpfr-2.4.1/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
+        _foamAddLib $WM_THIRD_PARTY_DIR/gmp-4.2.4/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
+        ;;
     Gcc42)
         export WM_COMPILER_DIR=$WM_THIRD_PARTY_DIR/gcc-4.2.4/platforms/$WM_ARCH$WM_COMPILER_ARCH
         ;;
@@ -137,7 +142,7 @@ unset MPI_ARCH_PATH
 
 case "$WM_MPLIB" in
 OPENMPI)
-    mpi_version=openmpi-1.3
+    mpi_version=openmpi-1.3.2
     export MPI_HOME=$WM_THIRD_PARTY_DIR/$mpi_version
     export MPI_ARCH_PATH=$MPI_HOME/platforms/$WM_OPTIONS
 
diff --git a/wmake/rules/linux64Gcc43/X b/wmake/rules/linux64Gcc43/X
new file mode 100644
index 00000000000..5d1f9c5cc54
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/X
@@ -0,0 +1,3 @@
+XFLAGS     =
+XINC       = $(XFLAGS) -I/usr/X11R6/include
+XLIBS      = -L/usr/X11R6/lib64 -lXext -lX11
diff --git a/wmake/rules/linux64Gcc43/c b/wmake/rules/linux64Gcc43/c
new file mode 100644
index 00000000000..80bb80f32f7
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/c
@@ -0,0 +1,16 @@
+.SUFFIXES: .c .h
+
+cWARN        = -Wall
+
+cc          = gcc -m64
+
+include $(RULES)/c$(WM_COMPILE_OPTION)
+
+cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
+
+ctoo        = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $$SOURCE -o $@
+
+LINK_LIBS   = $(cDBUG)
+
+LINKLIBSO   = $(cc) -shared
+LINKEXE     = $(cc) -Xlinker -z -Xlinker nodefs
diff --git a/wmake/rules/linux64Gcc43/c++ b/wmake/rules/linux64Gcc43/c++
new file mode 100644
index 00000000000..36b5c29b20b
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/c++
@@ -0,0 +1,21 @@
+.SUFFIXES: .C .cxx .cc .cpp
+
+c++WARN     = -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -Wold-style-cast
+
+CC          = g++ -m64
+
+include $(RULES)/c++$(WM_COMPILE_OPTION)
+
+ptFLAGS     = -DNoRepository -ftemplate-depth-40
+
+c++FLAGS    = $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC
+
+Ctoo        = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $$SOURCE -o $@
+cxxtoo      = $(Ctoo)
+cctoo       = $(Ctoo)
+cpptoo      = $(Ctoo)
+
+LINK_LIBS   = $(c++DBUG)
+
+LINKLIBSO   = $(CC) $(c++FLAGS) -shared
+LINKEXE     = $(CC) $(c++FLAGS)
diff --git a/wmake/rules/linux64Gcc43/c++Debug b/wmake/rules/linux64Gcc43/c++Debug
new file mode 100644
index 00000000000..19bdb9c3346
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/c++Debug
@@ -0,0 +1,2 @@
+c++DBUG    = -ggdb3 -DFULLDEBUG
+c++OPT      = -O0 -fdefault-inline
diff --git a/wmake/rules/linux64Gcc43/c++Opt b/wmake/rules/linux64Gcc43/c++Opt
new file mode 100644
index 00000000000..f19996b72da
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/c++Opt
@@ -0,0 +1,4 @@
+c++DBUG     = 
+c++OPT      = -march=opteron -O3
+#c++OPT      = -march=nocona -O3
+# -ftree-vectorize -ftree-vectorizer-verbose=3
diff --git a/wmake/rules/linux64Gcc43/c++Prof b/wmake/rules/linux64Gcc43/c++Prof
new file mode 100644
index 00000000000..3bda4dad55e
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/c++Prof
@@ -0,0 +1,2 @@
+c++DBUG    = -pg
+c++OPT     = -O2
diff --git a/wmake/rules/linux64Gcc43/cDebug b/wmake/rules/linux64Gcc43/cDebug
new file mode 100644
index 00000000000..72b638f4582
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/cDebug
@@ -0,0 +1,2 @@
+cDBUG       = -ggdb -DFULLDEBUG
+cOPT        = -O1 -fdefault-inline -finline-functions
diff --git a/wmake/rules/linux64Gcc43/cOpt b/wmake/rules/linux64Gcc43/cOpt
new file mode 100644
index 00000000000..7285a9de969
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/cOpt
@@ -0,0 +1,2 @@
+cDBUG       = 
+cOPT        = -march=opteron -O3 -fno-gcse
diff --git a/wmake/rules/linux64Gcc43/cProf b/wmake/rules/linux64Gcc43/cProf
new file mode 100644
index 00000000000..ca3ac9bf5f0
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/cProf
@@ -0,0 +1,2 @@
+cDBUG       = -pg
+cOPT        = -O2
diff --git a/wmake/rules/linux64Gcc43/general b/wmake/rules/linux64Gcc43/general
new file mode 100644
index 00000000000..11b48acc3fc
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/general
@@ -0,0 +1,11 @@
+CPP        = /lib/cpp $(GFLAGS)
+LD         = ld -A64
+
+PROJECT_LIBS = -l$(WM_PROJECT) -liberty -ldl
+
+include $(GENERAL_RULES)/standard
+
+include $(RULES)/X
+include $(RULES)/c
+include $(RULES)/c++
+include $(GENERAL_RULES)/cint
diff --git a/wmake/rules/linux64Gcc43/mplib b/wmake/rules/linux64Gcc43/mplib
new file mode 100644
index 00000000000..8a84b401469
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplib
@@ -0,0 +1,3 @@
+PFLAGS     = 
+PINC       = 
+PLIBS      = 
diff --git a/wmake/rules/linux64Gcc43/mplibGAMMA b/wmake/rules/linux64Gcc43/mplibGAMMA
new file mode 100644
index 00000000000..d62c6250ff4
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplibGAMMA
@@ -0,0 +1,3 @@
+PFLAGS     = 
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lgamma
diff --git a/wmake/rules/linux64Gcc43/mplibHPMPI b/wmake/rules/linux64Gcc43/mplibHPMPI
new file mode 100644
index 00000000000..574492a236a
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplibHPMPI
@@ -0,0 +1,3 @@
+PFLAGS     =
+PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_amd64 -lmpi
diff --git a/wmake/rules/linux64Gcc43/mplibLAM b/wmake/rules/linux64Gcc43/mplibLAM
new file mode 100644
index 00000000000..6762b843c12
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplibLAM
@@ -0,0 +1,3 @@
+PFLAGS     = 
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpi -llam -lpthread -lutil
diff --git a/wmake/rules/linux64Gcc43/mplibMPICH b/wmake/rules/linux64Gcc43/mplibMPICH
new file mode 100644
index 00000000000..ac17f7c1d2e
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplibMPICH
@@ -0,0 +1,3 @@
+PFLAGS     = 
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpich -lrt
diff --git a/wmake/rules/linux64Gcc43/mplibMPICH-GM b/wmake/rules/linux64Gcc43/mplibMPICH-GM
new file mode 100644
index 00000000000..88493ebc705
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplibMPICH-GM
@@ -0,0 +1,3 @@
+PFLAGS     =
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpich -L$(GM_LIB_PATH) -lgm
diff --git a/wmake/rules/linux64Gcc43/mplibOPENMPI b/wmake/rules/linux64Gcc43/mplibOPENMPI
new file mode 100644
index 00000000000..834d2d3e22a
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplibOPENMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DOMPI_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpi
diff --git a/wmake/rules/linux64Gcc43/mplibQSMPI b/wmake/rules/linux64Gcc43/mplibQSMPI
new file mode 100644
index 00000000000..95ea327379f
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplibQSMPI
@@ -0,0 +1,4 @@
+PFLAGS     =
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpi
+
diff --git a/wmake/rules/linuxGcc43/X b/wmake/rules/linuxGcc43/X
new file mode 100644
index 00000000000..bed8bfeddf5
--- /dev/null
+++ b/wmake/rules/linuxGcc43/X
@@ -0,0 +1,3 @@
+XFLAGS     =
+XINC       = $(XFLAGS) -I/usr/X11R6/include
+XLIBS      = -L/usr/X11R6/lib -lXext -lX11
diff --git a/wmake/rules/linuxGcc43/c b/wmake/rules/linuxGcc43/c
new file mode 100644
index 00000000000..8db5da10479
--- /dev/null
+++ b/wmake/rules/linuxGcc43/c
@@ -0,0 +1,16 @@
+.SUFFIXES: .c .h
+
+cWARN        = -Wall
+
+cc          = gcc -m32
+
+include $(RULES)/c$(WM_COMPILE_OPTION)
+
+cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
+
+ctoo        = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $$SOURCE -o $@
+
+LINK_LIBS   = $(cDBUG)
+
+LINKLIBSO   = $(cc) -shared
+LINKEXE     = $(cc) -Xlinker -z -Xlinker nodefs
diff --git a/wmake/rules/linuxGcc43/c++ b/wmake/rules/linuxGcc43/c++
new file mode 100644
index 00000000000..ab2410d3d0a
--- /dev/null
+++ b/wmake/rules/linuxGcc43/c++
@@ -0,0 +1,21 @@
+.SUFFIXES: .C .cxx .cc .cpp
+
+c++WARN     = -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -Wold-style-cast
+
+CC          = g++ -m32
+
+include $(RULES)/c++$(WM_COMPILE_OPTION)
+
+ptFLAGS     = -DNoRepository -ftemplate-depth-40
+
+c++FLAGS    = $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC -pthread
+
+Ctoo        = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $$SOURCE -o $@
+cxxtoo      = $(Ctoo)
+cctoo       = $(Ctoo)
+cpptoo      = $(Ctoo)
+
+LINK_LIBS   = $(c++DBUG)
+
+LINKLIBSO   = $(CC) $(c++FLAGS) -shared
+LINKEXE     = $(CC) $(c++FLAGS)
diff --git a/wmake/rules/linuxGcc43/c++Debug b/wmake/rules/linuxGcc43/c++Debug
new file mode 100644
index 00000000000..19bdb9c3346
--- /dev/null
+++ b/wmake/rules/linuxGcc43/c++Debug
@@ -0,0 +1,2 @@
+c++DBUG    = -ggdb3 -DFULLDEBUG
+c++OPT      = -O0 -fdefault-inline
diff --git a/wmake/rules/linuxGcc43/c++Opt b/wmake/rules/linuxGcc43/c++Opt
new file mode 100644
index 00000000000..4cb95b5b3a9
--- /dev/null
+++ b/wmake/rules/linuxGcc43/c++Opt
@@ -0,0 +1,2 @@
+c++DBUG     = 
+c++OPT      = -O3
diff --git a/wmake/rules/linuxGcc43/c++Prof b/wmake/rules/linuxGcc43/c++Prof
new file mode 100644
index 00000000000..3bda4dad55e
--- /dev/null
+++ b/wmake/rules/linuxGcc43/c++Prof
@@ -0,0 +1,2 @@
+c++DBUG    = -pg
+c++OPT     = -O2
diff --git a/wmake/rules/linuxGcc43/cDebug b/wmake/rules/linuxGcc43/cDebug
new file mode 100644
index 00000000000..6c71ed93e8a
--- /dev/null
+++ b/wmake/rules/linuxGcc43/cDebug
@@ -0,0 +1,2 @@
+cDBUG       = -ggdb -DFULLDEBUG
+cOPT        = -O1 -finline-functions
diff --git a/wmake/rules/linuxGcc43/cOpt b/wmake/rules/linuxGcc43/cOpt
new file mode 100644
index 00000000000..a8b0635478d
--- /dev/null
+++ b/wmake/rules/linuxGcc43/cOpt
@@ -0,0 +1,2 @@
+cDBUG       = 
+cOPT        = -O3
diff --git a/wmake/rules/linuxGcc43/cProf b/wmake/rules/linuxGcc43/cProf
new file mode 100644
index 00000000000..ca3ac9bf5f0
--- /dev/null
+++ b/wmake/rules/linuxGcc43/cProf
@@ -0,0 +1,2 @@
+cDBUG       = -pg
+cOPT        = -O2
diff --git a/wmake/rules/linuxGcc43/general b/wmake/rules/linuxGcc43/general
new file mode 100644
index 00000000000..c300368ee66
--- /dev/null
+++ b/wmake/rules/linuxGcc43/general
@@ -0,0 +1,10 @@
+CPP        = /lib/cpp $(GFLAGS)
+LD         = ld -melf_i386
+
+PROJECT_LIBS = -l$(WM_PROJECT) -ldl
+
+include $(GENERAL_RULES)/standard
+
+include $(RULES)/X
+include $(RULES)/c
+include $(RULES)/c++
diff --git a/wmake/rules/linuxGcc43/mplib b/wmake/rules/linuxGcc43/mplib
new file mode 100644
index 00000000000..8a84b401469
--- /dev/null
+++ b/wmake/rules/linuxGcc43/mplib
@@ -0,0 +1,3 @@
+PFLAGS     = 
+PINC       = 
+PLIBS      = 
diff --git a/wmake/rules/linuxGcc43/mplibGAMMA b/wmake/rules/linuxGcc43/mplibGAMMA
new file mode 100644
index 00000000000..d62c6250ff4
--- /dev/null
+++ b/wmake/rules/linuxGcc43/mplibGAMMA
@@ -0,0 +1,3 @@
+PFLAGS     = 
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lgamma
diff --git a/wmake/rules/linuxGcc43/mplibHPMPI b/wmake/rules/linuxGcc43/mplibHPMPI
new file mode 100644
index 00000000000..8aff40632bd
--- /dev/null
+++ b/wmake/rules/linuxGcc43/mplibHPMPI
@@ -0,0 +1,3 @@
+PFLAGS     =
+PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_ia32 -lmpi
diff --git a/wmake/rules/linuxGcc43/mplibLAM b/wmake/rules/linuxGcc43/mplibLAM
new file mode 100644
index 00000000000..6762b843c12
--- /dev/null
+++ b/wmake/rules/linuxGcc43/mplibLAM
@@ -0,0 +1,3 @@
+PFLAGS     = 
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpi -llam -lpthread -lutil
diff --git a/wmake/rules/linuxGcc43/mplibMPICH b/wmake/rules/linuxGcc43/mplibMPICH
new file mode 100644
index 00000000000..ac17f7c1d2e
--- /dev/null
+++ b/wmake/rules/linuxGcc43/mplibMPICH
@@ -0,0 +1,3 @@
+PFLAGS     = 
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpich -lrt
diff --git a/wmake/rules/linuxGcc43/mplibMPICH-GM b/wmake/rules/linuxGcc43/mplibMPICH-GM
new file mode 100644
index 00000000000..88493ebc705
--- /dev/null
+++ b/wmake/rules/linuxGcc43/mplibMPICH-GM
@@ -0,0 +1,3 @@
+PFLAGS     =
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpich -L$(GM_LIB_PATH) -lgm
diff --git a/wmake/rules/linuxGcc43/mplibOPENMPI b/wmake/rules/linuxGcc43/mplibOPENMPI
new file mode 100644
index 00000000000..834d2d3e22a
--- /dev/null
+++ b/wmake/rules/linuxGcc43/mplibOPENMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DOMPI_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpi
diff --git a/wmake/src/Makefile b/wmake/src/Makefile
index 798c5503f3e..11900fd6a0f 100644
--- a/wmake/src/Makefile
+++ b/wmake/src/Makefile
@@ -29,7 +29,9 @@
 #     Makefile used to compile wmake utilities.
 #
 #------------------------------------------------------------------------------
-# Set shell the Makefile uses to the Bourne shell
+
+#------------------------------------------------------------------------------
+# The Makefile use a POSIX shell
 #------------------------------------------------------------------------------
 
 SHELL      = /bin/sh
@@ -45,6 +47,10 @@ RULES_DIR = $(WM_DIR)/rules/$(WM_ARCH)$(WM_COMPILER)
 
 all:  $(RULES_DIR)/dirToString $(RULES_DIR)/wmkdep
 
+clean:
+	rm -f $(RULES_DIR)/dirToString $(RULES_DIR)/wmkdep 2>/dev/null
+
+
 $(RULES_DIR)/dirToString: dirToString.c
 	$(cc) $(cFLAGS) dirToString.c -o $(RULES_DIR)/dirToString
 
-- 
GitLab