From 65ab8363457702d89cd701a4d5c4e963d80f0a5a Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Sat, 12 Aug 2006 19:34:16 +0000
Subject: [PATCH] *** empty log message ***

---
 Box/Box.cpp                         | 263 +++++++++++++++++++++++++++
 Box/Main.cpp                        | 265 +---------------------------
 Box/Makefile                        |  41 +++--
 Common/Makefile                     |  35 ++--
 Common/Options.cpp                  |   4 +-
 Fltk/GUI.cpp                        |   4 +-
 Geo/Makefile                        |   6 +-
 Graphics/Makefile                   |   3 +-
 Mesh/Makefile                       |  55 +++---
 Mesh/Mesh.h                         |   2 -
 {Graphics => Parser}/CreateFile.cpp |  13 +-
 {Graphics => Parser}/CreateFile.h   |   0
 Parser/Makefile                     |  37 +++-
 configure                           |   4 +-
 configure.in                        |   6 +-
 15 files changed, 396 insertions(+), 342 deletions(-)
 create mode 100644 Box/Box.cpp
 rename {Graphics => Parser}/CreateFile.cpp (98%)
 rename {Graphics => Parser}/CreateFile.h (100%)

diff --git a/Box/Box.cpp b/Box/Box.cpp
new file mode 100644
index 0000000000..7b7a707543
--- /dev/null
+++ b/Box/Box.cpp
@@ -0,0 +1,263 @@
+// $Id: Box.cpp,v 1.26 2006-08-12 19:34:14 geuzaine Exp $
+//
+// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+// 
+// Please report all bugs and problems to <gmsh@geuz.org>.
+
+#include <signal.h>
+#include "Gmsh.h"
+#include "Numeric.h"
+#include "Geo.h"
+#include "Mesh.h"
+#include "Views.h"
+#include "Parser.h"
+#include "Context.h"
+#include "Options.h"
+#include "OpenFile.h"
+#include "CommandLine.h"
+#include "CreateFile.h"
+#include "ParUtil.h"
+#include "PluginManager.h"
+#include "gmshModel.h"
+
+Context_T CTX;
+Mesh M, *THEM = &M;
+GModel *GMODEL = 0;
+
+// Print some help/info messages
+
+void Info(int level, char *arg0)
+{
+  switch (level) {
+  case 0:
+    if(ParUtil::Instance()->master()) {
+      fprintf(stderr, "%s\n", gmsh_progname);
+      fprintf(stderr, "%s\n", gmsh_copyright);
+      Print_Usage(arg0);
+    }
+    ParUtil::Instance()->Exit();
+  case 1:
+    if(ParUtil::Instance()->master())
+      fprintf(stderr, "%s\n", Get_GmshVersion());
+    ParUtil::Instance()->Exit();
+  case 2:
+    if(ParUtil::Instance()->master()) {
+      fprintf(stderr, "%s%s\n", gmsh_version, Get_GmshVersion());
+      fprintf(stderr, "%s\n", gmsh_os);
+      fprintf(stderr, "%s\n", gmsh_date);
+      fprintf(stderr, "%s\n", gmsh_host);
+      fprintf(stderr, "%s\n", gmsh_packager);
+      fprintf(stderr, "%s\n", gmsh_url);
+      fprintf(stderr, "%s\n", gmsh_email);
+    }
+    ParUtil::Instance()->Exit();
+  default:
+    break;
+  }
+}
+
+// Main routine for the batch (black box) version
+
+int GMSHBOX(int argc, char *argv[])
+{
+  ParUtil::Instance()->init(argc, argv);
+
+  GMODEL = new gmshModel;
+
+  InitSymbols();
+  Init_Mesh0();
+  Init_Options(0);
+
+  if(argc < 2)
+    Info(0, argv[0]);
+
+  Get_Options(argc, argv);
+
+  // FIXME: could not make this work on IRIX
+#if !defined(__sgi__) 
+  signal(SIGINT, Signal);
+  signal(SIGSEGV, Signal);
+  signal(SIGFPE, Signal);
+#endif
+
+  GMSH_PluginManager::instance()->registerDefaultPlugins();
+
+  check_gsl();
+
+  OpenProblem(CTX.filename);
+  if(yyerrorstate)
+    ParUtil::Instance()->Abort();
+  else {
+    for(int i = 1; i < List_Nbr(CTX.files); i++)
+      MergeProblem(*(char**)List_Pointer(CTX.files, i));
+    if(CTX.bgm_filename) {
+      MergeProblem(CTX.bgm_filename);
+      if(List_Nbr(CTX.post.list))
+        BGMWithView(*(Post_View **)
+                    List_Pointer(CTX.post.list, List_Nbr(CTX.post.list) - 1));
+      else{
+        fprintf(stderr, ERROR_STR "Invalid background mesh (no view)\n");
+	exit(1);
+      }
+    }
+    if(CTX.batch > 0) {
+      mai3d(CTX.batch);
+      CreateOutputFile(CTX.output_filename, CTX.mesh.format);
+    }
+    else if(CTX.batch == -1)
+      CreateOutputFile(CTX.output_filename, FORMAT_GEO);
+    ParUtil::Instance()->Barrier(__LINE__, __FILE__);
+    return 1;
+  }
+  ParUtil::Instance()->Barrier(__LINE__, __FILE__);
+  return 1;
+}
+
+// Handle signals. We should not use Msg functions in these...
+
+void Signal(int sig_num)
+{
+  switch (sig_num) {
+  case SIGSEGV:
+    Msg(FATAL, "Segmentation violation (invalid memory reference)");
+    break;
+  case SIGFPE:
+    Msg(FATAL, "Floating point exception (division by zero?)");
+    break;
+  case SIGINT:
+    Msg(FATAL, "Interrupt (generated from terminal special char)");
+    break;
+  default:
+    Msg(FATAL, "Unknown signal");
+    break;
+  }
+}
+
+// General purpose message routine
+
+void Msg(int level, char *fmt, ...)
+{
+  va_list args;
+  int abort = 0;
+
+  va_start(args, fmt);
+
+  switch (level) {
+
+  case PROGRESS:
+  case STATUS1N:
+  case STATUS2N:
+    break;
+
+  case DIRECT:
+    if(CTX.verbosity >= 2 && ParUtil::Instance()->master()) {
+      vfprintf(stdout, fmt, args);
+      fprintf(stdout, "\n");
+    }
+    break;
+
+  case FATAL:
+  case FATAL3: abort = 1;
+  case FATAL1:
+  case FATAL2:
+    fprintf(stderr, FATAL_STR);
+    fprintf(stderr, "[on processor %d] ", ParUtil::Instance()->rank());
+    vfprintf(stderr, fmt, args);
+    fprintf(stderr, "\n");
+    break;
+
+  case GERROR:
+  case GERROR1:
+  case GERROR2:
+  case GERROR3:
+    fprintf(stderr, ERROR_STR);
+    fprintf(stderr, "[on processor %d] ", ParUtil::Instance()->rank());
+    vfprintf(stderr, fmt, args);
+    fprintf(stderr, "\n");
+    break;
+
+  case WARNING:
+  case WARNING1:
+  case WARNING2:
+  case WARNING3:
+    if(CTX.verbosity >= 1) {
+      fprintf(stderr, WARNING_STR);
+      fprintf(stderr, "[on processor %d] ", ParUtil::Instance()->rank());
+      vfprintf(stderr, fmt, args);
+      fprintf(stderr, "\n");
+    }
+    break;
+
+  case DEBUG:
+  case DEBUG1:
+  case DEBUG2:
+  case DEBUG3:
+    if(CTX.verbosity >= 4 && ParUtil::Instance()->master()) {
+      fprintf(stderr, DEBUG_STR);
+      vfprintf(stderr, fmt, args);
+      fprintf(stderr, "\n");
+    }
+    break;
+
+  default:
+    if(CTX.verbosity >= 2 && ParUtil::Instance()->master()) {
+      fprintf(stderr, INFO_STR);
+      vfprintf(stderr, fmt, args);
+      fprintf(stderr, "\n");
+    }
+    break;
+  }
+
+  va_end(args);
+
+  if(abort)
+    exit(1);
+}
+
+// interactive value dialog
+
+double GetValue(char *text, double defaultval)
+{
+  if(CTX.nopopup)
+    return defaultval;
+
+  printf("%s (default=%.16g): ", text, defaultval);
+  char str[256];
+  fgets(str, sizeof(str), stdin);
+  if(!strlen(str) || !strcmp(str, "\n"))
+    return defaultval;
+  else
+    return atof(str);
+}
+
+bool GetBinaryAnswer(const char *question, const char *yes, const char *no, 
+		     bool defaultval)
+{
+  if(CTX.nopopup || CTX.batch)
+    return defaultval;
+
+  char answ[256];
+
+  while(1){
+    printf("%s (%s/%s)",question,yes,no);
+    scanf("%s ",answ);
+    if (!strcmp(answ,yes))return true;
+    if (!strcmp(answ,no))return false;
+  }
+}
+
diff --git a/Box/Main.cpp b/Box/Main.cpp
index f44140d87d..39487bdff0 100644
--- a/Box/Main.cpp
+++ b/Box/Main.cpp
@@ -1,265 +1,6 @@
-// $Id: Main.cpp,v 1.64 2006-08-12 17:44:24 geuzaine Exp $
-//
-// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-// USA.
-// 
-// Please report all bugs and problems to <gmsh@geuz.org>.
+extern int GMSHBOX(int argc, char *argv[]);
 
-#include <signal.h>
-#include "Gmsh.h"
-#include "Numeric.h"
-#include "Geo.h"
-#include "Mesh.h"
-#include "Views.h"
-#include "Parser.h"
-#include "Context.h"
-#include "Options.h"
-#include "OpenFile.h"
-#include "CommandLine.h"
-#include "CreateFile.h"
-#include "ParUtil.h"
-#include "PluginManager.h"
-#include "GModel.h"
-
-Context_T CTX;
-Mesh M, *THEM = &M;
-GModel *GMODEL = 0;
-
-// Print some help/info messages
-
-void Info(int level, char *arg0)
-{
-  switch (level) {
-  case 0:
-    if(ParUtil::Instance()->master()) {
-      fprintf(stderr, "%s\n", gmsh_progname);
-      fprintf(stderr, "%s\n", gmsh_copyright);
-      Print_Usage(arg0);
-    }
-    ParUtil::Instance()->Exit();
-  case 1:
-    if(ParUtil::Instance()->master())
-      fprintf(stderr, "%s\n", Get_GmshVersion());
-    ParUtil::Instance()->Exit();
-  case 2:
-    if(ParUtil::Instance()->master()) {
-      fprintf(stderr, "%s%s\n", gmsh_version, Get_GmshVersion());
-      fprintf(stderr, "%s\n", gmsh_os);
-      fprintf(stderr, "%s\n", gmsh_date);
-      fprintf(stderr, "%s\n", gmsh_host);
-      fprintf(stderr, "%s\n", gmsh_packager);
-      fprintf(stderr, "%s\n", gmsh_url);
-      fprintf(stderr, "%s\n", gmsh_email);
-    }
-    ParUtil::Instance()->Exit();
-  default:
-    break;
-  }
-}
-
-// Main routine for the batch (black box) version
-
-int GMSHBOX(int argc, char *argv[])
-{
-  ParUtil::Instance()->init(argc, argv);
-
-  GMODEL = new gmshModel;
-
-  InitSymbols();
-
-  Init_Mesh0(&M);
-
-  Init_Options(0);
-
-  if(argc < 2)
-    Info(0, argv[0]);
-
-  // FIXME: could not make this work on IRIX
-#if !defined(__sgi__) 
-  signal(SIGINT, Signal);
-  signal(SIGSEGV, Signal);
-  signal(SIGFPE, Signal);
-#endif
-
-  GMSH_PluginManager::instance()->registerDefaultPlugins();
-
-  Get_Options(argc, argv);
-
-  check_gsl();
-
-  OpenProblem(CTX.filename);
-  if(yyerrorstate)
-    ParUtil::Instance()->Abort();
-  else {
-    for(int i = 1; i < List_Nbr(CTX.files); i++)
-      MergeProblem(*(char**)List_Pointer(CTX.files, i));
-    if(CTX.bgm_filename) {
-      MergeProblem(CTX.bgm_filename);
-      if(List_Nbr(CTX.post.list))
-        BGMWithView(*(Post_View **)
-                    List_Pointer(CTX.post.list, List_Nbr(CTX.post.list) - 1));
-      else{
-        fprintf(stderr, ERROR_STR "Invalid background mesh (no view)\n");
-	exit(1);
-      }
-    }
-    if(CTX.batch > 0) {
-      mai3d(THEM, CTX.batch);
-      CreateOutputFile(CTX.output_filename, CTX.mesh.format);
-    }
-    else if(CTX.batch == -1)
-      CreateOutputFile(CTX.output_filename, FORMAT_GEO);
-    ParUtil::Instance()->Barrier(__LINE__, __FILE__);
-    return 1;
-  }
-  ParUtil::Instance()->Barrier(__LINE__, __FILE__);
-  return 1;
-}
-
-// Handle signals. We should not use Msg functions in these...
-
-void Signal(int sig_num)
+int main(int argc, char *argv[])
 {
-  switch (sig_num) {
-  case SIGSEGV:
-    Msg(FATAL, "Segmentation violation (invalid memory reference)");
-    break;
-  case SIGFPE:
-    Msg(FATAL, "Floating point exception (division by zero?)");
-    break;
-  case SIGINT:
-    Msg(FATAL, "Interrupt (generated from terminal special char)");
-    break;
-  default:
-    Msg(FATAL, "Unknown signal");
-    break;
-  }
+  return GMSHBOX(argc, argv);
 }
