← Back to team overview

dolfin team mailing list archive

Re: Dolfin 0.6.1 compilation problem with petsc from debian/sid

 

LUK ShunTim wrote:
> Anders Logg wrote:
>> On Thu, May 11, 2006 at 05:38:11PM +0800, LUK ShunTim wrote:
>>> Mandus wrote:
>>>
>>> [snipped]
>>>
>>>> The ./configure in  dolfin needs the makefiles from PETSc to execute
>>>> things like"
>>>> 'make -s -C $PETSC_DIR getincludedirs....'
>>>>
>>>> So, unfortunately the debian package of petsc and dolfin from source
>>>> does not work very well together!
>>>>
>>>>
>>> Yes, it (still) seems so. :-(
>>>
>>> Please don't bother any further and again thanks very much,
>>> ST
>> If you're interested in making it work, you can check what the Debian
>> package provides instead. Otherwise I'll put it on the TODO list and
>> get back to it when I get a chance. It should be fairly easy to fix,
>> it's just a matter of someone wanting to spend the 15 minutes on
>> fixing it.
>>
>> DOLFIN needs to get the include and link variables somehow from
>> PETSc. Does it provide something like pkg-config?
>>
>> /Anders
>>
> 
> OK, I'll have a go at it and report back.
> 
> ST
> --

1. Copying petscarch to configarch in /usr/lib/petsc/bin
2. Applying the attached patch to configure. It now eliminates the need
to use petsc's main makefile.
3. Run configure with PETSC_DIR set to /usr/lib/petsc

As I know very little about the autoconf stuff, I just patch configure.
Please let me know if I make any mistakes. I hope to learn more.

Regards,
ST
-- 

--- configure	2006-05-11 20:40:15.000000000 +0800
+++ configure.patched	2006-05-11 20:39:59.000000000 +0800
@@ -20083,13 +20083,13 @@
   echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
-
 if test $petsc_found = yes; then
     # Extract PETSc variables from PETSC_DIR/bmake/common/variables
-    PETSC_CFLAGS=`make -s -C $PETSC_DIR getincludedirs PETSC_DIR=$PETSC_DIR`
-    PETSC_LIBS=`make -s -C $PETSC_DIR getlinklibs PETSC_DIR=$PETSC_DIR`
+    MKFILE=$PETSC_DIR/bmake/common/base
+    PETSC_CFLAGS=`make -f $MKFILE getincludedirs PETSC_DIR=$PETSC_DIR`
+    PETSC_LIBS=`make -f $MKFILE getlinklibs PETSC_DIR=$PETSC_DIR`
 else
-    echo "*** Unable to find PETSc 2.3.0 on your system."
+    echo "*** Unable to find PETSc 2.3.1 on your system."
     echo "*** Use --with-petsc-dir=<path> to specify the correct path for PETSc,"
     echo "*** or set the environment variable PETSC_DIR to the correct path."
     echo "*** PETSc is available at http://www-unix.mcs.anl.gov/petsc/petsc-2/";

Follow ups

References