4 if [ "${CMD_NO_KERNEL_SOURCES}" = '1' -a -e "${CMD_KERNCACHE}" ]
6 /bin/tar -xj -C ${TEMP} -f ${CMD_KERNCACHE} kerncache.config
7 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 if [ "${PAT}" -gt '4' -a "${VER}" -ge '2' ]
16 LOV=`grep ^CONFIG_LOCALVERSION\= ${TEMP}/kerncache.config | sed -e "s/CONFIG_LOCALVERSION=\"\(.*\)\"/\1/"`
17 KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
20 KV=${VER}.${PAT}.${SUB}${EXV}
24 gen_die "Could not find kerncache.config in the kernel cache! Exiting."
28 # Configure the kernel
29 # If BUILD_KERNEL=0 then assume --no-clean, menuconfig is cleared
31 VER=`grep ^VERSION\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };'`
32 PAT=`grep ^PATCHLEVEL\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };'`
33 SUB=`grep ^SUBLEVEL\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };'`
34 EXV=`grep ^EXTRAVERSION\ \= ${KERNEL_DIR}/Makefile | sed -e "s/EXTRAVERSION =//" -e "s/ //g" -e 's/\$([a-z]*)//gi'`
35 if [ "${PAT}" -gt '4' -a "${VER}" -ge '2' -a -e ${KERNEL_DIR}/.config ]
39 #compile_generic prepare kernel > /dev/null 2>&1
41 [ -f "${KERNEL_DIR}/include/linux/version.h" ] && \
42 VERSION_SOURCE="${KERNEL_DIR}/include/linux/version.h"
43 [ -f "${KERNEL_DIR}/include/linux/utsrelease.h" ] && \
44 VERSION_SOURCE="${KERNEL_DIR}/include/linux/utsrelease.h"
45 # Handle new-style releases where version.h doesn't have UTS_RELEASE
46 if [ -f ${KERNEL_DIR}/include/config/kernel.release ]
48 UTS_RELEASE=`cat ${KERNEL_DIR}/include/config/kernel.release`
49 LOV=`echo ${UTS_RELEASE}|sed -e "s/${VER}.${PAT}.${SUB}${EXV}//"`
50 KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
51 elif [ -n "${VERSION_SOURCE}" ]
53 UTS_RELEASE=`grep UTS_RELEASE ${VERSION_SOURCE} | sed -e 's/#define UTS_RELEASE "\(.*\)"/\1/'`
54 LOV=`echo ${UTS_RELEASE}|sed -e "s/${VER}.${PAT}.${SUB}${EXV}//"`
55 KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
57 LCV=`grep ^CONFIG_LOCALVERSION= ${KERNEL_DIR}/.config | sed -r -e "s/.*=\"(.*)\"/\1/"`
58 KV=${VER}.${PAT}.${SUB}${EXV}${LCV}
62 KV=${VER}.${PAT}.${SUB}${EXV}
67 if isTrue "${CMD_DISKLABEL}"
74 if isTrue "${CMD_LUKS}"
80 determine_real_args() {
81 if [ "${CMD_DEBUGFILE}" != '' ]
83 DEBUGFILE="${CMD_DEBUGFILE}"
86 if [ "${CMD_MAKEOPTS}" != '' ]
88 MAKEOPTS="${CMD_MAKEOPTS}"
91 if [ "${CMD_KERNELDIR}" != '' ]
93 KERNEL_DIR=${CMD_KERNELDIR}
95 KERNEL_DIR=${DEFAULT_KERNEL_SOURCE}
98 if [ "${CMD_NO_KERNEL_SOURCES}" != "1" ]
100 if [ ! -d ${KERNEL_DIR} ]
102 gen_die "kernel source directory \"${KERNEL_DIR}\" was not found!"
106 if [ "${CMD_KERNCACHE}" != "" ]
108 if [ "${KERNEL_DIR}" = '' -a "${CMD_NO_KERNEL_SOURCES}" != "1" ]
110 gen_die 'No kernel source directory!'
112 if [ ! -e "${KERNEL_DIR}" -a "${CMD_NO_KERNEL_SOURCES}" != "1" ]
114 gen_die 'No kernel source directory!'
117 if [ "${KERNEL_DIR}" = '' ]
119 gen_die 'Kernel Cache specified but no kernel tree to verify against!'
123 if [ "${CMD_KERNNAME}" != "" ]
125 KNAME=${CMD_KERNNAME}
130 if [ "${CMD_KERNEL_MAKE}" != '' ]
132 KERNEL_MAKE="${CMD_KERNEL_MAKE}"
135 if [ "${KERNEL_MAKE}" = '' ]
140 if [ "${CMD_UTILS_MAKE}" != '' ]
142 UTILS_MAKE="${CMD_UTILS_MAKE}"
145 if [ "${UTILS_MAKE}" = '' ]
150 if [ "${CMD_KERNEL_CC}" != '' ]
152 KERNEL_CC="${CMD_KERNEL_CC}"
155 if [ "${CMD_KERNEL_LD}" != '' ]
157 KERNEL_LD="${CMD_KERNEL_LD}"
160 if [ "${CMD_KERNEL_AS}" != '' ]
162 KERNEL_AS="${CMD_KERNEL_AS}"
165 if [ "${CMD_KERNEL_CROSS_COMPILE}" != '' ]
167 KERNEL_CROSS_COMPILE="${CMD_KERNEL_CROSS_COMPILE}"
170 if [ "${CMD_UTILS_CC}" != '' ]
172 UTILS_CC="${CMD_UTILS_CC}"
175 if [ "${CMD_UTILS_LD}" != '' ]
177 UTILS_LD="${CMD_UTILS_LD}"
180 if [ "${CMD_UTILS_AS}" != '' ]
182 UTILS_AS="${CMD_UTILS_AS}"
185 if [ "${CMD_UTILS_CROSS_COMPILE}" != '' ]
187 UTILS_CROSS_COMPILE="${CMD_UTILS_CROSS_COMPILE}"
190 if [ "${BOOTDIR}" != '' ]
192 BOOTDIR=`arch_replace "${BOOTDIR}"`
193 BOOTDIR=${BOOTDIR%/} # Remove any trailing slash
198 CACHE_DIR=`arch_replace "${CACHE_DIR}"`
199 BUSYBOX_BINCACHE=`cache_replace "${BUSYBOX_BINCACHE}"`
200 MODULE_INIT_TOOLS_BINCACHE=`cache_replace "${MODULE_INIT_TOOLS_BINCACHE}"`
201 MODUTILS_BINCACHE=`cache_replace "${MODUTILS_BINCACHE}"`
202 DIETLIBC_BINCACHE=`cache_replace "${DIETLIBC_BINCACHE}"`
203 DIETLIBC_BINCACHE_TEMP=`cache_replace "${DIETLIBC_BINCACHE_TEMP}"`
204 DEVFSD_BINCACHE=`cache_replace "${DEVFSD_BINCACHE}"`
205 DEVFSD_CONF_BINCACHE=`cache_replace "${DEVFSD_CONF_BINCACHE}"`
206 UDEV_BINCACHE=`cache_replace "${UDEV_BINCACHE}"`
207 KLIBC_BINCACHE=`cache_replace "${KLIBC_BINCACHE}"`
208 DEVICE_MAPPER_BINCACHE=`cache_replace "${DEVICE_MAPPER_BINCACHE}"`
209 LVM2_BINCACHE=`cache_replace "${LVM2_BINCACHE}"`
210 DMRAID_BINCACHE=`cache_replace "${DMRAID_BINCACHE}"`
211 UNIONFS_BINCACHE=`cache_replace "${UNIONFS_BINCACHE}"`
212 UNIONFS_MODULES_BINCACHE=`cache_replace "${UNIONFS_MODULES_BINCACHE}"`
213 BLKID_BINCACHE=`cache_replace "${BLKID_BINCACHE}"`
214 SUSPEND_BINCACHE=`cache_replace "${SUSPEND_BINCACHE}"`
216 DEFAULT_KERNEL_CONFIG=`arch_replace "${DEFAULT_KERNEL_CONFIG}"`
217 BUSYBOX_CONFIG=`arch_replace "${BUSYBOX_CONFIG}"`
218 BUSYBOX_BINCACHE=`arch_replace "${BUSYBOX_BINCACHE}"`
219 MODULE_INIT_TOOLS_BINCACHE=`arch_replace "${MODULE_INIT_TOOLS_BINCACHE}"`
220 MODUTILS_BINCACHE=`arch_replace "${MODUTILS_BINCACHE}"`
221 DIETLIBC_BINCACHE=`arch_replace "${DIETLIBC_BINCACHE}"`
222 DIETLIBC_BINCACHE_TEMP=`arch_replace "${DIETLIBC_BINCACHE_TEMP}"`
223 DEVFSD_BINCACHE=`arch_replace "${DEVFSD_BINCACHE}"`
224 DEVFSD_CONF_BINCACHE=`arch_replace "${DEVFSD_CONF_BINCACHE}"`
225 UDEV_BINCACHE=`arch_replace "${UDEV_BINCACHE}"`
226 KLIBC_BINCACHE=`arch_replace "${KLIBC_BINCACHE}"`
227 DEVICE_MAPPER_BINCACHE=`arch_replace "${DEVICE_MAPPER_BINCACHE}"`
228 LVM2_BINCACHE=`arch_replace "${LVM2_BINCACHE}"`
229 DMRAID_BINCACHE=`arch_replace "${DMRAID_BINCACHE}"`
230 UNIONFS_BINCACHE=`arch_replace "${UNIONFS_BINCACHE}"`
231 UNIONFS_MODULES_BINCACHE=`arch_replace "${UNIONFS_MODULES_BINCACHE}"`
232 BLKID_BINCACHE=`arch_replace "${BLKID_BINCACHE}"`
233 SUSPEND_BINCACHE=`arch_replace "${SUSPEND_BINCACHE}"`
235 if [ "${CMD_BOOTSPLASH}" != '' ]
237 BOOTSPLASH=${CMD_BOOTSPLASH}
240 if isTrue ${BOOTSPLASH}
247 if [ "${CMD_GENSPLASH}" != '' ]
249 GENSPLASH=${CMD_GENSPLASH}
252 if isTrue ${GENSPLASH}
259 if isTrue ${COMPRESS_INITRD}
266 if isTrue ${CMD_POSTCLEAR}
273 if [ "${CMD_MRPROPER}" != '' ]
275 MRPROPER="${CMD_MRPROPER}"
277 if [ "${CMD_MENUCONFIG}" != '' ]
279 MENUCONFIG="${CMD_MENUCONFIG}"
281 if [ "${CMD_CLEAN}" != '' ]
290 if [ "${CMD_MINKERNPACKAGE}" != '' ]
292 MINKERNPACKAGE="${CMD_MINKERNPACKAGE}"
293 mkdir -p `dirname ${MINKERNPACKAGE}`
296 if [ "${CMD_MODULESPACKAGE}" != '' ]
298 MODULESPACKAGE="${CMD_MODULESPACKAGE}"
299 mkdir -p `dirname ${MODULESPACKAGE}`
302 if [ "${CMD_KERNCACHE}" != '' ]
304 KERNCACHE="${CMD_KERNCACHE}"
305 mkdir -p `dirname ${KERNCACHE}`
308 if [ "${CMD_NOINITRDMODULES}" != '' ]
310 NOINITRDMODULES="${CMD_NOINITRDMODULES}"
313 if [ "${CMD_INITRAMFS_OVERLAY}" != '' ]
315 INITRAMFS_OVERLAY="${CMD_INITRAMFS_OVERLAY}"
318 if [ "${CMD_MOUNTBOOT}" != '' ]
320 MOUNTBOOT="${CMD_MOUNTBOOT}"
323 if isTrue ${MOUNTBOOT}
330 if [ "${CMD_STATIC}" != '' ]
332 BUILD_STATIC=${CMD_STATIC}
335 if isTrue ${BUILD_STATIC}
342 if [ "${CMD_INITRAMFS}" != '' ]
344 BUILD_INITRAMFS=${CMD_INITRAMFS}
347 if isTrue ${BUILD_INITRAMFS}
354 if [ "${CMD_SAVE_CONFIG}" != '' ]
356 SAVE_CONFIG="${CMD_SAVE_CONFIG}"
359 if isTrue "${SAVE_CONFIG}"
366 if isTrue "${CMD_SYMLINK}"
373 if [ "${CMD_INSTALL_MOD_PATH}" != '' ]
375 INSTALL_MOD_PATH="${CMD_INSTALL_MOD_PATH}"
378 if [ "${CMD_BOOTLOADER}" != '' ]
380 BOOTLOADER="${CMD_BOOTLOADER}"
382 if [ "${CMD_BOOTLOADER}" != "${CMD_BOOTLOADER/:/}" ]
384 BOOTFS=`echo "${CMD_BOOTLOADER}" | cut -f2- -d:`
385 BOOTLOADER=`echo "${CMD_BOOTLOADER}" | cut -f1 -d:`
389 if isTrue "${CMD_OLDCONFIG}"
396 if isTrue "${CMD_NO_UDEV}"
399 if isTrue "${CMD_NO_DEVFS}"
410 if isTrue "${CMD_NO_DEVFS}"
415 if isTrue "${CMD_DEVFS}"
421 if isTrue "${CMD_LVM2}"
428 if isTrue "${CMD_SUSPEND}"
435 if isTrue "${CMD_EVMS2}"
442 if isTrue "${CMD_UNIONFS}"
449 if isTrue "${CMD_NO_BUSYBOX}"
456 if isTrue "${CMD_DMRAID}"
464 UNIONFS_MODULES_BINCACHE=`kv_replace "${UNIONFS_MODULES_BINCACHE}"`