From 5b2534dfac88a77b4646f5c6d63abca37ed646c9 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Sat, 19 Jan 2008 09:55:33 +0000
Subject: [PATCH] simplify Visual C++ stuff: removed hacks from configure and
 created template "variables" file (so that building with msvc only requires
 gnu make)

---
 Common/CommandLine.cpp        |   4 +-
 Common/Makefile               |   4 +-
 Mesh/Field.cpp                |  16 ++--
 Mesh/Field.h                  |   4 +-
 Mesh/meshGRegionCarveHole.cpp |   4 +-
 configure                     | 152 ++++++++++++----------------------
 configure.in                  | 149 ++++++++++++---------------------
 doc/README.msvc               |  13 +++
 doc/README.visualc++          |  16 ----
 variables.in                  |  12 +--
 variables.msvc                |  54 ++++++++++++
 11 files changed, 195 insertions(+), 233 deletions(-)
 create mode 100644 doc/README.msvc
 delete mode 100644 doc/README.visualc++
 create mode 100644 variables.msvc

diff --git a/Common/CommandLine.cpp b/Common/CommandLine.cpp
index cf34e971fd..5c306e0fed 100644
--- a/Common/CommandLine.cpp
+++ b/Common/CommandLine.cpp
@@ -1,4 +1,4 @@
-// $Id: CommandLine.cpp,v 1.110 2008-01-14 21:29:13 remacle Exp $
+// $Id: CommandLine.cpp,v 1.111 2008-01-19 09:55:33 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -155,7 +155,7 @@ char *Get_BuildOptions(void)
 #if defined(HAVE_METIS)
     strcat(opt, "METIS ");
 #endif
-#if defined(HAVE_ANN_)
+#if defined(HAVE_ANN)
     strcat(opt, "ANN ");
 #endif
 #if defined(HAVE_CGNS)
diff --git a/Common/Makefile b/Common/Makefile
index f8505a5619..57d69b54e6 100644
--- a/Common/Makefile
+++ b/Common/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.147 2008-01-18 21:00:39 geuzaine Exp $
+# $Id: Makefile,v 1.148 2008-01-19 09:55:33 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -26,7 +26,7 @@ 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}
+CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} ${SYSINCLUDE}
 
 SRC = Context.cpp\
       Octree.cpp OctreeInternals.cpp\
diff --git a/Mesh/Field.cpp b/Mesh/Field.cpp
index 77bc44676f..fca6376d85 100644
--- a/Mesh/Field.cpp
+++ b/Mesh/Field.cpp
@@ -1,4 +1,4 @@
-// $Id: Field.cpp,v 1.10 2008-01-18 20:41:33 geuzaine Exp $
+// $Id: Field.cpp,v 1.11 2008-01-19 09:55:33 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -335,7 +335,7 @@ void AttractorField::addPoint(double X, double Y, double Z)
 
 AttractorField::~AttractorField()
 {
-#ifdef HAVE_ANN_
+#ifdef HAVE_ANN
   if(kdtree) delete kdtree;
   if(zeronodes) annDeallocPts(zeronodes);
   delete [] index;
@@ -344,11 +344,11 @@ AttractorField::~AttractorField()
 }
 
 AttractorField::AttractorField()
-#ifdef HAVE_ANN_
+#ifdef HAVE_ANN
   : kdtree (0), zeronodes(0)
 #endif
 {
-#ifdef HAVE_ANN_
+#ifdef HAVE_ANN
   index = new ANNidx[maxpts];
   dist = new ANNdist[maxpts];
 #endif
@@ -356,7 +356,7 @@ AttractorField::AttractorField()
 
 void AttractorField::buildFastSearchStructures()
 {
-#ifdef HAVE_ANN_
+#ifdef HAVE_ANN
   if(zeronodes){
     annDeallocPts(zeronodes);
     delete kdtree;
@@ -385,7 +385,7 @@ double AttractorField::operator()(double X, double Y, double Z)
 		(p.z() - Z) * (p.z() - Z));
   }
   else{
-#ifdef HAVE_ANN_
+#ifdef HAVE_ANN
     kdtree->annkSearch(xyz, maxpts, index, dist);
     return sqrt(dist[0]);
 #else
@@ -498,7 +498,7 @@ AttractorField_1DMesh::AttractorField_1DMesh(GFace *gf, double dmax, double dmin
 
 double AttractorField_1DMesh::operator()(double X, double Y, double Z)
 {
-#ifdef HAVE_ANN_
+#ifdef HAVE_ANN
   double xyz[3] = {X, Y, Z};
   kdtree->annkSearch(xyz, maxpts, index, dist);
   double d = sqrt(dist[0]);
@@ -515,7 +515,7 @@ double AttractorField_1DMesh::operator()(double X, double Y, double Z)
 
 void AttractorField_1DMesh::eval(double X, double Y, double Z, double &lcmin, double &lcpt, double &d)
 {
-#ifdef HAVE_ANN_
+#ifdef HAVE_ANN
   double xyz[3] = {X, Y, Z};
   kdtree->annkSearch(xyz, maxpts, index, dist);
   d = sqrt(dist[0]);
diff --git a/Mesh/Field.h b/Mesh/Field.h
index 723350ef94..6a163317fb 100644
--- a/Mesh/Field.h
+++ b/Mesh/Field.h
@@ -24,7 +24,7 @@
 #include <map>
 #include <list>
 #include "PView.h"
-#ifdef HAVE_ANN_
+#ifdef HAVE_ANN
 #include "ANN/ANN.h"
 #endif
 #include "Geo.h"
@@ -118,7 +118,7 @@ public:
 
 class AttractorField : public Field{
 protected :
-#ifdef HAVE_ANN_
+#ifdef HAVE_ANN
   ANNkd_tree* kdtree;
   ANNpointArray zeronodes;
   ANNidxArray index;
diff --git a/Mesh/meshGRegionCarveHole.cpp b/Mesh/meshGRegionCarveHole.cpp
index 5d66438cc5..6f1b791ca3 100644
--- a/Mesh/meshGRegionCarveHole.cpp
+++ b/Mesh/meshGRegionCarveHole.cpp
@@ -1,4 +1,4 @@
-// $Id: meshGRegionCarveHole.cpp,v 1.1 2007-07-31 22:09:11 geuzaine Exp $
+// $Id: meshGRegionCarveHole.cpp,v 1.2 2008-01-19 09:55:33 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -23,7 +23,7 @@
 #include "GModel.h"
 #include "Message.h"
 
-#if !defined(HAVE_ANN_)
+#if !defined(HAVE_ANN)
 
 void carveHole(GRegion *gr, int num, double distance, std::vector<int> &surfaces)
 {
diff --git a/configure b/configure
index babf8f3ace..a0ceb73746 100755
--- a/configure
+++ b/configure
@@ -677,10 +677,6 @@ OPTIM
 LINKER
 GMSH_DIRS
 GMSH_LIBS
-ARFLAGS
-LIBEXT
-DASH
-SYSINCLUDE
 LIBOBJS
 LTLIBOBJS'
 ac_subst_files=''
@@ -1270,7 +1266,6 @@ Optional Features:
   --enable-gsl            use GSL as numerical toolkit (default=yes)
   --enable-gui            build the graphical user interface (default=yes)
   --enable-cygwin         use the Cygwin library on Windows (default=no)
-  --enable-vc             use the Visual C++ toolchain on Windows (default=no)
   --enable-parallel       enable parallel version (default=no)
   --enable-jpeg           enable JPEG support (default=yes)
   --enable-zlib           enable ZLIB support (default=yes)
@@ -1846,11 +1841,6 @@ if test "${enable_cygwin+set}" = set; then
   enableval=$enable_cygwin;
 fi
 
-# Check whether --enable-vc was given.
-if test "${enable_vc+set}" = set; then
-  enableval=$enable_vc;
-fi
-
 # Check whether --enable-parallel was given.
 if test "${enable_parallel+set}" = set; then
   enableval=$enable_parallel;
@@ -1945,20 +1935,7 @@ fi
 UNAME=`uname`
 HOSTNAME=`hostname`
 
-if test "x$enable_vc" = "xyes"; then
-  UNAME=VC
-  CC=cl
-  CXX="cl /EHsc"
-  OBJEXT=.obj
-  LIBEXT=.lib
-  DASH=/
-  FLAGS="/DWIN32 /DYY_NO_UNISTD_H /DHAVE_NO_DLL"
-  OPTIM=/O2
-  SYSINCLUDE="/I\"C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\" /I\"C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\""
-      LINKER="cl /F16777216"
-  EXEEXT=".exe"
-else
-  ac_ext=c
+ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
@@ -2877,7 +2854,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-  ac_ext=cpp
+ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
@@ -3241,14 +3218,13 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-  if test "x${CC}" = "x" -o "x${CXX}" = "x" ; then
-    { { echo "$as_me:$LINENO: error: Could not find required compilers, aborting." >&5
+if test "x${CC}" = "x" -o "x${CXX}" = "x" ; then
+  { { echo "$as_me:$LINENO: error: Could not find required compilers, aborting." >&5
 echo "$as_me: error: Could not find required compilers, aborting." >&2;}
    { (exit 1); exit 1; }; }
-  fi
-  OBJEXT=.o
-  LIBEXT=.a
-  ac_ext=c
+fi
+
+ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
@@ -3478,20 +3454,10 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-  DASH=-
-  FLAGS=""
-  OPTIM="${CXXFLAGS}"
-  SYSINCLUDE=""
-  LINKER="${CXX}"
-
-fi
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+LINKER="${CXX}"
 
+FLAGS=""
+OPTIM="${CXXFLAGS}"
 
 case "$UNAME" in
   CYGWIN*)
@@ -3504,16 +3470,19 @@ case "$UNAME" in
     ;;
 esac
 
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+
+
 case "$UNAME" in
   Darwin*)
     RANLIB=true
     AR="libtool -o"
-    ARFLAGS=""
-    ;;
-  VC*)
-    RANLIB=true
-    AR="LIB"
-    ARFLAGS="/OUT:"
     ;;
   *)
     if test -n "$ac_tool_prefix"; then
@@ -3658,13 +3627,12 @@ echo "$as_me: error: Could not find the library archiver, aborting." >&2;}
    { (exit 1); exit 1; }; }
     fi
     AR="${AR} ruvs"
-    ARFLAGS=""
     ;;
 esac
 
 GMSH_DIRS="Common DataStr Geo Mesh Post Numeric Parallel Parser Plugin"
 
-if test "x$enable_gui" != "xno" -a "x$enable_vc" != "xyes"; then
+if test "x$enable_gui" != "xno"; then
 
   GMSH_DIRS="${GMSH_DIRS} Graphics Fltk"
   GMSH_LIBS="-Llib -lGmshFltk -lGmshParser -lGmshGraphics -lGmshMesh -lGmshGeo"
@@ -4127,13 +4095,9 @@ fi
 else
 
   GMSH_DIRS="${GMSH_DIRS} Box"
-  if test "x$enable_vc" = "xyes"; then
-    GMSH_LIBS="Box/Main.obj lib/*.lib"
-  else
-    GMSH_LIBS="-Llib Box/Main.o -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo"
-    GMSH_LIBS="${GMSH_LIBS} -lGmshPlugin -lGmshPost -lGmshCommon -lGmshDataStr"
-    GMSH_LIBS="${GMSH_LIBS} -lGmshNumeric -lGmshParallel"
-  fi
+  GMSH_LIBS="-Llib Box/Main.o -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo"
+  GMSH_LIBS="${GMSH_LIBS} -lGmshPlugin -lGmshPost -lGmshCommon -lGmshDataStr"
+  GMSH_LIBS="${GMSH_LIBS} -lGmshNumeric -lGmshParallel"
 
     ZLIB=""
   if test "x$enable_zlib" != "xno"; then
@@ -4205,9 +4169,6 @@ fi
 
 fi
 
-if test "x$enable_vc" = "xyes"; then
-  FLAGS="${FLAGS} /DHAVE_NO_VSNPRINTF /DHAVE_NO_SNPRINTF /DHAVE_NO_SOCKLEN_T"
-else
 
 { echo "$as_me:$LINENO: checking for main in -lm" >&5
 echo $ECHO_N "checking for main in -lm... $ECHO_C" >&6; }
@@ -4274,7 +4235,7 @@ _ACEOF
 fi
 
 
-    { echo "$as_me:$LINENO: checking for vsnprintf" >&5
+{ echo "$as_me:$LINENO: checking for vsnprintf" >&5
 echo $ECHO_N "checking for vsnprintf... $ECHO_C" >&6; }
 if test "${ac_cv_func_vsnprintf+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4361,7 +4322,7 @@ else
   FLAGS="-DHAVE_NO_VSNPRINTF ${FLAGS}"
 fi
 
-  { echo "$as_me:$LINENO: checking for snprintf" >&5
+{ echo "$as_me:$LINENO: checking for snprintf" >&5
 echo $ECHO_N "checking for snprintf... $ECHO_C" >&6; }
 if test "${ac_cv_func_snprintf+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4449,14 +4410,14 @@ else
 fi
 
 
-    cat >conftest.$ac_ext <<_ACEOF
+cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <sys/types.h>
-    #include <sys/socket.h>
+   #include <sys/socket.h>
 int
 main ()
 {
@@ -4491,8 +4452,6 @@ sed 's/^/| /' conftest.$ac_ext >&5
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
 
 if test "x$enable_contrib" != "xno"; then
 
@@ -4523,7 +4482,7 @@ fi
     if test "x$enable_triangle" != "xno"; then
        GMSH_DIRS="${GMSH_DIRS} contrib/Triangle"
        GMSH_LIBS="${GMSH_LIBS} -lGmshTriangle"
-       FLAGS="${DASH}DHAVE_TRIANGLE ${FLAGS}"
+       FLAGS="-DHAVE_TRIANGLE ${FLAGS}"
        echo "********************************************************************"
        echo "You are building a version of Gmsh that contains Jonathan"
        echo "Shewchuk's Triangle as an alternative isotropic 2D mesh generator."
@@ -4577,7 +4536,7 @@ fi
     if test "x$enable_ann" != "xno"; then
        GMSH_DIRS="${GMSH_DIRS} contrib/ANN"
        GMSH_LIBS="${GMSH_LIBS} -lGmshANN"
-       FLAGS="${DASH}DHAVE_ANN_ ${FLAGS}"
+       FLAGS="-DHAVE_ANN ${FLAGS}"
        echo "********************************************************************"
        echo "You are building a version of Gmsh that contains ANN, the"
        echo "Approximate Nearest Neighbor library."
@@ -4626,7 +4585,7 @@ fi
     if test "x$enable_metis" = "xyes"; then
        GMSH_DIRS="${GMSH_DIRS} contrib/Metis"
        GMSH_LIBS="${GMSH_LIBS} -lGmshMetis"
-       FLAGS="${DASH}DHAVE_METIS ${FLAGS}"
+       FLAGS="-DHAVE_METIS ${FLAGS}"
        echo "********************************************************************"
        echo "You are building a version of Gmsh that contains METIS, the"
        echo "Serial Graph Partitioner."
@@ -4675,7 +4634,7 @@ fi
     if test "x$enable_netgen" != "xno"; then
        GMSH_DIRS="${GMSH_DIRS} contrib/Netgen"
        GMSH_LIBS="${GMSH_LIBS} -lGmshNetgen"
-       FLAGS="${DASH}DHAVE_NETGEN ${FLAGS}"
+       FLAGS="-DHAVE_NETGEN ${FLAGS}"
        echo "********************************************************************"
        echo "You are building a version of Gmsh that contains Joachim Schoberl's"
        echo "Netgen as an alternative 3D mesh generator. Netgen is distributed"
@@ -4725,7 +4684,7 @@ fi
     if test "x$enable_tetgen" != "xno"; then
        GMSH_DIRS="${GMSH_DIRS} contrib/Tetgen"
        GMSH_LIBS="${GMSH_LIBS} -lGmshTetgen"
-       FLAGS="${DASH}DHAVE_TETGEN ${FLAGS}"
+       FLAGS="-DHAVE_TETGEN ${FLAGS}"
        echo "********************************************************************"
        echo "You are building a version of Gmsh that contains Hang Si's"
        echo "Tetgen as an alternative 3D mesh generator."
@@ -4778,7 +4737,7 @@ fi
     if test "x${MATHEVAL}" = "xyes"; then
       GMSH_DIRS="${GMSH_DIRS} contrib/MathEval"
       GMSH_LIBS="${GMSH_LIBS} -lGmshMathEval"
-      FLAGS="${DASH}DHAVE_MATH_EVAL ${FLAGS}"
+      FLAGS="-DHAVE_MATH_EVAL ${FLAGS}"
     fi
   fi
 
@@ -4915,12 +4874,12 @@ else
 fi
 
   if test "x${GSL}" = "xyes"; then
-    FLAGS="${DASH}DHAVE_GSL ${FLAGS}"
+    FLAGS="-DHAVE_GSL ${FLAGS}"
     if test "x${GSL_PREFIX}" = "x"; then
       GMSH_LIBS="${GMSH_LIBS} -lgsl -lgslcblas"
     else
       GMSH_LIBS="${GMSH_LIBS} -L${GSL_PREFIX} -L${GSL_PREFIX}/lib -lgsl -lgslcblas"
-      FLAGS="${FLAGS} ${DASH}I${GSL_PREFIX} ${DASH}I${GSL_PREFIX}/include"
+      FLAGS="${FLAGS} -I${GSL_PREFIX} -I${GSL_PREFIX}/include"
     fi
   fi
 fi
@@ -5049,10 +5008,10 @@ fi
   if test "x${CGNS}" = "xyes"; then
     if test "x${CGNS_PREFIX}" = "x"; then
       GMSH_LIBS="${GMSH_LIBS} -lcgns"
-      FLAGS="${FLAGS} ${DASH}DHAVE_LIBCGNS"
+      FLAGS="${FLAGS} -DHAVE_LIBCGNS"
     else
       GMSH_LIBS="${GMSH_LIBS} -L${CGNS_PREFIX}/lib -lcgns"
-      FLAGS="${FLAGS} ${DASH}DHAVE_LIBCGNS ${DASH}I${CGNS_PREFIX}/include"
+      FLAGS="${FLAGS} -DHAVE_LIBCGNS -I${CGNS_PREFIX}/include"
     fi
   fi
 fi
@@ -5139,10 +5098,10 @@ fi
     OCC_LIBS="${OCC_LIBS} -lTKAdvTools -lTKMath -lTKernel"
     if test "x${OCC_PREFIX}" = "x"; then
       GMSH_LIBS="${GMSH_LIBS} ${OCC_LIBS}"
-      FLAGS="${FLAGS} ${DASH}DHAVE_OCC"
+      FLAGS="${FLAGS} -DHAVE_OCC"
     else
       GMSH_LIBS="${GMSH_LIBS} -L${OCC_PREFIX}/lib ${OCC_LIBS}"
-      FLAGS="${FLAGS} ${DASH}DHAVE_OCC ${DASH}I${OCC_PREFIX}/inc"
+      FLAGS="${FLAGS} -DHAVE_OCC -I${OCC_PREFIX}/inc"
     fi
   fi
 fi
@@ -5662,16 +5621,16 @@ echo "$as_me: WARNING: Could not find FFTW3: disabling FourierModel." >&2;}
       else
         if test "x${FM_PREFIX}" = "x"; then
           GMSH_LIBS="${GMSH_LIBS} -lFourierModel"
-          FLAGS="${DASH}DHAVE_FOURIER_MODEL ${FLAGS}"
+          FLAGS="-DHAVE_FOURIER_MODEL ${FLAGS}"
         else
           GMSH_LIBS="${GMSH_LIBS} -L${FM_PREFIX}/lib -lFourierModel"
-          FLAGS="${DASH}DHAVE_FOURIER_MODEL ${DASH}I${FM_PREFIX} ${FLAGS}"
+          FLAGS="-DHAVE_FOURIER_MODEL -I${FM_PREFIX} ${FLAGS}"
         fi
         if test "x${FFTW3_PREFIX}" = "x"; then
           GMSH_LIBS="${GMSH_LIBS} -lfftw3"
         else
           GMSH_LIBS="${GMSH_LIBS} -L${FFTW3_PREFIX}/lib -lfftw3"
-          FLAGS="${FLAGS} ${DASH}I${FFTW3_PREFIX}/include"
+          FLAGS="${FLAGS} -I${FFTW3_PREFIX}/include"
         fi
         if test "x${BLAS_LAPACK_PREFIX}" != "x"; then
           GMSH_LIBS="${GMSH_LIBS} -L${BLAS_LAPACK_PREFIX} -L${BLAS_LAPACK_PREFIX}/lib"
@@ -5761,7 +5720,7 @@ fi
         GMSH_LIBS="${GMSH_LIBS} -lhdf5"
       else
         GMSH_LIBS="${GMSH_LIBS} -L${HDF5_PREFIX}/lib -lhdf5"
-        FLAGS="${FLAGS} ${DASH}I${HDF5_PREFIX}/include"
+        FLAGS="${FLAGS} -I${HDF5_PREFIX}/include"
       fi
     fi
   fi
@@ -5836,10 +5795,10 @@ fi
     if test "x${MED}" = "xyes"; then
       if test "x${MED_PREFIX}" = "x"; then
         GMSH_LIBS="${GMSH_LIBS} -lmed"
-        FLAGS="${FLAGS} ${DASH}DHAVE_MED"
+        FLAGS="${FLAGS} -DHAVE_MED"
       else
         GMSH_LIBS="${GMSH_LIBS} -L${MED_PREFIX}/lib -lmed"
-        FLAGS="${FLAGS} ${DASH}DHAVE_MED ${DASH}I${MED_PREFIX}/include"
+        FLAGS="${FLAGS} -DHAVE_MED -I${MED_PREFIX}/include"
       fi
     fi
   fi
@@ -5847,20 +5806,20 @@ fi
 
 if test "x${ZLIB}" = "xyes"; then
     if test "x${FL_ZLIB}" = "xyes"; then
-    FLAGS="${DASH}DHAVE_LIBZ ${FLAGS}"
+    FLAGS="-DHAVE_LIBZ ${FLAGS}"
   else
-    FLAGS="${DASH}DHAVE_LIBZ ${FLAGS}"
+    FLAGS="-DHAVE_LIBZ ${FLAGS}"
     if test "x${ZLIB_PREFIX}" = "x"; then
       GMSH_LIBS="${GMSH_LIBS} -lz"
     else
             GMSH_LIBS="${GMSH_LIBS} -L${ZLIB_PREFIX} -L${ZLIB_PREFIX}/lib -lz"
-      FLAGS="${FLAGS} ${DASH}I${ZLIB_PREFIX} ${DASH}I${ZLIB_PREFIX}/include"
+      FLAGS="${FLAGS} -I${ZLIB_PREFIX} -I${ZLIB_PREFIX}/include"
     fi
   fi
 fi
 
 if test "x$enable_parallel" = "xyes"; then
-  FLAGS="${DASH}DHAVE_PARALLEL ${FLAGS}"
+  FLAGS="-DHAVE_PARALLEL ${FLAGS}"
 fi
 
 GMSH_LIBS="${GMSH_LIBS} -lm"
@@ -6966,7 +6925,7 @@ if test $ac_cv_sizeof_size_t != 4; then
     { echo "$as_me:$LINENO: WARNING: Unsupported size of size_t - this may affect FNV hashing." >&5
 echo "$as_me: WARNING: Unsupported size of size_t - this may affect FNV hashing." >&2;}
   else
-    FLAGS="$FLAGS ${DASH}DHAVE_64BIT_SIZE_T"
+    FLAGS="$FLAGS -DHAVE_64BIT_SIZE_T"
   fi
 fi
 
@@ -6978,11 +6937,6 @@ fi
 
 
 
-
-
-
-
-
 ac_config_files="$ac_config_files variables"
 
 cat >confcache <<\_ACEOF
@@ -7677,15 +7631,11 @@ OPTIM!$OPTIM$ac_delim
 LINKER!$LINKER$ac_delim
 GMSH_DIRS!$GMSH_DIRS$ac_delim
 GMSH_LIBS!$GMSH_LIBS$ac_delim
-ARFLAGS!$ARFLAGS$ac_delim
-LIBEXT!$LIBEXT$ac_delim
-DASH!$DASH$ac_delim
-SYSINCLUDE!$SYSINCLUDE$ac_delim
 LIBOBJS!$LIBOBJS$ac_delim
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 70; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 66; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
diff --git a/configure.in b/configure.in
index 4e3dd087bc..8724896ca0 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-dnl $Id: configure.in,v 1.146 2008-01-19 00:49:08 geuzaine Exp $
+dnl $Id: configure.in,v 1.147 2008-01-19 09:55:32 geuzaine Exp $
 dnl
 dnl Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 dnl
@@ -92,9 +92,6 @@ AC_ARG_ENABLE(gui,
 AC_ARG_ENABLE(cygwin,
               AC_HELP_STRING([--enable-cygwin],
                              [use the Cygwin library on Windows (default=no)]))
-AC_ARG_ENABLE(vc,
-              AC_HELP_STRING([--enable-vc],
-                             [use the Visual C++ toolchain on Windows (default=no)]))
 AC_ARG_ENABLE(parallel,
               AC_HELP_STRING([--enable-parallel],
                              [enable parallel version (default=no)]))
@@ -155,40 +152,19 @@ UNAME=`uname`
 HOSTNAME=`hostname`
 
 dnl Check for default compilers
-if test "x$enable_vc" = "xyes"; then
-  UNAME=VC
-  CC=cl
-  CXX="cl /EHsc"
-  OBJEXT=.obj
-  LIBEXT=.lib
-  DASH=/
-  FLAGS="/DWIN32 /DYY_NO_UNISTD_H /DHAVE_NO_DLL"
-  OPTIM=/O2
-  SYSINCLUDE="/I\"C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\" /I\"C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\""
-  dnl increase stack size to 16Mb to avoid stack overflows in recursive 
-  dnl tet classification for large 3D Delaunay grids
-  LINKER="cl /F16777216"
-  EXEEXT=".exe"
-else
-  AC_PROG_CC
-  AC_PROG_CXX
-  if test "x${CC}" = "x" -o "x${CXX}" = "x" ; then
-    AC_MSG_ERROR([Could not find required compilers, aborting.])
-  fi
-  OBJEXT=.o
-  LIBEXT=.a
-  AC_PROG_CPP
-  DASH=-
-  FLAGS=""
-  OPTIM="${CXXFLAGS}"
-  SYSINCLUDE=""
-  LINKER="${CXX}"
-  dnl See if we need a .exe extension on executables
-  AC_EXEEXT
+AC_PROG_CC
+AC_PROG_CXX
+if test "x${CC}" = "x" -o "x${CXX}" = "x" ; then
+  AC_MSG_ERROR([Could not find required compilers, aborting.])
 fi
 
-dnl Use c++ for all compilation tests
-AC_LANG(C++)
+dnl Set preprocessor and linker
+AC_PROG_CPP
+LINKER="${CXX}"
+
+dnl Set default compiler flags
+FLAGS=""
+OPTIM="${CXXFLAGS}"
 
 dnl Take care of no-cygwin option before doing any other tests
 case "$UNAME" in
@@ -204,17 +180,17 @@ case "$UNAME" in
     ;;
 esac
 
+dnl Use c++ for all compilation tests
+AC_LANG(C++)
+
+dnl See if we need a .exe extension on executables
+AC_EXEEXT
+
 dnl How to build static libraries?
 case "$UNAME" in
   Darwin*)
     RANLIB=true
     AR="libtool -o"
-    ARFLAGS=""
-    ;;
-  VC*)
-    RANLIB=true
-    AR="LIB"
-    ARFLAGS="/OUT:"
     ;;
   *)
     AC_PROG_RANLIB
@@ -223,7 +199,6 @@ case "$UNAME" in
       AC_MSG_ERROR([Could not find the library archiver, aborting.])
     fi
     AR="${AR} ruvs"
-    ARFLAGS=""
     ;;
 esac
 
@@ -231,7 +206,7 @@ dnl Set default subdirectories and libraries
 GMSH_DIRS="Common DataStr Geo Mesh Post Numeric Parallel Parser Plugin"
 
 dnl Choose blackbox or GUI version
-if test "x$enable_gui" != "xno" -a "x$enable_vc" != "xyes"; then
+if test "x$enable_gui" != "xno"; then
 
   GMSH_DIRS="${GMSH_DIRS} Graphics Fltk"
   GMSH_LIBS="-Llib -lGmshFltk -lGmshParser -lGmshGraphics -lGmshMesh -lGmshGeo"
@@ -362,13 +337,9 @@ if test "x$enable_gui" != "xno" -a "x$enable_vc" != "xyes"; then
 else
 
   GMSH_DIRS="${GMSH_DIRS} Box"
-  if test "x$enable_vc" = "xyes"; then
-    GMSH_LIBS="Box/Main.obj lib/*.lib"
-  else
-    GMSH_LIBS="-Llib Box/Main.o -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo"
-    GMSH_LIBS="${GMSH_LIBS} -lGmshPlugin -lGmshPost -lGmshCommon -lGmshDataStr"
-    GMSH_LIBS="${GMSH_LIBS} -lGmshNumeric -lGmshParallel"
-  fi
+  GMSH_LIBS="-Llib Box/Main.o -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo"
+  GMSH_LIBS="${GMSH_LIBS} -lGmshPlugin -lGmshPost -lGmshCommon -lGmshDataStr"
+  GMSH_LIBS="${GMSH_LIBS} -lGmshNumeric -lGmshParallel"
 
   dnl Check for libz
   ZLIB=""
@@ -381,23 +352,18 @@ else
 
 fi
 
-if test "x$enable_vc" = "xyes"; then
-  FLAGS="${FLAGS} /DHAVE_NO_VSNPRINTF /DHAVE_NO_SNPRINTF /DHAVE_NO_SOCKLEN_T"
-else
-  dnl Check for standard math library
-  AC_CHECK_LIB(m,main)
-
-  dnl Check for various functions
-  AC_CHECK_FUNC(vsnprintf,,FLAGS="-DHAVE_NO_VSNPRINTF ${FLAGS}")
-  AC_CHECK_FUNC(snprintf,,FLAGS="-DHAVE_NO_SNPRINTF ${FLAGS}")
+dnl Check for standard math library
+AC_CHECK_LIB(m,main)
 
-  dnl Check if Unix98 socklen_t type is available
-  AC_TRY_COMPILE(
-   [#include <sys/types.h>
-    #include <sys/socket.h>],
-   [socklen_t len = 42; return 0;],,FLAGS="-DHAVE_NO_SOCKLEN_T ${FLAGS}")
-fi  
+dnl Check for various functions
+AC_CHECK_FUNC(vsnprintf,,FLAGS="-DHAVE_NO_VSNPRINTF ${FLAGS}")
+AC_CHECK_FUNC(snprintf,,FLAGS="-DHAVE_NO_SNPRINTF ${FLAGS}")
 
+dnl Check if Unix98 socklen_t type is available
+AC_TRY_COMPILE(
+  [#include <sys/types.h>
+   #include <sys/socket.h>],
+  [socklen_t len = 42; return 0;],,FLAGS="-DHAVE_NO_SOCKLEN_T ${FLAGS}")
 
 dnl Check if we should consider the packages in contrib
 if test "x$enable_contrib" != "xno"; then
@@ -408,7 +374,7 @@ if test "x$enable_contrib" != "xno"; then
     if test "x$enable_triangle" != "xno"; then
        GMSH_DIRS="${GMSH_DIRS} contrib/Triangle"
        GMSH_LIBS="${GMSH_LIBS} -lGmshTriangle"
-       FLAGS="${DASH}DHAVE_TRIANGLE ${FLAGS}"
+       FLAGS="-DHAVE_TRIANGLE ${FLAGS}"
        echo "********************************************************************"
        echo "You are building a version of Gmsh that contains Jonathan"
        echo "Shewchuk's Triangle as an alternative isotropic 2D mesh generator."
@@ -441,7 +407,7 @@ if test "x$enable_contrib" != "xno"; then
     if test "x$enable_ann" != "xno"; then
        GMSH_DIRS="${GMSH_DIRS} contrib/ANN"
        GMSH_LIBS="${GMSH_LIBS} -lGmshANN"
-       FLAGS="${DASH}DHAVE_ANN_ ${FLAGS}"
+       FLAGS="-DHAVE_ANN ${FLAGS}"
        echo "********************************************************************"
        echo "You are building a version of Gmsh that contains ANN, the"
        echo "Approximate Nearest Neighbor library."
@@ -469,7 +435,7 @@ if test "x$enable_contrib" != "xno"; then
     if test "x$enable_metis" = "xyes"; then
        GMSH_DIRS="${GMSH_DIRS} contrib/Metis"
        GMSH_LIBS="${GMSH_LIBS} -lGmshMetis"
-       FLAGS="${DASH}DHAVE_METIS ${FLAGS}"
+       FLAGS="-DHAVE_METIS ${FLAGS}"
        echo "********************************************************************"
        echo "You are building a version of Gmsh that contains METIS, the"
        echo "Serial Graph Partitioner."
@@ -497,7 +463,7 @@ if test "x$enable_contrib" != "xno"; then
     if test "x$enable_netgen" != "xno"; then
        GMSH_DIRS="${GMSH_DIRS} contrib/Netgen"
        GMSH_LIBS="${GMSH_LIBS} -lGmshNetgen"
-       FLAGS="${DASH}DHAVE_NETGEN ${FLAGS}"
+       FLAGS="-DHAVE_NETGEN ${FLAGS}"
        echo "********************************************************************"
        echo "You are building a version of Gmsh that contains Joachim Schoberl's"
        echo "Netgen as an alternative 3D mesh generator. Netgen is distributed"
@@ -526,7 +492,7 @@ if test "x$enable_contrib" != "xno"; then
     if test "x$enable_tetgen" != "xno"; then
        GMSH_DIRS="${GMSH_DIRS} contrib/Tetgen"
        GMSH_LIBS="${GMSH_LIBS} -lGmshTetgen"
-       FLAGS="${DASH}DHAVE_TETGEN ${FLAGS}"
+       FLAGS="-DHAVE_TETGEN ${FLAGS}"
        echo "********************************************************************"
        echo "You are building a version of Gmsh that contains Hang Si's"
        echo "Tetgen as an alternative 3D mesh generator."
@@ -558,7 +524,7 @@ if test "x$enable_contrib" != "xno"; then
     if test "x${MATHEVAL}" = "xyes"; then
       GMSH_DIRS="${GMSH_DIRS} contrib/MathEval"
       GMSH_LIBS="${GMSH_LIBS} -lGmshMathEval"
-      FLAGS="${DASH}DHAVE_MATH_EVAL ${FLAGS}"
+      FLAGS="-DHAVE_MATH_EVAL ${FLAGS}"
     fi
   fi
 
@@ -572,12 +538,12 @@ if test "x$enable_gsl" != "xno"; then
   AC_CHECK_LIB(gslcblas,main)
   AC_CHECK_LIB(gsl,main,GSL="yes",GSL="no")
   if test "x${GSL}" = "xyes"; then
-    FLAGS="${DASH}DHAVE_GSL ${FLAGS}"
+    FLAGS="-DHAVE_GSL ${FLAGS}"
     if test "x${GSL_PREFIX}" = "x"; then
       GMSH_LIBS="${GMSH_LIBS} -lgsl -lgslcblas"
     else
       GMSH_LIBS="${GMSH_LIBS} -L${GSL_PREFIX} -L${GSL_PREFIX}/lib -lgsl -lgslcblas"
-      FLAGS="${FLAGS} ${DASH}I${GSL_PREFIX} ${DASH}I${GSL_PREFIX}/include"
+      FLAGS="${FLAGS} -I${GSL_PREFIX} -I${GSL_PREFIX}/include"
     fi
   fi
 fi
@@ -624,10 +590,10 @@ if test "x$enable_cgns" = "xyes"; then
   if test "x${CGNS}" = "xyes"; then
     if test "x${CGNS_PREFIX}" = "x"; then
       GMSH_LIBS="${GMSH_LIBS} -lcgns"
-      FLAGS="${FLAGS} ${DASH}DHAVE_LIBCGNS"
+      FLAGS="${FLAGS} -DHAVE_LIBCGNS"
     else
       GMSH_LIBS="${GMSH_LIBS} -L${CGNS_PREFIX}/lib -lcgns"
-      FLAGS="${FLAGS} ${DASH}DHAVE_LIBCGNS ${DASH}I${CGNS_PREFIX}/include"
+      FLAGS="${FLAGS} -DHAVE_LIBCGNS -I${CGNS_PREFIX}/include"
     fi
   fi
 fi
@@ -655,10 +621,10 @@ if test "x$enable_occ" = "xyes"; then
     OCC_LIBS="${OCC_LIBS} -lTKAdvTools -lTKMath -lTKernel"
     if test "x${OCC_PREFIX}" = "x"; then
       GMSH_LIBS="${GMSH_LIBS} ${OCC_LIBS}"
-      FLAGS="${FLAGS} ${DASH}DHAVE_OCC"
+      FLAGS="${FLAGS} -DHAVE_OCC"
     else
       GMSH_LIBS="${GMSH_LIBS} -L${OCC_PREFIX}/lib ${OCC_LIBS}"
-      FLAGS="${FLAGS} ${DASH}DHAVE_OCC ${DASH}I${OCC_PREFIX}/inc"
+      FLAGS="${FLAGS} -DHAVE_OCC -I${OCC_PREFIX}/inc"
     fi
   fi
 fi
@@ -692,16 +658,16 @@ if test "x$enable_fm" != "xno"; then
       else
         if test "x${FM_PREFIX}" = "x"; then
           GMSH_LIBS="${GMSH_LIBS} -lFourierModel"
-          FLAGS="${DASH}DHAVE_FOURIER_MODEL ${FLAGS}"
+          FLAGS="-DHAVE_FOURIER_MODEL ${FLAGS}"
         else
           GMSH_LIBS="${GMSH_LIBS} -L${FM_PREFIX}/lib -lFourierModel"
-          FLAGS="${DASH}DHAVE_FOURIER_MODEL ${DASH}I${FM_PREFIX} ${FLAGS}"
+          FLAGS="-DHAVE_FOURIER_MODEL -I${FM_PREFIX} ${FLAGS}"
         fi
         if test "x${FFTW3_PREFIX}" = "x"; then
           GMSH_LIBS="${GMSH_LIBS} -lfftw3"
         else
           GMSH_LIBS="${GMSH_LIBS} -L${FFTW3_PREFIX}/lib -lfftw3"
-          FLAGS="${FLAGS} ${DASH}I${FFTW3_PREFIX}/include"
+          FLAGS="${FLAGS} -I${FFTW3_PREFIX}/include"
         fi
         if test "x${BLAS_LAPACK_PREFIX}" != "x"; then
           GMSH_LIBS="${GMSH_LIBS} -L${BLAS_LAPACK_PREFIX} -L${BLAS_LAPACK_PREFIX}/lib"
@@ -732,7 +698,7 @@ if test "x${ZLIB}" = "xyes"; then
         GMSH_LIBS="${GMSH_LIBS} -lhdf5"
       else
         GMSH_LIBS="${GMSH_LIBS} -L${HDF5_PREFIX}/lib -lhdf5"
-        FLAGS="${FLAGS} ${DASH}I${HDF5_PREFIX}/include"
+        FLAGS="${FLAGS} -I${HDF5_PREFIX}/include"
       fi
     fi
   fi
@@ -748,10 +714,10 @@ if test "x${HDF5}" = "xyes"; then
     if test "x${MED}" = "xyes"; then
       if test "x${MED_PREFIX}" = "x"; then
         GMSH_LIBS="${GMSH_LIBS} -lmed"
-        FLAGS="${FLAGS} ${DASH}DHAVE_MED"
+        FLAGS="${FLAGS} -DHAVE_MED"
       else
         GMSH_LIBS="${GMSH_LIBS} -L${MED_PREFIX}/lib -lmed"
-        FLAGS="${FLAGS} ${DASH}DHAVE_MED ${DASH}I${MED_PREFIX}/include"
+        FLAGS="${FLAGS} -DHAVE_MED -I${MED_PREFIX}/include"
       fi
     fi
   fi
@@ -761,22 +727,22 @@ dnl Complete zlib link line (zlib must be linked in after libpng and libhdf5)
 if test "x${ZLIB}" = "xyes"; then
   dnl If provided by FLTK, use that one; otherwise, look for it
   if test "x${FL_ZLIB}" = "xyes"; then
-    FLAGS="${DASH}DHAVE_LIBZ ${FLAGS}"
+    FLAGS="-DHAVE_LIBZ ${FLAGS}"
   else
-    FLAGS="${DASH}DHAVE_LIBZ ${FLAGS}"
+    FLAGS="-DHAVE_LIBZ ${FLAGS}"
     if test "x${ZLIB_PREFIX}" = "x"; then
       GMSH_LIBS="${GMSH_LIBS} -lz"
     else
       dnl Find the libs/includes even if libz is _not_ properly installed (ugly hack!)
       GMSH_LIBS="${GMSH_LIBS} -L${ZLIB_PREFIX} -L${ZLIB_PREFIX}/lib -lz"
-      FLAGS="${FLAGS} ${DASH}I${ZLIB_PREFIX} ${DASH}I${ZLIB_PREFIX}/include"
+      FLAGS="${FLAGS} -I${ZLIB_PREFIX} -I${ZLIB_PREFIX}/include"
     fi
   fi
 fi 
 
 dnl Check if we should build the parallel version
 if test "x$enable_parallel" = "xyes"; then
-  FLAGS="${DASH}DHAVE_PARALLEL ${FLAGS}"
+  FLAGS="-DHAVE_PARALLEL ${FLAGS}"
 fi
 
 dnl Finish link line
@@ -853,7 +819,7 @@ if test $ac_cv_sizeof_size_t != 4; then
   if test $ac_cv_sizeof_size_t != 8; then
     AC_MSG_WARN([Unsupported size of size_t - this may affect FNV hashing.])
   else
-    FLAGS="$FLAGS ${DASH}DHAVE_64BIT_SIZE_T"
+    FLAGS="$FLAGS -DHAVE_64BIT_SIZE_T"
   fi
 fi
 
@@ -866,11 +832,6 @@ AC_SUBST(LINKER)
 AC_SUBST(GMSH_DIRS)
 AC_SUBST(GMSH_LIBS)
 AC_SUBST(AR)
-AC_SUBST(ARFLAGS)
-AC_SUBST(OBJEXT)
-AC_SUBST(LIBEXT)
-AC_SUBST(DASH)
-AC_SUBST(SYSINCLUDE)
 AC_OUTPUT(variables)
 
 dnl Print some information
diff --git a/doc/README.msvc b/doc/README.msvc
new file mode 100644
index 0000000000..cf1fb2525e
--- /dev/null
+++ b/doc/README.msvc
@@ -0,0 +1,13 @@
+To compile Gmsh with Microsoft Visual C++
+
+1) Install GNU make (e.g. from cygwin or mingw)
+    
+2) launch the Visual Studio command prompt
+
+3) set PATH=%PATH%;C:\cygwin\bin  (or wherever the make binary is installed)
+
+4) go to the gmsh directory and rename "variables.msvc" to "variables"
+
+5) edit "variables" to match your local installation of Visual C++
+
+6) type "make"
diff --git a/doc/README.visualc++ b/doc/README.visualc++
deleted file mode 100644
index 6fae85ec44..0000000000
--- a/doc/README.visualc++
+++ /dev/null
@@ -1,16 +0,0 @@
-To compile Gmsh with Microsoft VisualC++
-
-1) Install cygwin (yes, you have to): you need make
-    
-2) launch the Visual Studio command prompt
-
-3) set PATH=%PATH%;C:\cygwin\bin   (or wherever the cygin binaries are installed)
-
-4) cd gmsh && ./configure --enable-vc  --disable-gsl --disable-netgen 
-                          --disable-occ --disable-med
-
-5) edit SYSINCLUDE in gmsh/variables to match your install of Visual C++
-
-5) cd gmsh && make
-
-
diff --git a/variables.in b/variables.in
index 36c2101009..ff28bcf4da 100644
--- a/variables.in
+++ b/variables.in
@@ -1,4 +1,4 @@
-# $Id: variables.in,v 1.23 2008-01-18 21:00:39 geuzaine Exp $
+# $Id: variables.in,v 1.24 2008-01-19 09:55:32 geuzaine Exp $
 #
 # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 #
