Steve,
On Tue, 9 Dec 2003, Rankin, SE (Stephen) wrote:
> 1. You cannot fully build all classic software at once, unless the sources
> directory is directly under the directory you want to install to.
> (easily solved with an additional STAR_SOURCES environment variable).
> This needs to be sorted so that we can have --prefix.
I'm organising it so that packages will be installed to the --prefix
directory from wherever they are. They presume that their
dependencies are installed there already, and there's code to ensure
that these are kept consistent.
They also declare what they're dependent on, and building them will
validate that this information is correct. That means that it will be
possible to calculate the full set of pre- and post-distribution dependent
packages. That means that you'll be able to get the AST distribution
tarball (say), and be told that you need to install SLALIB first in order
to install and use it. So it'll be
tar xzf sla-x.y.z.tar.gz; cd sla-x.y.z; ./configure; make; make install
tar xzf ast-x.y.z.tar.gz; cd ast-x.y.z; ./configure; make; make install
...and the distribution web page could even roll you a script to
download and build things for you.
Or if you're a bleeding edge fan, you can check out AST, and be told
that you'll also need to check out components x, y, and z, as well as
the top-level Makefile with its generated dependency list, after which
you just type
./configure [--prefix=xxx]
make manifests/libraries-ast # or something -- not settled yet
and everything the ast pre-distribution build depends on will be built
and installed in the correct order. This would encourage using make's
-j option to parallelise the builds.
> In general, packages look both in other package source directories and in
> the installation directory for libs/scripts they depend on so that they can
> build.
It seems bad to look in other source directories -- packages will
communicate through the installed versions of the packages they depend
on.
> I think people (users) get confused when we advertise all these individual
> packages, but in reality it is just a complete system. One thing that does
> keep the system separable in some cases, is the fact that we build
> everything statically, lots of shared libraries would only integrate the
> system further, wouldn't it?
I think that the scheme above would help ameliorate this. The system
currently builds both shared and static libraries. I think that the
reason why it seems a big sticky lump right now is because we don't
really have explicit documentation on what depends on what.
Once we have that information in a processable form, we can start to
do cleverer distribution things, like (off the top of my head) roll
and distribute a `Starlink Core' library which has sae, par and fio in
it (say) so that's only a single post-distribution dependency rather
than three.
How does this sound?
Norman
--
---------------------------------------------------------------------------
Norman Gray http://www.astro.gla.ac.uk/users/norman/
Physics and Astronomy, University of Glasgow, UK [log in to unmask]
|