-
-// General purpose message routine
-
-void Msg(int level, char *fmt, ...)
-{
-  va_list args;
-  int abort = 0;
-
-  va_start(args, fmt);
-
-  switch (level) {
-
-  case PROGRESS:
-  case STATUS1N:
-  case STATUS2N:
-    break;
-
-  case DIRECT:
-    if(CTX.verbosity >= 2 && ParUtil::Instance()->master()) {
-      vfprintf(stdout, fmt, args);
-      fprintf(stdout, "\n");
-    }
-    break;
-
-  case FATAL:
-  case FATAL3: abort = 1;
-  case FATAL1:
-  case FATAL2:
-    fprintf(stderr, FATAL_STR);
-    fprintf(stderr, "[on processor %d] ", ParUtil::Instance()->rank());
-    vfprintf(stderr, fmt, args);
-    fprintf(stderr, "\n");
-    break;
-
-  case GERROR:
-  case GERROR1:
-  case GERROR2:
-  case GERROR3:
-    fprintf(stderr, ERROR_STR);
-    fprintf(stderr, "[on processor %d] ", ParUtil::Instance()->rank());
-    vfprintf(stderr, fmt, args);
-    fprintf(stderr, "\n");
-    break;
-
-  case WARNING:
-  case WARNING1:
-  case WARNING2:
-  case WARNING3:
-    if(CTX.verbosity >= 1) {
-      fprintf(stderr, WARNING_STR);
-      fprintf(stderr, "[on processor %d] ", ParUtil::Instance()->rank());
-      vfprintf(stderr, fmt, args);
-      fprintf(stderr, "\n");
-    }
-    break;
-
-  case DEBUG:
-  case DEBUG1:
-  case DEBUG2:
-  case DEBUG3:
-    if(CTX.verbosity >= 4 && ParUtil::Instance()->master()) {
-      fprintf(stderr, DEBUG_STR);
-      vfprintf(stderr, fmt, args);
-      fprintf(stderr, "\n");
-    }
-    break;
-
-  default:
-    if(CTX.verbosity >= 2 && ParUtil::Instance()->master()) {
-      fprintf(stderr, INFO_STR);
-      vfprintf(stderr, fmt, args);
-      fprintf(stderr, "\n");
-    }
-    break;
-  }
-
-  va_end(args);
-
-  if(abort)
-    exit(1);
-}
-
-// interactive value dialog
-
-double GetValue(char *text, double defaultval)
-{
-  if(CTX.nopopup)
-    return defaultval;
-
-  printf("%s (default=%.16g): ", text, defaultval);
-  char str[256];
-  fgets(str, sizeof(str), stdin);
-  if(!strlen(str) || !strcmp(str, "\n"))
-    return defaultval;
-  else
-    return atof(str);
-}
-
-bool GetBinaryAnswer(const char *question, const char *yes, const char *no, 
-		     bool defaultval)
-{
-  if(CTX.nopopup || CTX.batch)
-    return defaultval;
-
-  char answ[256];
-
-  while(1){
-    printf("%s (%s/%s)",question,yes,no);
-    scanf("%s ",answ);
-    if (!strcmp(answ,yes))return true;
-    if (!strcmp(answ,no))return false;
-  }
-}
-
diff --git a/Box/Makefile b/Box/Makefile
index 5605c7f311..e50f4cca0f 100644
--- a/Box/Makefile
+++ b/Box/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.30 2006-01-16 17:55:43 geuzaine Exp $
+# $Id: Makefile,v 1.31 2006-08-12 19:34:14 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -26,13 +26,13 @@ INCLUDE = -I../Common -I../DataStr -I../Geo -I../Graphics -I../Mesh -I../Numeric
           -I../Parser -I../Fltk -I../Plugin -I../Parallel
 CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE} 
 
