diff --git a/Box/Makefile b/Box/Makefile
index edfaf8b4c41d7197e482936fd5e449051285b430..938e0495141f718aceb03f7dca826930c6d31743 100644
--- a/Box/Makefile
+++ b/Box/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.44 2008-01-23 07:45:27 geuzaine Exp $
+# $Id: Makefile,v 1.45 2008-02-07 21:29:38 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,12 +21,14 @@
 
 include ../variables
 
-LIB     = ../lib/libGmshBox${LIBEXT}
-INCLUDE = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Geo ${DASH}I../Mesh\
-          ${DASH}I../Post ${DASH}I../Graphics ${DASH}I../Numeric ${DASH}I../Parser\
-          ${DASH}I../Fltk ${DASH}I../Plugin ${DASH}I../Parallel\
-          ${DASH}I../contrib/ANN/include
-CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE}
+LIB = ../lib/libGmshBox${LIBEXT}
+
+INC = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Geo ${DASH}I../Mesh\
+      ${DASH}I../Post ${DASH}I../Graphics ${DASH}I../Numeric ${DASH}I../Parser\
+      ${DASH}I../Fltk ${DASH}I../Plugin ${DASH}I../Parallel\
+      ${DASH}I../contrib/ANN/include
+
+CFLAGS  = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = Box.cpp
 
diff --git a/Common/Makefile b/Common/Makefile
index 332a4a0e0a291ac423f1fdea0271c19e58b150af..916de5746b69354d6d3dbba71617d8378dc1c996 100644
--- a/Common/Makefile
+++ b/Common/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.155 2008-01-23 07:45:27 geuzaine Exp $
+# $Id: Makefile,v 1.156 2008-02-07 21:29:38 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,12 +21,14 @@
 
 include ../variables
 
-LIB     = ../lib/libGmshCommon${LIBEXT}
-INCLUDE = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Geo ${DASH}I../Mesh\
-          ${DASH}I../Post ${DASH}I../Graphics ${DASH}I../Numeric ${DASH}I../Parser\
-          ${DASH}I../Plugin ${DASH}I../Fltk ${DASH}I../contrib/MathEval\
-          ${DASH}I../contrib/ANN/include
-CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE}
+LIB = ../lib/libGmshCommon${LIBEXT}
+
+INC = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Geo ${DASH}I../Mesh\
+      ${DASH}I../Post ${DASH}I../Graphics ${DASH}I../Numeric ${DASH}I../Parser\
+      ${DASH}I../Plugin ${DASH}I../Fltk ${DASH}I../contrib/MathEval\
+      ${DASH}I../contrib/ANN/include
+
+CFLAGS = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = Context.cpp\
       Octree.cpp OctreeInternals.cpp\
diff --git a/DataStr/Makefile b/DataStr/Makefile
index f66bec73d86fad63571e4653003dfd2d5d1d4c21..47572891c124b8614accd332fd772c401244c501 100644
--- a/DataStr/Makefile
+++ b/DataStr/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.43 2008-01-23 07:45:27 geuzaine Exp $
+# $Id: Makefile,v 1.44 2008-02-07 21:29:38 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,9 +21,11 @@
 
 include ../variables
 
-LIB     = ../lib/libGmshDataStr${LIBEXT}
-INCLUDE = ${DASH}I../Common
-CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE}
+LIB = ../lib/libGmshDataStr${LIBEXT}
+
+INC = ${DASH}I../Common
+
+CFLAGS  = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = List.cpp \
       Malloc.cpp \
diff --git a/Fltk/Makefile b/Fltk/Makefile
index 1e8eb72ee24db86d77da18e2a1e65765f49c2500..c27f73f30d1e2ab5b65f4e972fdb3ca3fd28c573 100644
--- a/Fltk/Makefile
+++ b/Fltk/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.167 2008-01-23 07:45:28 geuzaine Exp $
+# $Id: Makefile,v 1.168 2008-02-07 21:29:39 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,12 +21,14 @@
 
 include ../variables
 
