5 if [ "${NO_KERNEL_SOURCES}" = '1' -a -e "${KERNCACHE}" ]
7 /bin/tar -xj -C ${TEMP} -f ${KERNCACHE} kerncache.config
8 if [ -e ${TEMP}/kerncache.config ]
10 VER=`grep ^VERSION\ \= ${TEMP}/kerncache.config | awk '{ print $3 };'`
11 PAT=`grep ^PATCHLEVEL\ \= ${TEMP}/kerncache.config | awk '{ print $3 };'`
12 SUB=`grep ^SUBLEVEL\ \= ${TEMP}/kerncache.config | awk '{ print $3 };'`
13 EXV=`grep ^EXTRAVERSION\ \= ${TEMP}/kerncache.config | sed -e "s/EXTRAVERSION =//" -e "s/ //g"`
14 LOV=`grep ^CONFIG_LOCALVERSION\= ${TEMP}/kerncache.config | sed -e "s/CONFIG_LOCALVERSION=\"\(.*\)\"/\1/"`
15 KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
17 gen_die "Could not find kerncache.config in the kernel cache! Exiting."
20 # Configure the kernel
21 # If BUILD_KERNEL=0 then assume --no-clean, menuconfig is cleared
23 if [ ! -f "${KERNEL_DIR}"/Makefile ]
25 gen_die "Kernel Makefile (${KERNEL_DIR}/Makefile) missing. Maybe re-install the kernel sources."
28 VER=`grep ^VERSION\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };'`
29 PAT=`grep ^PATCHLEVEL\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };'`
30 SUB=`grep ^SUBLEVEL\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };'`
31 EXV=`grep ^EXTRAVERSION\ \= ${KERNEL_DIR}/Makefile | sed -e "s/EXTRAVERSION =//" -e "s/ //g" -e 's/\$([a-z]*)//gi'`
35 # Handle O= build directories
36 KERNEL_SOURCE_DIR=`grep ^MAKEARGS\ \:\= ${KERNEL_DIR}/Makefile | awk '{ print $4 };'`
37 [ -z "${KERNEL_SOURCE_DIR}" ] && gen_die "Deriving \${KERNEL_SOURCE_DIR} failed"
38 SUB=`grep ^SUBLEVEL\ \= ${KERNEL_SOURCE_DIR}/Makefile | awk '{ print $3 };'`
39 EXV=`grep ^EXTRAVERSION\ \= ${KERNEL_SOURCE_DIR}/Makefile | sed -e "s/EXTRAVERSION =//" -e "s/ //g" -e 's/\$([a-z]*)//gi'`
43 #compile_generic prepare kernel > /dev/null 2>&1
45 [ -f "${KERNEL_DIR}/include/linux/version.h" ] && \
46 VERSION_SOURCE="${KERNEL_DIR}/include/linux/version.h"
47 [ -f "${KERNEL_DIR}/include/linux/utsrelease.h" ] && \
48 VERSION_SOURCE="${KERNEL_DIR}/include/linux/utsrelease.h"
49 # Handle new-style releases where version.h doesn't have UTS_RELEASE
50 if [ -f ${KERNEL_DIR}/include/config/kernel.release ]
52 UTS_RELEASE=`cat ${KERNEL_DIR}/include/config/kernel.release`
53 LOV=`echo ${UTS_RELEASE}|sed -e "s/${VER}.${PAT}.${SUB}${EXV}//"`
54 KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
55 elif [ -n "${VERSION_SOURCE}" ]
57 UTS_RELEASE=`grep UTS_RELEASE ${VERSION_SOURCE} | sed -e 's/#define UTS_RELEASE "\(.*\)"/\1/'`
58 LOV=`echo ${UTS_RELEASE}|sed -e "s/${VER}.${PAT}.${SUB}${EXV}//"`
59 KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
62 LCV=`grep ^CONFIG_LOCALVERSION= "${KERNEL_CONFIG}" | sed -r -e "s/.*=\"(.*)\"/\1/"`
63 KV=${VER}.${PAT}.${SUB}${EXV}${LCV}
68 determine_real_args() {
69 print_info 4 "Resolving config file, command line, and arch default settings."
71 # Dest / Config File Command Line Arch Default
72 # ------------------ ------------ ------------
73 set_config_with_override STRING LOGFILE CMD_LOGFILE
74 set_config_with_override STRING KERNEL_DIR CMD_KERNEL_DIR "${DEFAULT_KERNEL_SOURCE}"
75 set_config_with_override BOOL NO_KERNEL_SOURCES CMD_NO_KERNEL_SOURCES
76 set_config_with_override STRING KNAME CMD_KERNNAME "genkernel"
78 set_config_with_override STRING MAKEOPTS CMD_MAKEOPTS "$DEFAULT_MAKEOPTS"
79 set_config_with_override STRING KERNEL_MAKE CMD_KERNEL_MAKE "$DEFAULT_KERNEL_MAKE"
80 set_config_with_override STRING UTILS_MAKE CMD_UTILS_MAKE "$DEFAULT_UTILS_MAKE"
81 set_config_with_override STRING KERNEL_CC CMD_KERNEL_CC "$DEFAULT_KERNEL_CC"
82 set_config_with_override STRING KERNEL_LD CMD_KERNEL_LD "$DEFAULT_KERNEL_LD"
83 set_config_with_override STRING KERNEL_AS CMD_KERNEL_AS "$DEFAULT_KERNEL_AS"
84 set_config_with_override STRING UTILS_CC CMD_UTILS_CC "$DEFAULT_UTILS_CC"
85 set_config_with_override STRING UTILS_LD CMD_UTILS_LD "$DEFAULT_UTILS_LD"
86 set_config_with_override STRING UTILS_AS CMD_UTILS_AS "$DEFAULT_UTILS_AS"
88 set_config_with_override STRING KERNEL_CROSS_COMPILE CMD_KERNEL_CROSS_COMPILE
89 set_config_with_override STRING UTILS_CROSS_COMPILE CMD_UTILS_CROSS_COMPILE
90 set_config_with_override STRING BOOTDIR CMD_BOOTDIR "/boot"
92 set_config_with_override BOOL SPLASH CMD_SPLASH
93 set_config_with_override BOOL POSTCLEAR CMD_POSTCLEAR
94 set_config_with_override BOOL MRPROPER CMD_MRPROPER
95 set_config_with_override BOOL MENUCONFIG CMD_MENUCONFIG
96 set_config_with_override BOOL CLEAN CMD_CLEAN
98 set_config_with_override STRING MINKERNPACKAGE CMD_MINKERNPACKAGE
99 set_config_with_override STRING MODULESPACKAGE CMD_MODULESPACKAGE
100 set_config_with_override STRING KERNCACHE CMD_KERNCACHE
101 set_config_with_override BOOL NORAMDISKMODULES CMD_NORAMDISKMODULES
102 set_config_with_override BOOL ALLRAMDISKMODULES CMD_ALLRAMDISKMODULES
103 set_config_with_override STRING INITRAMFS_OVERLAY CMD_INITRAMFS_OVERLAY
104 set_config_with_override BOOL MOUNTBOOT CMD_MOUNTBOOT
105 set_config_with_override BOOL BUILD_STATIC CMD_STATIC
106 set_config_with_override BOOL SAVE_CONFIG CMD_SAVE_CONFIG
107 set_config_with_override BOOL SYMLINK CMD_SYMLINK
108 set_config_with_override STRING INSTALL_MOD_PATH CMD_INSTALL_MOD_PATH
109 set_config_with_override BOOL OLDCONFIG CMD_OLDCONFIG
110 set_config_with_override BOOL LVM CMD_LVM
111 set_config_with_override BOOL DMRAID CMD_DMRAID
112 set_config_with_override BOOL ISCSI CMD_ISCSI
113 set_config_with_override BOOL BUSYBOX CMD_BUSYBOX "yes"
114 set_config_with_override BOOL UNIONFS CMD_UNIONFS
115 set_config_with_override BOOL NETBOOT CMD_NETBOOT
116 set_config_with_override STRING REAL_ROOT CMD_REAL_ROOT
117 set_config_with_override BOOL DISKLABEL CMD_DISKLABEL
118 set_config_with_override BOOL LUKS CMD_LUKS
119 set_config_with_override BOOL GPG CMD_GPG
120 set_config_with_override BOOL MDADM CMD_MDADM
121 set_config_with_override STRING MDADM_CONFIG CMD_MDADM_CONFIG
122 set_config_with_override BOOL MULTIPATH CMD_MULTIPATH
123 set_config_with_override BOOL FIRMWARE CMD_FIRMWARE
124 set_config_with_override STRING FIRMWARE_DIR CMD_FIRMWARE_DIR "/lib/firmware"
125 set_config_with_override STRING FIRMWARE_FILES CMD_FIRMWARE_FILES
126 set_config_with_override BOOL INTEGRATED_INITRAMFS CMD_INTEGRATED_INITRAMFS
127 set_config_with_override BOOL GENZIMAGE CMD_GENZIMAGE
128 set_config_with_override BOOL KEYMAP CMD_KEYMAP "yes"
129 set_config_with_override BOOL DOKEYMAPAUTO CMD_DOKEYMAPAUTO
130 set_config_with_override STRING BUSYBOX_CONFIG CMD_BUSYBOX_CONFIG
132 BOOTDIR=`arch_replace "${BOOTDIR}"`
133 BOOTDIR=${BOOTDIR%/} # Remove any trailing slash
135 CACHE_DIR=`arch_replace "${CACHE_DIR}"`
136 BUSYBOX_BINCACHE=`cache_replace "${BUSYBOX_BINCACHE}"`
137 DEVICE_MAPPER_BINCACHE=`cache_replace "${DEVICE_MAPPER_BINCACHE}"`
138 LVM_BINCACHE=`cache_replace "${LVM_BINCACHE}"`
139 MDADM_BINCACHE=`cache_replace "${MDADM_BINCACHE}"`
140 DMRAID_BINCACHE=`cache_replace "${DMRAID_BINCACHE}"`
141 ISCSI_BINCACHE=`cache_replace "${ISCSI_BINCACHE}"`
142 BLKID_BINCACHE=`cache_replace "${BLKID_BINCACHE}"`
143 FUSE_BINCACHE=`cache_replace "${FUSE_BINCACHE}"`
144 UNIONFS_FUSE_BINCACHE=`cache_replace "${UNIONFS_FUSE_BINCACHE}"`
145 GPG_BINCACHE=`cache_replace "${GPG_BINCACHE}"`
147 DEFAULT_KERNEL_CONFIG=`arch_replace "${DEFAULT_KERNEL_CONFIG}"`
148 BUSYBOX_CONFIG=`arch_replace "${BUSYBOX_CONFIG}"`
149 BUSYBOX_BINCACHE=`arch_replace "${BUSYBOX_BINCACHE}"`
150 DEVICE_MAPPER_BINCACHE=`arch_replace "${DEVICE_MAPPER_BINCACHE}"`
151 LVM_BINCACHE=`arch_replace "${LVM_BINCACHE}"`
152 MDADM_BINCACHE=`arch_replace "${MDADM_BINCACHE}"`
153 DMRAID_BINCACHE=`arch_replace "${DMRAID_BINCACHE}"`
154 ISCSI_BINCACHE=`arch_replace "${ISCSI_BINCACHE}"`
155 BLKID_BINCACHE=`arch_replace "${BLKID_BINCACHE}"`
156 FUSE_BINCACHE=`arch_replace "${FUSE_BINCACHE}"`
157 UNIONFS_FUSE_BINCACHE=`arch_replace "${UNIONFS_FUSE_BINCACHE}"`
158 GPG_BINCACHE=`arch_replace "${GPG_BINCACHE}"`
160 if [ -n "${CMD_BOOTLOADER}" ]
162 BOOTLOADER="${CMD_BOOTLOADER}"
163 if [ "${CMD_BOOTLOADER}" != "${CMD_BOOTLOADER/:/}" ]
165 BOOTFS=`echo "${CMD_BOOTLOADER}" | cut -f2- -d:`
166 BOOTLOADER=`echo "${CMD_BOOTLOADER}" | cut -f1 -d:`
170 if [ "${NO_KERNEL_SOURCES}" != "1" ]
172 if [ ! -d ${KERNEL_DIR} ]
174 gen_die "kernel source directory \"${KERNEL_DIR}\" was not found!"
178 if [ -z "${KERNCACHE}" ]
180 if [ "${KERNEL_DIR}" = '' -a "${NO_KERNEL_SOURCES}" != "1" ]
182 gen_die 'No kernel source directory!'
184 if [ ! -e "${KERNEL_DIR}" -a "${NO_KERNEL_SOURCES}" != "1" ]
186 gen_die 'No kernel source directory!'
189 if [ "${KERNEL_DIR}" = '' ]
191 gen_die 'Kernel Cache specified but no kernel tree to verify against!'
195 # Special case: If --no-clean is specified on the command line,
196 # imply --no-mrproper.
197 if [ "${CMD_CLEAN}" != '' ]
205 if [ -n "${MINKERNPACKAGE}" ]
207 mkdir -p `dirname ${MINKERNPACKAGE}`
210 if [ -n "${MODULESPACKAGE}" ]
212 mkdir -p `dirname ${MODULESPACKAGE}`
215 if [ -n "${KERNCACHE}" ]
217 mkdir -p `dirname ${KERNCACHE}`
220 if ! isTrue "${BUILD_RAMDISK}"
222 INTEGRATED_INITRAMFS=0