> Message: 6
> Date: Tue, 24 Mar 2009 14:25:06 -0400
> From: David Knezevic <[email protected]>
> Subject: Re: [Libmesh-devel] FW: Upgrade for SLEPc interface in libMesh
>
>
> I did run across one issue in configuring libmesh with slepc-3.0.0
> though. For me, after configuring, SLEPC_INCLUDE was set to:
>
> "-I/home/dave/slepc-3.0.0-p2
> -I/home/dave/slepc-3.0.0-p2/linux-gnu-c-debug/include
> -I/home/dave/slepc-3.0.0-p2/include"
>
> where "linux-gnu-c-debug" is my PETSC_ARCH. I had to remove the first
> two of these include lines to get it to compile properly.
>
> - Dave


I have the same problem. Here's the output after configure:

pvie...@an9:~/libmesh_svn_3.0/libmesh$ make all
Compiling C++ (in optimized mode) src/base/dof_map.C...
Compiling C++ (in optimized mode) src/base/dof_map_constraints.C...
Compiling C++ (in optimized mode) src/base/dof_object.C...
Compiling C++ (in optimized mode) src/base/libmesh.C...
src/base/libmesh.C:47:22: error: slepc.h: No such file or directory
src/base/libmesh.C: In function âvoid libMesh::_init(int&, char**&,
ompi_communicator_t*)â:
src/base/libmesh.C:186: error: âSlepcInitializeâ was not declared in this scope
src/base/libmesh.C: In function âint libMesh::_close()â:
src/base/libmesh.C:273: error: âSlepcFinalizeâ was not declared in this scope
make: *** [src/base/libmesh.x86_64-unknown-linux-gnu.opt.o] Error 1
pvie...@an9:~/libmesh_svn_3.0/libmesh$



In Make.common.in we have (at line 396):

 libmesh_INCLUDE += "\${SLEPC_INCLUDE}"


SLEPC_INCLUDE is a variable defined in the file
${SLEPC_DIR}/conf/slepc_common_variables in this way:

SLEPC_INCLUDE       = -I${SLEPC_DIR}
-I${SLEPC_DIR}/${PETSC_ARCH}/include -I${SLEPC_DIR}/include


But it looks like the SLEPC_INCLUDE variable isn't being added to
libmesh_INCLUDE (because of the spaces?). If we edit the line 396 of
Make.common.in to:

libmesh_INCLUDE += "${SLEPC_INCLUDE}"

the problem remains (I thought it was a typo but I don't have
experience with these configurations files).

I was able to compile libMesh by manually adding the directories in
SLEPC_INCLUDE to libmesh_INCLUDE (in Make.common, after ./configure):

#    libmesh_INCLUDE += "\${SLEPC_INCLUDE}"
libmesh_INCLUDE += -I${SLEPC_DIR}
libmesh_INCLUDE += -I${SLEPC_DIR}/${PETSC_ARCH}/include
libmesh_INCLUDE += -I${SLEPC_DIR}/include

However only the directory ${SLEPC_DIR}/include seems to be useful for
libMesh (it's where slepc.h is located), we can ignore the first two.
So it basically should be as before (revision 3320), that is, line 396
of Make.common.in should be:

    libmesh_INCLUDE += -I$(SLEPC_DIR)/include

instead of:

   libmesh_INCLUDE += "\${SLEPC_INCLUDE}"


See the patch in the attachment. In fact, with the current trunk
version we can't compile SLEPc 3.0 neither 2.3.3 (because the line
libmesh_INCLUDE += "\${SLEPC_INCLUDE}" won't work for 2.3.3 as well).


By the way, this part of Make.common.in (lines 381-416) seems to be a
little messed up to me. Here are some comments:

-lines 386-394


Paulo

------------------------------------------------------------------------------
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to