-LIB     = ../lib/libGmshFltk${LIBEXT}
-INCLUDE = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Graphics\
-          ${DASH}I../Geo ${DASH}I../Mesh ${DASH}I../Post ${DASH}I../Numeric\
-          ${DASH}I../Parser ${DASH}I../Fltk ${DASH}I../Plugin ${DASH}I../utils/solvers\
-          ${DASH}I../contrib/ANN/include ${DASH}I../contrib/NativeFileChooser
-CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE}
+LIB = ../lib/libGmshFltk${LIBEXT}
+
+INC = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Graphics\
+      ${DASH}I../Geo ${DASH}I../Mesh ${DASH}I../Post ${DASH}I../Numeric\
+      ${DASH}I../Parser ${DASH}I../Fltk ${DASH}I../Plugin ${DASH}I../utils/solvers\
+      ${DASH}I../contrib/ANN/include ${DASH}I../contrib/NativeFileChooser
+
+CFLAGS = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = Main.cpp \
       Message.cpp \
diff --git a/Geo/Makefile b/Geo/Makefile
index e308d0a4132a49237c477e01f5c76f07c546a511..1707bedb3c0df95a41f4aa6c48e09a6de1f5e00f 100644
--- a/Geo/Makefile
+++ b/Geo/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.181 2008-02-05 18:58:04 geuzaine Exp $
+# $Id: Makefile,v 1.182 2008-02-07 21:29:39 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,12 +21,14 @@
 
 include ../variables
 
-LIB     = ../lib/libGmshGeo${LIBEXT}
-INCLUDE = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Geo ${DASH}I../Mesh\
-          ${DASH}I../Post ${DASH}I../Numeric ${DASH}I../Parser ${DASH}I../Fltk\
-          ${DASH}I../contrib/NR ${DASH}I../contrib/ANN/include\
-          ${DASH}I../contrib/MathEval
-CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE}
+LIB = ../lib/libGmshGeo${LIBEXT}
+
+INC = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Geo ${DASH}I../Mesh\
+      ${DASH}I../Post ${DASH}I../Numeric ${DASH}I../Parser ${DASH}I../Fltk\
+      ${DASH}I../contrib/NR ${DASH}I../contrib/ANN/include\
+      ${DASH}I../contrib/MathEval
+
+CFLAGS = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = GEntity.cpp\
       GVertex.cpp GEdge.cpp GEdgeLoop.cpp GFace.cpp GRegion.cpp\
diff --git a/Graphics/Makefile b/Graphics/Makefile
index 67cf94aa99dc8be8fc6689f2d94bd1ff7752d03b..6dcf4486350e19ce423d49670c34364da912a321 100644
--- a/Graphics/Makefile
+++ b/Graphics/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.137 2008-01-23 07:45:28 geuzaine Exp $
+# $Id: Makefile,v 1.138 2008-02-07 21:29:39 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,12 +21,14 @@
 
 include ../variables
 
-LIB     = ../lib/libGmshGraphics${LIBEXT}
-INCLUDE = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Geo ${DASH}I../Mesh\
-          ${DASH}I../Post ${DASH}I../Graphics ${DASH}I../Fltk ${DASH}I../Numeric\
-          ${DASH}I../Parser ${DASH}I../Plugin ${DASH}I../contrib/MathEval\
-          ${DASH}I../contrib/ANN/include
-CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE}
+LIB = ../lib/libGmshGraphics${LIBEXT}
+
+INC = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Geo ${DASH}I../Mesh\
+      ${DASH}I../Post ${DASH}I../Graphics ${DASH}I../Fltk ${DASH}I../Numeric\
+      ${DASH}I../Parser ${DASH}I../Plugin ${DASH}I../contrib/MathEval\
+      ${DASH}I../contrib/ANN/include
+
+CFLAGS = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = Draw.cpp \
       Mesh.cpp \
