diff --git a/wmake/makefiles/files b/wmake/makefiles/files
index 91bff6265e96840f33f5eea63c33d01cf6265584..22c6a05f5ea8c8be898e99cbf82490a775dfe54d 100644
--- a/wmake/makefiles/files
+++ b/wmake/makefiles/files
@@ -2,7 +2,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
@@ -29,24 +29,23 @@
 #
 #------------------------------------------------------------------------------
 
-GENERAL_RULES = $(WM_DIR)/rules/General
-RULES         = $(WM_DIR)/rules/$(WM_ARCH)$(WM_COMPILER)
-OBJECTS_DIR   = $(MAKE_DIR)/$(WM_OPTIONS)
-
+GENERAL_RULES   = $(WM_DIR)/rules/General
 include $(GENERAL_RULES)/general
-include $(RULES)/general
+
 
 #------------------------------------------------------------------------------
 # declare names of make system control files derived from file 'files'
 #------------------------------------------------------------------------------
 
-OPTIONS = $(OBJECTS_DIR)/options
-FILES   = $(OBJECTS_DIR)/files
-VARS    = $(OBJECTS_DIR)/variables
-SFILES  = $(OBJECTS_DIR)/sourceFiles
+OBJECTS_DIR     = $(MAKE_DIR)/$(WM_OPTIONS)
+OPTIONS         = $(OBJECTS_DIR)/options
+FILES           = $(OBJECTS_DIR)/files
+VARS            = $(OBJECTS_DIR)/variables
+SFILES          = $(OBJECTS_DIR)/sourceFiles
 
 -include $(OPTIONS)
 
+
 #------------------------------------------------------------------------------
 # Declare dependecy of all make system files on FILES
 # Causes all derived files to be remade if any are changed or missing
@@ -74,4 +73,5 @@ $(SFILES): $(MAKE_DIR)/files
 
 $(VARS): $(SFILES)
 
+
 #------------------------------------------------------------------------------
diff --git a/wmake/makefiles/general b/wmake/makefiles/general
index 2fc320de19ca101188f8bb4ceab7e6241d93a727..580e96c7b2e4a3f417de87dc7ce402c36c06b47f 100644
--- a/wmake/makefiles/general
+++ b/wmake/makefiles/general
@@ -2,7 +2,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
@@ -33,7 +33,7 @@
 # The Makefile uses a POSIX shell
 #------------------------------------------------------------------------------
 
-SHELL      = /bin/sh
+SHELL           = /bin/sh
 
 
 #------------------------------------------------------------------------------
@@ -47,29 +47,29 @@ SHELL      = /bin/sh
 # Set the directory containing the wmake scripts
 #------------------------------------------------------------------------------
 
-WM_SCRIPTS   = $(WM_DIR)/scripts
+WM_SCRIPTS      = $(WM_DIR)/scripts
 
 
 #------------------------------------------------------------------------------
 # Declare default paths
 #------------------------------------------------------------------------------
 
-LIB_SRC            = $(WM_PROJECT_DIR)/src
-LIB_PLATFORMS      = $(WM_PROJECT_DIR)/platforms/$(WM_OPTIONS)/lib
-OBJECTS_DIR        = $(MAKE_DIR)/$(WM_OPTIONS)
+LIB_SRC         = $(WM_PROJECT_DIR)/src
+LIB_PLATFORMS   = $(WM_PROJECT_DIR)/platforms/$(WM_OPTIONS)/lib
+OBJECTS_DIR     = $(MAKE_DIR)/$(WM_OPTIONS)
 
-SYS_INC            =
-SYS_LIBS           =
+SYS_INC         =
+SYS_LIBS        =
 
-PROJECT_INC        = -I$(LIB_SRC)/$(WM_PROJECT)/lnInclude \
+PROJECT_INC     = -I$(LIB_SRC)/$(WM_PROJECT)/lnInclude \
 		     -I$(LIB_SRC)/OSspecific/$(WM_OSTYPE)/lnInclude
 
-PROJECT_LIBS       = -l$(WM_PROJECT)
+PROJECT_LIBS    = -l$(WM_PROJECT)
 
-EXE_INC            =
-EXE_LIBS           =
+EXE_INC         =
+EXE_LIBS        =
 
-LIB_LIBS           =
+LIB_LIBS        =
 
 
 #------------------------------------------------------------------------------
@@ -94,13 +94,7 @@ SEXE            = a.out
 #------------------------------------------------------------------------------
 
 GENERAL_RULES = $(WM_DIR)/rules/General
