]> rtime.felk.cvut.cz Git - socketcan-devel.git/commitdiff
Add a quick'n'dirty script to generate a kernel patch file.
authorthuermann <thuermann@030b6a49-0b11-0410-94ab-b0dab22257f2>
Mon, 19 Mar 2007 13:03:37 +0000 (13:03 +0000)
committerthuermann <thuermann@030b6a49-0b11-0410-94ab-b0dab22257f2>
Mon, 19 Mar 2007 13:03:37 +0000 (13:03 +0000)
Needs a list of files to be added on stdin and currently also a diff file
for the kernel version the patch is to be generated for.

git-svn-id: svn://svn.berlios.de//socketcan/trunk@185 030b6a49-0b11-0410-94ab-b0dab22257f2

FILES-2.6 [new file with mode: 0644]
Makefile [new file with mode: 0644]
mkpatch [new file with mode: 0755]

diff --git a/FILES-2.6 b/FILES-2.6
new file mode 100644 (file)
index 0000000..6330839
--- /dev/null
+++ b/FILES-2.6
@@ -0,0 +1,30 @@
+kernel/2.6/net/can/Kconfig
+kernel/2.6/net/can/Makefile.kernel Makefile
+kernel/2.6/net/can/af_can.c
+kernel/2.6/net/can/af_can.h
+kernel/2.6/net/can/proc.c
+kernel/2.6/net/can/raw.c
+kernel/2.6/net/can/bcm.c
+kernel/2.6/include/linux/can.h
+kernel/2.6/include/linux/can/core.h
+kernel/2.6/include/linux/can/version.h
+kernel/2.6/include/linux/can/error.h
+kernel/2.6/include/linux/can/raw.h
+kernel/2.6/include/linux/can/bcm.h
+#kernel/2.6/include/linux/can/ioctl.h
+#kernel/2.6/include/linux/can/dev.h
+kernel/2.6/drivers/net/can/Kconfig.kernel Kconfig
+kernel/2.6/drivers/net/can/Makefile.kernel Makefile
+kernel/2.6/drivers/net/can/vcan.c
+#kernel/2.6/drivers/net/can/slcan.c
+#kernel/2.6/drivers/net/can/mscan/Makefile
+#kernel/2.6/drivers/net/can/mscan/mpc52xx_can.c
+#kernel/2.6/drivers/net/can/mscan/mscan.c
+#kernel/2.6/drivers/net/can/mscan/mscan.h
+#kernel/2.6/drivers/net/can/sja1000/Makefile
+#kernel/2.6/drivers/net/can/sja1000/isa.c
+#kernel/2.6/drivers/net/can/sja1000/mem.c
+#kernel/2.6/drivers/net/can/sja1000/proc.c
+#kernel/2.6/drivers/net/can/sja1000/sja1000.c
+#kernel/2.6/drivers/net/can/sja1000/sja1000.h
+#kernel/2.6/drivers/net/can/sja1000/trajet-gw2.c
diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..94031e8
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,12 @@
+#
+#  $Id$
+#
+
+VERSION       = $(shell awk '/^VERSION/     {print $$3}' $(KERNELDIR)/Makefile)
+PATCHLEVEL    = $(shell awk '/^PATCHLEVEL/  {print $$3}' $(KERNELDIR)/Makefile)
+SUBLEVEL      = $(shell awk '/^SUBLEVEL/    {print $$3}' $(KERNELDIR)/Makefile)
+EXTRAVERSION  = $(shell awk '/^EXTRAVERSION/{print $$3}' $(KERNELDIR)/Makefile)
+KERNELRELEASE = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
+
+patch26:
+       ./mkpatch $(KERNELRELEASE) >patch-$(KERNELRELEASE)-socketcan < FILES-2.6
diff --git a/mkpatch b/mkpatch
new file mode 100755 (executable)
index 0000000..a6fbc70
--- /dev/null
+++ b/mkpatch
@@ -0,0 +1,59 @@
+#!/usr/bin/perl
+#
+# $Id$
+#
+# Generate a kernel patch to add socketcan to a kernel src tree.
+# The list of files to be added is read from stdin.
+
+$version = shift;
+
+if (-r "patches/$version.diff") {
+    copy_file("patches/$version.diff");
+}
+
+while (<>) {
+    next if (/^#/);
+    my ($file, $n) = split;
+    my ($name);
+    if ($n eq "") {
+       $name = $file;
+    } else {
+       $name = $file;
+       $name =~ s/[^\/]*$/$n/;
+    }
+    $name =~ s/[^\/]*\/[^\/]*\///;
+    
+    add_file($file, $name);
+}
+
+close FILES;
+
+sub copy_file {
+    my ($file) = @_;
+
+    open file, "$file" || die "open $file\n";
+    while (<file>) {
+       print;
+    }
+    close file;
+}
+
+sub add_file {
+    my ($file, $name) = @_;
+    my (@lines, $count, $ts, $mtime);
+
+    open file, "./kv $version $file |" || die "open $file\n";
+    @lines = <file>;
+    $count = $#lines + 1;
+    use POSIX qw(strftime);
+    $mtime = (stat($file))[9];
+    $ts = strftime "%F %T", gmtime((stat($file))[9]);
+
+    print "--- a/$name 1970-01-01 00:00:00\n";
+    print "+++ b/$name $ts\n";
+    print "@@ -0,0 +1,$count @@\n";
+    for (@lines) {
+       print "+$_";
+    }
+    close file;
+}