-SRC = Main.cpp
+SRC = Box.cpp
 
 OBJ = ${SRC:.cpp=.o}
 
 .SUFFIXES: .o .cpp
 
-${LIB}: ${OBJ} 
+${LIB}: ${OBJ} Main.o
 	${AR} ${LIB} ${OBJ} 
 	${RANLIB} ${LIB}
 
@@ -51,13 +51,28 @@ depend:
 	rm -f Makefile.new
 
 # DO NOT DELETE THIS LINE
-Main.o: Main.cpp ../Parallel/ParUtil.h ../Plugin/PluginManager.h \
- ../Plugin/Plugin.h ../Common/Options.h ../Common/Message.h ../Common/Views.h \
- ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
- ../Common/SmoothNormals.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
- ../Common/Gmsh.h ../DataStr/Malloc.h ../DataStr/Tree.h ../DataStr/avl.h \
- ../DataStr/Tools.h ../Common/GmshVersion.h ../Numeric/Numeric.h ../Geo/Geo.h \
- ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h \
- ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
- ../Mesh/Mesh.h ../Mesh/Matrix.h ../Parser/Parser.h ../Common/Context.h \
- ../Parser/OpenFile.h ../Common/CommandLine.h
+# 1 "/Users/geuzaine/.gmsh/Box//"
+Box.o: Box.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
+  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
+  ../DataStr/List.h ../DataStr/Tree.h ../Numeric/Numeric.h ../Geo/Geo.h \
+  ../Mesh/Mesh.h ../Common/GmshDefines.h ../Mesh/Vertex.h \
+  ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h \
+  ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h \
+  ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h ../Common/Views.h \
+  ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Parser/Parser.h \
+  ../Common/Context.h ../Common/Options.h ../Parser/OpenFile.h \
+  ../Common/CommandLine.h ../Parser/CreateFile.h ../Parallel/ParUtil.h \
+  ../Plugin/PluginManager.h ../Plugin/Plugin.h ../Geo/gmshModel.h \
+  ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
+  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
+  ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MVertex.h ../Geo/GPoint.h \
+  ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/MElement.h \
+  ../Geo/MVertex.h ../Geo/GFace.h ../Geo/GPoint.h ../Geo/GEntity.h \
+  ../Geo/MElement.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/MElement.h \
+  ../Geo/SBoundingBox3d.h
diff --git a/Common/Makefile b/Common/Makefile
index c1ab647728..03311fdce4 100644
--- a/Common/Makefile
+++ b/Common/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.101 2006-08-12 16:44:31 geuzaine Exp $
+# $Id: Makefile,v 1.102 2006-08-12 19:34:14 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -120,15 +120,16 @@ CommandLine.o: CommandLine.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   GmshVersion.h CommandLine.h ../Numeric/Numeric.h Context.h Options.h \
   ../Geo/Geo.h Views.h ColorTable.h VertexArray.h SmoothNormals.h \
   GmshMatrix.h AdaptiveViews.h ../Parser/OpenFile.h \
