summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2006-03-26 08:53:06 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-03-26 08:53:06 -0300
commit1513c16af8fe4dd3f0afa6548cb39331c24bd01d (patch)
treef2d5dc7ac1e682aa02b4cc7d73e68f43d28c3e7d
parent9d7a8568c08e90097778aeac7bb66db7ddb183b8 (diff)
downloadmediapointer-dvb-s2-1513c16af8fe4dd3f0afa6548cb39331c24bd01d.tar.gz
mediapointer-dvb-s2-1513c16af8fe4dd3f0afa6548cb39331c24bd01d.tar.bz2
Some cleanups at make xconfig
From: Mauro Carvalho Chehab <mchehab@infradead.org> Now, it doesn't depend on kernel Kconfig stuff: - It generates a Kconfig.kern based on unsolved dependencies. - It assumes that all needed dependencies were compiled as module. Only Multimedia tree is showed to the user. To work, user should have runned xconfig before at the normal kernel tree. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--.hgignore5
-rw-r--r--linux/drivers/media/Kconfig68
-rw-r--r--v4l/Makefile4
-rwxr-xr-xv4l/scripts/make_kconfig.pl67
4 files changed, 130 insertions, 14 deletions
diff --git a/.hgignore b/.hgignore
index 2d7248488..a0e27c274 100644
--- a/.hgignore
+++ b/.hgignore
@@ -3,6 +3,11 @@ v4l/.tmp_versions/.*
v4l/[^/]*[.]c
v4l/.*[.]o
v4l/.*[.]ko
+v4l/.kconfig.d
+v4l/.tmpconfig.h
+v4l/Kconfig
+v4l/Kconfig.kern
.*[.]rej
.*[.]orig
.*[~]
+
diff --git a/linux/drivers/media/Kconfig b/linux/drivers/media/Kconfig
new file mode 100644
index 000000000..baa9f58be
--- /dev/null
+++ b/linux/drivers/media/Kconfig
@@ -0,0 +1,68 @@
+#
+# Multimedia device configuration
+#
+
+menu "Multimedia devices"
+
+config VIDEO_DEV
+ tristate "Video For Linux"
+ ---help---
+ Support for audio/video capture and overlay devices and FM radio
+ cards. The exact capabilities of each device vary. User tools for
+ this are available from
+ <ftp://ftp.uk.linux.org/pub/linux/video4linux/>.
+
+ This kernel includes support for the new Video for Linux Two API,
+ (V4L2) as well as the original system. Drivers and applications
+ need to be rewritten to use V4L2, but drivers for popular cards
+ and applications for most video capture functions already exist.
+
+ Documentation for the original API is included in the file
+ <file:Documentation/video4linux/API.html>. Documentation for V4L2 is
+ available on the web at <http://bytesex.org/v4l/>.
+
+ To compile this driver as a module, choose M here: the
+ module will be called videodev.
+
+source "drivers/media/video/Kconfig"
+
+source "drivers/media/radio/Kconfig"
+
+source "drivers/media/dvb/Kconfig"
+
+source "drivers/media/common/Kconfig"
+
+config VIDEO_TUNER
+ tristate
+
+config VIDEO_BUF
+ tristate
+
+config VIDEO_BUF_DVB
+ tristate
+
+config VIDEO_BTCX
+ tristate
+
+config VIDEO_IR
+ tristate
+
+config VIDEO_TVEEPROM
+ tristate
+
+config USB_DABUSB
+ tristate "DABUSB driver"
+ depends on USB
+ ---help---
+ A Digital Audio Broadcasting (DAB) Receiver for USB and Linux
+ brought to you by the DAB-Team
+ <http://wwwbode.cs.tum.edu/Par/arch/dab/>. This driver can be taken
+ as an example for URB-based bulk, control, and isochronous
+ transactions. URB's are explained in
+ <Documentation/usb/URB.txt>.
+
+ To compile this driver as a module, choose M here: the
+ module will be called dabusb.
+
+endmenu
+
diff --git a/v4l/Makefile b/v4l/Makefile
index ab94f891f..66e3eb31f 100644
--- a/v4l/Makefile
+++ b/v4l/Makefile
@@ -355,8 +355,8 @@ all:: default
default:: links .version
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) $(MYCFLAGS) modules
-qconfig:: links .version
- ./scripts/make_kconfig.pl /usr/src/linux-2.6.14 $(ARCH)
+xconfig:: links .version
+ ./scripts/make_kconfig.pl $(ARCH)
$(KDIR)/scripts/kconfig/qconf Kconfig
ivtv-checkout::
diff --git a/v4l/scripts/make_kconfig.pl b/v4l/scripts/make_kconfig.pl
index f612e83db..91c37693f 100755
--- a/v4l/scripts/make_kconfig.pl
+++ b/v4l/scripts/make_kconfig.pl
@@ -1,37 +1,80 @@
#!/usr/bin/perl
use FileHandle;
-my $KDIR=shift;
my $ARCH=shift;
+my %depend = ();
+my %config = ();
+
+sub add_config($)
+{
+ my $arg=shift;
+
+ if ($arg =~ m/^([A-Z0-9_]+)/) {
+ $config{$1} = 1;
+ }
+}
+
+sub check_deps($)
+{
+ my $arg=shift;
+ $arg=$arg." ";
+
+ while ($arg ne "") {
+ if ($arg =~ m/^([A-Z0-9_]+) /) {
+ my $val=$1;
+ my $prev=$depend{$val};
+ $depend { $val } = 1+$prev;
+ }
+ $arg =~ s/^[^ ]+ //;
+ }
+}
+
sub open_kconfig($$) {
my ($dir,$file)=@_;
my $in = new FileHandle;
-print "opening $file\n";
+#print "opening $file\n";
open $in,"$file";
while (<$in>) {
- if (m;^\s*source[\s\"]+drivers/media/(video|dvb)/Kconfig;) {
- next;
- }
+# if (m;^\s*source[\s\"]+drivers/media/(video|dvb)/Kconfig;) {
+# next;
+# }
if (m|^\s*source[\s\"]+([^\n\s\"]+)[\n\s\"]|) {
open_kconfig($dir,"$dir/$1");
next;
}
+ if (m|^\s+depends on (.*)\n|) {
+ check_deps ($1);
+ }
+ if (m|^\s+select (.*)\n|) {
+ check_deps ($1);
+ }
+ if (m|^\s*config (.*)\n|) {
+ add_config ($1);
+ }
+
s/^main(menu\s\"[^\"]+)/\1 - DON'T CHANGE IT!/;
print OUT $_;
}
close $in;
}
-open OUT,">Kconfig.kern";
-open_kconfig($KDIR,"$KDIR/arch/$ARCH/Kconfig");
-print OUT "endmenu\n";
-close OUT;
-
open OUT,">Kconfig";
print OUT "mainmenu \"V4L/DVB menu\"\n";
-open_kconfig ("../linux","../linux/drivers/media/video/Kconfig");
-open_kconfig ("../linux","../linux/drivers/media/dvb/Kconfig");
+
print OUT "source Kconfig.kern\n";
+open_kconfig ("../linux","../linux/drivers/media/Kconfig");
+
close OUT;
+
+while ( my ($key, $value) = each(%config) ) {
+ delete $depend{$key};
+}
+
+open OUT,">Kconfig.kern";
+while ( my ($key, $value) = each(%depend) ) {
+ print OUT "# $key with $value refs\nconfig $key\n\ttristate\n\tdefault m\n\n";
+}
+close OUT;
+