From efce737693acffd248d4594fed83761aca996530 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@Germany>
Date: Wed, 29 Jul 2009 09:59:16 +0200
Subject: [PATCH] Add provisioning for gcc-4.4.1

- compile into linux64Gcc44, linuxGcc44 to avoid clashes during testing
- continue to use gmp-4.2.4 since gmp-4.3.x might be miscompiled with
  a system gcc-4.3.2
---
 etc/settings.csh                       |  5 +++++
 etc/settings.sh                        |  5 +++++
 wmake/rules/linux64Gcc/cOpt            |  2 +-
 wmake/rules/linux64Gcc/mplib           |  6 +++---
 wmake/rules/linux64Gcc/mplibGAMMA      |  2 +-
 wmake/rules/linux64Gcc/mplibMPICH      |  2 +-
 wmake/rules/linux64Gcc42/c++Opt        |  2 +-
 wmake/rules/linux64Gcc42/cOpt          |  2 +-
 wmake/rules/linux64Gcc42/mplib         |  6 +++---
 wmake/rules/linux64Gcc42/mplibGAMMA    |  2 +-
 wmake/rules/linux64Gcc42/mplibMPICH    |  2 +-
 wmake/rules/linux64Gcc43/c++Opt        |  2 +-
 wmake/rules/linux64Gcc43/cOpt          |  2 +-
 wmake/rules/linux64Gcc43/mplib         |  6 +++---
 wmake/rules/linux64Gcc43/mplibGAMMA    |  2 +-
 wmake/rules/linux64Gcc43/mplibMPICH    |  2 +-
 wmake/rules/linux64Gcc44/X             |  3 +++
 wmake/rules/linux64Gcc44/c             | 16 ++++++++++++++++
 wmake/rules/linux64Gcc44/c++           | 21 +++++++++++++++++++++
 wmake/rules/linux64Gcc44/c++Debug      |  2 ++
 wmake/rules/linux64Gcc44/c++Opt        |  4 ++++
 wmake/rules/linux64Gcc44/c++Prof       |  2 ++
 wmake/rules/linux64Gcc44/cDebug        |  2 ++
 wmake/rules/linux64Gcc44/cOpt          |  2 ++
 wmake/rules/linux64Gcc44/cProf         |  2 ++
 wmake/rules/linux64Gcc44/general       | 10 ++++++++++
 wmake/rules/linux64Gcc44/mplib         |  3 +++
 wmake/rules/linux64Gcc44/mplibGAMMA    |  3 +++
 wmake/rules/linux64Gcc44/mplibHPMPI    |  3 +++
 wmake/rules/linux64Gcc44/mplibMPICH    |  3 +++
 wmake/rules/linux64Gcc44/mplibMPICH-GM |  3 +++
 wmake/rules/linux64Gcc44/mplibOPENMPI  |  3 +++
 wmake/rules/linux64Gcc44/mplibQSMPI    |  4 ++++
 wmake/rules/linuxGcc/c++Opt            |  2 +-
 wmake/rules/linuxGcc/cOpt              |  2 +-
 wmake/rules/linuxGcc/mplib             |  6 +++---
 wmake/rules/linuxGcc/mplibGAMMA        |  2 +-
 wmake/rules/linuxGcc/mplibMPICH        |  2 +-
 wmake/rules/linuxGcc42/c++Opt          |  2 +-
 wmake/rules/linuxGcc42/cOpt            |  2 +-
 wmake/rules/linuxGcc42/mplib           |  6 +++---
 wmake/rules/linuxGcc42/mplibGAMMA      |  2 +-
 wmake/rules/linuxGcc42/mplibMPICH      |  2 +-
 wmake/rules/linuxGcc43/c++Opt          |  2 +-
 wmake/rules/linuxGcc43/cOpt            |  2 +-
 wmake/rules/linuxGcc43/mplib           |  6 +++---
 wmake/rules/linuxGcc43/mplibGAMMA      |  2 +-
 wmake/rules/linuxGcc43/mplibMPICH      |  2 +-
 wmake/rules/linuxGcc44/X               |  3 +++
 wmake/rules/linuxGcc44/c               | 16 ++++++++++++++++
 wmake/rules/linuxGcc44/c++             | 21 +++++++++++++++++++++
 wmake/rules/linuxGcc44/c++Debug        |  2 ++
 wmake/rules/linuxGcc44/c++Opt          |  2 ++
 wmake/rules/linuxGcc44/c++Prof         |  2 ++
 wmake/rules/linuxGcc44/cDebug          |  2 ++
 wmake/rules/linuxGcc44/cOpt            |  2 ++
 wmake/rules/linuxGcc44/cProf           |  2 ++
 wmake/rules/linuxGcc44/general         | 10 ++++++++++
 wmake/rules/linuxGcc44/mplib           |  3 +++
 wmake/rules/linuxGcc44/mplibGAMMA      |  3 +++
 wmake/rules/linuxGcc44/mplibHPMPI      |  3 +++
 wmake/rules/linuxGcc44/mplibMPICH      |  3 +++
 wmake/rules/linuxGcc44/mplibMPICH-GM   |  3 +++
 wmake/rules/linuxGcc44/mplibOPENMPI    |  3 +++
 64 files changed, 217 insertions(+), 41 deletions(-)
 create mode 100644 wmake/rules/linux64Gcc44/X
 create mode 100644 wmake/rules/linux64Gcc44/c
 create mode 100644 wmake/rules/linux64Gcc44/c++
 create mode 100644 wmake/rules/linux64Gcc44/c++Debug
 create mode 100644 wmake/rules/linux64Gcc44/c++Opt
 create mode 100644 wmake/rules/linux64Gcc44/c++Prof
 create mode 100644 wmake/rules/linux64Gcc44/cDebug
 create mode 100644 wmake/rules/linux64Gcc44/cOpt
 create mode 100644 wmake/rules/linux64Gcc44/cProf
 create mode 100644 wmake/rules/linux64Gcc44/general
 create mode 100644 wmake/rules/linux64Gcc44/mplib
 create mode 100644 wmake/rules/linux64Gcc44/mplibGAMMA
 create mode 100644 wmake/rules/linux64Gcc44/mplibHPMPI
 create mode 100644 wmake/rules/linux64Gcc44/mplibMPICH
 create mode 100644 wmake/rules/linux64Gcc44/mplibMPICH-GM
 create mode 100644 wmake/rules/linux64Gcc44/mplibOPENMPI
 create mode 100644 wmake/rules/linux64Gcc44/mplibQSMPI
 create mode 100644 wmake/rules/linuxGcc44/X
 create mode 100644 wmake/rules/linuxGcc44/c
 create mode 100644 wmake/rules/linuxGcc44/c++
 create mode 100644 wmake/rules/linuxGcc44/c++Debug
 create mode 100644 wmake/rules/linuxGcc44/c++Opt
 create mode 100644 wmake/rules/linuxGcc44/c++Prof
 create mode 100644 wmake/rules/linuxGcc44/cDebug
 create mode 100644 wmake/rules/linuxGcc44/cOpt
 create mode 100644 wmake/rules/linuxGcc44/cProf
 create mode 100644 wmake/rules/linuxGcc44/general
 create mode 100644 wmake/rules/linuxGcc44/mplib
 create mode 100644 wmake/rules/linuxGcc44/mplibGAMMA
 create mode 100644 wmake/rules/linuxGcc44/mplibHPMPI
 create mode 100644 wmake/rules/linuxGcc44/mplibMPICH
 create mode 100644 wmake/rules/linuxGcc44/mplibMPICH-GM
 create mode 100644 wmake/rules/linuxGcc44/mplibOPENMPI

