summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@free.fr>2012-10-16 18:57:44 (GMT)
committerYann E. MORIN" <yann.morin.1998@free.fr>2012-10-16 18:57:44 (GMT)
commite1806b1d221d12eb4e151cec1e9a4573300f2b0b (patch)
treea9cf1264db949fbfe5207b1ba022f5cc6c22e0ec /scripts
parent1e0b160dd83c3dc1b7aeb49704dbdd5297235cf6 (diff)
kernel/linux: fix using custom location
Currently, extract and patch are skipped as thus: - using a custom directory of pre-installed headers - a correctly named directory already exists Otherwise, extract and patch are done. The current second condition is wrong, because it allows the following sequence to happen: - a non-custom kernel is used - a previous build only partially extracted the non-custom sources - that p[revious build broke during extraction (eg. incomplete tarball...) - a subsequent build will find a properly named directory, and will thus skip extract and patch, which is wrong Fix that by following the conditions in this table: Type | Extract | Patch ----------------------+---------+------- Pre-installed headers | N | N custom directory | N | N custom tarball | Y | N mainstream tarball | Y | Y Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: David Holsgrove <david.holsgrove@xilinx.com>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/build/kernel/linux.sh20
1 files changed, 16 insertions, 4 deletions
diff --git a/scripts/build/kernel/linux.sh b/scripts/build/kernel/linux.sh
index dad85c4..c1c4e62 100644
--- a/scripts/build/kernel/linux.sh
+++ b/scripts/build/kernel/linux.sh
@@ -59,13 +59,25 @@ do_kernel_get() {
# Extract kernel
do_kernel_extract() {
- # If using custom headers, or custom directory location, nothing to do
- if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" = "y" \
- -o -d "${CT_SRC_DIR}/linux-${CT_KERNEL_VERSION}" ]; then
+ # If using a custom headers tree, nothing to do
+ if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" = "y" ]
return 0
fi
-
+
+ # If using a custom directory location, nothing to do
+ if [ "${CT_KERNEL_LINUX_CUSTOM}" = "y" \
+ -a -d "${CT_SRC_DIR}/linux-${CT_KERNEL_VERSION}" ]; then
+ return 0
+ fi
+
+ # Otherwise, we're using either a mainstream tarball, or a custom
+ # tarball; in either case, we need to extract
CT_Extract "linux-${CT_KERNEL_VERSION}"
+
+ # If using a custom tarball, no need to patch
+ if [ "${CT_KERNEL_LINUX_CUSTOM}" = "y" ]; then
+ return 0
+ fi
CT_Patch "linux" "${CT_KERNEL_VERSION}"
}