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