Peter Samuelson wrote:
> 
>   [Sam Ravnborg]
> > > Obviously the kernel build system should work for everyone irrespective
> > > of the SCM system in use. This put at least the following demands:
> > > 1)      Separate OBJ and SRC tree
> > > 2)      That kbuild does not touch any files in the SRC tree
> 
> Agreed.  It looks like Kai is close to that point.  Actually VPATH
> does all the work for you if you let it, 

Yes, VPATH is very useful.

> [...] (Come to think of it, VPATH can almost do shadow trees -
> though it would fail to comprehend different layers of Makefiles.)

I think the problem of Makefile bits in shadow trees is really
quite difficult.  Keith's solution of pre-processing Makefiles and
Makefile.appends from all the shadow trees into a combined Makefile
doesn't handle all the cases but is the best attempt I've seen so
far.

> [Greg Banks]
> > This is the same reason why we have the extraordinary complexity of
> > autoconf and automake for usermode programs: it's regrettably
> > necessary to deal with imperfect and unfixable platforms.
> 
> Ah, but note that the Linux kernel build does *not* use autoconf or
> automake.  Why not?  Because the platform *is* seen as fixable after
> all.  If your old, weird platform has <strings.h> instead of
> <string.h> - tough, you'll have to fix your platform before you
> compile mkdep.c or split-include.c.  If you don't happen to have a
> perror() - tough again.  We assume not only a decent ANSI C compiler -
> we assume a specific range of gcc versions.  Etc.

So now we assume BK?  What's next, Python 2.1?

> > [...] The beauty of having proper
> > shadow trees is that the trees are kept completely separate at all
> > times except in the compiler.  [...]
> 
> There is that.  But if you regard "cobble together a build-only source
> tree" as the first stage of your build process, this shouldn't be a
> problem.

This would be the case if the build process were simple and linear
and consisted of just cobbling together a combined source tree and
then building a kernel image.  But in my experience it comprises
a number of loops where I go back and fix simple compile errors
(either my own or the latest IDE breakage from the mainline kernel)
and do a partial rebuild.  A solution where I have to cobble together
174 MB of kernel source every time I fix a one-line compile error 
is not useful.

> > > > [...] In some (most?) SCM systems, the checkout process on a
> > > > file resets the timestamp to when it was checked in.
> 
> > CVS does this.  Maybe there's a way to turn it off, I don't know.
> 
> Huh?  Not for me.  It sets current time on anything *I* check out.
> Maybe there's a way to turn that screwy feature *on*....

I guess Mandrake must have done that, because that's how it behaves
for me.  Here's part of a brand new checkout:

gnb@ocelot 1006> ls -l
total 584
-rw-r--r--    1 gnb      sh3         11651 Jun  1  1999 ABOUT-NLS
-rw-r--r--    1 gnb      sh3         13911 Sep 28  2001 CHANGES
-rw-r--r--    1 gnb      sh3         17992 May 29  1999 COPYING
-rw-r--r--    1 gnb      sh3            94 Jul 25  2001 COPYRIGHT
drwxr-xr-x    2 gnb      sh3          4096 Jun 26 00:29 CVS/
-rw-r--r--    1 gnb      sh3          5285 Sep 22  2001 Makefile.in
-rw-r--r--    1 gnb      sh3         18670 Sep 28  2001 TODO
-rw-r--r--    1 gnb      sh3           747 Jun 10  1999 argstest.awk
-rw-r--r--    1 gnb      sh3          4208 Jun 10  1999 argstest.dat
-rw-r--r--    1 gnb      sh3         26916 Sep 22  2001 autoconf.c
-rw-r--r--    1 gnb      sh3          2838 Sep 22  2001 autoconf_strs.c
-rw-r--r--    1 gnb      sh3          4008 Sep 21  2001 client.c
-rw-r--r--    1 gnb      sh3          2095 Oct  2  2001 common.h
-rwxr-xr-x    1 gnb      sh3         17285 May 30  1999 config.guess*
-rw-r--r--    1 gnb      sh3          3597 Jul 27  2001 config.h.in
-rwxr-xr-x    1 gnb      sh3         18001 May 30  1999 config.sub*
-rw-r--r--    1 gnb      sh3          4757 Sep 28  2001 configure.in
drwxr-xr-x    4 gnb      sh3          4096 Jun 26 00:29 doc/
-rwxr-xr-x    1 gnb      sh3          1618 Oct  7  2001 extract_targets.in*
-rw-r--r--    1 gnb      sh3         13057 Sep  2  2001 filter.c
-rw-r--r--    1 gnb      sh3          1619 Jul 25  2001 filter.h
-rw-r--r--    1 gnb      sh3         12961 Sep 22  2001 find.c
-rw-r--r--    1 gnb      sh3          5370 Jul 27  2001 glib_extra.c
-rw-r--r--    1 gnb      sh3          1177 Jul 25  2001 glib_extra.h
-rw-r--r--    1 gnb      sh3         11012 Sep 22  2001 help.c

Note the directories are set to current time but the files
are set to the time of the last checkin.

Greg.
-- 
the price of civilisation today is a courageous willingness to prevail,
with force, if necessary, against whatever vicious and uncomprehending
enemies try to strike it down.     - Roger Sandall, The Age, 28Sep2001.


-------------------------------------------------------
Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/
_______________________________________________
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel

Reply via email to