diff --git a/Mesh/Makefile b/Mesh/Makefile
index ba4f8c878f6d164e81cb43515427f79855562269..6ca6db57ba28bc0977d64ce67f4e602134342c1c 100644
--- a/Mesh/Makefile
+++ b/Mesh/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.201 2008-02-05 18:58:04 geuzaine Exp $
+# $Id: Makefile,v 1.202 2008-02-07 21:29:39 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,16 +21,18 @@
 
 include ../variables
 
-LIB     = ../lib/libGmshMesh${LIBEXT}
-INCLUDE = ${DASH}I../Numeric ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Geo\
-          ${DASH}I../Mesh ${DASH}I../Post ${DASH}I../Graphics ${DASH}I../Parser\
-          ${DASH}I../Fltk ${DASH}I../contrib/NR ${DASH}I../contrib/Triangle\
-          ${DASH}I../contrib/Tetgen ${DASH}I../contrib/Netgen\
-          ${DASH}I../contrib/Netgen/libsrc/include\
-          ${DASH}I../contrib/Netgen/libsrc/interface\
-          ${DASH}I../contrib/ANN/include ${DASH}I../contrib/Metis\
-          ${DASH}I../contrib/MathEval
-CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE}
+LIB = ../lib/libGmshMesh${LIBEXT}
+
+INC = ${DASH}I../Numeric ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Geo\
+      ${DASH}I../Mesh ${DASH}I../Post ${DASH}I../Graphics ${DASH}I../Parser\
+      ${DASH}I../Fltk ${DASH}I../contrib/NR ${DASH}I../contrib/Triangle\
+      ${DASH}I../contrib/Tetgen ${DASH}I../contrib/Netgen\
+      ${DASH}I../contrib/Netgen/libsrc/include\
+      ${DASH}I../contrib/Netgen/libsrc/interface\
+      ${DASH}I../contrib/ANN/include ${DASH}I../contrib/Metis\
+      ${DASH}I../contrib/MathEval
+
+CFLAGS = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = Generator.cpp \
       Field.cpp\
@@ -68,7 +70,7 @@ ${LIB}: ${OBJ}
 
 # Don't optimize BDS: it crashes with some flavors of gcc 4.1 (e.g. on debian etch)
 BDS.o:
-	${CXX} ${FLAGS} ${INCLUDE} ${SYSINCLUDE} ${DASH}c BDS.cpp
+	${CXX} ${FLAGS} ${INC} ${SYSINCLUDE} ${DASH}c BDS.cpp
 
 clean:
 	rm -f *.o *.obj
diff --git a/Numeric/Makefile b/Numeric/Makefile
index a962d9817bab972480a608ff2edcb729b62c29e7..ad42995a2f517dda82eee36a2457f5d499295eeb 100644
--- a/Numeric/Makefile
+++ b/Numeric/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.45 2008-01-23 07:45:29 geuzaine Exp $
+# $Id: Makefile,v 1.46 2008-02-07 21:29:39 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,9 +21,11 @@
 
 include ../variables
 
-LIB     = ../lib/libGmshNumeric${LIBEXT}
-INCLUDE = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Numeric ${DASH}I../contrib/NR
-CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE}
+LIB = ../lib/libGmshNumeric${LIBEXT}
+
+INC = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Numeric ${DASH}I../contrib/NR
+
+CFLAGS = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = Numeric.cpp\
         NumericEmbedded.cpp\
diff --git a/Parallel/Makefile b/Parallel/Makefile
index 6b7fc7d7019fd9cb059b878434c305f46f067e5a..c5bb23254cd1050dfd95fc6b3f85d6e929083d36 100644
--- a/Parallel/Makefile
+++ b/Parallel/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.41 2008-01-23 07:45:29 geuzaine Exp $
+# $Id: Makefile,v 1.42 2008-02-07 21:29:39 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,9 +21,11 @@
 
 include ../variables
 
