[linux-dvb] Re: [RFC:PATCH] Build system improvement

Trent Piepho xyzzy at speakeasy.org
Wed Jun 21 00:57:03 CEST 2006

> Em Ter, 2006-06-20 =E0s 12:23 -0300, Mauro Carvalho Chehab escreveu:
> > Since the old CVS days, the building system for V4L/DVB assumed that al=
> > required kernel dependencies were compiled. This is bad, since some
> > obsoleted stuff might be required, without need (like, for example, OSS
> > support for saa7134_oss, cx88_oss that were replaced by saa7134_alsa an=
> > cx88_alsa).
> >
> > With the inclusion of radio devices, some very unusual modules were als=
> > required, to compile miropcm20 (the miro-pcm OSS mixer driver).
> >
> > The proposed patch adds the capability to the building system for it to
> > check kernel's config.h and autoconf.h at kernel building tree,

You beat me too it.  In fact some of the changes I've been making to the bu=
system have been aimed at this.  There is still a bug with the config-compa=
file that I was going to fix.

It looks like there is no way to get the old behavior?  I think it is
important that there is still a way to build all modules, even if the curre=
kernel doesn't have ISA support or whatever.  It makes it much harder for
developers to do proper testing without this.

Is there a reason that you used the config.h and autoconf.h files?  It seem=
like it would be much easier to read the kernel's .config file.  Since
autoconf.h is generated from .config, it's safe to require that .config be
there, isn't it?  Can you even build v4l-dvb if it's not there?  I know tha=
you will get non-fatal errors if $(KDIR)/.config is missing.

It looks like this can't handle all depend lines in v4l-dvb, for example:
        depends on VIDEO_V4L2 && !SPARC32 && !SPARC64
=09depends on VIDEO_DEV!=3Dn
        depends on RADIO_ZOLTRIX=3Dy
        depends on DVB_CORE && (PCI || USB) && I2C

The '!' dependencies will be ignored (*).  The '=3D' and '!=3D' are ignored=
=2E  The bit
'(PCI || USB)' will be treated as 'USB'.

(*) Not totally.  They will be checked to see if they are not 'y' (**), but
they won't appear in Kconfig.kern like they should.

(**) What does 'm' mean in this context?  Does it means yes, no, or is the =
operator only allowed for booleans and not tristates?

More information about the linux-dvb mailing list