Steve Langasek | 3 May 2006 01:05

Re: Is a minimum automake version of 1.9 ok?


On Tue, May 02, 2006 at 08:17:51PM +0200, Bas Wijnen wrote:

> This afternoon I fixed the single Makefile patch so that it actually works.
> However, I found that it requires a minimum automake version of 1.9, because
> versions before that consider files in a different directory than the
> Makefile.am a bug.

> Is it a problem to require automake 1.9?

Given that only developers should ever need to run automake (when building
out of svn, or rolling official tarballs), I don't see any problem at all
with this -- anyone who doesn't already have automake1.9 available for their
platform of choice should be able to download and install it locally with
ease.

FWIW, I'm not really sold on the benefits of the single-makefile approach;
I'm familiar with the "considered harmful" paper, but there are trade-offs
with each approach, and I haven't found any problems with the existing
structure -- so this is very much a "ain't broke, don't fix it" scenario for
me.

--

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
vorlon <at> debian.org                                   http://www.debian.org/
Bas Wijnen | 3 May 2006 09:34
Picon
Favicon

Re: [pio-develop] Is a minimum automake version of 1.9 ok?

On Tue, May 02, 2006 at 04:05:43PM -0700, Steve Langasek wrote:
> > Is it a problem to require automake 1.9?
> 
> Given that only developers should ever need to run automake (when building
> out of svn, or rolling official tarballs), I don't see any problem at all
> with this -- anyone who doesn't already have automake1.9 available for their
> platform of choice should be able to download and install it locally with
> ease.

Good point.

> FWIW, I'm not really sold on the benefits of the single-makefile approach;
> I'm familiar with the "considered harmful" paper, but there are trade-offs
> with each approach, and I haven't found any problems with the existing
> structure -- so this is very much a "ain't broke, don't fix it" scenario for
> me.

IMO there are two main problems with the multiple Makefiles:

- They don't get dependencies right.  editor/pioneers-editor depends on
  common/libpioneers.a, but it is unable to make sure it gets built.  Also, it
  cannot see if it will be rebuilt.  So when doing a multithreaded build, it
  may happen that both of them are out of date (but the lib does exist
  already) and both get rebuilt, but the editor happens to get linked to the
  old version, because the new one wasn't ready yet.
  These things don't happen in a single-threaded build, because we carefully
  chose the order that things are built in that case.  But that is very
  fragile, and shouldn't be relied upon (because it breaks multi-threaded
  builds ;-) ).

(Continue reading)

Bas Wijnen | 3 May 2006 09:34
Picon
Favicon

Re: Is a minimum automake version of 1.9 ok?

On Tue, May 02, 2006 at 04:05:43PM -0700, Steve Langasek wrote:
> > Is it a problem to require automake 1.9?
> 
> Given that only developers should ever need to run automake (when building
> out of svn, or rolling official tarballs), I don't see any problem at all
> with this -- anyone who doesn't already have automake1.9 available for their
> platform of choice should be able to download and install it locally with
> ease.

Good point.

> FWIW, I'm not really sold on the benefits of the single-makefile approach;
> I'm familiar with the "considered harmful" paper, but there are trade-offs
> with each approach, and I haven't found any problems with the existing
> structure -- so this is very much a "ain't broke, don't fix it" scenario for
> me.

IMO there are two main problems with the multiple Makefiles:

- They don't get dependencies right.  editor/pioneers-editor depends on
  common/libpioneers.a, but it is unable to make sure it gets built.  Also, it
  cannot see if it will be rebuilt.  So when doing a multithreaded build, it
  may happen that both of them are out of date (but the lib does exist
  already) and both get rebuilt, but the editor happens to get linked to the
  old version, because the new one wasn't ready yet.
  These things don't happen in a single-threaded build, because we carefully
  chose the order that things are built in that case.  But that is very
  fragile, and shouldn't be relied upon (because it breaks multi-threaded
  builds ;-) ).

(Continue reading)

Roland Clobus | 4 May 2006 08:00
X-Face
Picon
Gravatar

[pio-develop] Re: Single Makefile (Was: Is a minimum automake version of 1.9 ok?)

On Wednesday 03 May 2006 09:34, Bas Wijnen wrote:
> On Tue, May 02, 2006 at 04:05:43PM -0700, Steve Langasek wrote:
> IMO there are two main problems with the multiple Makefiles:
> 
> - They don't get dependencies right.  editor/pioneers-editor depends 
on
>   common/libpioneers.a, but it is unable to make sure it gets built.  
Also, it
>   cannot see if it will be rebuilt.  So when doing a multithreaded 
build, it
>   may happen that both of them are out of date (but the lib does 
exist
>   already) and both get rebuilt, but the editor happens to get 
linked to the
>   old version, because the new one wasn't ready yet.
>   These things don't happen in a single-threaded build, because we 
carefully
>   chose the order that things are built in that case.  But that is 
very
>   fragile, and shouldn't be relied upon (because it breaks 
multi-threaded
>   builds ;-) ).