-LIB     = ../lib/libGmshParallel${LIBEXT}
-INCLUDE = ${DASH}I../Common ${DASH}I../DataStr
-CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE}
+LIB = ../lib/libGmshParallel${LIBEXT}
+
+INC = ${DASH}I../Common ${DASH}I../DataStr
+
+CFLAGS  = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = ParUtil.cpp
 
diff --git a/Parser/Makefile b/Parser/Makefile
index a5803fa209eae8b2b8913b357d7879adf10b511f..68b06f4fc3c46fb290516563e0546692dccb4a0e 100644
--- a/Parser/Makefile
+++ b/Parser/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.138 2008-01-23 07:45:29 geuzaine Exp $
+# $Id: Makefile,v 1.139 2008-02-07 21:29:39 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,11 +21,13 @@
 
 include ../variables
 
-LIB     = ../lib/libGmshParser${LIBEXT}
-INCLUDE = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Geo ${DASH}I../Mesh\
-          ${DASH}I../Post ${DASH}I../Graphics ${DASH}I../Numeric ${DASH}I../Fltk\
-          ${DASH}I../Plugin ${DASH}I../Parallel ${DASH}I../contrib/ANN/include 
-CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE}
+LIB = ../lib/libGmshParser${LIBEXT}
+
+INC = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Geo ${DASH}I../Mesh\
+      ${DASH}I../Post ${DASH}I../Graphics ${DASH}I../Numeric ${DASH}I../Fltk\
+      ${DASH}I../Plugin ${DASH}I../Parallel ${DASH}I../contrib/ANN/include 
+
+CFLAGS = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = Gmsh.tab.cpp\
       Gmsh.yy.cpp\
@@ -47,7 +49,7 @@ ${LIB}: ${OBJ}
 # Don't optimize Gmsh.tab.o: on many architectures, g++ -O2 generates
 # assembly code too large to be addressed correctly
 Gmsh.tab${OBJEXT}:
-	${CXX} ${FLAGS} ${INCLUDE} ${SYSINCLUDE} ${DASH}c Gmsh.tab.cpp
+	${CXX} ${FLAGS} ${INC} ${SYSINCLUDE} ${DASH}c Gmsh.tab.cpp
 
 parser:
 	bison -p gmsh_yy --output Gmsh.tab.cpp -d Gmsh.y 
diff --git a/Plugin/Makefile b/Plugin/Makefile
index c265b5678d362930e4e2eb1da7b38f6a46c7fd90..dc03613693bf6d876e3269649b84706ef745efe2 100644
--- a/Plugin/Makefile
+++ b/Plugin/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.148 2008-02-05 19:02:39 geuzaine Exp $
+# $Id: Makefile,v 1.149 2008-02-07 21:29:40 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,12 +21,14 @@
 
 include ../variables
 
-LIB     = ../lib/libGmshPlugin${LIBEXT}
-INCLUDE = ${DASH}I../Common ${DASH}I../Graphics ${DASH}I../DataStr ${DASH}I../Geo\
-          ${DASH}I../Mesh ${DASH}I../Post ${DASH}I../Fltk ${DASH}I../Numeric\
-          ${DASH}I../contrib/ANN/include ${DASH}I../contrib/Triangle\
-          ${DASH}I../contrib/MathEval
-CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE}
+LIB = ../lib/libGmshPlugin${LIBEXT}
+
+INC = ${DASH}I../Common ${DASH}I../Graphics ${DASH}I../DataStr ${DASH}I../Geo\
+      ${DASH}I../Mesh ${DASH}I../Post ${DASH}I../Fltk ${DASH}I../Numeric\
+      ${DASH}I../contrib/ANN/include ${DASH}I../contrib/Triangle\
+      ${DASH}I../contrib/MathEval
+
+CFLAGS = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = Plugin.cpp PluginManager.cpp\
         Levelset.cpp\
