[petsc-dev] buildsystem: cusp location

Sean Farley sean at mcs.anl.gov
Sun Mar 25 15:17:07 CDT 2012


>
> They give 2 options . [one /usr/local/cuda/include, the other
> /home/nathan/cuda_libraries/cusp]
>

I'd like to point out that many (if not the majority of) times we (i.e.
BuildSystem logic) isn't working with what the user installed by hand but
rather by one of the many package managers: apt-get, ports, rpm, arch, etc.
These package managers all dictate a prefix install with few exceptions;
regardless of what the package writer really prefers. Again, we even do the
same with --download-package (placing headers in $PETSC_ARCH/include)

For your consistancy [wrt to santity of prefix definition] you say -
> petsc configure should support 1 wirh packaage-dir - and users who
> choose 2 should use --with-package-includ option. I don't agree with
> this logic.
>

I understand you don't agree. The --with-package-dir=prefix would be able
to clean up and unify a lot of code in BuildSystem and I haven't seen a
good counter-point besides the fact that you don't like it.

We don't really insist on --with-package-dir=prefix. So far we've been
> accomodating varations of 'package installs' that we could reasonably
> support.
>

And the code in each package.py reflects this schism.

But based on the your previous statement - we should not support mkl
> organiztion with --package-dir option [as it doesn't comply with
> prefix organizaton], insist users should always --with-package-lib
> option.


We're using python. We can overload and use inheritance (or whatever fancy
design pattern you want; i.e. decorator) and change the default behavior if
a package really misbehaves like MKL.

To recap, what I'm suggesting is the following:

1) Change the meaning of --with-package-dir to be a prefixed install

2) Report a meaningful error if a wanted file is not found. In the cusp
example:

===============================================================================
             Configuring PETSc to compile on your system

===============================================================================
TESTING: checkInclude from
config.headers(config/BuildSystem/config/headers.py:86)


 *******************************************************************************
         UNABLE to CONFIGURE with GIVEN OPTIONS    (see configure.log for
details):
-------------------------------------------------------------------------------
--with-cusp-dir=/Users/sean/local/include does not seem to contain
cusp/version.h; did you want to specify this with --with-cusp-includedir?
*******************************************************************************

3) Override this behavior for certain packages like MKL

I like this more than the current behavior of --with-package-dir because
the location is well-defined and not "how did this particular developer
layout his package? i have no idea since I installed using apt-get!!"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120325/53010da2/attachment.html>


More information about the petsc-dev mailing list