-RULES         = $(WM_DIR)/rules/$(WM_ARCH)$(WM_COMPILER)
-WMAKE_BIN     = $(WM_DIR)/platforms/$(WM_ARCH)$(WM_COMPILER)
-
 include $(GENERAL_RULES)/general
-include $(RULES)/general
-include $(RULES)/$(WM_LINK_LANGUAGE)
-include $(GENERAL_RULES)/transform
 
 
 #------------------------------------------------------------------------------
diff --git a/wmake/rules/General/general b/wmake/rules/General/general
index 062c704f13b214b345484a2dbf056c7d6e3d543a..b3f20b48e8668d06765df01ba29c3c9213906f29 100644
--- a/wmake/rules/General/general
+++ b/wmake/rules/General/general
@@ -12,4 +12,17 @@ GINC       =
 GLIBS      = -lm
 GLIB_LIBS  =
 
+
+COMPILER_TYPE   = $(shell echo $(WM_COMPILER) | tr -d [:digit:])
+DEFAULT_RULES   = $(WM_DIR)/rules/$(WM_ARCH)$(COMPILER_TYPE)
+RULES           = $(WM_DIR)/rules/$(WM_ARCH)$(WM_COMPILER)
+WMAKE_BIN       = $(WM_DIR)/platforms/$(WM_ARCH)$(WM_COMPILER)
+
+include $(DEFAULT_RULES)/general
+include $(DEFAULT_RULES)/$(WM_LINK_LANGUAGE)
+-include $(RULES)/general
+-include $(RULES)/$(WM_LINK_LANGUAGE)
+include $(GENERAL_RULES)/transform
+
+
 #------------------------------------------------------------------------------
diff --git a/wmake/rules/linux64Clang/c b/wmake/rules/linux64Clang/c
index e882186177c90bd066b27e5a94d5a8fbab89da95..b743e3f68cb8b11a294c84d4b9c4334d093d3e39 100644
--- a/wmake/rules/linux64Clang/c
+++ b/wmake/rules/linux64Clang/c
@@ -4,7 +4,7 @@ cWARN        = -Wall
 
 cc          = clang -m64
 
-include $(RULES)/c$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
 
 cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
 
diff --git a/wmake/rules/linux64Clang/c++ b/wmake/rules/linux64Clang/c++
index 2e09ff8827da92f1fc2ae7a83c0ef29f8b759dff..84ed0f41078c249be7d6e1d2a53b45b0651c68b0 100644
--- a/wmake/rules/linux64Clang/c++
+++ b/wmake/rules/linux64Clang/c++
@@ -7,7 +7,7 @@ c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-tautological-u
 
 CC          = clang++ -std=c++0x -m64
 
-include $(RULES)/c++$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
 
 ptFLAGS     = -DNoRepository -ftemplate-depth-100
 
diff --git a/wmake/rules/linux64Clang/general b/wmake/rules/linux64Clang/general
index 243cb7d8c7657e61f69a0628d869643a1a6186f4..1002cb169b5ba7215e263d07cced90cd3e8e0308 100644
--- a/wmake/rules/linux64Clang/general
+++ b/wmake/rules/linux64Clang/general
@@ -4,5 +4,5 @@ PROJECT_LIBS = -l$(WM_PROJECT) -ldl
 
 include $(GENERAL_RULES)/standard
 
-include $(RULES)/c
-include $(RULES)/c++
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++
diff --git a/wmake/rules/linux64Gcc/c b/wmake/rules/linux64Gcc/c
index 66435ccf057a04d5051164eb65f110c6eb476c6b..1097b3a594ca9284537cc5af2b8248bb8bac4486 100644
--- a/wmake/rules/linux64Gcc/c
+++ b/wmake/rules/linux64Gcc/c
@@ -4,7 +4,7 @@ cWARN        = -Wall
 
 cc          = gcc -m64
 
-include $(RULES)/c$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
 
 cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
 
diff --git a/wmake/rules/linux64Gcc/c++ b/wmake/rules/linux64Gcc/c++
index 7c7af702e28f5a005b2aa73b5cc6cc469924da13..a47d0d499aef828102e7ff41ff72fa53fd9fd969 100644
--- a/wmake/rules/linux64Gcc/c++
+++ b/wmake/rules/linux64Gcc/c++
@@ -7,7 +7,7 @@ c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
 
 CC          = g++ -std=c++0x -m64
 
