]> rtime.felk.cvut.cz Git - socketcan-devel.git/blob - mkseries-dev/mkseries
Added missing inclusion of linux/types.h
[socketcan-devel.git] / mkseries-dev / mkseries
1 #!/bin/bash
2
3 #set -x
4
5 #
6 # New files of CAN device interface and drivers
7 #
8 PATCH_DEVICE_NAME=socketcan-device.diff
9 PATCH_DEVICE_FILES="\
10 include/linux/can/dev.h \
11 drivers/net/can/dev.c"
12
13 PATCH_SYSFS_NAME=socketcan-sysfs.diff
14 PATCH_SYSFS_FILES="\
15 drivers/net/can/sysfs.c \
16 drivers/net/can/sysfs.h"
17
18 PATCH_DRIVER_SJA1000_NAME=socketcan-driver-sja1000.diff
19 PATCH_DRIVER_SJA1000_FILES="\
20 drivers/net/can/sja1000/sja1000.c \
21 drivers/net/can/sja1000/sja1000.h "
22
23 PATCH_DRIVER_SJA1000_EMS_PCI_NAME=socketcan-driver-sja1000-ems-pci.diff
24 PATCH_DRIVER_SJA1000_EMS_PCI_FILES="\
25 drivers/net/can/sja1000/ems_pci.c"
26
27 PATCH_DRIVER_SJA1000_IXXAT_PCI_NAME=socketcan-driver-sja1000-ixxat-pci.diff
28 PATCH_DRIVER_SJA1000_IXXAT_PCI_FILES="\
29 drivers/net/can/sja1000/ixxat_pci.c"
30
31 PATCH_DRIVER_SJA1000_KVASER_PCI_NAME=socketcan-driver-sja1000-kvaser-pci.diff
32 PATCH_DRIVER_SJA1000_KVASER_PCI_FILES="\
33 drivers/net/can/sja1000/kvaser_pci.c"
34
35 PATCH_DRIVER_SJA1000_PIPCAN_NAME=socketcan-driver-sja1000-pipcan.diff
36 PATCH_DRIVER_SJA1000_PIPCAN_FILES="\
37 drivers/net/can/sja1000/pipcan.c"
38
39 PATCH_DRIVER_SJA1000_PCM027_NAME=socketcan-driver-sja1000-pcm027.diff
40 PATCH_DRIVER_SJA1000_PCM027_FILES="\
41 drivers/net/can/sja1000/pcm027.c"
42
43 PATCH_DRIVER_SJA1000_PEAK_PCI_NAME=socketcan-driver-sja1000-peak-pci.diff
44 PATCH_DRIVER_SJA1000_PEAK_PCI_FILES="\
45 drivers/net/can/sja1000/peak_pci.c"
46
47 PATCH_DRIVER_MSCAN_NAME=socketcan-driver-mscan.diff
48 PATCH_DRIVER_MSCAN_FILES="\
49 drivers/net/can/mscan/mscan.c \
50 drivers/net/can/mscan/mscan.h \
51 drivers/net/can/mscan/mpc52xx_can.c"
52
53 #
54 # Old files of CAN core and VCAN driver
55 #
56 PATCH_CORE_NAME=socketcan-core.diff
57 PATCH_CORE_FILES="\
58 include/linux/can.h \
59 include/linux/can/raw.h \
60 include/linux/can/bcm.h \
61 include/linux/can/core.h \
62 include/linux/can/error.h \
63 net/can/af_can.c \
64 net/can/af_can.h \
65 net/can/proc.c \
66 net/can/raw.c \
67 net/can/bcm.c"
68
69 PATCH_DRIVER_VCAN_NAME=socketcan-driver-vcan.diff
70 PATCH_DRIVER_VCAN_FILES="\
71 drivers/net/can/vcan.c"
72
73 usage() {
74     echo "usage: $0 <path-to-kernel-dir> <patch-to-output-dir>" >&2
75     exit 1
76 }
77
78 #
79 # Main
80 #
81 HERE=$(pwd)
82 SRC_DIR=$HERE/kernel/2.6
83 SCR_DIR=$HERE/`dirname $0`
84 PATCH_DIR=$SCR_DIR/patches
85 HDR_DIR=$SCR_DIR/headers
86
87 [ ! -e $1/MAINTAINERS ] && usage
88 KERNEL_DIR=$1
89
90 if [ $# -gt 1 ]; then
91     DEST_DIR=$2
92 else
93     DEST_DIR=${HERE}/socketcan-patches
94 fi
95
96 echo $DEST_DIR
97 if [ -e $DEST_DIR ]; then
98     echo "error: $DEST_DIR does already exist, exiting" >&2
99     exit 1
100 fi
101
102 # determine kernel version
103 KERNEL_MAJOR=$(grep "^VERSION =" ${KERNEL_DIR}/Makefile | sed -e "s/[ \t]//g" | sed -e "s/VERSION=//g")
104 KERNEL_MINOR=$(grep "^PATCHLEVEL =" ${KERNEL_DIR}/Makefile | sed -e "s/[ \t]//g" | sed -e "s/PATCHLEVEL=//g")
105 KERNEL_MICRO=$(grep "^SUBLEVEL =" ${KERNEL_DIR}/Makefile | sed -e "s/[ \t]//g" | sed -e "s/SUBLEVEL=//g")
106 KERNEL_EXTRA=$(grep "^EXTRAVERSION =" ${KERNEL_DIR}/Makefile | sed -e "s/[ \t]//g" | sed -e "s/EXTRAVERSION=//g")
107
108 mkdir -p $DEST_DIR
109 export QUILT_PATCHES=$DEST_DIR
110
111 echo "Creating patches against kernel in $KERNEL_DIR"
112
113 num=0
114
115
116 for patch in \
117     DEVICE \
118     SYSFS \
119     DRIVER_SJA1000 \
120     DRIVER_SJA1000_EMS_PCI \
121     DRIVER_SJA1000_IXXAT_PCI \
122     DRIVER_SJA1000_KVASER_PCI \
123     DRIVER_SJA1000_PIPCAN \
124     DRIVER_SJA1000_PCM027 \
125     DRIVER_SJA1000_PEAK_PCI \
126     DRIVER_MSCAN \
127     DRIVER_VCAN \
128     CORE
129   do
130   name=PATCH_${patch}_NAME
131   files=PATCH_${patch}_FILES
132   append=PATCH_${patch}_APPEND
133
134   num=$((num + 1))
135
136   [ -z "${!name}" ] && continue
137
138   patch_name=$(printf "%02i" $num)-${!name}
139   echo "${patch_name}..."
140
141   cd ${KERNEL_DIR}
142   quilt new ${patch_name} > /dev/null
143
144   for file in ${!files}; do
145       quilt add ${file} > /dev/null
146       mkdir -p $(dirname ${KERNEL_DIR}/${file})
147       ${HERE}/strip-src \
148           -v ${KERNEL_MAJOR}.${KERNEL_MINOR}.${KERNEL_MICRO} \
149           -i \
150           ${SRC_DIR}/${file} > ${KERNEL_DIR}/${file}
151   done
152
153   file=$PATCH_DIR/$patch.diff
154   if [ -r $file ]; then
155       ok=n
156       patch -p1 --dry-run < $file > /dev/null && ok=y
157       if [ $ok = y ]; then
158           quilt add `grep "Index: " $file | cut -d"/" -f 2-` > /dev/null
159           patch -p1 < $file
160       else
161           echo "Couldn't apply patch $file, please fix!"
162       fi
163   fi
164
165   quilt refresh --diffstat > /dev/null
166
167   file=$HDR_DIR/$patch.txt
168   if [ -r $file ]; then
169       quilt header --strip-trailing-whitespace -r < $file > /dev/null
170   fi
171 done
172
173 quilt pop -a > /dev/null
174
175 #
176 # Check patches and add patch description
177 #
178 file=$DEST_DIR/checkpatch.log
179 echo "Checking patches, please inspect $file"
180 echo "Linux coding style issues reported by checkpatch.pl" > $file
181 for patch in $DEST_DIR/*.diff; do
182     echo >> $file
183     echo "***************************************************" >> $file
184     echo "$patch" >> $file
185     echo >> $file
186     ${KERNEL_DIR}/scripts/checkpatch.pl ${patch} >> $file
187 done
188