summaryrefslogtreecommitdiff
path: root/bcc/build-kheaders-targz.sh
diff options
context:
space:
mode:
authorJoel Fernandes <joel@linuxinternals.org>2018-03-31 20:35:33 -0700
committerJoel Fernandes <joel@linuxinternals.org>2018-03-31 21:08:32 -0700
commit72656c5b3fcc370beb8168453dc7a470c67c12b7 (patch)
treee4e9c0239495d80ae7cfc6dbf1a36edb518489d0 /bcc/build-kheaders-targz.sh
parent5572bd24128ced8c53b3d12f429da64a29d5e0bd (diff)
downloadadeb-72656c5b3fcc370beb8168453dc7a470c67c12b7.tar.gz
Update
Signed-off-by: Joel Fernandes <joel@linuxinternals.org>
Diffstat (limited to 'bcc/build-kheaders-targz.sh')
-rwxr-xr-xbcc/build-kheaders-targz.sh37
1 files changed, 37 insertions, 0 deletions
diff --git a/bcc/build-kheaders-targz.sh b/bcc/build-kheaders-targz.sh
new file mode 100755
index 0000000..a7db3db
--- /dev/null
+++ b/bcc/build-kheaders-targz.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+script_full_path=$( cd "$(dirname "$0")" ; pwd -P )
+
+if [ $# -ne 2 ]; then
+ echo "illegal number of parameters, usage: ./build KERNEL_PATH out.tar.gz"
+ exit 1
+fi
+
+# Please provide absolute paths
+KERNEL_PATH=$1
+OUT_TAR=$2
+
+KERNEL_PATH="$(dirname $(readlink -e $KERNEL_PATH))/$(basename $KERNEL_PATH)"
+if [ ! -d "$KERNEL_PATH" ]; then
+ echo "Kernel directory couldn't be found"
+ exit 3
+fi
+
+kdir=$(basename $KERNEL_PATH)
+
+cd $KERNEL_PATH/..
+find $kdir/arch -name include -type d -print | xargs -n1 -i: find : -type f > /tmp/kernel-headers.h
+find $kdir/include >> /tmp/kernel-headers.h
+
+grep "include/generated/autoconf.h" /tmp/kernel-headers.h > /dev/null 2>&1
+retgrep=$?
+if [ $retgrep -ne 0 ]; then
+ echo ""
+ echo "The kernel sources at ${KERNEL_PATH} you pointed to aren't configured and built."
+ echo "Please atleast run in your kernel sources:"
+ echo $'make defconfig\nmake'
+ echo $'\nNote: You dont need to do the full build since headers are generated early on.\n'
+ exit $retgrep
+fi
+
+cat /tmp/kernel-headers.h | tar -zcf $OUT_TAR -T -
+# rm /tmp/kernel-headers.h