-include $(RULES)/c++$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
 
 ptFLAGS     = -DNoRepository -ftemplate-depth-100
 
diff --git a/wmake/rules/linux64Gcc/general b/wmake/rules/linux64Gcc/general
index 243cb7d8c7657e61f69a0628d869643a1a6186f4..1002cb169b5ba7215e263d07cced90cd3e8e0308 100644
--- a/wmake/rules/linux64Gcc/general
+++ b/wmake/rules/linux64Gcc/general
@@ -4,5 +4,5 @@ PROJECT_LIBS = -l$(WM_PROJECT) -ldl
 
 include $(GENERAL_RULES)/standard
 
-include $(RULES)/c
-include $(RULES)/c++
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++
diff --git a/wmake/rules/linux64Gcc45 b/wmake/rules/linux64Gcc45
deleted file mode 120000
index 7a0c1a85050d3015f39e16aa6bd52d77d3ab9fe1..0000000000000000000000000000000000000000
--- a/wmake/rules/linux64Gcc45
+++ /dev/null
@@ -1 +0,0 @@
-linux64Gcc
\ No newline at end of file
diff --git a/wmake/rules/linux64Gcc46 b/wmake/rules/linux64Gcc46
deleted file mode 120000
index 7a0c1a85050d3015f39e16aa6bd52d77d3ab9fe1..0000000000000000000000000000000000000000
--- a/wmake/rules/linux64Gcc46
+++ /dev/null
@@ -1 +0,0 @@
-linux64Gcc
\ No newline at end of file
diff --git a/wmake/rules/linux64Gcc47 b/wmake/rules/linux64Gcc47
deleted file mode 120000
index 7a0c1a85050d3015f39e16aa6bd52d77d3ab9fe1..0000000000000000000000000000000000000000
--- a/wmake/rules/linux64Gcc47
+++ /dev/null
@@ -1 +0,0 @@
-linux64Gcc
\ No newline at end of file
diff --git a/wmake/rules/linux64Gcc48 b/wmake/rules/linux64Gcc48
deleted file mode 120000
index 7a0c1a85050d3015f39e16aa6bd52d77d3ab9fe1..0000000000000000000000000000000000000000
--- a/wmake/rules/linux64Gcc48
+++ /dev/null
@@ -1 +0,0 @@
-linux64Gcc
\ No newline at end of file
diff --git a/wmake/rules/linux64Gcc49 b/wmake/rules/linux64Gcc49
deleted file mode 120000
index 7a0c1a85050d3015f39e16aa6bd52d77d3ab9fe1..0000000000000000000000000000000000000000
--- a/wmake/rules/linux64Gcc49
+++ /dev/null
@@ -1 +0,0 @@
-linux64Gcc
\ No newline at end of file
diff --git a/wmake/rules/linux64Gcc51 b/wmake/rules/linux64Gcc51
deleted file mode 120000
index 7a0c1a85050d3015f39e16aa6bd52d77d3ab9fe1..0000000000000000000000000000000000000000
--- a/wmake/rules/linux64Gcc51
+++ /dev/null
@@ -1 +0,0 @@
-linux64Gcc
\ No newline at end of file
diff --git a/wmake/rules/linux64Icc/c b/wmake/rules/linux64Icc/c
index 97da5c28f0a76d6cd12db86353f8fe938ec81edd..14a3a231d549dd4902dc5360f4566e0b8d14aa87 100644
--- a/wmake/rules/linux64Icc/c
+++ b/wmake/rules/linux64Icc/c
@@ -4,7 +4,7 @@ cWARN        =
 
 cc          = icc
 
-include $(RULES)/c$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
 
 cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
 
diff --git a/wmake/rules/linux64Icc/c++ b/wmake/rules/linux64Icc/c++
index 85b976ae4f464d109609aa01971f0877474d0101..03bee61dcef9ec609d3625eae909b2422d5729dd 100644
--- a/wmake/rules/linux64Icc/c++
+++ b/wmake/rules/linux64Icc/c++
@@ -8,7 +8,7 @@ c++LESSWARN = -diag-disable 1224,2026,2305
 
 CC          = icpc -std=c++0x -fp-trap=common -fp-model precise
 
-include $(RULES)/c++$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
 
 ptFLAGS     = -DNoRepository
 