diff --git a/etc/settings.csh b/etc/settings.csh
index 4370744be4f..ad327c5e573 100644
--- a/etc/settings.csh
+++ b/etc/settings.csh
@@ -89,6 +89,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 Gcc44:
+        setenv WM_COMPILER_DIR $WM_THIRD_PARTY_DIR/gcc-4.4.1/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 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
diff --git a/etc/settings.sh b/etc/settings.sh
index 9d39e1eb866..074a21bb17d 100644
--- a/etc/settings.sh
+++ b/etc/settings.sh
@@ -105,6 +105,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
         ;;
+    Gcc44)
+        export WM_COMPILER_DIR=$WM_THIRD_PARTY_DIR/gcc-4.4.1/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
+        ;;
     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
diff --git a/wmake/rules/linux64Gcc/cOpt b/wmake/rules/linux64Gcc/cOpt
index a8b0635478d..17318709f1f 100644
--- a/wmake/rules/linux64Gcc/cOpt
+++ b/wmake/rules/linux64Gcc/cOpt
@@ -1,2 +1,2 @@
-cDBUG       = 
+cDBUG       =
 cOPT        = -O3
diff --git a/wmake/rules/linux64Gcc/mplib b/wmake/rules/linux64Gcc/mplib
index 8a84b401469..294bd861501 100644
--- a/wmake/rules/linux64Gcc/mplib
+++ b/wmake/rules/linux64Gcc/mplib
@@ -1,3 +1,3 @@
-PFLAGS     = 
-PINC       = 
-PLIBS      = 
+PFLAGS     =
+PINC       =
+PLIBS      =
diff --git a/wmake/rules/linux64Gcc/mplibGAMMA b/wmake/rules/linux64Gcc/mplibGAMMA
index d62c6250ff4..11606f29849 100644
--- a/wmake/rules/linux64Gcc/mplibGAMMA
+++ b/wmake/rules/linux64Gcc/mplibGAMMA
@@ -1,3 +1,3 @@
-PFLAGS     = 
+PFLAGS     =
 PINC       = -I$(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib -lgamma
diff --git a/wmake/rules/linux64Gcc/mplibMPICH b/wmake/rules/linux64Gcc/mplibMPICH
index ac17f7c1d2e..cb628e1117e 100644
--- a/wmake/rules/linux64Gcc/mplibMPICH
+++ b/wmake/rules/linux64Gcc/mplibMPICH
@@ -1,3 +1,3 @@
-PFLAGS     = 
+PFLAGS     =
 PINC       = -I$(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpich -lrt
diff --git a/wmake/rules/linux64Gcc42/c++Opt b/wmake/rules/linux64Gcc42/c++Opt
index 8ac07d2124e..3446f7f58cb 100644
--- a/wmake/rules/linux64Gcc42/c++Opt
+++ b/wmake/rules/linux64Gcc42/c++Opt
@@ -1,4 +1,4 @@
-c++DBUG     = 
+c++DBUG     =
 c++OPT      = -O3
 #c++OPT      = -march=nocona -O3
 # -ftree-vectorize -ftree-vectorizer-verbose=3
diff --git a/wmake/rules/linux64Gcc42/cOpt b/wmake/rules/linux64Gcc42/cOpt
index a8b0635478d..17318709f1f 100644
--- a/wmake/rules/linux64Gcc42/cOpt
+++ b/wmake/rules/linux64Gcc42/cOpt
@@ -1,2 +1,2 @@
-cDBUG       = 
+cDBUG       =
 cOPT        = -O3
diff --git a/wmake/rules/linux64Gcc42/mplib b/wmake/rules/linux64Gcc42/mplib
index 8a84b401469..294bd861501 100644
--- a/wmake/rules/linux64Gcc42/mplib
+++ b/wmake/rules/linux64Gcc42/mplib
@@ -1,3 +1,3 @@
-PFLAGS     = 
-PINC       = 
-PLIBS      = 
+PFLAGS     =
+PINC       =
+PLIBS      =
diff --git a/wmake/rules/linux64Gcc42/mplibGAMMA b/wmake/rules/linux64Gcc42/mplibGAMMA
index d62c6250ff4..11606f29849 100644
--- a/wmake/rules/linux64Gcc42/mplibGAMMA
+++ b/wmake/rules/linux64Gcc42/mplibGAMMA
@@ -1,3 +1,3 @@
-PFLAGS     = 
+PFLAGS     =
 PINC       = -I$(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib -lgamma
diff --git a/wmake/rules/linux64Gcc42/mplibMPICH b/wmake/rules/linux64Gcc42/mplibMPICH
index ac17f7c1d2e..cb628e1117e 100644
--- a/wmake/rules/linux64Gcc42/mplibMPICH
+++ b/wmake/rules/linux64Gcc42/mplibMPICH
@@ -1,3 +1,3 @@
-PFLAGS     = 
+PFLAGS     =
 PINC       = -I$(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpich -lrt
diff --git a/wmake/rules/linux64Gcc43/c++Opt b/wmake/rules/linux64Gcc43/c++Opt
index 8ac07d2124e..3446f7f58cb 100644
--- a/wmake/rules/linux64Gcc43/c++Opt
+++ b/wmake/rules/linux64Gcc43/c++Opt
@@ -1,4 +1,4 @@
-c++DBUG     = 
+c++DBUG     =
 c++OPT      = -O3
 #c++OPT      = -march=nocona -O3
 # -ftree-vectorize -ftree-vectorizer-verbose=3
diff --git a/wmake/rules/linux64Gcc43/cOpt b/wmake/rules/linux64Gcc43/cOpt
index a8b0635478d..17318709f1f 100644
--- a/wmake/rules/linux64Gcc43/cOpt
+++ b/wmake/rules/linux64Gcc43/cOpt
@@ -1,2 +1,2 @@
-cDBUG       = 
+cDBUG       =
 cOPT        = -O3
diff --git a/wmake/rules/linux64Gcc43/mplib b/wmake/rules/linux64Gcc43/mplib
index 8a84b401469..294bd861501 100644
--- a/wmake/rules/linux64Gcc43/mplib
+++ b/wmake/rules/linux64Gcc43/mplib
@@ -1,3 +1,3 @@
-PFLAGS     = 
-PINC       = 
-PLIBS      = 
+PFLAGS     =
+PINC       =
+PLIBS      =
diff --git a/wmake/rules/linux64Gcc43/mplibGAMMA b/wmake/rules/linux64Gcc43/mplibGAMMA
index d62c6250ff4..11606f29849 100644
--- a/wmake/rules/linux64Gcc43/mplibGAMMA
+++ b/wmake/rules/linux64Gcc43/mplibGAMMA
@@ -1,3 +1,3 @@
-PFLAGS     = 
+PFLAGS     =
 PINC       = -I$(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib -lgamma
diff --git a/wmake/rules/linux64Gcc43/mplibMPICH b/wmake/rules/linux64Gcc43/mplibMPICH
index ac17f7c1d2e..cb628e1117e 100644
--- a/wmake/rules/linux64Gcc43/mplibMPICH
+++ b/wmake/rules/linux64Gcc43/mplibMPICH
@@ -1,3 +1,3 @@
-PFLAGS     = 
+PFLAGS     =
 PINC       = -I$(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpich -lrt
diff --git a/wmake/rules/linux64Gcc44/X b/wmake/rules/linux64Gcc44/X
new file mode 100644
index 00000000000..5d1f9c5cc54
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/X
@@ -0,0 +1,3 @@
+XFLAGS     =
+XINC       = $(XFLAGS) -I/usr/X11R6/include
+XLIBS      = -L/usr/X11R6/lib64 -lXext -lX11
diff --git a/wmake/rules/linux64Gcc44/c b/wmake/rules/linux64Gcc44/c
new file mode 100644
index 00000000000..80bb80f32f7
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/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/linux64Gcc44/c++ b/wmake/rules/linux64Gcc44/c++
new file mode 100644
index 00000000000..36b5c29b20b
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/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/linux64Gcc44/c++Debug b/wmake/rules/linux64Gcc44/c++Debug
new file mode 100644
index 00000000000..19bdb9c3346
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/c++Debug
@@ -0,0 +1,2 @@
+c++DBUG    = -ggdb3 -DFULLDEBUG
+c++OPT      = -O0 -fdefault-inline
diff --git a/wmake/rules/linux64Gcc44/c++Opt b/wmake/rules/linux64Gcc44/c++Opt
new file mode 100644
index 00000000000..3446f7f58cb
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/c++Opt
@@ -0,0 +1,4 @@
+c++DBUG     =
+c++OPT      = -O3
+#c++OPT      = -march=nocona -O3
+# -ftree-vectorize -ftree-vectorizer-verbose=3
diff --git a/wmake/rules/linux64Gcc44/c++Prof b/wmake/rules/linux64Gcc44/c++Prof
new file mode 100644
index 00000000000..3bda4dad55e
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/c++Prof
@@ -0,0 +1,2 @@
+c++DBUG    = -pg
+c++OPT     = -O2
diff --git a/wmake/rules/linux64Gcc44/cDebug b/wmake/rules/linux64Gcc44/cDebug
new file mode 100644
index 00000000000..72b638f4582
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/cDebug
@@ -0,0 +1,2 @@
+cDBUG       = -ggdb -DFULLDEBUG
+cOPT        = -O1 -fdefault-inline -finline-functions
diff --git a/wmake/rules/linux64Gcc44/cOpt b/wmake/rules/linux64Gcc44/cOpt
new file mode 100644
index 00000000000..17318709f1f
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/cOpt
@@ -0,0 +1,2 @@
+cDBUG       =
+cOPT        = -O3
diff --git a/wmake/rules/linux64Gcc44/cProf b/wmake/rules/linux64Gcc44/cProf
new file mode 100644
index 00000000000..ca3ac9bf5f0
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/cProf
@@ -0,0 +1,2 @@
+cDBUG       = -pg
+cOPT        = -O2
diff --git a/wmake/rules/linux64Gcc44/general b/wmake/rules/linux64Gcc44/general
new file mode 100644
index 00000000000..10237bd1b67
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/general
@@ -0,0 +1,10 @@
+CPP        = /lib/cpp $(GFLAGS)
+LD         = ld
+
+PROJECT_LIBS = -l$(WM_PROJECT) -liberty -ldl
+
+include $(GENERAL_RULES)/standard
+
+include $(RULES)/X
+include $(RULES)/c
+include $(RULES)/c++
diff --git a/wmake/rules/linux64Gcc44/mplib b/wmake/rules/linux64Gcc44/mplib
new file mode 100644
index 00000000000..294bd861501
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/mplib
@@ -0,0 +1,3 @@
+PFLAGS     =
+PINC       =
+PLIBS      =
diff --git a/wmake/rules/linux64Gcc44/mplibGAMMA b/wmake/rules/linux64Gcc44/mplibGAMMA
new file mode 100644
index 00000000000..11606f29849
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/mplibGAMMA
@@ -0,0 +1,3 @@
+PFLAGS     =
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lgamma
diff --git a/wmake/rules/linux64Gcc44/mplibHPMPI b/wmake/rules/linux64Gcc44/mplibHPMPI
new file mode 100644
index 00000000000..574492a236a
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/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/linux64Gcc44/mplibMPICH b/wmake/rules/linux64Gcc44/mplibMPICH
new file mode 100644
index 00000000000..cb628e1117e
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/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/linux64Gcc44/mplibMPICH-GM b/wmake/rules/linux64Gcc44/mplibMPICH-GM
new file mode 100644
index 00000000000..88493ebc705
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/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/linux64Gcc44/mplibOPENMPI b/wmake/rules/linux64Gcc44/mplibOPENMPI
new file mode 100644
index 00000000000..834d2d3e22a
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/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/linux64Gcc44/mplibQSMPI b/wmake/rules/linux64Gcc44/mplibQSMPI
new file mode 100644
index 00000000000..95ea327379f
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/mplibQSMPI
@@ -0,0 +1,4 @@
+PFLAGS     =
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpi
+
diff --git a/wmake/rules/linuxGcc/c++Opt b/wmake/rules/linuxGcc/c++Opt
index 4cb95b5b3a9..2aedabd6280 100644
--- a/wmake/rules/linuxGcc/c++Opt
+++ b/wmake/rules/linuxGcc/c++Opt
@@ -1,2 +1,2 @@
-c++DBUG     = 
+c++DBUG     =
 c++OPT      = -O3
diff --git a/wmake/rules/linuxGcc/cOpt b/wmake/rules/linuxGcc/cOpt
index a8b0635478d..17318709f1f 100644
--- a/wmake/rules/linuxGcc/cOpt
+++ b/wmake/rules/linuxGcc/cOpt
@@ -1,2 +1,2 @@
-cDBUG       = 
+cDBUG       =
 cOPT        = -O3
diff --git a/wmake/rules/linuxGcc/mplib b/wmake/rules/linuxGcc/mplib
index 8a84b401469..294bd861501 100644
--- a/wmake/rules/linuxGcc/mplib
+++ b/wmake/rules/linuxGcc/mplib
@@ -1,3 +1,3 @@
-PFLAGS     = 
-PINC       = 
-PLIBS      = 
+PFLAGS     =
+PINC       =
+PLIBS      =
diff --git a/wmake/rules/linuxGcc/mplibGAMMA b/wmake/rules/linuxGcc/mplibGAMMA
index d62c6250ff4..11606f29849 100644
--- a/wmake/rules/linuxGcc/mplibGAMMA
+++ b/wmake/rules/linuxGcc/mplibGAMMA
@@ -1,3 +1,3 @@
-PFLAGS     = 
+PFLAGS     =
 PINC       = -I$(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib -lgamma
diff --git a/wmake/rules/linuxGcc/mplibMPICH b/wmake/rules/linuxGcc/mplibMPICH
index ac17f7c1d2e..cb628e1117e 100644
--- a/wmake/rules/linuxGcc/mplibMPICH
+++ b/wmake/rules/linuxGcc/mplibMPICH
@@ -1,3 +1,3 @@
-PFLAGS     = 
+PFLAGS     =
 PINC       = -I$(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpich -lrt
diff --git a/wmake/rules/linuxGcc42/c++Opt b/wmake/rules/linuxGcc42/c++Opt
index 4cb95b5b3a9..2aedabd6280 100644
--- a/wmake/rules/linuxGcc42/c++Opt
+++ b/wmake/rules/linuxGcc42/c++Opt
@@ -1,2 +1,2 @@
-c++DBUG     = 
+c++DBUG     =
 c++OPT      = -O3
diff --git a/wmake/rules/linuxGcc42/cOpt b/wmake/rules/linuxGcc42/cOpt
index a8b0635478d..17318709f1f 100644
--- a/wmake/rules/linuxGcc42/cOpt
+++ b/wmake/rules/linuxGcc42/cOpt
@@ -1,2 +1,2 @@
-cDBUG       = 
+cDBUG       =
 cOPT        = -O3
diff --git a/wmake/rules/linuxGcc42/mplib b/wmake/rules/linuxGcc42/mplib
index 8a84b401469..294bd861501 100644
--- a/wmake/rules/linuxGcc42/mplib
+++ b/wmake/rules/linuxGcc42/mplib
@@ -1,3 +1,3 @@
-PFLAGS     = 
-PINC       = 
-PLIBS      = 
+PFLAGS     =
+PINC       =
+PLIBS      =
diff --git a/wmake/rules/linuxGcc42/mplibGAMMA b/wmake/rules/linuxGcc42/mplibGAMMA
index d62c6250ff4..11606f29849 100644
--- a/wmake/rules/linuxGcc42/mplibGAMMA
+++ b/wmake/rules/linuxGcc42/mplibGAMMA
@@ -1,3 +1,3 @@
-PFLAGS     = 
+PFLAGS     =
 PINC       = -I$(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib -lgamma
diff --git a/wmake/rules/linuxGcc42/mplibMPICH b/wmake/rules/linuxGcc42/mplibMPICH
index ac17f7c1d2e..cb628e1117e 100644
--- a/wmake/rules/linuxGcc42/mplibMPICH
+++ b/wmake/rules/linuxGcc42/mplibMPICH
@@ -1,3 +1,3 @@
-PFLAGS     = 
+PFLAGS     =
 PINC       = -I$(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpich -lrt
diff --git a/wmake/rules/linuxGcc43/c++Opt b/wmake/rules/linuxGcc43/c++Opt
index 4cb95b5b3a9..2aedabd6280 100644
--- a/wmake/rules/linuxGcc43/c++Opt
+++ b/wmake/rules/linuxGcc43/c++Opt
@@ -1,2 +1,2 @@
-c++DBUG     = 
+c++DBUG     =
 c++OPT      = -O3
diff --git a/wmake/rules/linuxGcc43/cOpt b/wmake/rules/linuxGcc43/cOpt
index a8b0635478d..17318709f1f 100644
--- a/wmake/rules/linuxGcc43/cOpt
+++ b/wmake/rules/linuxGcc43/cOpt
@@ -1,2 +1,2 @@
-cDBUG       = 
+cDBUG       =
 cOPT        = -O3
diff --git a/wmake/rules/linuxGcc43/mplib b/wmake/rules/linuxGcc43/mplib
index 8a84b401469..294bd861501 100644
--- a/wmake/rules/linuxGcc43/mplib
+++ b/wmake/rules/linuxGcc43/mplib
@@ -1,3 +1,3 @@
-PFLAGS     = 
-PINC       = 
-PLIBS      = 
+PFLAGS     =
+PINC       =
+PLIBS      =
diff --git a/wmake/rules/linuxGcc43/mplibGAMMA b/wmake/rules/linuxGcc43/mplibGAMMA
index d62c6250ff4..11606f29849 100644
--- a/wmake/rules/linuxGcc43/mplibGAMMA
+++ b/wmake/rules/linuxGcc43/mplibGAMMA
@@ -1,3 +1,3 @@
-PFLAGS     = 
+PFLAGS     =
 PINC       = -I$(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib -lgamma
diff --git a/wmake/rules/linuxGcc43/mplibMPICH b/wmake/rules/linuxGcc43/mplibMPICH
index ac17f7c1d2e..cb628e1117e 100644
--- a/wmake/rules/linuxGcc43/mplibMPICH
+++ b/wmake/rules/linuxGcc43/mplibMPICH
@@ -1,3 +1,3 @@
-PFLAGS     = 
+PFLAGS     =
 PINC       = -I$(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpich -lrt
diff --git a/wmake/rules/linuxGcc44/X b/wmake/rules/linuxGcc44/X
new file mode 100644
index 00000000000..bed8bfeddf5
--- /dev/null
+++ b/wmake/rules/linuxGcc44/X
@@ -0,0 +1,3 @@
+XFLAGS     =
+XINC       = $(XFLAGS) -I/usr/X11R6/include
+XLIBS      = -L/usr/X11R6/lib -lXext -lX11
diff --git a/wmake/rules/linuxGcc44/c b/wmake/rules/linuxGcc44/c
new file mode 100644
index 00000000000..8db5da10479
--- /dev/null
+++ b/wmake/rules/linuxGcc44/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/linuxGcc44/c++ b/wmake/rules/linuxGcc44/c++
new file mode 100644
index 00000000000..64d6797573c
--- /dev/null
+++ b/wmake/rules/linuxGcc44/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
+
+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/linuxGcc44/c++Debug b/wmake/rules/linuxGcc44/c++Debug
new file mode 100644
index 00000000000..19bdb9c3346
--- /dev/null
+++ b/wmake/rules/linuxGcc44/c++Debug
@@ -0,0 +1,2 @@
+c++DBUG    = -ggdb3 -DFULLDEBUG
+c++OPT      = -O0 -fdefault-inline
diff --git a/wmake/rules/linuxGcc44/c++Opt b/wmake/rules/linuxGcc44/c++Opt
new file mode 100644
index 00000000000..2aedabd6280
--- /dev/null
+++ b/wmake/rules/linuxGcc44/c++Opt
@@ -0,0 +1,2 @@
+c++DBUG     =
+c++OPT      = -O3
diff --git a/wmake/rules/linuxGcc44/c++Prof b/wmake/rules/linuxGcc44/c++Prof
new file mode 100644
index 00000000000..3bda4dad55e
--- /dev/null
+++ b/wmake/rules/linuxGcc44/c++Prof
@@ -0,0 +1,2 @@
+c++DBUG    = -pg
+c++OPT     = -O2
diff --git a/wmake/rules/linuxGcc44/cDebug b/wmake/rules/linuxGcc44/cDebug
new file mode 100644
index 00000000000..72b638f4582
--- /dev/null
+++ b/wmake/rules/linuxGcc44/cDebug
@@ -0,0 +1,2 @@
+cDBUG       = -ggdb -DFULLDEBUG
+cOPT        = -O1 -fdefault-inline -finline-functions
diff --git a/wmake/rules/linuxGcc44/cOpt b/wmake/rules/linuxGcc44/cOpt
new file mode 100644
index 00000000000..17318709f1f
--- /dev/null
+++ b/wmake/rules/linuxGcc44/cOpt
@@ -0,0 +1,2 @@
+cDBUG       =
+cOPT        = -O3
diff --git a/wmake/rules/linuxGcc44/cProf b/wmake/rules/linuxGcc44/cProf
new file mode 100644
index 00000000000..ca3ac9bf5f0
--- /dev/null
+++ b/wmake/rules/linuxGcc44/cProf
@@ -0,0 +1,2 @@
+cDBUG       = -pg
+cOPT        = -O2
diff --git a/wmake/rules/linuxGcc44/general b/wmake/rules/linuxGcc44/general
new file mode 100644
index 00000000000..02ad6973ff3
--- /dev/null
+++ b/wmake/rules/linuxGcc44/general
@@ -0,0 +1,10 @@
+CPP        = /lib/cpp $(GFLAGS)
+LD         = ld -melf_i386
+
+PROJECT_LIBS = -l$(WM_PROJECT) -liberty -ldl
+
+include $(GENERAL_RULES)/standard
+
+include $(RULES)/X
+include $(RULES)/c
+include $(RULES)/c++
diff --git a/wmake/rules/linuxGcc44/mplib b/wmake/rules/linuxGcc44/mplib
new file mode 100644
index 00000000000..294bd861501
--- /dev/null
+++ b/wmake/rules/linuxGcc44/mplib
@@ -0,0 +1,3 @@
+PFLAGS     =
+PINC       =
+PLIBS      =
diff --git a/wmake/rules/linuxGcc44/mplibGAMMA b/wmake/rules/linuxGcc44/mplibGAMMA
new file mode 100644
index 00000000000..11606f29849
--- /dev/null
+++ b/wmake/rules/linuxGcc44/mplibGAMMA
@@ -0,0 +1,3 @@
+PFLAGS     =
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lgamma
diff --git a/wmake/rules/linuxGcc44/mplibHPMPI b/wmake/rules/linuxGcc44/mplibHPMPI
new file mode 100644
index 00000000000..8aff40632bd
--- /dev/null
+++ b/wmake/rules/linuxGcc44/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/linuxGcc44/mplibMPICH b/wmake/rules/linuxGcc44/mplibMPICH
new file mode 100644
index 00000000000..cb628e1117e
--- /dev/null
+++ b/wmake/rules/linuxGcc44/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/linuxGcc44/mplibMPICH-GM b/wmake/rules/linuxGcc44/mplibMPICH-GM
new file mode 100644
index 00000000000..88493ebc705
--- /dev/null
+++ b/wmake/rules/linuxGcc44/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/linuxGcc44/mplibOPENMPI b/wmake/rules/linuxGcc44/mplibOPENMPI
new file mode 100644
index 00000000000..834d2d3e22a
--- /dev/null
+++ b/wmake/rules/linuxGcc44/mplibOPENMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DOMPI_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpi
-- 
GitLab