So this means we don't support 'make -j'.
On my computer (after a 'make clean') make takes about 30 seconds.
Why should I need -j?
The dependencies are currently correct, the common directories are 
entered first in SUBDIRS, before the other directories that need it.
I don't consider that fragile.

(Continue reading)

Roland Clobus | 4 May 2006 08:00
X-Face
Picon
Gravatar

Re: Single Makefile (Was: Is a minimum automake version of 1.9 ok?)

On Wednesday 03 May 2006 09:34, Bas Wijnen wrote:
> On Tue, May 02, 2006 at 04:05:43PM -0700, Steve Langasek wrote:
> IMO there are two main problems with the multiple Makefiles:
> 
> - They don't get dependencies right.  editor/pioneers-editor depends 
on
>   common/libpioneers.a, but it is unable to make sure it gets built.  
Also, it
>   cannot see if it will be rebuilt.  So when doing a multithreaded 
build, it
>   may happen that both of them are out of date (but the lib does 
exist
>   already) and both get rebuilt, but the editor happens to get 
linked to the
>   old version, because the new one wasn't ready yet.
>   These things don't happen in a single-threaded build, because we 
carefully
>   chose the order that things are built in that case.  But that is 
very
>   fragile, and shouldn't be relied upon (because it breaks 
multi-threaded
>   builds ;-) ).

So this means we don't support 'make -j'.
On my computer (after a 'make clean') make takes about 30 seconds.
Why should I need -j?
The dependencies are currently correct, the common directories are 
entered first in SUBDIRS, before the other directories that need it.
I don't consider that fragile.

(Continue reading)

Bas Wijnen | 4 May 2006 08:53
Picon
Favicon

Re: [pio-develop] Re: Single Makefile (Was: Is a minimum automake version of 1.9 ok?)

On Thu, May 04, 2006 at 08:00:07AM +0200, Roland Clobus wrote:
> On Wednesday 03 May 2006 09:34, Bas Wijnen wrote:
> > On Tue, May 02, 2006 at 04:05:43PM -0700, Steve Langasek wrote:
> > IMO there are two main problems with the multiple Makefiles:
> > 
> > - They don't get dependencies right.
> 
> So this means we don't support 'make -j'.

Indeed.

> On my computer (after a 'make clean') make takes about 30 seconds.
> Why should I need -j?
> The dependencies are currently correct, the common directories are 
> entered first in SUBDIRS, before the other directories that need it.
> I don't consider that fragile.
> 
> Is 'make -j' a requirement for a special build of Pioneers you are 
> preparing?

No, it isn't.  It's just something that should work if we have the build
system in order.  The fact that it doesn't is a bug IMO.  There are
workarounds ("don't use -j"), but it's still a bug.

> > - They're asking for code duplication.
> 
> The ($topdir)/rules.make was needed because we didn't know enough of 
> the autotools. Since I've read the manual for the autotools, the 
> contents of the rules.make was integrated into configure.ac.

(Continue reading)

Bas Wijnen | 4 May 2006 08:53
Picon
Favicon

Re: Re: Single Makefile (Was: Is a minimum automake version of 1.9 ok?)

On Thu, May 04, 2006 at 08:00:07AM +0200, Roland Clobus wrote:
> On Wednesday 03 May 2006 09:34, Bas Wijnen wrote:
> > On Tue, May 02, 2006 at 04:05:43PM -0700, Steve Langasek wrote:
> > IMO there are two main problems with the multiple Makefiles:
> > 
> > - They don't get dependencies right.
> 
> So this means we don't support 'make -j'.

Indeed.

> On my computer (after a 'make clean') make takes about 30 seconds.
> Why should I need -j?
> The dependencies are currently correct, the common directories are 
> entered first in SUBDIRS, before the other directories that need it.
> I don't consider that fragile.
> 
> Is 'make -j' a requirement for a special build of Pioneers you are 
> preparing?

No, it isn't.  It's just something that should work if we have the build
system in order.  The fact that it doesn't is a bug IMO.  There are
workarounds ("don't use -j"), but it's still a bug.

> > - They're asking for code duplication.
> 
> The ($topdir)/rules.make was needed because we didn't know enough of 
> the autotools. Since I've read the manual for the autotools, the 
> contents of the rules.make was integrated into configure.ac.

(Continue reading)


Gmane