diff --git a/wmake/rules/linux64Icc/general b/wmake/rules/linux64Icc/general
index 45c285f1eee9fd805e853f30827f2258ca7bf5c5..52b0e177d7afe6ab60761862ae8b9f966fa18f2f 100644
--- a/wmake/rules/linux64Icc/general
+++ b/wmake/rules/linux64Icc/general
@@ -4,5 +4,5 @@ PROJECT_LIBS = -l$(WM_PROJECT) -ldl
 
 include $(GENERAL_RULES)/standard
 
-include $(RULES)/c
-include $(RULES)/c++
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++
diff --git a/wmake/rules/linuxARM7Gcc/c b/wmake/rules/linuxARM7Gcc/c
index d7bda5d1df864e2a703994bbe92d51586f9da7be..dfae4adda0547faeae8333ed5e2660a3bacd7be7 100644
--- a/wmake/rules/linuxARM7Gcc/c
+++ b/wmake/rules/linuxARM7Gcc/c
@@ -4,7 +4,7 @@ cWARN        = -Wall
 
 cc          = gcc
 
-include $(RULES)/c$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
 
 cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
 
diff --git a/wmake/rules/linuxARM7Gcc/c++ b/wmake/rules/linuxARM7Gcc/c++
index b647cc85e66e2eb5aa5f9352eb0321667fcd6ea6..80fccf2710a17f523233ccc4a51a5e7ac7056b3c 100644
--- a/wmake/rules/linuxARM7Gcc/c++
+++ b/wmake/rules/linuxARM7Gcc/c++
@@ -7,7 +7,7 @@ c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
 
 CC          = g++ -std=c++0x
 
-include $(RULES)/c++$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
 
 ptFLAGS     = -DNoRepository -ftemplate-depth-100
 
diff --git a/wmake/rules/linuxARM7Gcc/general b/wmake/rules/linuxARM7Gcc/general
index 376c6148463e5a83766e9f1882812d1c9b3e27f6..1e51dcc403ca74c4a15dc7538c09d3bce642bbe5 100644
--- a/wmake/rules/linuxARM7Gcc/general
+++ b/wmake/rules/linuxARM7Gcc/general
@@ -5,5 +5,5 @@ PROJECT_LIBS = -l$(WM_PROJECT) -ldl
 
 include $(GENERAL_RULES)/standard
 
-include $(RULES)/c
-include $(RULES)/c++
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++
diff --git a/wmake/rules/linuxClang/c b/wmake/rules/linuxClang/c
index 7d67b4c02239e72376fc2036d3cee8926cc017a9..2c8e8a7f9c2dfae3ebf21b0e71bdd30e5b8458dc 100644
--- a/wmake/rules/linuxClang/c
+++ b/wmake/rules/linuxClang/c
@@ -4,7 +4,7 @@ cWARN        = -Wall
 
 cc          = clang -m32
 
-include $(RULES)/c$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
 
 cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
 
diff --git a/wmake/rules/linuxClang/c++ b/wmake/rules/linuxClang/c++
index 216cc67f7bfad96ad2a90fde2f8a9a3bfc5bf2d2..b029fbcfd79459815f2dee5522408ddeef5f715a 100644
--- a/wmake/rules/linuxClang/c++
+++ b/wmake/rules/linuxClang/c++
@@ -7,7 +7,7 @@ c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedef -Wno-tautological-un
 
 CC          = clang++ -std=c++0x -m32
 
-include $(RULES)/c++$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
 
 ptFLAGS     = -DNoRepository -ftemplate-depth-100
 
diff --git a/wmake/rules/linuxClang/general b/wmake/rules/linuxClang/general
index fa1eb5b925f5d6e3a87ea2bba97f2163aaa42558..e3427c3181a329ec6bf2f64bdefc4f81bf9afde7 100644
--- a/wmake/rules/linuxClang/general
+++ b/wmake/rules/linuxClang/general
@@ -5,5 +5,5 @@ PROJECT_LIBS = -l$(WM_PROJECT) -ldl
 
 include $(GENERAL_RULES)/standard
 
-include $(RULES)/c
-include $(RULES)/c++
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++
diff --git a/wmake/rules/linuxGcc/c b/wmake/rules/linuxGcc/c
index 81c64cf710b3122b58e483154db6e852977d0c9b..8eddde0490ddf8ce5858efefc26278625b87d217 100644
--- a/wmake/rules/linuxGcc/c
+++ b/wmake/rules/linuxGcc/c
@@ -4,7 +4,7 @@ cWARN        = -Wall
 
 cc          = gcc -m32
 
-include $(RULES)/c$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
 
 cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
 