-  ../Graphics/CreateFile.h ../Parser/Parser.h ../Geo/GModel.h \
+  ../Parser/CreateFile.h ../Parser/Parser.h ../Geo/GModel.h \
   ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/MVertex.h \
-  ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/GPoint.h ../Geo/GEdge.h \
-  ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \
-  ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/MElement.h ../Geo/MVertex.h \
-  ../Geo/GFace.h ../Geo/GPoint.h ../Geo/GEntity.h ../Geo/MElement.h \
-  ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h \
-  ../Geo/GEntity.h ../Geo/MElement.h ../Geo/SBoundingBox3d.h OS.h
+  ../Geo/SPoint3.h ../Common/GmshDefines.h ../Geo/MVertex.h \
+  ../Geo/GPoint.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/MElement.h ../Geo/MVertex.h ../Geo/GFace.h ../Geo/GPoint.h \
+  ../Geo/GEntity.h ../Geo/MElement.h ../Geo/SPoint2.h ../Geo/SVector3.h \
+  ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/MElement.h \
+  ../Geo/SBoundingBox3d.h OS.h
 # 1 "/Users/geuzaine/.gmsh/Common//"
 OS.o: OS.cpp Message.h
 # 1 "/Users/geuzaine/.gmsh/Common//"
@@ -140,15 +141,15 @@ ColorTable.o: ColorTable.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
 Visibility.o: Visibility.cpp Visibility.h GmshDefines.h ../Geo/GVertex.h \
   ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/MVertex.h \
-  ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/GPoint.h ../Geo/GEdge.h \
-  ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \
-  ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/MElement.h ../Geo/MVertex.h \
-  ../Numeric/Numeric.h ../Geo/GFace.h ../Geo/GPoint.h ../Geo/GEntity.h \
-  ../Geo/MElement.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
-  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/MElement.h ../Geo/GModel.h \
-  ../Geo/GVertex.h ../Geo/GEdge.h ../Geo/GFace.h ../Geo/GRegion.h \
-  ../Geo/SBoundingBox3d.h ../Parser/Parser.h ../DataStr/List.h \
-  ../DataStr/Tree.h ../DataStr/avl.h
+  ../Geo/SPoint3.h ../Common/GmshDefines.h ../Geo/MVertex.h \
+  ../Geo/GPoint.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/MElement.h ../Geo/MVertex.h ../Numeric/Numeric.h ../Geo/GFace.h \
+  ../Geo/GPoint.h ../Geo/GEntity.h ../Geo/MElement.h ../Geo/SPoint2.h \
+  ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h \
+  ../Geo/MElement.h ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEdge.h \
+  ../Geo/GFace.h ../Geo/GRegion.h ../Geo/SBoundingBox3d.h \
+  ../Parser/Parser.h ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h
 # 1 "/Users/geuzaine/.gmsh/Common//"
 Trackball.o: Trackball.cpp Trackball.h
 # 1 "/Users/geuzaine/.gmsh/Common//"
diff --git a/Common/Options.cpp b/Common/Options.cpp
index 64d8f8d471..3744e4d199 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -1,4 +1,4 @@
-// $Id: Options.cpp,v 1.287 2006-08-12 16:16:27 geuzaine Exp $
+// $Id: Options.cpp,v 1.288 2006-08-12 19:34:14 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -4842,6 +4842,8 @@ double opt_mesh_color_carousel(OPT_ARGS_NUM)
   return CTX.mesh.color_carousel;
 }
 
+extern void GetStatistics(double s[50], double quality[3][100]=0);
+
 double opt_mesh_nb_nodes(OPT_ARGS_NUM)
 {
   double s[50];
diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index a0b81e1b5a..1666487dd5 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1,4 +1,4 @@
-// $Id: GUI.cpp,v 1.508 2006-08-12 18:34:49 geuzaine Exp $
+// $Id: GUI.cpp,v 1.509 2006-08-12 19:34:15 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -3542,6 +3542,8 @@ void GUI::create_statistics_window()
   stat_window->end();
 }
 
