diff --git a/README b/README index cb5f23e417b98adffe62197ba80354910ea5f84e..0174c3291c60763f846808f93e53490f06024f2e 100644 --- a/README +++ b/README @@ -1,33 +1,28 @@ + This is Gmsh, an automatic three-dimensional finite element mesh generator, primarily Delaunay, with built-in pre- and post-processing facilities. +To install Gmsh, type -./configure --with-fltk-prefix=/path/to/fltk +./configure --with-fltk-prefix=/path/to/fltk-1.1.x make make install -This requires FLTK 1.1, GSL and OPENGL to be installed... If not in -default locations, use the --with-...-prefix. You can also ... -Also possible to define FLTK_DIR, GSL_DIR, GL_DIR +This requires the Fast Light Tool Kit (FLTK, http://www.fltk.org) +version 1.1 or above, the GNU Scientific Library (GSL, +http://sources.redhat.com/gsl/) and OpenGL (for a free implementation, +see http://www.mesa3d.org) to be installed on your system. If not in +default locations, you can either use the --with-fltk-prefix, +--with-gsl-prefix and --with-gl-prefix configure options, or you can +set the environment variables FLTK_DIR, GSL_DIR and GL_DIR. -To build a non-graphical version... +To install a non-graphical version of Gmsh (that does not require +FLTK nor OpenGL), type ./configure --disable-gui - - - - - - -Gmsh is free software. See the file doc/COPYING for copying -permission. Parts of Gmsh are distributed with additional license -requirements. Check individual files for more information. Most -notably, if you incorporate the Triangle/ library, Gmsh can only be -redistributed if no compensation is received. - -Type 'make' to build Gmsh. This requires FLTK version 1.1.x to be -installed in $(HOME)/SOURCES/fltk-1.1 +make +make install See the doc/ and tutorial/ directories for documentation. diff --git a/configure b/configure index bce9fd8fe2f149de28e89f91b71f3f344bff6031..04db300256d0265d7b6cf4eb7a8d105e52b79880 100755 --- a/configure +++ b/configure @@ -760,6 +760,10 @@ ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP +ac_env_CXXCPP_set=${CXXCPP+set} +ac_env_CXXCPP_value=$CXXCPP +ac_cv_env_CXXCPP_set=${CXXCPP+set} +ac_cv_env_CXXCPP_value=$CXXCPP # # Report the --help message. @@ -856,6 +860,7 @@ Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags CPP C preprocessor + CXXCPP C++ preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -1256,6 +1261,13 @@ if test "x${UNAME}" = "xIRIX64"; then fi +ac_ext=cc +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 + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -2008,11 +2020,11 @@ else cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext -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' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +ac_ext=cc +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 ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' @@ -2332,11 +2344,11 @@ if test -n "$ac_declaration"; then echo '#endif' >>confdefs.h 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' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +ac_ext=cc +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 ac_ext=c @@ -2533,11 +2545,11 @@ echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;} { (exit 1); exit 1; }; } 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' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +ac_ext=cc +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 if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. @@ -2673,6 +2685,18 @@ GMSH_DIRS="Common DataStr Geo Mesh Numeric Parallel Parser Plugin" if test "x$enable_gui" != "xno"; then GMSH_DIRS="${GMSH_DIRS} Graphics Fltk jpeg" GMSH_LIBS="-Llib -lGmshFltk -lGmshParser -lGmshGraphics -lGmshMesh -lGmshGeo -lGmshNumeric -lGmshCommon -lGmshDataStr -lGmshJpeg -lGmshPlugin -lGmshParallel" + +# dnl We should check for FLTK like this: +# AC_PATH_PROG(FLTKCONFIG,fltk-config) +# +# if test "x$FLTKCONFIG" = x; then +# AC_MSG_ERROR([Sorry, flphoto requires FLTK 1.1.x.]) +# else +# CFLAGS="`$FLTKCONFIG --cflags` $CFLAGS" +# CXXFLAGS="`$FLTKCONFIG --cflags` $CXXFLAGS" +# LIBS="`$FLTKCONFIG --use-images --ldflags` $LIBS" +# fi + VERSION_FLAGS="-D_FLTK" if test "x${FLTK_PREFIX}" != "x"; then FLTK_LIB_PREFIX="-L${FLTK_PREFIX}/lib" @@ -2755,6 +2779,202 @@ case "$UNAME" in *) if test "x$enable_gui" != "xno"; then +ac_ext=cc +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 +echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 +echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 +if test -z "$CXXCPP"; then + if test "${ac_cv_prog_CXXCPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include <assert.h> + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + egrep -v '^ *\+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include <ac_nonexistent.h> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + egrep -v '^ *\+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +echo "$as_me:$LINENO: result: $CXXCPP" >&5 +echo "${ECHO_T}$CXXCPP" >&6 +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include <assert.h> + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + egrep -v '^ *\+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include <ac_nonexistent.h> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + egrep -v '^ *\+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5 +echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=cc +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 + echo "$as_me:$LINENO: checking for X" >&5 echo $ECHO_N "checking for X... $ECHO_C" >&6 @@ -2867,7 +3087,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi @@ -3956,7 +4176,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi @@ -4187,7 +4407,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi @@ -4413,7 +4633,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi @@ -4732,7 +4952,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi @@ -5381,6 +5601,7 @@ s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@AR@,$AR,;t t s,@VERSION_FLAGS@,$VERSION_FLAGS,;t t s,@GUI_INCLUDE@,$GUI_INCLUDE,;t t +s,@CXXCPP@,$CXXCPP,;t t s,@X_CFLAGS@,$X_CFLAGS,;t t s,@X_PRE_LIBS@,$X_PRE_LIBS,;t t s,@X_LIBS@,$X_LIBS,;t t diff --git a/configure.in b/configure.in index 215ec93940d469dba4dcf1330512783dcc273147..9b57f7838d18a39b2e2571fd485bcc460044a914 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,4 @@ -dnl "$Id: configure.in,v 1.3 2003-02-11 08:54:55 geuzaine Exp $" +dnl "$Id: configure.in,v 1.4 2003-02-11 17:55:23 geuzaine Exp $" dnl dnl Machine independent configuration script for Gmsh. dnl @@ -61,6 +61,9 @@ if test "x${UNAME}" = "xIRIX64"; then fi AC_SUBST(UNAME) +dnl Use C++ for configure tests +AC_LANG(C++) + dnl Check for default compilers AC_PROG_CC AC_PROG_CXX @@ -86,6 +89,18 @@ dnl Choose blackbox or GUI version if test "x$enable_gui" != "xno"; then GMSH_DIRS="${GMSH_DIRS} Graphics Fltk jpeg" GMSH_LIBS="-Llib -lGmshFltk -lGmshParser -lGmshGraphics -lGmshMesh -lGmshGeo -lGmshNumeric -lGmshCommon -lGmshDataStr -lGmshJpeg -lGmshPlugin -lGmshParallel" + +# dnl We should check for FLTK like this: +# AC_PATH_PROG(FLTKCONFIG,fltk-config) +# +# if test "x$FLTKCONFIG" = x; then +# AC_MSG_ERROR([Sorry, flphoto requires FLTK 1.1.x.]) +# else +# CFLAGS="`$FLTKCONFIG --cflags` $CFLAGS" +# CXXFLAGS="`$FLTKCONFIG --cflags` $CXXFLAGS" +# LIBS="`$FLTKCONFIG --use-images --ldflags` $LIBS" +# fi + VERSION_FLAGS="-D_FLTK" if test "x${FLTK_PREFIX}" != "x"; then FLTK_LIB_PREFIX="-L${FLTK_PREFIX}/lib" diff --git a/doc/README.cvs b/doc/README.cvs index 04d19fa2aad315453931d2464fe6506ad8ac5bd1..863d51814045c589e609e023baa4198d822ed0a5 100644 --- a/doc/README.cvs +++ b/doc/README.cvs @@ -1,22 +1,20 @@ -To download the latset full source by CVS, type +0) Set the variable CVS_RHS to ssh ('export CVS_RHS=ssh' with bash, or + 'setenv CVS_RHS ssh' with tcsh) + +1) The first time you want to download the latest full source by + CVS, type: -cvs -d :pserver:YOUR_NAME@MACHINE:CVSROOT COMMAND + cvs -d username@cvs.geuz.org:/cvsroot ckeckout gmsh -where YOUR_NAME is your username on MACHINE, and where COMMAND is -first 'login' (you will be prompted for a password), and then -'checkout gmsh'. When this is done, you can use 'logout' to exit. + where username is your login on cvs.geuz.org -To update your local tree to the latest version in the current branch, -type +2) To update your local version to the latest and greatest, go in the + gmsh directory and type: + + cvs update -dPA -cvs update -dP - -To update to the very latest code available, type - -cvs update -dPA - -To submit your changes, type - -cvs commit +3) To commit your changes to the central repository, go in the gmsh + directory and type: + cvs commit diff --git a/doc/README.leaks b/doc/README.leaks index 5f138056b35b93c84017dcd7190f866cd883d95c..1e197d2a04080d003b97e8a049d9fe42579c1413 100644 --- a/doc/README.leaks +++ b/doc/README.leaks @@ -1,6 +1,10 @@ * LIBNJAMD -export LD_PRELOAD=libnjamd.so + export LD_PRELOAD=libnjamd.so + kill -USR1 - kill -USR1 +* valgrind +* purify + +* memprof