diff --git a/wmake/rules/linuxGcc/c++ b/wmake/rules/linuxGcc/c++
index b115000d9566fabceb6980e76d05f8f67feada01..c1c34a8419be3332bb0d3fe525560bf19e05f3bf 100644
--- a/wmake/rules/linuxGcc/c++
+++ b/wmake/rules/linuxGcc/c++
@@ -7,7 +7,7 @@ c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
 
 CC          = g++ -std=c++0x -m32
 
-include $(RULES)/c++$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
 
 ptFLAGS     = -DNoRepository -ftemplate-depth-100
 
diff --git a/wmake/rules/linuxGcc/general b/wmake/rules/linuxGcc/general
index fa1eb5b925f5d6e3a87ea2bba97f2163aaa42558..e3427c3181a329ec6bf2f64bdefc4f81bf9afde7 100644
--- a/wmake/rules/linuxGcc/general
+++ b/wmake/rules/linuxGcc/general
@@ -5,5 +5,5 @@ PROJECT_LIBS = -l$(WM_PROJECT) -ldl
 
 include $(GENERAL_RULES)/standard
 
-include $(RULES)/c
-include $(RULES)/c++
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++
diff --git a/wmake/rules/linuxGcc45 b/wmake/rules/linuxGcc45
deleted file mode 120000
index e30dec7be4a48f08ac0cf339e8efc8b5751c4511..0000000000000000000000000000000000000000
--- a/wmake/rules/linuxGcc45
+++ /dev/null
@@ -1 +0,0 @@
-linuxGcc
\ No newline at end of file
diff --git a/wmake/rules/linuxGcc46 b/wmake/rules/linuxGcc46
deleted file mode 120000
index e30dec7be4a48f08ac0cf339e8efc8b5751c4511..0000000000000000000000000000000000000000
--- a/wmake/rules/linuxGcc46
+++ /dev/null
@@ -1 +0,0 @@
-linuxGcc
\ No newline at end of file
diff --git a/wmake/rules/linuxGcc47 b/wmake/rules/linuxGcc47
deleted file mode 120000
index e30dec7be4a48f08ac0cf339e8efc8b5751c4511..0000000000000000000000000000000000000000
--- a/wmake/rules/linuxGcc47
+++ /dev/null
@@ -1 +0,0 @@
-linuxGcc
\ No newline at end of file
diff --git a/wmake/rules/linuxGcc48 b/wmake/rules/linuxGcc48
deleted file mode 120000
index e30dec7be4a48f08ac0cf339e8efc8b5751c4511..0000000000000000000000000000000000000000
--- a/wmake/rules/linuxGcc48
+++ /dev/null
@@ -1 +0,0 @@
-linuxGcc
\ No newline at end of file
diff --git a/wmake/rules/linuxGcc49 b/wmake/rules/linuxGcc49
deleted file mode 120000
index e30dec7be4a48f08ac0cf339e8efc8b5751c4511..0000000000000000000000000000000000000000
--- a/wmake/rules/linuxGcc49
+++ /dev/null
@@ -1 +0,0 @@
-linuxGcc
\ No newline at end of file
diff --git a/wmake/rules/linuxGcc51 b/wmake/rules/linuxGcc51
deleted file mode 120000
index e30dec7be4a48f08ac0cf339e8efc8b5751c4511..0000000000000000000000000000000000000000
--- a/wmake/rules/linuxGcc51
+++ /dev/null
@@ -1 +0,0 @@
-linuxGcc
\ No newline at end of file
diff --git a/wmake/rules/linuxIA64Gcc/c b/wmake/rules/linuxIA64Gcc/c
index d7bda5d1df864e2a703994bbe92d51586f9da7be..dfae4adda0547faeae8333ed5e2660a3bacd7be7 100644
--- a/wmake/rules/linuxIA64Gcc/c
+++ b/wmake/rules/linuxIA64Gcc/c
@@ -4,7 +4,7 @@ cWARN        = -Wall
 
 cc          = gcc
 
-include $(RULES)/c$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
 
 cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
 
diff --git a/wmake/rules/linuxIA64Gcc/c++ b/wmake/rules/linuxIA64Gcc/c++
index d07854e06400382d1f17b860dce36bb7586c1e14..6d152ecd1a23f06c6b52af52b84b7737e601f1b6 100644
--- a/wmake/rules/linuxIA64Gcc/c++
+++ b/wmake/rules/linuxIA64Gcc/c++
@@ -7,7 +7,7 @@ c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
 
 CC          = g++ -std=c++0x
 
