On Wed, 31 May 2006, Michael Krufky wrote: > On 5/31/06, Trent Piepho <xyzzy@xxxxxxxxxxxxx> wrote: > > On Wed, 31 May 2006, hermann pitton wrote: > > > Am Mittwoch, den 31.05.2006, 10:51 +0100 schrieb Gavin Hamill: > > > > I don't have any radio cards - can I just disable this part of the > > > > compile completely? If so, what do I need to comment out in the > > > > Makefiles? :) > > > > > > Isn't it just a matter of using make xconfig or make gconfig or make > > menuconfig to select the drivers to build, and then not selecting > > micro PCM 20? Or just edit v4l/.myconfig by and and set the MIRO > > variables to 'n'? I'd like to point out that .myconfig is generated from .config, but the Makefile doesn't deal with this. Edit .config by hand (because you have no kernel source, and this no conf programs), and .myconfig isn't updated. IMHO, Makefiles that accurately represet the real dependencies and build process work better. > The problem is that the build system inside the mercurial repository > is not honoring kconfig "depends on" clauses. The micopcm20 radio > driver should automatically be disabled in these cases where OSS has > been stripped from the kernel. It's nice for developers to be able to build all modules, to test changes, without having to create a custom kernel with support for everything. It would be nice if this was still possible. > This needs to be fixed somehow in that convoluted build script, but I > have neither the time nor energy to attempt to figure out how. I have > added cc to Mauro -- he wrote this build script, maybe he can fix > this, or at least comment on it. > We know "depends on" functionality is broken... I wonder if "selects" > is broken too? I think it's not so much a bug, but the script has a different goal. The script to look at is make_kconfig.pl. It goes through the v4l-dvb Kconfig files, looking at all the options. It does not look at the kernel's Kconfig files at all, not does it look at the kernel's .config file. It generates v4l/Kconfig, which is sort of a concatanation of all the v4l-dvb Kconfig files. Then it makes v4l/Kconfig.kern, which is a subsitute for the kernel's Kconfig files. It provides default values for all the variables that v4l-dvb Kconfig depends on that come from elsewhere (ie. the kernel). If you look in there, you'll see: # SOUND_ACI_MIXER with 1 refs config SOUND_ACI_MIXER tristate default m So it does honor the Miro PCM 20 "depends on" information. It just honors it by turning it on. This is useful to developers, so that they can build everything even when they don't have the hardware. Not as useful to non-developers, who may only want to build drivers that their current kernel can actually use. Lastly, if make allmodconfig/allyesconfig was used, make_kconfig.pl will make v4l/.config, which sets all tristates to 'm', all booleans to 'y', and all ints to their default. Except for two special cased variables that get set to 'n'. make_kconfig.pl will use the v4l/versions.txt file to turn off drivers that need a newer kernel than they are getting built against. These drivers' Kconfig stanzas will not appear in v4l/Kconfig, instead a placeholder will be inserted that is set to off. However, the variable will still appear in v4l/.config set to on. Probably shouldn't do that. After make_kconfig.pl is run, the oddly named make_noconfig.pl is run. It takes the .config file and produces a .myconfig that is suitable for including into a Makefile. It also reads v4l/versions.txt and turns off variables that are not supported. This is why make_kconfig.pl can get away with leaving those variables on. > I hope this explanation helps somebody to construct a fix to be merged > into the repository. (hint, hint) I haven't had so much luck with my changes to the build system getting merged. (hint, hint) _______________________________________________ linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb