]> rtime.felk.cvut.cz Git - socketcan-devel.git/blob - mkpatch
Add kernel version depency for Kernel 3.1.x which extended __rtnl_register().
[socketcan-devel.git] / mkpatch
1 #!/usr/bin/perl
2 #
3 # $Id$
4 #
5 # Generate a kernel patch to add socketcan to a kernel src tree.
6 # The list of files to be added is read from stdin.
7
8 use POSIX qw(strftime);
9
10 $version = shift;
11
12 if (-r "patches/$version.diff") {
13     copy_file("patches/$version.diff");
14 } else {
15     die "Patch patches/$version.diff not found";
16 }
17
18 while (<>) {
19     next if (/^#/);
20     my ($file, $n) = split;
21     my ($name);
22     if ($n eq "") {
23         $name = $file;
24     } else {
25         $name = $file;
26         $name =~ s/[^\/]*$/$n/;
27     }
28     $name =~ s/[^\/]*\/[^\/]*\///;
29     
30     add_file($file, $name);
31 }
32
33 sub copy_file {
34     my ($file) = @_;
35
36     open file, "$file" || die "open $file\n";
37     while (<file>) {
38         print;
39     }
40     close file;
41 }
42
43 sub add_file {
44     my ($file, $name) = @_;
45     my (@lines, $count, $ts);
46
47     open file, "./strip-src -i -m -v $version $file |" || die "open $file\n";
48     @lines = <file>;
49     close file;
50
51     $count = $#lines + 1;
52     $ts = strftime "%F %T", gmtime((stat($file))[9]);
53
54     print "--- a/$name 1970-01-01 00:00:00\n";
55     print "+++ b/$name $ts\n";
56     print "@@ -0,0 +1,$count @@\n";
57     for (@lines) {
58         print "+$_";
59     }
60 }