From f239b970072a4a2628ea2cae9e9d6e20211c786a Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Mon, 29 Jan 2007 17:16:03 +0000 Subject: [PATCH] better configure for MED --- Common/CommandLine.cpp | 5 +- Fltk/Callbacks.cpp | 4 +- Geo/GModelIO_MED.cpp | 16 +++--- Geo/GModelIO_MED.h | 2 +- Geo/Makefile | 8 ++- configure | 127 ++++++++++++++++++++++++++++++++--------- configure.in | 77 ++++++++++++++----------- doc/CREDITS | 7 ++- doc/TODO | 7 ++- 9 files changed, 176 insertions(+), 77 deletions(-) diff --git a/Common/CommandLine.cpp b/Common/CommandLine.cpp index 88853f1a62..ca9c9a1e91 100644 --- a/Common/CommandLine.cpp +++ b/Common/CommandLine.cpp @@ -1,4 +1,4 @@ -// $Id: CommandLine.cpp,v 1.92 2007-01-18 09:12:44 geuzaine Exp $ +// $Id: CommandLine.cpp,v 1.93 2007-01-29 17:16:02 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -160,6 +160,9 @@ char *Get_BuildOptions(void) #endif #if defined(HAVE_OCC) strcat(opt, "OCC "); +#endif +#if defined(HAVE_MED) + strcat(opt, "MED "); #endif first = 0; } diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp index fcdcdc35cc..ab78ea68bc 100644 --- a/Fltk/Callbacks.cpp +++ b/Fltk/Callbacks.cpp @@ -1,4 +1,4 @@ -// $Id: Callbacks.cpp,v 1.511 2007-01-29 14:52:57 geuzaine Exp $ +// $Id: Callbacks.cpp,v 1.512 2007-01-29 17:16:02 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -720,7 +720,7 @@ void file_save_as_cb(CALLBACK_ARGS) #if defined(HAVE_LIBCGNS) {"CGNS (*.cgns)", _save_cgns}, #endif -#if defined(HAVE_LIBMED) +#if defined(HAVE_MED) {"MED (*.med)", _save_med}, #endif {"Encapsulated PostScript (*.eps)", _save_eps}, diff --git a/Geo/GModelIO_MED.cpp b/Geo/GModelIO_MED.cpp index 30296cd579..963cc5f54b 100644 --- a/Geo/GModelIO_MED.cpp +++ b/Geo/GModelIO_MED.cpp @@ -1,4 +1,4 @@ -// $Id: GModelIO_MED.cpp,v 1.1 2007-01-29 14:52:57 geuzaine Exp $ +// $Id: GModelIO_MED.cpp,v 1.2 2007-01-29 17:16:02 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -19,19 +19,19 @@ // // Please report all bugs and problems to <gmsh@geuz.org>. -#include "GModel.h" -#include "MVertex.h" -#include "MEdge.h" -#include "Message.h" - -#if defined(HAVE_LIBMED) - #include <map> #include <string> #include <vector> #include <iostream> #include <sstream> + +#include "GModel.h" #include "GModelIO_MED.h" +#include "MVertex.h" +#include "MEdge.h" +#include "Message.h" + +#if defined(HAVE_MED) extern "C" { #include "med.h" diff --git a/Geo/GModelIO_MED.h b/Geo/GModelIO_MED.h index b7cd334163..b740806888 100644 --- a/Geo/GModelIO_MED.h +++ b/Geo/GModelIO_MED.h @@ -13,7 +13,7 @@ #include "GFace.h" #include "Message.h" -#if defined(HAVE_LIBMED) +#if defined(HAVE_MED) extern "C" { diff --git a/Geo/Makefile b/Geo/Makefile index cecdcdfb43..77f82a3031 100644 --- a/Geo/Makefile +++ b/Geo/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.126 2007-01-29 14:52:57 geuzaine Exp $ +# $Id: Makefile,v 1.127 2007-01-29 17:16:02 geuzaine Exp $ # # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle # @@ -210,6 +210,12 @@ GModelIO_CGNS.o: GModelIO_CGNS.cpp GModel.h GVertex.h GEntity.h Range.h \ MFace.h ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \ ExtrudeParams.h GFace.h GEdgeLoop.h Pair.h GRegion.h \ ../Common/SmoothNormals.h ../Common/Message.h MNeighbour.h +GModelIO_MED.o: GModelIO_MED.cpp GModel.h GVertex.h GEntity.h Range.h \ + SPoint3.h SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h \ + SPoint2.h GEdge.h SVector3.h MElement.h MEdge.h ../Common/Hash.h \ + MFace.h ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \ + ExtrudeParams.h GFace.h GEdgeLoop.h Pair.h GRegion.h \ + ../Common/SmoothNormals.h GModelIO_MED.h ../Common/Message.h ExtrudeParams.o: ExtrudeParams.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 \ diff --git a/configure b/configure index 5d02aecd1f..68f3749c72 100755 --- a/configure +++ b/configure @@ -3593,26 +3593,83 @@ fi fi fi - if test "x${ZLIB}" = "xyes"; then - if test "x${FL_ZLIB}" = "xyes"; then - FLAGS="-DHAVE_LIBZ ${FLAGS}" - else - 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} -I${ZLIB_PREFIX} -I${ZLIB_PREFIX}/include" - fi - fi - fi - else GMSH_DIRS="${GMSH_DIRS} Box" GMSH_LIBS="-Llib Box/Main.o -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo -lGmshPlugin" GMSH_LIBS="${GMSH_LIBS} -lGmshCommon -lGmshDataStr -lGmshNumeric -lGmshParallel" + ZLIB="" + if test "x$enable_zlib" != "xno"; then + if test "x${ZLIB_PREFIX}" != "x"; then + LDFLAGS="-L${ZLIB_PREFIX} -L${ZLIB_PREFIX}/lib ${LDFLAGS}" + fi + echo "$as_me:$LINENO: checking for main in -lz" >&5 +echo $ECHO_N "checking for main in -lz... $ECHO_C" >&6 +if test "${ac_cv_lib_z_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + +int +main () +{ +main (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_z_main=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_z_main=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_z_main" >&5 +echo "${ECHO_T}$ac_cv_lib_z_main" >&6 +if test $ac_cv_lib_z_main = yes; then + ZLIB="yes" +else + ZLIB="no" +fi + + fi + fi @@ -4619,11 +4676,12 @@ fi fi fi -if test "x$enable_med" != "xno"; then - if test "x${HDF5_PREFIX}" != "x"; then - LDFLAGS="-L${HDF5_PREFIX}/lib ${LDFLAGS}" - fi - echo "$as_me:$LINENO: checking for main in -lhdf5" >&5 +if test "x${ZLIB}" = "xyes"; then + if test "x$enable_med" != "xno"; then + if test "x${HDF5_PREFIX}" != "x"; then + LDFLAGS="-L${HDF5_PREFIX}/lib ${LDFLAGS}" + fi + echo "$as_me:$LINENO: checking for main in -lhdf5" >&5 echo $ECHO_N "checking for main in -lhdf5... $ECHO_C" >&6 if test "${ac_cv_lib_hdf5_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -4687,12 +4745,13 @@ else HDF5="no" fi - if test "x${HDF5}" = "xyes"; then - if test "x${HDF5_PREFIX}" = "x"; then - GMSH_LIBS="${GMSH_LIBS} -lhdf5" - else - GMSH_LIBS="${GMSH_LIBS} -L${HDF5_PREFIX}/lib -lhdf5" - FLAGS="${FLAGS} -I${HDF5_PREFIX}/include" + if test "x${HDF5}" = "xyes"; then + if test "x${HDF5_PREFIX}" = "x"; then + GMSH_LIBS="${GMSH_LIBS} -lhdf5" + else + GMSH_LIBS="${GMSH_LIBS} -L${HDF5_PREFIX}/lib -lhdf5" + FLAGS="${FLAGS} -I${HDF5_PREFIX}/include" + fi fi fi fi @@ -4769,15 +4828,29 @@ fi if test "x${MED}" = "xyes"; then if test "x${MED_PREFIX}" = "x"; then GMSH_LIBS="${GMSH_LIBS} -lmed" - FLAGS="${FLAGS} -DHAVE_LIBMED" + FLAGS="${FLAGS} -DHAVE_MED" else GMSH_LIBS="${GMSH_LIBS} -L${MED_PREFIX}/lib -lmed" - FLAGS="${FLAGS} -DHAVE_LIBMED -I${MED_PREFIX}/include" + FLAGS="${FLAGS} -DHAVE_MED -I${MED_PREFIX}/include" fi fi fi fi +if test "x${ZLIB}" = "xyes"; then + if test "x${FL_ZLIB}" = "xyes"; then + FLAGS="-DHAVE_LIBZ ${FLAGS}" + else + 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} -I${ZLIB_PREFIX} -I${ZLIB_PREFIX}/include" + fi + fi +fi + if test "x$enable_parallel" = "xyes"; then FLAGS="-DHAVE_PARALLEL ${FLAGS}" fi diff --git a/configure.in b/configure.in index 9fa6e6d3c6..f471caffef 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,4 @@ -dnl $Id: configure.in,v 1.118 2007-01-29 14:52:57 geuzaine Exp $ +dnl $Id: configure.in,v 1.119 2007-01-29 17:16:01 geuzaine Exp $ dnl dnl Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle dnl @@ -281,29 +281,21 @@ if test "x$enable_gui" != "xno"; then fi fi - dnl Complete zlib link line (zlib must be linked in after libpng) - 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="-DHAVE_LIBZ ${FLAGS}" - else - 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} -I${ZLIB_PREFIX} -I${ZLIB_PREFIX}/include" - fi - fi - fi - else GMSH_DIRS="${GMSH_DIRS} Box" GMSH_LIBS="-Llib Box/Main.o -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo -lGmshPlugin" GMSH_LIBS="${GMSH_LIBS} -lGmshCommon -lGmshDataStr -lGmshNumeric -lGmshParallel" + dnl Check for libz + ZLIB="" + if test "x$enable_zlib" != "xno"; then + if test "x${ZLIB_PREFIX}" != "x"; then + LDFLAGS="-L${ZLIB_PREFIX} -L${ZLIB_PREFIX}/lib ${LDFLAGS}" + fi + AC_CHECK_LIB(z,main,ZLIB="yes",ZLIB="no") + fi + fi dnl Check for standard math library @@ -592,23 +584,25 @@ if test "x$enable_occ" = "xyes"; then fi fi -dnl Check for HDF5 (required by MED) -if test "x$enable_med" != "xno"; then - if test "x${HDF5_PREFIX}" != "x"; then - LDFLAGS="-L${HDF5_PREFIX}/lib ${LDFLAGS}" - fi - AC_CHECK_LIB(hdf5,main,HDF5="yes",HDF5="no") - if test "x${HDF5}" = "xyes"; then - if test "x${HDF5_PREFIX}" = "x"; then - GMSH_LIBS="${GMSH_LIBS} -lhdf5" - else - GMSH_LIBS="${GMSH_LIBS} -L${HDF5_PREFIX}/lib -lhdf5" - FLAGS="${FLAGS} -I${HDF5_PREFIX}/include" +dnl Check for HDF5 (required by MED, needs zlib) +if test "x${ZLIB}" = "xyes"; then + if test "x$enable_med" != "xno"; then + if test "x${HDF5_PREFIX}" != "x"; then + LDFLAGS="-L${HDF5_PREFIX}/lib ${LDFLAGS}" + fi + AC_CHECK_LIB(hdf5,main,HDF5="yes",HDF5="no") + if test "x${HDF5}" = "xyes"; then + if test "x${HDF5_PREFIX}" = "x"; then + GMSH_LIBS="${GMSH_LIBS} -lhdf5" + else + GMSH_LIBS="${GMSH_LIBS} -L${HDF5_PREFIX}/lib -lhdf5" + FLAGS="${FLAGS} -I${HDF5_PREFIX}/include" + fi fi fi fi -dnl Check for MED +dnl Check for MED (needs hdf5) if test "x${HDF5}" = "xyes"; then if test "x$enable_med" != "xno"; then if test "x${MED_PREFIX}" != "x"; then @@ -618,15 +612,32 @@ 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} -DHAVE_LIBMED" + FLAGS="${FLAGS} -DHAVE_MED" else GMSH_LIBS="${GMSH_LIBS} -L${MED_PREFIX}/lib -lmed" - FLAGS="${FLAGS} -DHAVE_LIBMED -I${MED_PREFIX}/include" + FLAGS="${FLAGS} -DHAVE_MED -I${MED_PREFIX}/include" fi fi fi fi +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="-DHAVE_LIBZ ${FLAGS}" + else + 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} -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="-DHAVE_PARALLEL ${FLAGS}" diff --git a/doc/CREDITS b/doc/CREDITS index a782b64205..9981efabb6 100644 --- a/doc/CREDITS +++ b/doc/CREDITS @@ -1,4 +1,4 @@ -$Id: CREDITS,v 1.42 2007-01-18 09:12:45 geuzaine Exp $ +$Id: CREDITS,v 1.43 2007-01-29 17:16:03 geuzaine Exp $ Gmsh is copyright (C) 1997-2007 @@ -12,8 +12,9 @@ $Id: CREDITS,v 1.42 2007-01-18 09:12:45 geuzaine Exp $ Major code contributions to Gmsh have been provided by Nicolas Tardieu <ntardieu at giref.ulaval.ca> (help with the GSL integration, new "STL -to elementary geometry" interface, Netgen integration) and Stephen -Guzik <sguzik at utias.utoronto.ca> (CGNS integration). +to elementary geometry" interface, Netgen integration), Stephen Guzik +<sguzik at utias.utoronto.ca> (CGNS integration) and Pascale Noyret +(MED integration). Other code contributors include: David Colignon <David.Colignon at ulg.ac.be> for new colormaps; Patrick Dular <patrick.dular at diff --git a/doc/TODO b/doc/TODO index 2365135185..0d6cc4f76f 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,4 +1,4 @@ -$Id: TODO,v 1.41 2007-01-26 17:52:26 geuzaine Exp $ +$Id: TODO,v 1.42 2007-01-29 17:16:03 geuzaine Exp $ ******************************************************************** @@ -6,6 +6,11 @@ introduce Right/Left/Alternate for extruded meshes ******************************************************************** +make sure to check for zlib in configure for med (even in non-gui +case) + +******************************************************************** + fix second order mesh for periodic surfaces ******************************************************************** -- GitLab