|
|
|
#!/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
|
|
|
|
|
|
|
|
}
|