diff --git a/utils/oldmake b/utils/oldmake
new file mode 100644
index 0000000000000000000000000000000000000000..f71966d6ad304ed4ed83c5f680bf827b2f637a0f
--- /dev/null
+++ b/utils/oldmake
@@ -0,0 +1,735 @@
+# $Id: oldmake,v 1.1 2003-02-11 23:01:17 geuzaine Exp $
+
+GMSH_MAJOR_VERSION = 1
+GMSH_MINOR_VERSION = 37
+GMSH_PATCH_VERSION = 1
+
+MAKE = make
+CXX = c++
+CC = cc
+FLAGS = -g -Wall
+RM = rm
+RMFLAGS = -f 
+
+FLTK_DIR = $(HOME)/SOURCES/fltk-1.1
+
+# ----------------------------------------------------------------------
+#  Gmsh definitions
+# ----------------------------------------------------------------------
+
+GMSH_COMMON_DIR = Common DataStr Geo Mesh Numeric Parallel Parser Plugin Triangle
+GMSH_BOX_DIR =$(GMSH_COMMON_DIR) Box
+GMSH_FLTK_DIR = $(GMSH_COMMON_DIR) Graphics Fltk jpeg
+GMSH_DIR = $(GMSH_COMMON_DIR) Box Graphics Fltk jpeg utils
+GMSH_BIN_DIR = bin
+GMSH_LIB_DIR = lib
+GMSH_DOC_DIR = doc
+GMSH_DEMO_DIR = demos
+GMSH_TUTORIAL_DIR = tutorial
+GMSH_ARCHIVE_DIR = archives
+
+GMSH_BOX_LIB = -L$(GMSH_LIB_DIR) -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo -lGmshNumeric\
+               -lGmshPlugin -lGmshCommon -lGmshDataStr -lGmshParallel -lGmshTriangle
+GMSH_FLTK_LIB = -L$(GMSH_LIB_DIR) -lGmshFltk -lGmshParser -lGmshGraphics -lGmshMesh\
+                -lGmshGeo -lGmshNumeric -lGmshCommon -lGmshDataStr -lGmshJpeg -lGmshPlugin\
+                -lGmshParallel -lGmshTriangle
+
+GMSH_VERSION_FILE = Common/GmshVersion.h
+GMSH_RELEASE = $(GMSH_MAJOR_VERSION).$(GMSH_MINOR_VERSION).$(GMSH_PATCH_VERSION)
+GMSH_ARCHIVE = $(GMSH_ARCHIVE_DIR)/gmsh-`date "+%Y.%m.%d"`
+GMSH_UNAME = `uname`
+GMSH_SOURCES = `find . \( ! -name "*.tar*" -a ! -name "*.tgz" \
+                       -a ! -name "*.o"    -a ! -name "lib*.a"   \
+                       -a ! -name "*.msh"  -a ! -name "*.bak" \
+                       -a ! -name "gmsh"   -a ! -name "gmsh-*"\
+                       -a ! -type d \)`
+
+default:
+	@echo "Type one of the following:"
+	@echo "  make aix                  for IBM RS/6000 with AIX"
+	@echo "  make cygwin               for Win95/NT using Cygnus-Win32"
+	@echo "  make gcc                  for a generic system with GCC"
+	@echo "  make hpux                 for HP systems with HPUX 9.x/10.x using GCC"
+	@echo "  make irix                 for SGI systems with IRIX"
+	@echo "  make linux                for Linux systems"
+	@echo "  make macosx               for Macintosh with Mac OS X and GCC"
+	@echo "  make osf1                 for DEC Alpha systems with OSF/1"
+	@echo "  make sunos                for Suns with SunOS"
+	@echo ""
+	@echo "You need fltk (http://www.fltk.org) version 1.1.x installed"
+	@echo "in $(FLTK_DIR) (or add \"FLTK_DIR=dir\""
+	@echo "to the above commands, e.g., make linux \"FLTK_DIR=/opt/fltk\")"
+	@echo ""
+	@echo "If your system is not listed above, edit the Makefile"
+
+# ----------------------------------------------------------------------
+# Ready to compile for some platforms
+# ----------------------------------------------------------------------
+
+#
+# Source distribution
+#
+source:
+	tar zcvf gmsh.tgz `ls README* Makefile */Makefile */*.[chyl] */*.[ch]pp\
+                           */*.rc */*.res */*.ico */*.icns */*.pl */*.pm */*.opt */*.spec`\
+                           doc demos tutorial
+	mkdir gmsh-$(GMSH_RELEASE)
+	cd gmsh-$(GMSH_RELEASE) && tar zxvf ../gmsh.tgz
+	rm -f gmsh.tgz
+	cd gmsh-$(GMSH_RELEASE) && rm -rf CVS */CVS */*/CVS */.globalrc $(GMSH_VERSION_FILE)
+#	cd gmsh-$(GMSH_RELEASE) && zip -r gmsh-$(GMSH_RELEASE)-source.zip *
+#	mv gmsh-$(GMSH_RELEASE)/gmsh-$(GMSH_RELEASE)-source.zip .
+	tar zcvf gmsh-$(GMSH_RELEASE)-source.tgz gmsh-$(GMSH_RELEASE)
+	rm -rf gmsh-$(GMSH_RELEASE)
+
+#
+# Generic little endian machine (e.g. with gcc)
+#
+compile: initialtag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=$(CXX)" \
+           "CC=$(CC)" \
+           "OPT_FLAGS=$(FLAGS)" \
+           "OS_FLAGS=-D_LITTLE_ENDIAN" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=-I$(FLTK_DIR)" \
+        ); done
+link:
+	$(CXX) $(FLAGS) -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB)\
+               -L$(FLTK_DIR)/lib -lfltk_gl -lGLU -lGL -lfltk\
+               -L/usr/X11R6/lib -lX11 -lm
+gcc: compile link
+
+#
+# Linux
+#
+compile-linux: initialtag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=$(CXX)" \
+           "CC=$(CC)" \
+           "OPT_FLAGS=-O3 -Wall -Wno-uninitialized" \
+           "OS_FLAGS=-D_LITTLE_ENDIAN" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=-I$(FLTK_DIR)" \
+        ); done
+link-linux:
+	$(CXX) -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB)\
+                 -L$(FLTK_DIR)/lib -lfltk_gl -lGLU -lGL -lfltk\
+                 -L/usr/X11R6/lib -lX11 -lm -ldl
+linux: compile-linux link-linux
+
+#
+# Linux fltk 2.0 (beta)
+#
+compile-fltk2: initialtag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=$(CXX)" \
+           "CC=$(CC)" \
+           "OPT_FLAGS=-g -Wall" \
+           "OS_FLAGS=-D_LITTLE_ENDIAN" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=-I$(HOME)/SOURCES/fltk-2.0" \
+        ); done
+link-fltk2:
+	$(CXX) -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB)\
+                 $(HOME)/SOURCES/fltk-2.0/lib/libfltk_gl.so.2\
+                 -lGLU -lGL \
+                 $(HOME)/SOURCES/fltk-2.0/lib/libfltk.so.2 \
+                 -L/usr/X11R6/lib -lX11 -lm
+fltk2: compile-fltk2 link-fltk2
+
+#
+# Linux fltk 1.0 (obsolete)
+#
+compile-fltk1: initialtag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=$(CXX)" \
+           "CC=$(CC)" \
+           "OPT_FLAGS=-g -Wall" \
+           "OS_FLAGS=-D_LITTLE_ENDIAN" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=-I$(HOME)/SOURCES/fltk" \
+        ); done
+link-fltk1:
+	$(CXX) -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB)\
+                -L$(HOME)/SOURCES/fltk/lib -lfltk -lGLU -lGL \
+                -L/usr/X11R6/lib -lX11 -lm
+fltk1: compile-fltk1 link-fltk1
+
+#
+# Linux, gcc-2.95.x (optimized build is very buggy)
+# 
+compile-linux-gcc-2.95: initialtag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=$(HOME)/gcc-2.95.3/bin/g++" \
+           "CC=$(HOME)/gcc-2.95.3/bin/gcc" \
+           "OPT_FLAGS=-g" \
+           "OS_FLAGS=-D_LITTLE_ENDIAN" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "GL_INCLUDE=-I/usr/X11R6/include" \
+           "GUI_INCLUDE=-I$(FLTK_DIR)" \
+        ); done
+link-linux-gcc-2.95:
+	$(HOME)/gcc-2.95.3/bin/g++ -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB)\
+                 -L$(FLTK_DIR)/lib -lfltk_gl -lGLU -lGL -lfltk\
+                 -L/usr/X11R6/lib -lX11 -lm -ldl
+linux-gcc-2.95: compile-linux-gcc-2.95 link-linux-gcc-2.95
+distrib-linux-gcc-2.95:
+	make clean
+	make tag
+	@for i in $(GMSH_BOX_DIR); do (cd $$i && $(MAKE) \
+           "CXX=$(HOME)/gcc-2.95.3/bin/g++" \
+           "CC=$(HOME)/gcc-2.95.3/bin/gcc" \
+           "OPT_FLAGS=-g" \
+           "OS_FLAGS=-D_LITTLE_ENDIAN" \
+           "VERSION_FLAGS=-D_BLACKBOX" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=" \
+        ); done
+	$(HOME)/gcc-2.95.3/bin/g++ -o $(GMSH_BIN_DIR)/gmsh-batch $(GMSH_BOX_LIB) -lm -ldl
+	make clean
+	make linux-gcc-2.95
+	make distrib
+rpm:
+	tar zcvf gmsh-$(GMSH_RELEASE).tar.gz $(GMSH_SOURCES)
+	mv gmsh-$(GMSH_RELEASE).tar.gz /usr/src/redhat/SOURCES
+	rpm -bb --define 'gmshversion $(GMSH_RELEASE)' utils/gmsh.spec
+	cp /usr/src/redhat/RPMS/i386/gmsh-$(GMSH_RELEASE)-?.i386.rpm .
+	cp /usr/src/redhat/BUILD/gmsh-$(GMSH_RELEASE)/gmsh-$(GMSH_RELEASE)-$(GMSH_UNAME).tgz .
+
+#
+# Linux SCOREC
+#
+compile-linux-scorec: initialtag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=$(CXX)" \
+           "CC=$(CC)" \
+           "OPT_FLAGS=-O2" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "OS_FLAGS=-D_LITTLE_ENDIAN" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=-I/users/develop/develop/visual/fltk/1.0/include" \
+        ); done
+link-linux-scorec:
+	$(CXX) -o $(GMSH_BIN_DIR)/gmsh-linux $(GMSH_FLTK_LIB) -lGLU -lGL \
+                 /users/develop/develop/visual/fltk/1.0/lib/x86_linux/libfltk.a\
+                 -L/usr/X11R6/lib -lX11 -lm -ldl 
+linux-scorec: compile-linux-scorec link-linux-scorec
+
+#
+# Digital (Compaq) OSF1/Digital Unix/Tru64
+#
+compile-osf1: initialtag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=$(CXX)" \
+           "CC=$(CC)" \
+           "OPT_FLAGS=-O2" \
+           "OS_FLAGS=-D_LITTLE_ENDIAN" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=-I$(FLTK_DIR)" \
+        ); done
+link-osf1:
+	$(CXX) -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB)\
+                 -L$(FLTK_DIR)/lib -lfltk_gl -lGLU -lGL -lfltk\
+                 -lX11 -lm
+osf1: compile-osf1 link-osf1
+distrib-osf1:
+	make clean
+	make tag
+	@for i in $(GMSH_BOX_DIR); do (cd $$i && $(MAKE) \
+           "CXX=$(CXX)" \
+           "CC=$(CC)" \
+           "OPT_FLAGS=-O2" \
+           "OS_FLAGS=-D_LITTLE_ENDIAN" \
+           "VERSION_FLAGS=-D_BLACKBOX" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=" \
+        ); done
+	$(CXX) -o $(GMSH_BIN_DIR)/gmsh-batch $(GMSH_BOX_LIB) -lm
+	make clean
+	make osf1
+	make distrib
+#
+# HP-UX
+#
+compile-hpux: initialtag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=g++" \
+           "CC=gcc" \
+           "OPT_FLAGS=-O2" \
+           "OS_FLAGS=" \
+           "VERSION_FLAGS=-D_FLTK -D_NODLL" \
+           "GL_INCLUDE=-I$(HOME)/SOURCES/Mesa-3.1/include" \
+           "GUI_INCLUDE=-I$(FLTK_DIR)" \
+        ); done
+link-hpux:
+	g++ -Wl,+s -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB)\
+                      -L$(FLTK_DIR)/lib -lfltk_gl\
+                      -L$(HOME)/SOURCES/Mesa-3.1/lib -lGLU -lGL -lfltk\
+                      -lX11 -lm
+hpux: compile-hpux link-hpux
+distrib-hpux:
+	make clean
+	make tag
+	@for i in $(GMSH_BOX_DIR); do (cd $$i && $(MAKE) \
+           "CXX=g++" \
+           "CC=gcc" \
+           "OPT_FLAGS=-O2" \
+           "OS_FLAGS=" \
+           "VERSION_FLAGS=-D_BLACKBOX -D_NODLL" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=" \
+        ); done
+	g++ -o $(GMSH_BIN_DIR)/gmsh-batch $(GMSH_BOX_LIB) -lm
+	make clean
+	make hpux
+	make distrib
+#
+# IBM AIX
+#
+compile-aix: initialtag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=$(CXX)" \
+           "CC=$(CC)" \
+           "OPT_FLAGS=-O2" \
+           "OS_FLAGS=-D_BSD" \
+           "VERSION_FLAGS=-D_FLTK -D_NODLL" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=-I$(FLTK_DIR)" \
+        ); done
+link-aix:
+	$(CXX) -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB)\
+                 -L$(FLTK_DIR)/lib -lfltk_gl -lGLU -lGL -lfltk\
+                  -lX11 -lm
+aix: compile-aix link-aix
+distrib-aix:
+	make clean
+	make tag
+	@for i in $(GMSH_BOX_DIR); do (cd $$i && $(MAKE) \
+           "CXX=$(CXX)" \
+           "CC=$(CC)" \
+           "OPT_FLAGS=-O2" \
+           "OS_FLAGS=-D_BSD" \
+           "VERSION_FLAGS=-D_BLACKBOX -D_NODLL" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=" \
+        ); done
+	$(CXX) -o $(GMSH_BIN_DIR)/gmsh-batch $(GMSH_BOX_LIB) -lm
+	make clean
+	make aix
+	make distrib
+#
+# SGI Irix
+#
+compile-irix: initialtag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=CC" \
+           "CC=cc" \
+           "OPT_FLAGS=-O2 -OPT:Olimit=0 -LANG:std" \
+           "RANLIB=true"\
+           "AR=CC -mips3 -n32 -ar -o"\
+           "OS_FLAGS=-mips3 -n32" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=-I$(FLTK_DIR)" \
+        ); done
+link-irix:
+	CC -O2 -mips3 -n32 -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB)\
+               -L$(FLTK_DIR)/lib -lfltk_gl -lfltk -lX11 -lGLU -lGL -lm
+irix: compile-irix link-irix
+distrib-irix:
+	make clean
+	make tag
+	@for i in $(GMSH_BOX_DIR); do (cd $$i && $(MAKE) \
+           "CXX=CC" \
+           "CC=cc" \
+           "OPT_FLAGS=-O2 -OPT:Olimit=0 -LANG:std" \
+           "RANLIB=true"\
+           "AR=CC -mips3 -n32 -ar -o"\
+           "OS_FLAGS=-mips3 -n32" \
+           "VERSION_FLAGS=-D_BLACKBOX" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=" \
+        ); done
+	CC -O2 -mips3 -n32 -o $(GMSH_BIN_DIR)/gmsh-batch $(GMSH_BOX_LIB) -lm
+	make clean
+	make irix
+	make distrib
+
+#
+# Cygwin
+#
+compile-cygwin: initialtag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=g++" \
+           "CC=gcc" \
+           "OPT_FLAGS=-O2" \
+           "OS_FLAGS=-mwindows -DWIN32 -D_LITTLE_ENDIAN" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=-I$(FLTK_DIR)" \
+        ); done
+link-cygwin:
+	g++ -Wl,--subsystem,windows -mwindows -o $(GMSH_BIN_DIR)/gmsh.exe\
+                 $(GMSH_FLTK_LIB) Fltk/Win32Icon.res $(FLTK_DIR)/lib/libfltk_gl.a\
+                 -lglu32 -lopengl32 $(FLTK_DIR)/lib/libfltk.a \
+                 -lole32 -luuid -lcomctl32 -lwsock32 -lm
+cygwin: compile-cygwin link-cygwin
+distrib-cygwin:
+	make clean
+	make tag
+	make cygwin
+	make distrib-win
+
+#
+# Cygwin gertha-buro
+#
+cygwin-gertha-buro: initialtag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=g++" \
+           "CC=gcc" \
+           "OPT_FLAGS=-O2" \
+           "OS_FLAGS=-DWIN32 -D_LITTLE_ENDIAN" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=-I../../fltk" \
+        ); done
+	g++ -Wl,--subsystem,windows -o $(GMSH_BIN_DIR)/gmsh.exe $(GMSH_FLTK_LIB)\
+                 Fltk/Win32Icon.res ../fltk/lib/libfltk.a\
+                 -lglu32 -lopengl32 -lgdi32 -lwsock32 -lm
+
+#
+# Cygwin laptop jf
+#
+cygwin-laptopjf: initialtag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=g++" \
+           "CC=gcc" \
+           "OPT_FLAGS=-O2" \
+           "OS_FLAGS=-DWIN32 -D_LITTLE_ENDIAN" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=-I../../fltk-1.0.9" \
+        ); done
+	g++ -Wl,--subsystem,windows -o $(GMSH_BIN_DIR)/gmsh-cyg.exe $(GMSH_FLTK_LIB)\
+                 Fltk/Win32Icon.res ../fltk-1.0.9/lib/libfltk.a\
+                 -lglu32 -lopengl32 -lgdi32 -lwsock32 -lm
+cygwin-laptopjf_tag: tag cygwin-laptopjf
+
+#
+# Sun SunOS
+#
+compile-sunos: initialtag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=g++" \
+           "CC=gcc" \
+           "OPT_FLAGS=-O2" \
+           "OS_FLAGS=" \
+           "VERSION_FLAGS=-D_FLTK -D_NODLL" \
+           "GL_INCLUDE=-I$(HOME)/SOURCES/Mesa-3.1/include" \
+           "GUI_INCLUDE=-I$(FLTK_DIR)" \
+        ); done
+link-sunos:
+	g++ -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB)\
+                 -L$(FLTK_DIR)/lib -lfltk_gl\
+                 -L$(HOME)/SOURCES/Mesa-3.1/lib -lGLU -lGL -lfltk\
+                 -lX11 -lXext -lsocket -lnsl -ldl -lm
+sunos: compile-sunos link-sunos
+distrib-sunos:
+	make clean
+	make tag
+	@for i in $(GMSH_BOX_DIR); do (cd $$i && $(MAKE) \
+           "CXX=g++" \
+           "CC=gcc" \
+           "OPT_FLAGS=-O2" \
+           "OS_FLAGS=" \
+           "VERSION_FLAGS=-D_BLACKBOX -D_NODLL" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=" \
+        ); done
+	g++ -o $(GMSH_BIN_DIR)/gmsh-batch $(GMSH_BOX_LIB) -lm
+	make clean
+	make sunos
+	make distrib
+#
+# Solaris SCOREC
+#
+compile-solaris-scorec: initialtag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=$(CXX)" \
+           "CC=$(CC)" \
+           "OPT_FLAGS=-O3" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "OS_FLAGS=" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=-I/users/develop/develop/visual/fltk/1.0/include" \
+        ); done
+link-solaris-scorec:
+	$(CXX) -o $(GMSH_BIN_DIR)/gmsh-sun $(GMSH_FLTK_LIB) -lGLU -lGL \
+                 /users/develop/develop/visual/fltk/1.0/lib/sun4_5/libfltk-gcc.a\
+                 -L/usr/X11R6/lib -lX11 -lm -ldl -lsocket
+solaris-scorec: compile-solaris-scorec link-solaris-scorec
+
+#
+# MacOS X
+# - we don't use resource forks anymore in the distributed version, but we
+# leave the Rez step so that one can still launch a working version
+# from the command line without having to do "distrib-mac".
+# - use 'otool -L' to check linked dynamic libraries
+#
+compile-macosx: initialtag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=$(CXX)" \
+           "CC=$(CC)" \
+           "AR=ar ruv" \
+           "OPT_FLAGS=-O2" \
+           "OS_FLAGS=" \
+           "VERSION_FLAGS=-D_FLTK -D_NODLL" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=-I$(FLTK_DIR)" \
+        ); done
+link-macosx:
+	$(CXX) -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB) -L$(FLTK_DIR)/lib -lfltk_gl -lfltk \
+               -framework AGL -framework OpenGL -framework Carbon -framework ApplicationServices
+	/Developer/Tools/Rez -t APPL -o $(GMSH_BIN_DIR)/gmsh $(FLTK_DIR)/FL/mac.r
+macosx: compile-macosx link-macosx
+distrib-macosx:
+	make clean
+	make tag
+	make macosx
+	make distrib-mac
+
+# ----------------------------------------------------------------------
+# Rules for developers
+# ----------------------------------------------------------------------
+
+gmsh: link
+
+static:
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CXX=$(CXX)" \
+           "CC=$(CC)" \
+           "OPT_FLAGS=-O3" \
+           "OS_FLAGS=-D_LITTLE_ENDIAN" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "GL_INCLUDE=-I$(HOME)/SOURCES/Mesa-static/include" \
+           "GUI_INCLUDE=-I$(FLTK_DIR)" \
+        ); done
+	$(CXX) -o $(GMSH_BIN_DIR)/gmshm $(GMSH_FLTK_LIB)\
+                 $(FLTK_DIR)/lib/libfltk_gl.a\
+                 $(HOME)/SOURCES/Mesa-static/lib/libGLU.a\
+                 $(HOME)/SOURCES/Mesa-static/lib/libGL.a\
+                 $(FLTK_DIR)/lib/libfltk.a -lX11 -lm
+
+purify:
+	purify -cache-dir=/space g++ -o $(GMSH_BIN_DIR)/gmsh-sun $(GMSH_FLTK_LIB) -lGLU -lGL \
+                 /users/develop/develop/visual/fltk/1.0/lib/sun4_5/libfltk-gcc.a\
+                 -L/usr/X11R6/lib -lX11 -lm -ldl -lsocket
+
+efence:
+	$(CXX) -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB)\
+                 -L$(FLTK_DIR)/lib -lfltk_gl -lGLU -lGL -lfltk\
+                 -L/usr/X11R6/lib -lX11 -lefence -lm
+
+# ----------------------------------------------------------------------
+# Utilities
+# ----------------------------------------------------------------------
+
+parser:
+	cd Parser && $(MAKE) parser
+
+utilities:
+	cd utils && $(MAKE)
+
+purge:
+	for i in "." $(GMSH_DIR) $(GMSH_LIB_DIR) $(GMSH_ARCHIVE_DIR)\
+                     $(GMSH_DEMO_DIR) $(GMSH_TUTORIAL_DIR) $(GMSH_DOC_DIR); \
+        do (cd $$i && $(RM) $(RMFLAGS) *~ *~~ .gmsh-tmp .gmsh-errors gmon.out); \
+        done
+
+clean:
+	for i in $(GMSH_DIR) $(GMSH_DOC_DIR) $(GMSH_LIB_DIR) ; \
+        do (cd $$i && $(MAKE) clean); \
+        done
+	$(RM) $(RMFLAGS) $(GMSH_VERSION_FILE)
+
+depend:
+	for i in $(GMSH_DIR); \
+        do (cd $$i && $(MAKE) depend \
+           "CXX=$(CXX)" \
+           "CC=$(CC)" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=-I$(FLTK_DIR)" \
+        ); done
+
+nodepend:
+	for i in $(GMSH_DIR) ; do \
+          (cd $$i && (sed '/^# DO NOT DELETE THIS LINE/q' Makefile) > Makefile.new \
+          && cp Makefile Makefile.bak \
+          && cp Makefile.new Makefile \
+          && $(RM) $(RMFLAGS) Makefile.new); \
+        done 
+
+tag:
+	$(RM) $(RMFLAGS) $(GMSH_VERSION_FILE)
+	echo "#define GMSH_MAJOR_VERSION $(GMSH_MAJOR_VERSION)" >  $(GMSH_VERSION_FILE)
+	echo "#define GMSH_MINOR_VERSION $(GMSH_MINOR_VERSION)" >> $(GMSH_VERSION_FILE)
+	echo "#define GMSH_PATCH_VERSION $(GMSH_PATCH_VERSION)" >> $(GMSH_VERSION_FILE)
+	echo "#define GMSH_VERSION  ((double)GMSH_MAJOR_VERSION + \\" >> $(GMSH_VERSION_FILE)
+	echo "                0.01 * (double)GMSH_MINOR_VERSION + \\" >> $(GMSH_VERSION_FILE)
+	echo "              0.0001 * (double)GMSH_PATCH_VERSION)"     >> $(GMSH_VERSION_FILE)
+	echo "#define GMSH_DATE     \"`date`\""      >> $(GMSH_VERSION_FILE)
+	echo "#define GMSH_HOST     \"`hostname`\""  >> $(GMSH_VERSION_FILE)
+	echo "#define GMSH_PACKAGER \"`whoami`\""    >> $(GMSH_VERSION_FILE)
+	echo "#define GMSH_OS       \"`uname -sr`\"" >> $(GMSH_VERSION_FILE)
+
+initialtag:
+	@if [ ! -r $(GMSH_VERSION_FILE) ]; then \
+          $(MAKE) tag ; \
+        fi
+
+tags:
+	gtags
+	htags
+
+tgz:
+	if (test -f $(GMSH_ARCHIVE).tar.gz); then \
+	  mv -f $(GMSH_ARCHIVE).tar.gz $(GMSH_ARCHIVE).tar.gz~; \
+	fi
+	tar cvf $(GMSH_ARCHIVE).tar $(GMSH_SOURCES)
+	gzip $(GMSH_ARCHIVE).tar
+	chmod 640 $(GMSH_ARCHIVE).tar.gz
+
+minizip:
+	tar jcvf gmsh-`date "+%Y.%m.%d"`.tar.bz2 \
+        `ls Makefile */Makefile */*.[chyl] */*.[ch]pp */*.rc */*.res */*.ico`
+
+# Add doc/COPYING as soon as we are GPL'ed
+
+distrib:
+	rm -rf gmsh-$(GMSH_RELEASE)
+	mkdir gmsh-$(GMSH_RELEASE)
+	strip $(GMSH_BIN_DIR)/gmsh
+	cp $(GMSH_BIN_DIR)/gmsh gmsh-$(GMSH_RELEASE)
+	strip $(GMSH_BIN_DIR)/gmsh-batch
+	cp $(GMSH_BIN_DIR)/gmsh-batch gmsh-$(GMSH_RELEASE)
+	cp doc/gmsh.1 doc/FORMATS doc/VERSIONS doc/FAQ doc/CONTRIBUTORS gmsh-$(GMSH_RELEASE)
+	cp -R tutorial gmsh-$(GMSH_RELEASE)
+	cp -R demos gmsh-$(GMSH_RELEASE)
+	rm -rf gmsh-$(GMSH_RELEASE)/*/CVS
+	rm -f gmsh-$(GMSH_RELEASE)/*/*.msh
+	rm -f gmsh-$(GMSH_RELEASE)/*/*~
+	tar cvf gmsh-$(GMSH_RELEASE)-$(GMSH_UNAME).tar gmsh-$(GMSH_RELEASE)
+	gzip gmsh-$(GMSH_RELEASE)-$(GMSH_UNAME).tar
+	mv gmsh-$(GMSH_RELEASE)-$(GMSH_UNAME).tar.gz gmsh-$(GMSH_RELEASE)-$(GMSH_UNAME).tgz
+
+distrib-win:
+	strip $(GMSH_BIN_DIR)/gmsh.exe
+	cp $(GMSH_BIN_DIR)/gmsh.exe ../gmsh-distrib
+	cp doc/README.txt ../gmsh-distrib
+	cp doc/FORMATS ../gmsh-distrib/FORMATS.txt
+	cp doc/VERSIONS ../gmsh-distrib/VERSIONS.txt
+	cp doc/FAQ ../gmsh-distrib/FAQ.txt
+	cp doc/CONTRIBUTORS ../gmsh-distrib/CONTRIBUTORS.txt
+	cd utils && unix2dos ../../gmsh-distrib/*.txt
+	cp -R tutorial ../gmsh-distrib
+	cp -R demos ../gmsh-distrib
+	rm -rf ../gmsh-distrib/*/CVS
+	rm -f ../gmsh-distrib/*/*.msh
+	rm -f ../gmsh-distrib/*/*~
+	cd utils && unix2dos ../../gmsh-distrib/tutorial/* ../../gmsh-distrib/demos/*
+	cd ../gmsh-distrib && zip -r gmsh-$(GMSH_RELEASE)-Windows.zip *
+	mv ../gmsh-distrib/gmsh-$(GMSH_RELEASE)-Windows.zip .
+	rm -rf ../gmsh-distrib/*.txt
+	rm -rf ../gmsh-distrib/tutorial
+	rm -rf ../gmsh-distrib/demos
+
+distrib-mac:
+	rm -rf gmsh-$(GMSH_RELEASE)
+	mkdir gmsh-$(GMSH_RELEASE)
+	mkdir gmsh-$(GMSH_RELEASE)/Gmsh.app
+	mkdir gmsh-$(GMSH_RELEASE)/Gmsh.app/Contents
+	mkdir gmsh-$(GMSH_RELEASE)/Gmsh.app/Contents/Resources
+	mkdir gmsh-$(GMSH_RELEASE)/Gmsh.app/Contents/MacOS
+	echo "APPLGMSH" > gmsh-$(GMSH_RELEASE)/Gmsh.app/Contents/PkgInfo 
+	echo -e "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"\
+        "<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\""\
+                              " \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n"\
+        "<plist version=\"1.0\">\n"\
+        "  <dict>\n"\
+        "    <key>CFBundleName</key><string>Gmsh</string>\n"\
+        "    <key>CFBundleExecutable</key><string>Gmsh</string>\n"\
+        "    <key>CFBundlePackageType</key><string>APPL</string>\n"\
+        "    <key>CFBundleVersion</key><string>$(GMSH_RELEASE)</string>\n"\
+        "    <key>CFBundleShortVersionString</key><string>$(GMSH_RELEASE)</string>\n"\
+        "    <key>CFBundleIconFile</key><string>gmsh.icns</string>\n"\
+        "    <key>CFBundleSignature</key><string>GMSH</string>\n"\
+        "    <key>CFBundleGetInfoString</key><string>Gmsh $(GMSH_RELEASE),"\
+              "(c) C. Geuzaine and J.-F. Remacle, 1997-2003</string>\n"\
+        "    <key>CFBundleIdentifier</key><string>org.geuz.Gmsh</string>\n"\
+        "    <key>NSHelpFile</key><string>tutorial.html</string>\n"\
+        "  </dict>\n"\
+        "</plist>" > gmsh-$(GMSH_RELEASE)/Gmsh.app/Contents/Info.plist
+	strip $(GMSH_BIN_DIR)/gmsh
+	cp $(GMSH_BIN_DIR)/gmsh gmsh-$(GMSH_RELEASE)/Gmsh.app/Contents/MacOS/Gmsh
+	cp Fltk/MacIcons.icns gmsh-$(GMSH_RELEASE)/Gmsh.app/Contents/Resources/gmsh.icns
+	cp tutorial/tutorial.html gmsh-$(GMSH_RELEASE)/Gmsh.app/Contents/Resources
+	cp -R doc/gmsh.1 tutorial demos gmsh-$(GMSH_RELEASE)
+	cp doc/FORMATS gmsh-$(GMSH_RELEASE)/FORMATS.txt
+	cp doc/VERSIONS gmsh-$(GMSH_RELEASE)/VERSIONS.txt
+	cp doc/FAQ gmsh-$(GMSH_RELEASE)/FAQ.txt
+	cp doc/CONTRIBUTORS gmsh-$(GMSH_RELEASE)/CONTRIBUTORS.txt
+	rm -rf gmsh-$(GMSH_RELEASE)/*/CVS\
+               gmsh-$(GMSH_RELEASE)/*/*~\
+               gmsh-$(GMSH_RELEASE)/*/*.msh
+	tar zcvf gmsh-$(GMSH_RELEASE)-MacOSX.tgz gmsh-$(GMSH_RELEASE)
+
+dem:
+	gtar zcvf gmsh-demos.tgz $(GMSH_DEMO_DIR)
+	gtar zcvf gmsh-tutorial.tgz $(GMSH_TUTORIAL_DIR)
+
+# ----------------------------------------------------------------------
+# Black Box
+# ----------------------------------------------------------------------
+
+bb: initialtag
+	@for i in $(GMSH_BOX_DIR); do (cd $$i && $(MAKE) \
+           "CXX=$(CXX)" \
+           "CC=$(CC)" \
+           "OPT_FLAGS=$(FLAGS)" \
+           "OS_FLAGS=" \
+           "VERSION_FLAGS=-D_BLACKBOX" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=" \
+        ); done
+	$(CXX) -o $(GMSH_BIN_DIR)/gmsh-bb $(GMSH_BOX_LIB) -lm
+
+bb-parallel: initialtag
+	@for i in $(GMSH_BOX_DIR); do (cd $$i && $(MAKE) \
+           "CXX=mpiCC" \
+           "CC=mpicc" \
+           "OPT_FLAGS=-O3" \
+           "OS_FLAGS=" \
+           "VERSION_FLAGS=-D_BLACKBOX -DPARALLEL" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=" \
+        ); done
+	mpiCC -o $(GMSH_BIN_DIR)/gmsh-bb $(GMSH_BOX_LIB) -lm
+
+bb-mingw: initialtag
+	@for i in $(GMSH_BOX_DIR) ; do (cd $$i && $(MAKE) \
+           "CXX=g++" \
+           "CC=gcc" \
+           "OPT_FLAGS=-O3" \
+           "OS_FLAGS=-mno-cygwin -I/mingw/include" \
+           "VERSION_FLAGS=-D_BLACKBOX" \
+           "GL_INCLUDE=" \
+           "GUI_INCLUDE=" \
+        ); done
+	g++ -o $(GMSH_BIN_DIR)/gmsh.exe -mno-cygwin -L/mingw/lib $(GMSH_BOX_LIB) -lm