diff --git a/Post/Makefile b/Post/Makefile
index 29ea8e13c794307bb3b2e4a8396beae1715f2438..a0f7071264834384dfe9b46c316aedde890db5ee 100644
--- a/Post/Makefile
+++ b/Post/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.26 2008-01-23 07:45:30 geuzaine Exp $
+# $Id: Makefile,v 1.27 2008-02-07 21:29:40 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,12 +21,14 @@
 
 include ../variables
 
-LIB     = ../lib/libGmshPost${LIBEXT}
-INCLUDE = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Geo ${DASH}I../Mesh\
-          ${DASH}I../Post ${DASH}I../Graphics ${DASH}I../Numeric ${DASH}I../Parser\
-          ${DASH}I../Plugin ${DASH}I../Fltk ${DASH}I../contrib/MathEval\
-          ${DASH}I../contrib/ANN/include
-CFLAGS  =${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE}
+LIB = ../lib/libGmshPost${LIBEXT}
+
+INC = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Geo ${DASH}I../Mesh\
+      ${DASH}I../Post ${DASH}I../Graphics ${DASH}I../Numeric ${DASH}I../Parser\
+      ${DASH}I../Plugin ${DASH}I../Fltk ${DASH}I../contrib/MathEval\
+      ${DASH}I../contrib/ANN/include
+
+CFLAGS =${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = PView.cpp\
         PViewData.cpp\
diff --git a/contrib/ANN/Makefile b/contrib/ANN/Makefile
index 9a27886948e51fae010aa901c9313564bdf47755..f9a4784b3a656f822627d7e8d83b2cec82465e1d 100644
--- a/contrib/ANN/Makefile
+++ b/contrib/ANN/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.19 2008-01-23 07:45:30 geuzaine Exp $
+# $Id: Makefile,v 1.20 2008-02-07 21:29:40 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,9 +21,11 @@
 
 include ../../variables
 
-LIB     = ../../lib/libGmshANN${LIBEXT}
-INCLUDE = ${DASH}I../../Common ${DASH}I./include
-CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE}
+LIB = ../../lib/libGmshANN${LIBEXT}
+
+INC = ${DASH}I../../Common ${DASH}I./include
+
+CFLAGS = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = src/ANN.cpp\
       src/bd_fix_rad_search.cpp\
diff --git a/contrib/MathEval/Makefile b/contrib/MathEval/Makefile
index 19ab30467cf709c3abbcd5e8db76897e68515e6f..ba2c8b2bd13d6ee2fe21e7ec3e10f05601e0580a 100644
--- a/contrib/MathEval/Makefile
+++ b/contrib/MathEval/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.18 2008-01-23 07:45:30 geuzaine Exp $
+# $Id: Makefile,v 1.19 2008-02-07 21:29:40 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -22,9 +22,10 @@
 include ../../variables
 
 LIB = ../../lib/libGmshMathEval${LIBEXT}
-INCLUDE = ${DASH}I../../Common ${DASH}I../../DataStr
 
-CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE}
+INC = ${DASH}I../../Common ${DASH}I../../DataStr
+
+CFLAGS = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = matheval.cpp\
       node.cpp\
diff --git a/contrib/Metis/Makefile b/contrib/Metis/Makefile
index e0956844477a58b1d7fc095c46dc387d5b15724a..25cd21e051c3dd5749ef713f059a1c12215dc6de 100644
--- a/contrib/Metis/Makefile
+++ b/contrib/Metis/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.14 2008-01-23 07:45:30 geuzaine Exp $
+# $Id: Makefile,v 1.15 2008-02-07 21:29:40 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -22,8 +22,10 @@
 include ../../variables
 
 LIB     = ../../lib/libGmshMetis.a
-INCLUDE = -I.
-CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE}
+
+INC = ${DASH}I.
+
+CFLAGS  = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = balance.c \
       fm.c        \
@@ -78,16 +80,19 @@ SRC = balance.c \
       parmetis.c \
      stat.c
 
