All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sam Ravnborg <sam@ravnborg.org>
To: FN <zzzz444@ml1.net>
Cc: Oleg Verych <olecom@flower.upol.cz>, linux-kernel@vger.kernel.org
Subject: Re: module builds need improvement / top Makefile not good enough
Date: Mon, 5 Mar 2007 20:08:52 +0100	[thread overview]
Message-ID: <20070305190852.GA9367@uranus.ravnborg.org> (raw)
In-Reply-To: <1173102794.12256.1177759349@webmail.messagingengine.com>

On Mon, Mar 05, 2007 at 05:53:14AM -0800, FN wrote:
> | > I am unhappy with the direction the 2.6 kernel builds have taken.
> | > Very much like Micro$loth DDKs we (linux users) are being forced to
> | > build modules by plugging into a framework that doesn't respect the
> fine
> | > aspects of dependency generation and analysis.
> | 
> | Ideas in form of patches are accepted,
> 
> I think that one of the bigger firms that support linux, like IBM,
> Redhat,
> Suse, ought to hire a contractor to redesign kbuild and get the linux
> community involved.

Obviously kbuild can be better and if someone are committed to put in
a month work on kbuild we would see improvements.
As the kbuild maintainer I am the first to agree on this.

kbuild has taken the direction where make is used not only
as a simple DAG tool - be some of the other facilities
has been utilised to support some of the following goals:
-> Very simple Kbuild files for the simple cases - and the simple cases counts
   for more than 95% of the Kbuild files in the kernel.
-> One kbuild file pr. directory for simplicity
-> rebuild in case prerequisites OR referred CONFIG symbol changes
-> rebuild if commandline arguments changes (but not order of these)
-> revert back to known Makefile syntax for complex scenarios
-> make kbuild infrastructure avialable for external modules to make build
   of these more releiable (pick up correct CONFIG)
-> Last but not least - relaible.

These golas are fulfilled by kbuild today.
You want to add another few goals:
-> Do not rely on GNU Make
-> Track actual timestamp/file content to support ClarCase dynamic views


> Currently I face the following situation -- I try to build 2 drivers
> from the same Makefile

If you try to use Kbuild in a way it is not designed to be used
then you will obviously face issues.
One Kbuild file pr. directory.
Use a top-level Kbuild file to specify both sub-directory Kbuild files.

This structure works well for the kernel - so it should work well for your module too?

I am open for specific improvement proposals - but not for 'redo from scratch proposals'.

	Sam

      parent reply	other threads:[~2007-03-05 19:08 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-02 17:14 module builds need improvement / top Makefile not good enough FN
2007-03-02 17:26 ` Jeremy Fitzhardinge
2007-03-02 18:50 ` Sam Ravnborg
2007-03-04 21:47 ` Oleg Verych
2007-03-05 13:53   ` FN
2007-03-05 16:07     ` Jan Engelhardt
2007-03-05 16:47     ` Randy Dunlap
2007-03-05 17:03     ` Stuart MacDonald
2007-03-05 19:08     ` Sam Ravnborg [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070305190852.GA9367@uranus.ravnborg.org \
    --to=sam@ravnborg.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=olecom@flower.upol.cz \
    --cc=zzzz444@ml1.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.