David Necas wrote:

> (dropping [EMAIL PROTECTED] from cc)
> 
> On Mon, May 14, 2007 at 07:36:30PM +0200, Bram Moolenaar wrote:
> > 
> > > This indeed works strangely; for instance `make -jN' with
> > > N > 1 works with freshly unpacked sources, but it breaks
> > > completely after `make distclean' -- which one would expect
> > > to get the source tree to the same state.
> > 
> > Well, figure out why it breaks
> 
> The above report is incorrect, it just breaks always, I'm
> sorry.  I probably run configure so automatically that I
> accidentally made it work.
> 
> It breaks because make starts making `scratch', `config' and
> `myself' simultaneously.  And that appears to be due to
> 
>   the first targets to make vim are: scratch config myself
> 
> As these targets overwrite the same files with different
> content, it breaks one way or another.

Hmm, in my POV a rule like:

        target: one two three

means that "one", "two" and "three" are build in sequence, not at the
same time.  I suppose adding the "-jN" argument changes the semantics of
the Makefile, and that causes it to break.

The Vim makefile was written for a common version of all make programs.
So that it builds nearly everywhere.  I'm not sure supporting "-jN" is
possible without breaking it for some system.  Or including false
dependencies.

I don't think a parallel build helps much anyway, Vim builds rather fast
(compared to say, OpenOffice, which takes half a day).

> Explicite configure bootstraps the build system and thus
> makes -jN safe for normal compilation.
> 
> > and fix it...
> 
> Unfortunately my view of how a build system should work is
> incompatible.  I can tell when something breaks and
> hopefully I can figure out how it happens, but I have no
> idea what fixed means here.

I know, in my view "make" should do everything.  Somehow people have
accepted that some part of the building should be done separately, with
the excuse that it's called configuration.  Big mistake in my opinion.
In quite a few programs you need to know the magic arguments to
configure to be able to build.  Ending up writing a shell script for it.
Now why didn't they put that in the Makefile?  Oh well...

-- 
Don't drink and drive.  You might hit a bump and spill your beer.

 /// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Reply via email to