@@ -38,7 +38,7 @@ LINKER=@LINKER@
 FLAGS=@FLAGS@
 
 # Additional system includes
-SYSINCLUDE=@SYSINCLUDE@
+SYSINCLUDE=
 
 # Compiler optimization flags
 OPTIM=@OPTIM@
@@ -51,15 +51,15 @@ GMSH_LIBS=@GMSH_LIBS@
 
 # How you create a static library on this machine
 AR=@AR@
-ARFLAGS=@ARFLAGS@
+ARFLAGS=
 RANLIB=@RANLIB@
 
 # The symbol used in front of compiler flags
-DASH=@DASH@
+DASH=-
 
 # The extension to use for object files, libraries and executables
-OBJEXT=@OBJEXT@
-LIBEXT=@LIBEXT@
+OBJEXT=.o
+LIBEXT=.a
 EXEEXT=@EXEEXT@
 
 # Installation directories
diff --git a/variables.msvc b/variables.msvc
new file mode 100644
index 0000000000..44dcb19852
--- /dev/null
+++ b/variables.msvc
@@ -0,0 +1,54 @@
+# 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.
+
+# OS and host
+UNAME=VisualC++
+HOSTNAME=win
+
+# The names of the C and C++ compilers
+CC=cl
+CXX=cl /EHsc
+
+# increase stack size to 16Mb to avoid stack overflows in recursive 
+# tet classification for large 3D Delaunay grids
+LINKER=cl /F16777216
+
+# All compiler flags except optimization flags
+FLAGS=/DWIN32 /DYY_NO_UNISTD_H /DHAVE_NO_DLL /DHAVE_NO_VSNPRINTF /DHAVE_NO_SNPRINTF /DHAVE_NO_SOCKLEN_T /DHAVE_ANN /DHAVE_MATH_EVAL /DHAVE_NETGEN /DHAVE_TETGEN /DHAVE_TRIANGLE
+
+# 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\"
+
+# Compiler optimization flags
+OPTIM=/O2
+
+# Gmsh subdirectories
+GMSH_DIRS=Common DataStr Geo Mesh Post Numeric Parallel Parser Plugin contrib/ANN contrib/MathEval contrib/Netgen contrib/Tetgen contrib/Triangle
+
+# Gmsh libraries
+GMSH_LIBS=Box/Main.obj lib/*.lib
+
+# How you create a static library on this machine
+AR=LIB
+ARFLAGS=/OUT:
+RANLIB=true
+
+# The symbol used in front of compiler flags
+DASH=/
+
+# The extension to use for object files, libraries and executables
+OBJEXT=.obj
+LIBEXT=.lib
+EXEEXT=.exe
+
+# Installation directories
+prefix=/usr/local
+exec_prefix=${prefix}
+bindir=${exec_prefix}/bin
+datadir=${datarootdir}
+datarootdir=${prefix}/share
+includedir=${prefix}/include
+libdir=${exec_prefix}/lib
+mandir=${datarootdir}/man
+infodir=${datarootdir}/info
-- 
GitLab