-include $(RULES)/c++$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
 
 ptFLAGS     = -DNoRepository -ftemplate-depth-100
 
diff --git a/wmake/rules/linuxIA64Gcc/general b/wmake/rules/linuxIA64Gcc/general
index 480ea1b9c41d5a6b0a9bdfbe310d51c8a4c3e6d3..182ee7f9019e4fcffa64e7bf30fef331a656450d 100644
--- a/wmake/rules/linuxIA64Gcc/general
+++ b/wmake/rules/linuxIA64Gcc/general
@@ -4,6 +4,6 @@ PROJECT_LIBS = -l$(WM_PROJECT) -ldl
 
 include $(GENERAL_RULES)/standard
 
-include $(RULES)/X
-include $(RULES)/c
-include $(RULES)/c++
+include $(DEFAULT_RULES)/X
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++
diff --git a/wmake/rules/linuxIA64Icc/c b/wmake/rules/linuxIA64Icc/c
index 3952de58fbdbd9c4549f58bd27e2eef987203705..2b19596b1a05d2f80010512e60b8941915752fe1 100644
--- a/wmake/rules/linuxIA64Icc/c
+++ b/wmake/rules/linuxIA64Icc/c
@@ -4,7 +4,7 @@ cWARN        =
 
 cc          = icc
 
-include $(RULES)/c$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
 
 cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
 
diff --git a/wmake/rules/linuxIA64Icc/c++ b/wmake/rules/linuxIA64Icc/c++
index 4d24538e976af4149bb8547778cbc3ef740580f1..a8a9341e1aec7d7660fb8cfca729b7c4f0fb4ca5 100644
--- a/wmake/rules/linuxIA64Icc/c++
+++ b/wmake/rules/linuxIA64Icc/c++
@@ -8,7 +8,7 @@ c++LESSWARN = -diag-disable 1224,2026,2305
 
 CC          = icpc -std=c++0x
 
-include $(RULES)/c++$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
 
 ptFLAGS     = -DNoRepository
 
diff --git a/wmake/rules/linuxIA64Icc/general b/wmake/rules/linuxIA64Icc/general
index 9dc446d4b28bc9f04467e5d38c601cc3b033943b..09a389665615459359790ebd71c618b28b1eb5bd 100644
--- a/wmake/rules/linuxIA64Icc/general
+++ b/wmake/rules/linuxIA64Icc/general
@@ -4,6 +4,6 @@ GLIBS      =
 
 include $(GENERAL_RULES)/standard
 
-include $(RULES)/X
-include $(RULES)/c
-include $(RULES)/c++
+include $(DEFAULT_RULES)/X
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++
diff --git a/wmake/rules/linuxIcc/c b/wmake/rules/linuxIcc/c
index a6441bcbd065f2eb2157f93cf86747f69942b507..c9f75c90217057b1d520a7e7b66681b18862421f 100644
--- a/wmake/rules/linuxIcc/c
+++ b/wmake/rules/linuxIcc/c
@@ -4,7 +4,7 @@ cWARN        =
 
 cc          = icc -gcc-version=400
 
-include $(RULES)/c$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
 
 cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -KPIC
 
diff --git a/wmake/rules/linuxIcc/c++ b/wmake/rules/linuxIcc/c++
index 48fdb9f6b1b8ed58a6b96a9fe03d47b187782b54..88976144c152d063af07db75eae692e248407404 100644
--- a/wmake/rules/linuxIcc/c++
+++ b/wmake/rules/linuxIcc/c++
@@ -8,7 +8,7 @@ c++LESSWARN = -diag-disable 1224,2026,2305
 
 CC          = icpc -std=c++0x -fp-trap=common -fp-model precise
 
-include $(RULES)/c++$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
 
 ptFLAGS     = -DNoRepository
 
diff --git a/wmake/rules/linuxIcc/general b/wmake/rules/linuxIcc/general
index 8a38ddf6d47adc7f1bfc7d869c440378c9525f44..5c94cad44af0463b5bf104df334ff04867a1065d 100644
--- a/wmake/rules/linuxIcc/general
+++ b/wmake/rules/linuxIcc/general
@@ -5,5 +5,5 @@ PROJECT_LIBS = -l$(WM_PROJECT) -ldl
 
 include $(GENERAL_RULES)/standard
 
