tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Library building



On Tue, 21 Aug 2012, Joerg Sonnenberger wrote:

> On Tue, Aug 21, 2012 at 07:34:28AM +0100, Iain Hibbert wrote:
> > On Sat, 11 Aug 2012, Joerg Sonnenberger wrote:
> >
> > > One thing I am still contemplating is whether to make build_install a
> > > primary target in all directories or not.
> >
> > I am not sure what you mean by this, but IMO 'make' or 'make all' should
> > not ever install anything.. following the principle of least surprise, it
> > should only create files in the current or subdirs
>
> We have some (IMO bad) hacks to allow building libraries and linking
> against not-installed ones. I want to drop those hacks in the long term,

right, the dependencies can be annoying if you are trying to build a part
of the tree in an already installed system

> which would mean that you can't build some parts of the tree in
> isolation. The question here has simply, whether "make build_install"
> should work everywhere, not just in src/lib.

where else would it be needed?

I did think about this a little one time though I have no real suggestion
about how it should go.. but I personally think, that we have build.sh to
handle building a system now, so for simplicity if you do a 'make' in any
directory, then the environment/libraries referred to should always just
be the ${DESTDIR} versions

Then we leave to build.sh the complexity of building and installing the
libraries in order. perhaps it could be as simple as having the
lib/Makefile contain

  SUBDIR.1=     csu libc ..
  SUBDIR.2=     libarch libbluetooth ...
  SUBDIR?=      ${SUBDIR.1} ${SUBDIR.2}

and have build.sh build and install the libraries with

  cd $SRC/lib
  make 'SUBDIR=${SUBDIR.1}' dependall install
  make 'SUBDIR=${SUBDIR.2}' dependall install

or some such

iain


Home | Main Index | Thread Index | Old Index