+extern void GetStatistics(double s[50], double quality[3][100]=0);
+
 void GUI::set_statistics()
 {
   int num = 0;
diff --git a/Geo/Makefile b/Geo/Makefile
index 24d337c6ea..b2256c5f11 100644
--- a/Geo/Makefile
+++ b/Geo/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.87 2006-08-12 17:44:24 geuzaine Exp $
+# $Id: Makefile,v 1.88 2006-08-12 19:34:15 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -160,10 +160,10 @@ GModelIO.o: GModelIO.cpp ../Common/Message.h ../Common/GmshDefines.h \
   MElement.h ../Numeric/Numeric.h GFace.h Pair.h GRegion.h gmshFace.h \
   gmshVertex.h gmshEdge.h
 # 1 "/Users/geuzaine/.gmsh/Geo//"
-MVertex.o: MVertex.cpp MVertex.h
+MVertex.o: MVertex.cpp MVertex.h SPoint3.h
 # 1 "/Users/geuzaine/.gmsh/Geo//"
 MElement.o: MElement.cpp MElement.h ../Common/GmshDefines.h MVertex.h \
-  ../Numeric/Numeric.h GEntity.h Range.h SPoint3.h SBoundingBox3d.h
+  SPoint3.h ../Numeric/Numeric.h GEntity.h Range.h SBoundingBox3d.h
 # 1 "/Users/geuzaine/.gmsh/Geo//"
 gmshModel.o: gmshModel.cpp gmshModel.h GModel.h GVertex.h GEntity.h \
   Range.h SPoint3.h SBoundingBox3d.h MVertex.h ../Common/GmshDefines.h \
diff --git a/Graphics/Makefile b/Graphics/Makefile
index 348939c14e..232aa61efb 100644
--- a/Graphics/Makefile
+++ b/Graphics/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.92 2006-08-12 16:44:31 geuzaine Exp $
+# $Id: Makefile,v 1.93 2006-08-12 19:34:15 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -37,7 +37,6 @@ SRC = Draw.cpp \
       ReadImg.cpp \
       Scale.cpp \
       Graph2D.cpp \
-      CreateFile.cpp \
       gl2ps.cpp\
       gl2gif.cpp\
       gl2jpeg.cpp\
diff --git a/Mesh/Makefile b/Mesh/Makefile
index faf674ab44..027a95758c 100644
--- a/Mesh/Makefile
+++ b/Mesh/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.117 2006-08-12 16:44:31 geuzaine Exp $
+# $Id: Makefile,v 1.118 2006-08-12 19:34:16 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -351,12 +351,12 @@ Generator.o: Generator.cpp ../Common/Gmsh.h ../Common/Message.h \
   meshGEdge.h meshGFace.h ../Geo/SPoint2.h ../Geo/GModel.h \
   ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/MVertex.h \
-  ../Geo/MVertex.h ../Geo/GPoint.h ../Geo/GEdge.h ../Geo/GEntity.h \
-  ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h \
-  ../Geo/SPoint2.h ../Geo/MElement.h ../Geo/MVertex.h ../Geo/GFace.h \
-  ../Geo/GPoint.h ../Geo/GEntity.h ../Geo/MElement.h ../Geo/SPoint2.h \
-  ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h \
-  ../Geo/MElement.h ../Geo/SBoundingBox3d.h
+  ../Geo/SPoint3.h ../Geo/MVertex.h ../Geo/GPoint.h ../Geo/GEdge.h \
+  ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/MElement.h ../Geo/MVertex.h \
+  ../Geo/GFace.h ../Geo/GPoint.h ../Geo/GEntity.h ../Geo/MElement.h \
+  ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h \
+  ../Geo/GEntity.h ../Geo/MElement.h ../Geo/SBoundingBox3d.h
 # 1 "/Users/geuzaine/.gmsh/Mesh//"
 DiscreteSurface.o: DiscreteSurface.cpp ../Common/Gmsh.h \
   ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
@@ -403,30 +403,31 @@ Metric.o: Metric.cpp ../Common/Gmsh.h ../Common/Message.h \
 # 1 "/Users/geuzaine/.gmsh/Mesh//"
 meshGEdge.o: meshGEdge.cpp meshGEdge.h ../Geo/GEdge.h ../Geo/GEntity.h \
   ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h \
-  ../Geo/SPoint3.h ../Geo/MVertex.h ../Common/GmshDefines.h \
-  ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/MVertex.h ../Geo/GPoint.h \
-  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
-  ../Geo/MElement.h ../Geo/MVertex.h ../Numeric/Numeric.h \
-  ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
-  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
-  ../DataStr/List.h ../DataStr/Tree.h Utils.h Vertex.h Mesh.h Element.h \
-  Simplex.h Face.h Edge.h ../Geo/ExtrudeParams.h Metric.h Matrix.h \
-  ../Common/Context.h
+  ../Geo/SPoint3.h ../Geo/MVertex.h ../Geo/SPoint3.h \
+  ../Common/GmshDefines.h ../Geo/GVertex.h ../Geo/GEntity.h \
+  ../Geo/MVertex.h ../Geo/GPoint.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/MElement.h ../Geo/MVertex.h \
+  ../Numeric/Numeric.h ../Common/Gmsh.h ../Common/Message.h \
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
+  Utils.h Vertex.h Mesh.h Element.h Simplex.h Face.h Edge.h \
+  ../Geo/ExtrudeParams.h Metric.h Matrix.h ../Common/Context.h
 # 1 "/Users/geuzaine/.gmsh/Mesh//"
 meshGFace.o: meshGFace.cpp meshGFace.h ../Geo/SPoint2.h ../Geo/GVertex.h \
   ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/MVertex.h \
-  ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/GPoint.h 2D_Mesh.h \
-  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h Mesh.h Vertex.h \
-  Element.h Simplex.h Face.h Edge.h ../Geo/ExtrudeParams.h Metric.h \
-  Matrix.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
-  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
-  ../Geo/MElement.h ../Geo/MVertex.h ../Numeric/Numeric.h ../Geo/GFace.h \
-  ../Geo/GPoint.h ../Geo/GEntity.h ../Geo/MElement.h ../Geo/SPoint2.h \
-  ../Geo/SVector3.h ../Geo/Pair.h ../Common/Context.h Utils.h \
-  ../Common/Message.h BDS.h ../Common/Views.h ../Common/ColorTable.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h
+  ../Geo/SPoint3.h ../Common/GmshDefines.h ../Geo/MVertex.h \
+  ../Geo/GPoint.h 2D_Mesh.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
+  ../Geo/ExtrudeParams.h Metric.h Matrix.h ../Geo/GEdge.h \
+  ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/MElement.h ../Geo/MVertex.h \
+  ../Numeric/Numeric.h ../Geo/GFace.h ../Geo/GPoint.h ../Geo/GEntity.h \
+  ../Geo/MElement.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Common/Context.h Utils.h ../Common/Message.h BDS.h ../Common/Views.h \
+  ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h
 # 1 "/Users/geuzaine/.gmsh/Mesh//"
 Nurbs.o: Nurbs.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
diff --git a/Mesh/Mesh.h b/Mesh/Mesh.h
index 43ce9af1c7..b6f43621e6 100644
--- a/Mesh/Mesh.h
+++ b/Mesh/Mesh.h
@@ -341,8 +341,6 @@ void mai3d(int Asked);
 void Init_Mesh0();
 void Init_Mesh();
 
-void GetStatistics(double s[50], double quality[3][100]=0);
-
 void Maillage_Dimension_1();
 void Maillage_Dimension_2();
 void Maillage_Dimension_3();
diff --git a/Graphics/CreateFile.cpp b/Parser/CreateFile.cpp
similarity index 98%
rename from Graphics/CreateFile.cpp
rename to Parser/CreateFile.cpp
index 7baa1d0d13..d8462fc280 100644
--- a/Graphics/CreateFile.cpp
+++ b/Parser/CreateFile.cpp
@@ -1,4 +1,4 @@
-// $Id: CreateFile.cpp,v 1.92 2006-08-10 15:41:34 geuzaine Exp $
+// $Id: CreateFile.cpp,v 1.1 2006-08-12 19:34:16 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -20,19 +20,21 @@
 // Please report all bugs and problems to <gmsh@geuz.org>.
 
 #include "Gmsh.h"
-#include "GmshUI.h"
 #include "OpenFile.h"
 #include "Context.h"
 #include "Options.h"
 #include "Geo.h"
 #include "GModel.h"
 
+#if defined(HAVE_FLTK)
+#include "GmshUI.h"
 #include "gl2ps.h"
 #include "gl2gif.h"
 #include "gl2jpeg.h"
 #include "gl2png.h"
 #include "gl2ppm.h"
 #include "gl2yuv.h"
+#endif
 
 extern Context_T CTX;
 extern GModel *GMODEL;
@@ -117,10 +119,12 @@ void CreateOutputFile(char *filename, int format)
   int oldformat = CTX.print.format;
   CTX.print.format = format;
 
+#if defined(HAVE_FLTK)
   GLint viewport[4];
   for(int i = 0; i < 4; i++) viewport[i] = CTX.viewport[i];
   GLint width = viewport[2] - viewport[0];
   GLint height = viewport[3] - viewport[1];
+#endif
 
   bool printEndMessage = true;
   if(format != FORMAT_AUTO) Msg(STATUS2, "Writing '%s'", name);
@@ -165,6 +169,7 @@ void CreateOutputFile(char *filename, int format)
     GMODEL->writePOS(name);
     break;
 
+#if defined(HAVE_FLTK)
   case FORMAT_PPM:
   case FORMAT_YUV:
   case FORMAT_GIF:  
@@ -332,6 +337,7 @@ void CreateOutputFile(char *filename, int format)
       fclose(fp);
     }
     break;
