Index: chromeos-base/kernel/kernel-0.0.1.ebuild |
diff --git a/chromeos-base/kernel/kernel-0.0.1.ebuild b/chromeos-base/kernel/kernel-0.0.1.ebuild |
index bd4facab5732f56b7b836e8f54df75ba89302ce7..e33968b4bf7c23ed47d83d400bc6e6876408d64f 100644 |
--- a/chromeos-base/kernel/kernel-0.0.1.ebuild |
+++ b/chromeos-base/kernel/kernel-0.0.1.ebuild |
@@ -18,10 +18,20 @@ RDEPEND="" |
kernel=${CHROMEOS_KERNEL:-"kernel/files"} |
files="${CHROMEOS_ROOT}/src/third_party/${kernel}" |
-if [ "${ARCH}" = "x86" ]; then |
- config=${CHROMEOS_KERNEL_SPLITCONFIG:-"chromeos-intel-menlow"} |
-elif [ "${ARCH}" = "arm" ]; then |
- config=${CHROMEOS_KERNEL_SPLITCONFIG:-"qsd8650-st1"} |
+# Use a single or split kernel config as specified in the board or variant |
+# make.conf overlay. Default to the arch specific split config if an |
+# overlay or variant does not set either CHROMEOS_KERNEL_CONFIG or |
+# CHROMEOS_KERNEL_SPLITCONFIG. CHROMEOS_KERNEL_CONFIG is set relative |
+# to the root of the kernel source tree. |
+ |
+if [ -n "${CHROMEOS_KERNEL_CONFIG}" ]; then |
+ config="${files}/${CHROMEOS_KERNEL_CONFIG}" |
+else |
+ if [ "${ARCH}" = "x86" ]; then |
+ config=${CHROMEOS_KERNEL_SPLITCONFIG:-"chromeos-intel-menlow"} |
+ elif [ "${ARCH}" = "arm" ]; then |
+ config=${CHROMEOS_KERNEL_SPLITCONFIG:-"qsd8650-st1"} |
+ fi |
fi |
src_unpack() { |
@@ -33,7 +43,12 @@ src_unpack() { |
src_configure() { |
elog "Using kernel config: ${config}" |
- chromeos/scripts/prepareconfig ${config} || die |
+ |
+ if [ -n "${CHROMEOS_KERNEL_CONFIG}" ]; then |
+ cp -f "${config}" "${S}"/.config || die |
+ else |
+ chromeos/scripts/prepareconfig ${config} || die |
+ fi |
emake ARCH=$(tc-arch-kernel) oldconfig || die |
} |