-OBJ = ${SRC:.c=.o}
+OBJ = ${SRC:.c=${OBJEXT}}
 
-.SUFFIXES: .o .c
+.SUFFIXES: ${OBJEXT} .c
 
 ${LIB}: ${OBJ} 
-	${AR} ${LIB} ${OBJ} 
+	${AR} ${ARFLAGS}${LIB} ${OBJ} 
 	${RANLIB} ${LIB}
 
-.c.o:
-	${CC} ${CFLAGS} -c $< -o ${<:.c=.o}
+.c${OBJEXT}:
+	${CC} ${CFLAGS} ${DASH}c $< ${DASH}o ${<:.c=${OBJEXT}}
+	if [ -r ${notdir ${<:.c=${OBJEXT}}} ]; then\
+           mv -f ${notdir ${<:.c=${OBJEXT}}} ${<:.c=${OBJEXT}};\
+        fi
 
 clean:
 	rm -f *.o *.obj
diff --git a/contrib/NR/Makefile b/contrib/NR/Makefile
index 248d972600f8bf2d663e8d8b4446746300ed85e8..44af1fca8d464c157567892a9222e7ca224d52ab 100644
--- a/contrib/NR/Makefile
+++ b/contrib/NR/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.9 2008-01-23 07:45:30 geuzaine Exp $
+# $Id: Makefile,v 1.10 2008-02-07 21:29:40 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,10 +21,12 @@
 
 include ../../variables
 
-LIB     = ../../lib/libGmshNR${LIBEXT}
-INCLUDE = ${DASH}I../../Common ${DASH}I../../DataStr ${DASH}I../../Numeric
+LIB = ../../lib/libGmshNR${LIBEXT}
+
+INC = ${DASH}I../../Common ${DASH}I../../DataStr ${DASH}I../../Numeric
+
 # don't optimize this library: there are some problems with gcc...
-CFLAGS  = ${FLAGS} ${INCLUDE} ${SYSINCLUDE}
+CFLAGS  = ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = brent.cpp\
       dpythag.cpp\
diff --git a/contrib/NativeFileChooser/Makefile b/contrib/NativeFileChooser/Makefile
index e3bf4997a7277a82842f7684ef4320a4c4a41f5d..91e467830034a935ae539f7b1fa148151084033a 100644
--- a/contrib/NativeFileChooser/Makefile
+++ b/contrib/NativeFileChooser/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.4 2008-01-23 07:45:30 geuzaine Exp $
+# $Id: Makefile,v 1.5 2008-02-07 21:29:40 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,9 +21,11 @@
 
 include ../../variables
 
-LIB     = ../../lib/libGmshNativeFileChooser${LIBEXT}
-INCLUDE = ${DASH}I.
-CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE} ${DASH}DFLTK1
+LIB = ../../lib/libGmshNativeFileChooser${LIBEXT}
+
+INC = ${DASH}I.
+
+CFLAGS = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE} ${DASH}DFLTK1
 
 SRC = Fl_Native_File_Chooser.cxx
 OBJ = ${SRC:.cxx=${OBJEXT}}
@@ -34,7 +36,7 @@ ${LIB}: ${OBJ}
 	${AR} ${ARFLAGS}${LIB} ${OBJ} 
 	${RANLIB} ${LIB}
 
-.cxx.o:
+.cxx${OBJEXT}:
 	${CXX} ${CFLAGS} ${DASH}c $<
 
 clean:
diff --git a/contrib/Netgen/Makefile b/contrib/Netgen/Makefile
index a517f1aa800a5e7522565cdf077a9e1a10003a9a..87c4e768eba462c8ad33d81113cb2c1c6ab978d1 100644
--- a/contrib/Netgen/Makefile
+++ b/contrib/Netgen/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.28 2008-01-23 07:45:30 geuzaine Exp $
+# $Id: Makefile,v 1.29 2008-02-07 21:29:41 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,10 +21,12 @@
 
 include ../../variables
 