+#endif
 
   default:
     Msg(GERROR, "Unknown output file format (%d)", format);
@@ -342,5 +348,8 @@ void CreateOutputFile(char *filename, int format)
   if(printEndMessage) Msg(STATUS2, "Wrote '%s'", name);
 
   CTX.print.format = oldformat;
+
+#if defined(HAVE_FLTK)
   Draw();
+#endif
 }
diff --git a/Graphics/CreateFile.h b/Parser/CreateFile.h
similarity index 100%
rename from Graphics/CreateFile.h
rename to Parser/CreateFile.h
diff --git a/Parser/Makefile b/Parser/Makefile
index ab287f2dfb..4c1cd3a045 100644
--- a/Parser/Makefile
+++ b/Parser/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.94 2006-08-12 16:44:31 geuzaine Exp $
+# $Id: Makefile,v 1.95 2006-08-12 19:34:16 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -30,6 +30,7 @@ CFLAGS  = ${OPTIM} ${FLAGS} ${INCLUDE}
 SRC = Gmsh.tab.cpp\
       Gmsh.yy.cpp\
       OpenFile.cpp\
+      CreateFile.cpp\
       FunctionManager.cpp
 
 OBJ = ${SRC:.cpp=.o}
@@ -93,8 +94,7 @@ Gmsh.tab.o: Gmsh.tab.cpp ../Plugin/PluginManager.h ../Plugin/Plugin.h \
   ../Mesh/Vertex.h ../Mesh/Mesh.h ../Geo/CAD.h ../Geo/ExtrudeParams.h \
   ../Graphics/Draw.h ../Mesh/Create.h ../Mesh/Vertex.h ../Mesh/Mesh.h \
   ../Common/Colors.h ../Common/Options.h Parser.h OpenFile.h \
