[Gmsh] Gmsh 2.3.0 / FourierModel / --enable-fm

David Colignon David.Colignon at ulg.ac.be
Wed Jan 28 09:28:46 CET 2009


Hi Vincent,

as a temporary workaround, after the ./configure step, you can edit by hand the "variables" file...

Cheers,

Dave

-- 
David Colignon, Ph.D.
Collaborateur Logistique du F.R.S.-FNRS
CÉCI - Consortium des Équipements de Calcul Intensif
ACE - Applied & Computational Electromagnetics
Sart-Tilman B28
Université de Liège
4000 Liège - BELGIQUE
Tél: +32 (0)4 366 37 32
Fax: +32 (0)4 366 29 10
WWW:    http://hpc.montefiore.ulg.ac.be/
Agenda: http://www.google.com/calendar/embed?src=david.colignon%40gmail.com



Vincent Letocart wrote:
> On 27 January 2009, at 14:03:24 (Epoch+1233061404 sec), Vincent Letocart wrote : 
>> On 26 January 2009, at 18:55:00 (Epoch+1232992500 sec), Christophe Geuzaine wrote : 
>>> Vincent Letocart wrote:
>>>> Hi everyone
>>>>
>>>> I'm currently trying to compile gmsh 2.3.0 but I'm hitting
>>>> trubbles with flag --enable-fm.
>>>>
>>>> It is related to a library called FourierModel but I can't
>>>> find any source code in the tarball related to this option.
>>> Hi Vincent - that's normal: the FourierModel library is not publicly 
>>> available.
>> This is why. OK.
>>
>> Can you also explain why I then can't compile ?
>>
>> I use the configure script like this to get it compiled in my home directory 
>> (med, fltk and gsl are already intalled), compilers are from Intel (CC=icc, 
>> CXX=icpc)
>>
>> ./configure CPPFLAGS="-DTRUE=1 -DFALSE=0 -I${BORISPREFIX}/include64" CFLAGS="-I${BORISPREFIX}/include64" CXXFLAGS="-I${BORISPREFIX}/include64" LDFLAGS="-L${BORISPREFIX}/lib64 -lmkl -liomp5 -lpthread" --prefix=${BORISPREFIX} --libdir=${BORISPREFIX}/lib64 GMSH_LIBS='-lmkl -liomp5 -lpthread' --enable-hdf5 --with-hdf5-prefix=${BORISPREFIX}/hdf5-1.6.5-64 --enable-tree-browser --enable-med --with-med-prefix=${BORISPREFIX} --disable-fm --enable-shared --disable-chaco --disable-gui
>>
>> A while after the 'make', I got a tremendous amout of C++ insults :-)
>> Investigating shows a strange behaviour as follow in that excerpt from the produced output:
>>
>>
>> == begin ==
>> icpc -I/home/vincentl/.usr/local/include64 -I/home/vincentl/.usr/local/include -I/home/vincentl/.usr/local/hdf5-1.6.5-64/include -I../Numeric -I../Common -I../Geo -I../Mesh -I../Post -I../contrib/Tetgen -I../contrib/Netgen -I../contrib/Netgen/libsrc/include -I../contrib/Netgen/libsrc/interface -I../contrib/ANN/include -I../contrib/Metis -I../contrib/MathEval -I../contrib/gmm  -c qualityMeasures.cpp
>> icpc -I/home/vincentl/.usr/local/include64 -I/home/vincentl/.usr/local/include -I/home/vincentl/.usr/local/hdf5-1.6.5-64/include -I../Numeric -I../Common -I../Geo -I../Mesh -I../Post -I../contrib/Tetgen -I../contrib/Netgen -I../contrib/Netgen/libsrc/include -I../contrib/Netgen/libsrc/interface -I../contrib/ANN/include -I../contrib/Metis -I../contrib/MathEval -I../contrib/gmm  -c BoundaryLayers.cpp
>> ../Geo/GVertex.h(19): warning #654: overloaded virtual function "GEntity::getNumMeshElements" is only partially overridden in class "GVertex"
>>   class GVertex : public GEntity 
>>         ^
>>
>> icpc -I/home/vincentl/.usr/local/include -I/home/vincentl/.usr/local/hdf5-1.6.5-64/include -I../Numeric -I../Common -I../Geo -I../Mesh -I../Post -I../contrib/Tetgen -I../contrib/Netgen -I../contrib/Netgen/libsrc/include -I../contrib/Netgen/libsrc/interface -I../contrib/ANN/include -I../contrib/Metis -I../contrib/MathEval -I../contrib/gmm  -c BDS.cpp
>> ../Numeric/GmshMatrix.h(272): catastrophic error: could not open source file "gsl/gsl_linalg.h"
>>   #include <gsl/gsl_linalg.h>
>>                              ^
>> == end ==
>>
>>
>> The question is :
>>
>> As I generated 64-bits binaries for gsl 1.12 and put the libs and include 
>> files in (respectively) .../lib64 and .../include64 dirs, I also tried in many
>> ways to tell it through the configure script, but those icpc actions just
>> CUT OFF the "-I/home/vincentl/.usr/local/include64" directive I added...
>>
>> Did I miss another detail somewhere ?
>>
>> Thanks by advance
> 
> 
> I'am still trying... and I have another question
> 
> While the configure scripts tells the LIBS variable may be used:
> 
> 	Some influential environment variables:
> 	  CC          C compiler command
> 	  CFLAGS      C compiler flags
> 	  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
> 	              nonstandard directory <lib dir>
> 	  LIBS        libraries to pass to the linker, e.g. -l<library>
> 	  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
> 	              you have headers in a nonstandard directory <include dir>
> 	  CXX         C++ compiler command
> 	  CXXFLAGS    C++ compiler flags
> 	  CPP         C preprocessor
> 	  F77         Fortran 77 compiler command
> 	  FFLAGS      Fortran 77 compiler flags
> 	  CXXCPP      C++ preprocessor
> 
> and I use it:
> 
> 	./configure CXXFLAGS="-I${BORISPREFIX}/hdf5-1.6.5-64/include64 -O3 -mp -openmp" 
> 	LDFLAGS="-L${BORISPREFIX}/lib64 -L${BORISPREFIX}/hdf5-1.6.5-64/lib64" 
> 	LIBS="-lmkl -liomp5 -lpthread" --prefix=${BORISPREFIX} --disable-gui --disable-tetgen 
> 	--enable-med --enable-gsl
> 
> The compile process stops at the very last link step without using those libraries coming
> from the Intel Compiler :
> 
> 
> 	icpc -I/home/vincentl/.usr/local/hdf5-1.6.5-64/include64 -O3 -mp -openmp -o bin/gmsh -Llib Common/Main.o -lGmshCommon -lGmshMesh -lGmshGeo -lGmshPost -lGmshPlugin -lGmshParser -lGmshCommon -lGmshNumeric -lGmshANN -lGmshChaco -lGmshMetis -lGmshNetgen -lGmshMathEval -lmed -lhdf5 -lz -lgsl -lgslcblas -lm
> 	Common/Main.o: In function `main':
> 	Main.cpp:(.text+0xb4): undefined reference to `GModel::GModel(std::string)'
> 	Main.cpp:(.text+0xfa): undefined reference to `GmshInitialize(int, char**)'
> 	Main.cpp:(.text+0x105): undefined reference to `CTX'
> 	Main.cpp:(.text+0x10b): undefined reference to `CTX'
> 	Main.cpp:(.text+0x110): undefined reference to `GmshBatch()'
> 	Main.cpp:(.text+0x115): undefined reference to `GmshFinalize()'
> 	Main.cpp:(.text+0x11c): undefined reference to `Msg::Exit(int)'
> 	Main.cpp:(.text+0x19b): undefined reference to `CTX'
> 	Main.cpp:(.text+0x1a8): undefined reference to `Print_Usage(char const*)'
> 	make: *** [link] Error 1
> 
> Again: what did I do wrong ?
> 
> Vincent.
> 
>