#!/bin/bash determine_config_file() { if [ "${CMD_KERNEL_CONFIG}" != "" ] then KERNEL_CONFIG="${CMD_KERNEL_CONFIG}" elif [ -f "/etc/kernels/kernel-config-${ARCH}-${KV}" ] then KERNEL_CONFIG="/etc/kernels/kernel-config-${ARCH}-${KV}" elif [ -f "${GK_SHARE}/${ARCH}/kernel-config-${KV}" ] then KERNEL_CONFIG="${GK_SHARE}/${ARCH}/kernel-config-${KV}" elif [ "${DEFAULT_KERNEL_CONFIG}" != "" -a -f "${DEFAULT_KERNEL_CONFIG}" ] then KERNEL_CONFIG="${DEFAULT_KERNEL_CONFIG}" elif [ -f "${GK_SHARE}/${ARCH}/kernel-config-${VER}.${PAT}" ] then KERNEL_CONFIG="${GK_SHARE}/${ARCH}/kernel-config-${VER}.${PAT}" elif [ -f "${GK_SHARE}/${ARCH}/kernel-config" ] then KERNEL_CONFIG="${GK_SHARE}/${ARCH}/kernel-config" else gen_die "Error: No kernel config specified, or file not found!" fi } config_kernel() { determine_config_file cd "${KERNEL_DIR}" || gen_die "Could not switch to the kernel directory!" if isTrue ${MRPROPER} then print_info 1 "kernel: >> Running mrproper..." compile_generic "mrproper" kernel fi # If we're not cleaning, then we don't want to try to overwrite the configs there # or we might screw up something someone is trying to test. if isTrue ${CLEAN} then print_info 1 "config: Using config from ${KERNEL_CONFIG}" print_info 1 " Previous config backed up to .config.bak" cp "${KERNEL_DIR}/.config" "${KERNEL_DIR}/.config.bak" > /dev/null 2>&1 cp "${KERNEL_CONFIG}" "${KERNEL_DIR}/.config" || gen_die "could not copy config file" print_info 1 " >> Running oldconfig..." yes "" | compile_generic "oldconfig" kernel print_info 1 "kernel: >> Cleaning..." compile_generic "clean" kernel else print_info 1 "config: --no-clean is enabled; leaving the .config alone." fi if isTrue ${MENUCONFIG} then print_info 1 "config: >> Invoking menuconfig..." compile_generic menuconfig runtask [ "$?" != "0" ] && gen_die "Error: menuconfig failed." elif isTrue ${CMD_GCONFIG} then if [ "${VER}" == "2" ] && [ "${PAT}" -lt "6" ] then print_warning 1 "config: gconfig is not available in 2.4 series kernels. Running xconfig" print_warning 1 " instead..." CMD_GCONFIG=0 CMD_XCONFIG=1 else print_info 1 "config: >> Invoking gconfig..." compile_generic gconfig kernel [ "$?" != "0" ] && gen_die "Error: gconfig failed." CMD_XCONFIG=0 fi fi if isTrue ${CMD_XCONFIG} then print_info 1 "config: >> Invoking xconfig..." compile_generic xconfig kernel [ "$?" != "0" ] && gen_die "Error: xconfig failed." fi }