-  ../Common/CommandLine.h FunctionManager.h ../Common/OS.h \
-  ../Graphics/CreateFile.h
+  ../Common/CommandLine.h FunctionManager.h ../Common/OS.h CreateFile.h
 # 1 "/Users/geuzaine/.gmsh/Parser//"
 Gmsh.yy.o: Gmsh.yy.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -112,10 +112,10 @@ OpenFile.o: OpenFile.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Geo/gmshModel.h ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h \
   ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h \
-  ../Geo/SPoint3.h ../Geo/MVertex.h ../Common/GmshDefines.h \
-  ../Geo/MVertex.h ../Geo/GPoint.h ../Geo/GEdge.h ../Geo/GEntity.h \
-  ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h \
-  ../Geo/SPoint2.h ../Geo/MElement.h ../Geo/MVertex.h \
+  ../Geo/SPoint3.h ../Geo/MVertex.h ../Geo/SPoint3.h \
+  ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/GPoint.h ../Geo/GEdge.h \
+  ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/MElement.h ../Geo/MVertex.h \
   ../Numeric/Numeric.h ../Geo/GFace.h ../Geo/GPoint.h ../Geo/GEntity.h \
   ../Geo/MElement.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
   ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/MElement.h \
@@ -133,4 +133,27 @@ OpenFile.o: OpenFile.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Graphics/Draw.h ../Fltk/GUI.h ../Fltk/Opengl_Window.h \
   ../Fltk/Colorbar_Window.h ../Fltk/Popup_Button.h
 # 1 "/Users/geuzaine/.gmsh/Parser//"
+CreateFile.o: CreateFile.cpp ../Common/Gmsh.h ../Common/Message.h \
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
+  OpenFile.h ../Common/Context.h ../Common/Options.h ../Geo/Geo.h \
+  ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
+  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
+  ../Geo/MVertex.h ../Geo/SPoint3.h ../Common/GmshDefines.h \
+  ../Geo/MVertex.h ../Geo/GPoint.h ../Geo/GEdge.h ../Geo/GEntity.h \
+  ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint2.h ../Geo/MElement.h ../Geo/MVertex.h \
+  ../Numeric/Numeric.h ../Geo/GFace.h ../Geo/GPoint.h ../Geo/GEntity.h \
+  ../Geo/MElement.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/MElement.h \
+  ../Geo/SBoundingBox3d.h ../Common/GmshUI.h ../Graphics/gl2ps.h \
+  ../Graphics/gl2gif.h ../Graphics/PixelBuffer.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Graphics/gl2jpeg.h \
+  ../Graphics/PixelBuffer.h ../Graphics/gl2png.h \
+  ../Graphics/PixelBuffer.h ../Graphics/gl2ppm.h \
+  ../Graphics/PixelBuffer.h ../Graphics/gl2yuv.h \
+  ../Graphics/PixelBuffer.h
+# 1 "/Users/geuzaine/.gmsh/Parser//"
 FunctionManager.o: FunctionManager.cpp FunctionManager.h
diff --git a/configure b/configure
index d5af06546e..9a71d92d79 100755
--- a/configure
+++ b/configure
@@ -3526,8 +3526,8 @@ fi
 
 else
 
-  GMSH_DIRS="${GMSH_DIRS} Box BoxMain"
-  GMSH_LIBS="-Llib -lGmshBoxMain -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo -lGmshPlugin"
+  GMSH_DIRS="${GMSH_DIRS} Box"
+  GMSH_LIBS="-Llib Box/Main.o -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo -lGmshPlugin"
   GMSH_LIBS="${GMSH_LIBS} -lGmshCommon -lGmshDataStr -lGmshNumeric -lGmshParallel"
 
 fi
diff --git a/configure.in b/configure.in
index 46793c877b..8809bbd876 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-dnl $Id: configure.in,v 1.99 2006-07-10 12:16:34 remacle Exp $
+dnl $Id: configure.in,v 1.100 2006-08-12 19:34:14 geuzaine Exp $
 dnl
 dnl Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 dnl
@@ -275,8 +275,8 @@ if test "x$enable_gui" != "xno"; then
 
 else
 
-  GMSH_DIRS="${GMSH_DIRS} Box BoxMain"
-  GMSH_LIBS="-Llib -lGmshBoxMain -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo -lGmshPlugin"
+  GMSH_DIRS="${GMSH_DIRS} Box"
+  GMSH_LIBS="-Llib Box/Main.o -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo -lGmshPlugin"
   GMSH_LIBS="${GMSH_LIBS} -lGmshCommon -lGmshDataStr -lGmshNumeric -lGmshParallel"
 
 fi
-- 
GitLab