 |
|
|
|
Actions
|
|
[ Date Prev][ Date Next][ Thread Prev][ Thread Next][ Date Index][ Thread Index]
Re: [vsipl++] PATCH: installation / packaging
- Subject: Re: [vsipl++] PATCH: installation / packaging
- From: Jules Bergmann <jules@xxxxxxxxxxxxxxxx>
- Date: Wed, 04 Jan 2006 11:22:22 -0500
Stefan Seefeld wrote:
The appended patch adds or completes the following targets:
Stefan, this looks good. Please check it in. -- Jules
To create a source distribution simply do:
configure
make doc maintainer_mode=1
make doc2src
make sdist
Very nice!
(The root directory name is determined from configure.ac to be
sourceryvsipl++-1.0, but for snapshot packages one could also call
make sdist PACKAGE_VERSION=`date +%Y-%m-%d`
)
A typical command sequence to create a multi-config binary package
would be:
configure --some-optimization-flags
make
make doc maintainer_mode=1
make install DESTDIR=tmp suffix=-opt
configure --some-debug-flags
make
make install DESTDIR=tmp suffix=-debug
make bdist DESTDIR=tmp
IIUC, the DESTDIR is prepended to the different directories objdir,
libdir, etc. I think this is the right thing to do, because it lets
build a binary package to live in an arbitrary system directory
(/opt/csl/vsipl++) without having to have modify that directory on our
build machine.
However, there might be a problem when trying to build one copy of the
ATLAS/FFTW libraries to be used by all variants. Consider:
# first, build optimized version of VSIPL++, ATLAS, and FFTW
prefix=/opt/vsipl++
configure "opt-flags" --with-fft=builtin --with-lapack=builtin
--prefix=$prefix
make
make doc maintainer_mode=1
make install DESTDIR=tmp suffix=-opt
# second, build debug version of VSIPL++,
# Don't build ATLAS and FFTW again, instead use the versions already in
/opt/vsipl++
LDFLAGS="-L$prefix/lib"
CPPFLAGS="-L$prefix/include"
configure "debug-flags" --with-fft=fftw3 -with-lapack=atlas
make
make install DESTDIR=tmp suffix=-debug
... make other variants ...
... create alias (vsipl++.pc -> vsipl++-opt.pc)
... make binary package ...
When configuring for the debug build, the libraries for ATLAS and FFTW
will not be found, since they are in /tmp/opt/vsipl++, not
/opt/vsipl++. Also, when making the debug library, the headers will not
be in the right spot either.
A work around is to build the ATLAS and FFTW libraries for each variant
(optimized, debug, etc), rely on them to be overwritten so that only one
copy of those libraries are in the final package, and make sure to
build the version of the external libraries that we want to keep last.
However, if we have many variants, this will result in a lot of time
spent building ATLAS.
Another idea is to have ATLAS and FFTW installed on our build system so
that the bogus paths are not noticed by configure/make. However this
makes the build process a little less robust.
A final idea is to tell configure to trust that fftw3 and atlas are
present and not test for them. ("--with-fft=trust-fftw3" ?). We would
also need to handle the include paths during the make (via INT_CPPFLAGS?)
Any thoughts on how to handle this?
Mark, doc/csl-docbook/GNUmakefile.inc contains two changes:
* I prefixed all installation paths with $(DESTDIR) to make the above
work for documentation.
* I fixed the %.html target for the case where $(docbook_html) is not
set,
as that case seems to have slipped through in Carlos' latest
adjustments.
Is there an email list that we should send csl-docbook CVS changes to?
|
|