summaryrefslogtreecommitdiffstats
path: root/sources/patch-kernel.sh
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2002-12-10 23:26:31 +0000
committerEric Andersen <andersen@codepoet.org>2002-12-10 23:26:31 +0000
commit98b6fb27b3fa0960a94e4545b0b7c4498b1dc8e6 (patch)
tree97a40c10cb9b5bc8e36dc27310bcbe2416d1ca38 /sources/patch-kernel.sh
parentbe4cf785bdff65e87ea8abf7b48e09cf78b6ec6d (diff)
downloadbuildroot-novena-98b6fb27b3fa0960a94e4545b0b7c4498b1dc8e6.tar.gz
buildroot-novena-98b6fb27b3fa0960a94e4545b0b7c4498b1dc8e6.zip
Support building regular kernels
Diffstat (limited to 'sources/patch-kernel.sh')
-rwxr-xr-xsources/patch-kernel.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/sources/patch-kernel.sh b/sources/patch-kernel.sh
new file mode 100755
index 000000000..3b72b556e
--- /dev/null
+++ b/sources/patch-kernel.sh
@@ -0,0 +1,47 @@
+#! /bin/sh
+
+# Set directories from arguments, or use defaults.
+targetdir=${1-.}
+patchdir=${2-../kernel-patches}
+
+if [ ! -d "${targetdir}" ] ; then
+ echo "Aborting. '${targetdir}' is not a directory."
+ exit 1
+fi
+if [ ! -d "${patchdir}" ] ; then
+ echo "Aborting. '${patchdir}' is not a directory."
+ exit 1
+fi
+
+for i in ${patchdir}/* ; do
+ case "$i" in
+ *.gz)
+ type="gzip"; uncomp="gunzip -dc"; ;;
+ *.bz)
+ type="bzip"; uncomp="bunzip -dc"; ;;
+ *.bz2)
+ type="bzip2"; uncomp="bunzip2 -dc"; ;;
+ *.zip)
+ type="zip"; uncomp="unzip -d"; ;;
+ *.Z)
+ type="compress"; uncomp="uncompress -c"; ;;
+ *)
+ type="plaintext"; uncomp="cat"; ;;
+ esac
+ echo ""
+ echo "Applying ${i} using ${type}: "
+ ${uncomp} ${i} | patch -p1 -E -d ${targetdir}
+ if [ $? != 0 ] ; then
+ echo "Patch failed! Please fix $i!"
+ exit 1
+ fi
+done
+
+# Check for rejects...
+if [ "`find $targetdir/ '(' -name '*.rej' -o -name '.*.rej' ')' -print`" ] ; then
+ echo "Aborting. Reject files found."
+ exit 1
+fi
+
+# Remove backup files
+find $targetdir/ '(' -name '*.orig' -o -name '.*.orig' ')' -exec rm -f {} \;