-LIB     = ../../lib/libGmshNetgen${LIBEXT}
-INCLUDE = ${DASH}I../../Common ${DASH}Ilibsrc/include ${DASH}Ilibsrc/interface
-CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE}\
-          ${DASH}DNO_PARALLEL_THREADS ${DASH}UWIN32
+LIB = ../../lib/libGmshNetgen${LIBEXT}
+
+INC = ${DASH}I../../Common ${DASH}Ilibsrc/include ${DASH}Ilibsrc/interface
+
+CFLAGS = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}\
+         ${DASH}DNO_PARALLEL_THREADS ${DASH}UWIN32
 
 SRC = libsrc/opti/linopt.cpp \
 	libsrc/opti/bfgs.cpp \
diff --git a/contrib/Tetgen/Makefile b/contrib/Tetgen/Makefile
index 2de7f1581e9ab2743e2c898996076687cb9d35ab..f6af86e97fa34c9bf77a6e860a9ec1f64c78e3b4 100644
--- a/contrib/Tetgen/Makefile
+++ b/contrib/Tetgen/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.9 2008-01-23 07:45:31 geuzaine Exp $
+# $Id: Makefile,v 1.10 2008-02-07 21:29:41 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -21,9 +21,10 @@
 
 include ../../variables
 
-LIB     = ../../lib/libGmshTetgen${LIBEXT}
+LIB = ../../lib/libGmshTetgen${LIBEXT}
+
 # Do not optimize (same as Triangle...) 
-CFLAGS  = ${FLAGS} ${DASH}DTETLIBRARY
+CFLAGS = ${FLAGS} ${DASH}DTETLIBRARY
 
 SRC = predicates.cxx tetgen.cxx
 OBJ = ${SRC:.cxx=${OBJEXT}}
diff --git a/variables.msvc b/variables.msvc
index 31f87216a771a09799197dbb26f624451e0b5810..7e7cda4cb28894934432628319a93ff26e0d673e 100644
--- a/variables.msvc
+++ b/variables.msvc
@@ -1,6 +1,8 @@
 # This is a pre-filled variables file for building a blackbox version
-# of Gmsh with Microsoft Visual C++ 2008. See doc/README.msvc for
-# building instructions.
+# of Gmsh with Microsoft Visual C++ (MSVC). 
+#
+# This has been tested with MSVC 2003.NET and MSVC 2008. 
+# See doc/README.msvc for building instructions.
 
 # OS and host
 UNAME=WIN32MSVC
@@ -9,11 +11,8 @@ HOSTNAME=localhost
 # The names of the C and C++ compilers
 CC=cl
 CXX=cl /EHsc /nologo /GR 
-
-#MLd --> Single Thread debug ok?
-#MTd--> Multit hread debug 
-
-
+# Add /MLd for single-thread debug mode
+#     /MTd for multi-thread debug mode
 
 # increase stack size to 16Mb to avoid stack overflows in recursive 
 # tet classification for large 3D Delaunay grids
@@ -22,10 +21,9 @@ LINKER=cl /F16777216
 # All compiler flags except optimization flags
 FLAGS=/DWIN32 /D_USE_MATH_DEFINES /DHAVE_NO_DLL /DHAVE_NO_VSNPRINTF /DHAVE_NO_SNPRINTF /DHAVE_NO_SOCKLEN_T /DHAVE_ANN /DHAVE_MATH_EVAL /DHAVE_NETGEN /DHAVE_TETGEN
 
-# Additional system includes
-#SYSINCLUDE=/I"C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE" /I"C:\Program Files\Microsoft SDKs\Windows\v6.0A\include"
-
-SYSINCLUDE=/I"C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\INCLUDE" /I"C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include"
+# Additional system includes ($INCLUDE is automatically defined by MSVC when
+# you launch the MSVC command prompt)
+SYSINCLUDE=/I"${INCLUDE}"
 
 # Compiler optimization flags
 OPTIM=/O2