petscvariables: hardwired build dir instead of install dir

Barry Smith bsmith at mcs.anl.gov
Sat Mar 22 09:45:22 CDT 2008


   Ok, I think I understand your concern,

On Mar 22, 2008, at 9:00 AM, Lisandro Dalcin wrote:

> On 3/22/08, Barry Smith <bsmith at mcs.anl.gov> wrote:
>>      Do you mean that it lists, for example,
>> SUPERLU_DIST_LIB = -Wl,-rpath,/Users/bsmith/Src/petsc-dev/arch-icc-
>> superlu_dist/lib -L/Users/bsmith/Src/petsc-dev/arch-icc-superlu_dist/
>> lib -lsuperlu_dist_2.2
>> instead of
>> SUPERLU_DIST_LIB = -Wl,-rpath,$PETSC_DIR/arch-icc-superlu_dist/lib -L
>> $PETSC_DIR/arch-icc-superlu_dist/lib -lsuperlu_dist_2.2
>>
>
> exactly that, as an example, I've just built petsc-dev, passing as
> prefix the following '--prefix=/usr/local/petsc/2.3.3/linux-gnu' (yes,
> I still want to have multiconfig installations of petsc in a central
> location, so I add the PETSC_ARCH to the prefix)
>
> But the 'petscvariables' file stills says, for example
>
> ML_INCLUDE = -I. -I/usr/local/mpich2/1.0.6/include
> -I/usr/local/mpich2/1.0.6/include
> -I/repos/hg/petsc/petsc-dev/linux-gnu/include

    This is because the place we want ML to install itself has be
passed in as the true path, it cannot be sent as a symbolic PETSC_DIR
since configure of the subpackage doesn't know PETSC_DIR

>
>
> The last include dir is the directory were I've built PETSc. I would
> love to see that include as -I${PETSC_DIR}/${PETSC_ARCH}/include. And
> now, if external packages got installed in $PETSC_DIR/$PETSC_ARCH, we
> perhaps could just put nothing, as that location is always taken into
> accout for PETSc itself.
>
> The real problem: if I remove the build dir, the 'petscvariables'
> point to locations that no longer exists, This is dangerous. I already
> had trouble in the past with the old 'bmake' based system. Is there a
> chance to 'fix' this, or I'm missing something?

   make intall: see the rule in makefile is suppose to replace all  
uses of the
petsc-dir directory with the final prefix installed location: the lines

           sed -i "" 's?$${PETSC_DIR}?TMP_INSTALL_DIR?g' $ 
{INSTALL_DIR}/conf/* ;\
           sed -i "" s?TMP_INSTALL_DIR?${INSTALL_DIR}?g ${INSTALL_DIR}/ 
conf/* ;\

would replace

/repos/hg/petsc/petsc-dev/linux-gnu/include
/usr/local/petsc/2.3.3/linux-gnu/include

Now it could be that the sed is not working when you run install? Can  
you do a
config/configure.py with a --prefix then the make then the make  
install and see what
goes wrong?


   Barry


with


>
>
>
>
> -- 
> Lisandro Dalcín
> ---------------
> Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
> Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
> Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
> PTLC - Güemes 3450, (3000) Santa Fe, Argentina
> Tel/Fax: +54-(0)342-451.1594
>




More information about the petsc-dev mailing list