From 7b614fddb1b412f6ec17b91907a4473ed08e97de Mon Sep 17 00:00:00 2001 From: Trent Piepho Date: Fri, 9 Mar 2007 14:02:18 -0800 Subject: build: Add support for DESTDIR when installing/removing modules From: Ludwig Nussel If defined, use $(DESTDIR) as a prefix for installing and removing modules. depmod will also use $(DESTDIR) as a prefix when it is run as part of module installation. Signed-off-by: Ludwig Nussel Signed-off-by: Trent Piepho --- v4l/scripts/make_makefile.pl | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'v4l/scripts') diff --git a/v4l/scripts/make_makefile.pl b/v4l/scripts/make_makefile.pl index e1e08b578..8711cc5a8 100755 --- a/v4l/scripts/make_makefile.pl +++ b/v4l/scripts/make_makefile.pl @@ -134,12 +134,12 @@ print OUT "\t\@strip --strip-debug \$(inst-m)\n\n"; while (my ($dir, $files) = each %instdir) { print OUT "\t\@echo -e \"\\nInstalling \$(KDIR26)/$dir files:\"\n"; - print OUT "\t\@install -d \$(KDIR26)/$dir\n"; + print OUT "\t\@install -d \$(DESTDIR)\$(KDIR26)/$dir\n"; print OUT "\t\@for i in ", join(' ', keys %$files), ";do "; print OUT "if [ -e \"\$\$i\" ]; then echo -n \"\$\$i \";"; - print OUT " install -m 644 -c \$\$i \$(KDIR26)/$dir; fi; done; echo;\n\n"; + print OUT " install -m 644 -c \$\$i \$(DESTDIR)\$(KDIR26)/$dir; fi; done; echo;\n\n"; } -print OUT "\t/sbin/depmod -a \${KERNELRELEASE}\n\n"; +print OUT "\t/sbin/depmod -a \$(KERNELRELEASE) \$(if \$(DESTDIR),-b \$(DESTDIR))\n\n"; # Creating Remove rule print OUT "media-rminstall::\n"; @@ -149,13 +149,13 @@ while ( my ($dir, $files) = each(%instdir) ) { print OUT "\t\@echo -e \"\\nRemoving old \$(KDIR26)/$dir files:\"\n"; print OUT "\t\@files='", join(' ', keys %$files), "'; "; - print OUT "for i in \$\$files;do if [ -e \$(KDIR26)/$dir/\$\$i ]; then "; + print OUT "for i in \$\$files;do if [ -e \$(DESTDIR)\$(KDIR26)/$dir/\$\$i ]; then "; print OUT "echo -n \"\$\$i \";"; - print OUT " rm \$(KDIR26)/$dir/\$\$i; fi; done; "; + print OUT " rm \$(DESTDIR)\$(KDIR26)/$dir/\$\$i; fi; done; "; - print OUT "for i in \$\$files;do if [ -e \$(KDIR26)/$dir/\$\$i.gz ]; then "; + print OUT "for i in \$\$files;do if [ -e \$(DESTDIR)\$(KDIR26)/$dir/\$\$i.gz ]; then "; print OUT "echo -n \"\$\$i.gz \";"; - print OUT " rm \$(KDIR26)/$dir/\$\$i.gz; fi; done; echo;\n\n"; + print OUT " rm \$(DESTDIR)\$(KDIR26)/$dir/\$\$i.gz; fi; done; echo;\n\n"; } # Print dependencies of Makefile.media -- cgit v1.2.3 From 41956dcf341ea42e7990d39bfcebe860b1375538 Mon Sep 17 00:00:00 2001 From: Trent Piepho Date: Sun, 11 Mar 2007 16:26:56 -0700 Subject: scripts: Enhance analyze_build a bit From: Trent Piepho In one case a Kbuild file would do something like: foo-objs := a.o b.o foo-objs += c.o analyze_build didn't understand that the second lines _adds_ c.o to the objects that make up foo.ko. It would think that foo.ko was made up of only c.o. Should be fixed now. Signed-off-by: Trent Piepho --- v4l/scripts/analyze_build.pl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'v4l/scripts') diff --git a/v4l/scripts/analyze_build.pl b/v4l/scripts/analyze_build.pl index 945377fa4..9a291a2e3 100755 --- a/v4l/scripts/analyze_build.pl +++ b/v4l/scripts/analyze_build.pl @@ -97,9 +97,15 @@ sub open_makefile($) { next; } if (/(\S+)-objs\s*([:+]?)=\s*(\S.*?)\s*$/) { - print STDERR "Should use ':=' in $file:$.\n$_\n" if ($check && $2 ne ':'); my @files = split(/\s+/, $3); map { s|^(.*)\.o$|$dir/\1| } @files; + if ($2 eq '+') { + # Adding to files + print STDERR "Should use ':=' in $file:$.\n$_\n" if ($check && !exists $multi{"$dir/$1"}); + push @files, @{$multi{"$dir/$1"}}; + } else { + print STDERR "Setting objects twice in $file:$.\n$_\n" if ($check && exists $multi{"$dir/$1"}); + } $multi{"$dir/$1"} = \@files; next; } -- cgit v1.2.3 From 7bc2a9de3848c0ea06877adcb53c29b9155840ef Mon Sep 17 00:00:00 2001 From: Trent Piepho Date: Mon, 12 Mar 2007 16:08:21 -0700 Subject: build: add a qrefresh target, like commit for use with mq Adds a qrefresh target to the top-level Makefile. It's like commit, but for use with the Hg mq extension. It will execute hg qrefresh, so you should have a current mq patch created with hg qnew already! It will run the whitespace and cardlist scripts. If you do not have a commit message from the current mq patch, it will create a default one, as make commit does. If one already exists, then it will put a comment at the beginning of the existing message with the current diffstat and a note of any changes the whitespace script made. The diffstat is done with qdiff, which will show the total diffstat of the patch instead of just the diffstat of from the last version of the patch to the current version. Signed-off-by: Trent Piepho --- v4l/scripts/prep_commit_msg.pl | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'v4l/scripts') diff --git a/v4l/scripts/prep_commit_msg.pl b/v4l/scripts/prep_commit_msg.pl index f4047c6ba..819009c57 100755 --- a/v4l/scripts/prep_commit_msg.pl +++ b/v4l/scripts/prep_commit_msg.pl @@ -1,5 +1,10 @@ #!/usr/bin/perl +my $diff = 'diff'; +if ($ARGV[0] eq '-q') { + $diff = 'qdiff'; + shift; +} my $autopatch = shift; # Get Hg username from environment @@ -45,13 +50,25 @@ if ($user eq "") { } print "# Added/removed/changed files:\n"; -system "hg diff | diffstat -p1 -c"; +system "hg $diff | diffstat -p1 -c"; if (-s $autopatch) { print "#\n# Note, a problem with your patch was detected! These changes were made\n"; print "# automatically: $autopatch\n"; system "diffstat -p0 -c $autopatch"; print "#\n# Please review these changes and see if they belong in your patch or not.\n"; } +if ($diff eq 'qdiff') { + # Use existing mq patch logfile? + open IN, "hg qheader |"; + my @header = ; + close IN; + if ($#header > 0) { + # Use existing header + print @header; + exit; + } + # No header, use pre-made log message below +} print <<"EOF"; # # For better log display, please keep a blank line after subject, after from, -- cgit v1.2.3 From d99177342d725d7fbbd024245697d33c63952ed9 Mon Sep 17 00:00:00 2001 From: Trent Piepho Date: Fri, 30 Mar 2007 17:37:53 -0700 Subject: build: Fix bug with make qrefresh From: Trent Piepho Annoyingly, the Hg mq extension will strip lines starting with "From: " from the patch header. Since the v4l-dvb format commit message contains a line starting with "From: ", it will mess them up. This changes prep_commit_msg to create a decoy "from" line to keep mq from messing up commit messages. Signed-off-by: Trent Piepho --- v4l/scripts/prep_commit_msg.pl | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'v4l/scripts') diff --git a/v4l/scripts/prep_commit_msg.pl b/v4l/scripts/prep_commit_msg.pl index 819009c57..cb0740a5d 100755 --- a/v4l/scripts/prep_commit_msg.pl +++ b/v4l/scripts/prep_commit_msg.pl @@ -62,12 +62,18 @@ if ($diff eq 'qdiff') { open IN, "hg qheader |"; my @header = ; close IN; + if ($#header > 0) { # Use existing header print @header; exit; } # No header, use pre-made log message below + + # Hg will strip lines that start with "From: " from mq patch headers! + # In order to stop it, we insert this extra From line at the top, + # Hg will strip it and then leave the real from line alone. + print "From: $user\n\n"; } print <<"EOF"; # -- cgit v1.2.3 From 628ac96b077ca879a0bfca25f1db0dfd9a07f4ef Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Tue, 3 Apr 2007 18:05:56 -0300 Subject: Add script to generate CARDLIST.usbvision From: Mauro Carvalho Chehab Signed-off-by: Mauro Carvalho Chehab --- v4l/scripts/cardlist | 3 +++ v4l/scripts/usbvision.pl | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100755 v4l/scripts/usbvision.pl (limited to 'v4l/scripts') diff --git a/v4l/scripts/cardlist b/v4l/scripts/cardlist index 901d3fb18..91c32c483 100755 --- a/v4l/scripts/cardlist +++ b/v4l/scripts/cardlist @@ -15,3 +15,6 @@ scripts/tuner.pl ../linux/include/media/tuner.h ../linux/drivers/media/video/tun scripts/saa7134.pl ../linux/drivers/media/video/saa7134/saa7134.h ../linux/drivers/media/video/saa7134/saa7134-cards.c \ | perl -ne 's/[ \t]+$//; print' > ../linux/Documentation/video4linux/CARDLIST.saa7134 +scripts/usbvision.pl ../linux/drivers/media/video/usbvision/usbvision-cards.c \ + | perl -ne 's/[ \t]+$//; print' > ../linux/Documentation/video4linux/CARDLIST.usbvision + diff --git a/v4l/scripts/usbvision.pl b/v4l/scripts/usbvision.pl new file mode 100755 index 000000000..5aae512c5 --- /dev/null +++ b/v4l/scripts/usbvision.pl @@ -0,0 +1,37 @@ +#!/usr/bin/perl -w +use strict; + +my $new_entry = -1; +my $nr = 0; +my ($id,$subvendor,$subdevice); +my %data; + +my $cap=0; + +while (<>) { + if (m/usbvision_device_data/) { + $cap=1; + next; + } + if (m/usbvision_table/) { + $cap=0; + next; + } + if ($cap==0) { + next; + } + + if (m/\{0x([0-9a-z]...)\s*\,\s*0x([0-9a-z]...).*\"(.*)\"/) { + $data{$nr}->{nr} = $nr; + $data{$nr}->{name} = $3; + push @{$data{$nr}->{subid}}, "$1:$2"; + $nr++; + } +} + +foreach my $item (sort { $data{$a}->{nr} <=> $data{$b}->{nr} } keys %data) { + printf("%3d -> %-56s", $data{$item}->{nr}, $data{$item}->{name}); + printf(" [%s]",join(",",@{$data{$item}->{subid}})) + if defined($data{$item}->{subid}); + print "\n"; +} -- cgit v1.2.3 From 8dc666d4b3b64814dc3a27e476350b94fcdfb232 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Sat, 14 Apr 2007 15:09:59 -0300 Subject: Use a better format to represent usbvision supported boards From: Mauro Carvalho Chehab Changed usbvision cards table to allow: 1) Not repeat USB ID on two structs; 2) Not need to specify both usb and card description tables at the same order, removing some magic; Some cards had duplicated names. Fixed. A test for an specific board were doing by using a string comparation. The comparation were wrong. Also, it is not a good practice to recognize a board based on his string name. Acked-by: Thierry MERLE Signed-off-by: Mauro Carvalho Chehab --- v4l/scripts/cardlist | 2 +- v4l/scripts/usbvision.pl | 33 ++++++++++++++++++--------------- 2 files changed, 19 insertions(+), 16 deletions(-) (limited to 'v4l/scripts') diff --git a/v4l/scripts/cardlist b/v4l/scripts/cardlist index 91c32c483..0225d6ebd 100755 --- a/v4l/scripts/cardlist +++ b/v4l/scripts/cardlist @@ -15,6 +15,6 @@ scripts/tuner.pl ../linux/include/media/tuner.h ../linux/drivers/media/video/tun scripts/saa7134.pl ../linux/drivers/media/video/saa7134/saa7134.h ../linux/drivers/media/video/saa7134/saa7134-cards.c \ | perl -ne 's/[ \t]+$//; print' > ../linux/Documentation/video4linux/CARDLIST.saa7134 -scripts/usbvision.pl ../linux/drivers/media/video/usbvision/usbvision-cards.c \ +scripts/usbvision.pl ../linux/drivers/media/video/usbvision/usbvision-cards.h ../linux/drivers/media/video/usbvision/usbvision-cards.c \ | perl -ne 's/[ \t]+$//; print' > ../linux/Documentation/video4linux/CARDLIST.usbvision diff --git a/v4l/scripts/usbvision.pl b/v4l/scripts/usbvision.pl index 5aae512c5..3976e8bd1 100755 --- a/v4l/scripts/usbvision.pl +++ b/v4l/scripts/usbvision.pl @@ -6,26 +6,29 @@ my $nr = 0; my ($id,$subvendor,$subdevice); my %data; -my $cap=0; - while (<>) { - if (m/usbvision_device_data/) { - $cap=1; - next; - } - if (m/usbvision_table/) { - $cap=0; + # defines in header file + if (/#define\s*(\w+)\s*(\d+)/) { + $data{$1}->{nr} = $2; next; } - if ($cap==0) { - next; + # boards + if (/^\s*\[([\w\d_]+)\]\s*=\s*{/) { + $id = $1; + $data{$id}->{id} = $id; + }; + + next unless defined($id); + + if (/USB_DEVICE.*0x([0-9a-fA-F]*).*0x([0-9a-fA-F]*).*driver_info\s*=\s*([\w\d_]+)/) +{ + $subvendor=$1; + $subdevice=$2; + push @{$data{$3}->{subid}}, "$subvendor:$subdevice"; } - if (m/\{0x([0-9a-z]...)\s*\,\s*0x([0-9a-z]...).*\"(.*)\"/) { - $data{$nr}->{nr} = $nr; - $data{$nr}->{name} = $3; - push @{$data{$nr}->{subid}}, "$1:$2"; - $nr++; + if (!defined($data{$id}) || !defined($data{$id}->{name})) { + $data{$id}->{name} = $1 if (/\.ModelString\s*=\s*\"([^\"]+)\"/); } } -- cgit v1.2.3