-include $(RULES)/c
-include $(RULES)/c++
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++
diff --git a/wmake/rules/linuxPPC64Gcc/c b/wmake/rules/linuxPPC64Gcc/c
index 1fa057876c161f859ab006e6b7decbc67bfe6bbc..f973417062ea07758ca2d147fdd4f43c708866ab 100644
--- a/wmake/rules/linuxPPC64Gcc/c
+++ b/wmake/rules/linuxPPC64Gcc/c
@@ -4,7 +4,7 @@ cWARN        = -Wall
 
 cc          = gcc -m64 -mcpu=power5+
 
-include $(RULES)/c$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
 
 cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
 
diff --git a/wmake/rules/linuxPPC64Gcc/c++ b/wmake/rules/linuxPPC64Gcc/c++
index c5dcaa4d9609887f706d02d9ae7595a08cc1cbd2..7c330793840c49c0b9cf8e71cfe4e176e0170868 100644
--- a/wmake/rules/linuxPPC64Gcc/c++
+++ b/wmake/rules/linuxPPC64Gcc/c++
@@ -7,7 +7,7 @@ c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
 
 CC          = g++ -std=c++0x -m64 -mcpu=power5+
 
-include $(RULES)/c++$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
 
 ptFLAGS     = -DNoRepository -ftemplate-depth-100
 
diff --git a/wmake/rules/linuxPPC64Gcc/general b/wmake/rules/linuxPPC64Gcc/general
index fa717f9645bac6b941e2b97588a859b3b08bf274..a590cc29c8d143674c2070610efb1fff1027b7ca 100644
--- a/wmake/rules/linuxPPC64Gcc/general
+++ b/wmake/rules/linuxPPC64Gcc/general
@@ -5,6 +5,6 @@ PROJECT_LIBS = -l$(WM_PROJECT) -ldl
 
 include $(GENERAL_RULES)/standard
 
-include $(RULES)/X
-include $(RULES)/c
-include $(RULES)/c++
+include $(DEFAULT_RULES)/X
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++
diff --git a/wmake/rules/linuxPPC64leGcc/c b/wmake/rules/linuxPPC64leGcc/c
index d9aa80f726f10e7f13694594fc0bdd2ce5a326b2..c5e3c73ebab1b532aa85bc50aac9bb1b56c68a4e 100644
--- a/wmake/rules/linuxPPC64leGcc/c
+++ b/wmake/rules/linuxPPC64leGcc/c
@@ -4,7 +4,7 @@ cWARN        = -Wall
 
 cc          = gcc -m64 -mcpu=power8
 
-include $(RULES)/c$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
 
 cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
 
diff --git a/wmake/rules/linuxPPC64leGcc/c++ b/wmake/rules/linuxPPC64leGcc/c++
index 76c4947183389527d3b4e4980b0e768f0fc80684..805f821822f1cce9c4093c9a22031e630628ecf3 100644
--- a/wmake/rules/linuxPPC64leGcc/c++
+++ b/wmake/rules/linuxPPC64leGcc/c++
@@ -7,7 +7,7 @@ c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
 
 CC          = g++ -std=c++0x -m64 -mcpu=power8
 
-include $(RULES)/c++$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
 
 ptFLAGS     = -DNoRepository -ftemplate-depth-100
 
diff --git a/wmake/rules/linuxPPC64leGcc/general b/wmake/rules/linuxPPC64leGcc/general
index f800e09afcb301239fc13a2cece85a96dc64ba4a..7867cbde8f46661b843fc674bd041809705e8f5b 100644
--- a/wmake/rules/linuxPPC64leGcc/general
+++ b/wmake/rules/linuxPPC64leGcc/general
@@ -5,6 +5,6 @@ PROJECT_LIBS = -l$(WM_PROJECT) -ldl
 
 include $(GENERAL_RULES)/standard
 
-include $(RULES)/X
-include $(RULES)/c
-include $(RULES)/c++
+include $(DEFAULT_RULES)/X
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++
diff --git a/wmake/rules/solaris64Gcc/c b/wmake/rules/solaris64Gcc/c
index 66435ccf057a04d5051164eb65f110c6eb476c6b..1097b3a594ca9284537cc5af2b8248bb8bac4486 100644
--- a/wmake/rules/solaris64Gcc/c
+++ b/wmake/rules/solaris64Gcc/c
@@ -4,7 +4,7 @@ cWARN        = -Wall
 
 cc          = gcc -m64
 
-include $(RULES)/c$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
 
 cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
 
diff --git a/wmake/rules/solaris64Gcc/c++ b/wmake/rules/solaris64Gcc/c++
index e7f16f4d46ff9b0d732d2b5c839f79934159ec67..324522f10b1b30f75361d17f4f107c7c071db1ce 100644
--- a/wmake/rules/solaris64Gcc/c++
+++ b/wmake/rules/solaris64Gcc/c++
@@ -7,7 +7,7 @@ c++LESSWARN =
 
 CC          = g++ -std=c++0x -m64
 
-include $(RULES)/c++$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
 
 ptFLAGS     = -DNoRepository -ftemplate-depth-100
 
diff --git a/wmake/rules/solaris64Gcc/general b/wmake/rules/solaris64Gcc/general
index 83b7ebf4e0b71fc1ff0139692cded64f6b2527b1..bbf1b69bc2b228e3d820d1636111cb74f698e006 100644
--- a/wmake/rules/solaris64Gcc/general
+++ b/wmake/rules/solaris64Gcc/general
@@ -5,6 +5,6 @@ PROJECT_LIBS = -l$(WM_PROJECT) -lnsl -lsocket -L$(FOAM_LIBBIN)/dummy -lPstream
 
 include $(GENERAL_RULES)/standard
 
-include $(RULES)/X
-include $(RULES)/c
-include $(RULES)/c++
+include $(DEFAULT_RULES)/X
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++
diff --git a/wmake/rules/solarisGcc/c b/wmake/rules/solarisGcc/c
index d7bda5d1df864e2a703994bbe92d51586f9da7be..dfae4adda0547faeae8333ed5e2660a3bacd7be7 100644
--- a/wmake/rules/solarisGcc/c
+++ b/wmake/rules/solarisGcc/c
@@ -4,7 +4,7 @@ cWARN        = -Wall
 
 cc          = gcc
 
-include $(RULES)/c$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
 
 cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
 
diff --git a/wmake/rules/solarisGcc/c++ b/wmake/rules/solarisGcc/c++
index d6bf189010d40cc49a8a7ff9ea0b74c5d8e169db..d8e968fb9ffb132dfadafb25a491d6db587f171f 100644
--- a/wmake/rules/solarisGcc/c++
+++ b/wmake/rules/solarisGcc/c++
@@ -7,7 +7,7 @@ c++LESSWARN =
 
 CC          = g++ -std=c++0x
 
-include $(RULES)/c++$(WM_COMPILE_OPTION)
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
 
 ptFLAGS     = -DNoRepository -ftemplate-depth-100
 
diff --git a/wmake/rules/solarisGcc/general b/wmake/rules/solarisGcc/general
index cda7ba86730f829e090c6c7f51d4bea697839604..2e6e7b1f40b057a7afed90dec5546f376e0811a0 100644
--- a/wmake/rules/solarisGcc/general
+++ b/wmake/rules/solarisGcc/general
@@ -4,6 +4,6 @@ PROJECT_LIBS = -l$(WM_PROJECT) -lnsl -lsocket -L$(FOAM_LIBBIN)/dummy -lPstream
 
 include $(GENERAL_RULES)/standard
 
-include $(RULES)/X
-include $(RULES)/c
-include $(RULES)/c++
+include $(DEFAULT_RULES)/X
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++
diff --git a/wmake/src/Makefile b/wmake/src/Makefile
index 92a2b087e652283b610752144bffd4644da0d1a4..4162a3b45d71ffdf3773fbe5dd3da67c58fac207 100644
--- a/wmake/src/Makefile
+++ b/wmake/src/Makefile
@@ -2,7 +2,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
@@ -43,19 +43,15 @@ SHELL      = /bin/sh
 
 
 #------------------------------------------------------------------------------
-# set compilation and dependency building rules
+# Set compilation and dependency building rules
 #------------------------------------------------------------------------------
 
-GENERAL_RULES = $(WM_DIR)/rules/General
-RULES         = $(WM_DIR)/rules/$(WM_ARCH)$(WM_COMPILER)
-WMAKE_BIN     = $(WM_DIR)/platforms/$(WM_ARCH)$(WM_COMPILER)
-
-include $(RULES)/general
-include $(RULES)/$(WM_LINK_LANGUAGE)
+GENERAL_RULES   = $(WM_DIR)/rules/General
+include $(GENERAL_RULES)/general
 
 
 #------------------------------------------------------------------------------
-# targets
+# Targets
 #------------------------------------------------------------------------------
 
 all:  $(WMAKE_BIN)/dirToString $(WMAKE_BIN)/wmkdep