blob: 37c184765098dd3186c201f7aee7cb17cb824fa5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
|
#!/bin/bash
# $Id$
get_KV() {
if [ "${NO_KERNEL_SOURCES}" = '1' -a -e "${KERNCACHE}" ]
then
/bin/tar -xj -C ${TEMP} -f ${KERNCACHE} kerncache.config
if [ -e ${TEMP}/kerncache.config ]
then
VER=`grep ^VERSION\ \= ${TEMP}/kerncache.config | awk '{ print $3 };'`
PAT=`grep ^PATCHLEVEL\ \= ${TEMP}/kerncache.config | awk '{ print $3 };'`
SUB=`grep ^SUBLEVEL\ \= ${TEMP}/kerncache.config | awk '{ print $3 };'`
EXV=`grep ^EXTRAVERSION\ \= ${TEMP}/kerncache.config | sed -e "s/EXTRAVERSION =//" -e "s/ //g"`
LOV=`grep ^CONFIG_LOCALVERSION\= ${TEMP}/kerncache.config | sed -e "s/CONFIG_LOCALVERSION=\"\(.*\)\"/\1/"`
KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
else
gen_die "Could not find kerncache.config in the kernel cache! Exiting."
fi
else
# Configure the kernel
# If BUILD_KERNEL=0 then assume --no-clean, menuconfig is cleared
if [ ! -f "${KERNEL_DIR}"/Makefile ]
then
gen_die "Kernel Makefile (${KERNEL_DIR}/Makefile) missing. Maybe re-install the kernel sources."
fi
VER=`grep ^VERSION\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };'`
PAT=`grep ^PATCHLEVEL\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };'`
SUB=`grep ^SUBLEVEL\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };'`
EXV=`grep ^EXTRAVERSION\ \= ${KERNEL_DIR}/Makefile | sed -e "s/EXTRAVERSION =//" -e "s/ //g" -e 's/\$([a-z]*)//gi'`
if [ -z "${SUB}" ];
then
# Handle O= build directories
KERNEL_SOURCE_DIR=`grep ^MAKEARGS\ \:\= ${KERNEL_DIR}/Makefile | awk '{ print $4 };'`
[ -z "${KERNEL_SOURCE_DIR}" ] && gen_die "Deriving \${KERNEL_SOURCE_DIR} failed"
SUB=`grep ^SUBLEVEL\ \= ${KERNEL_SOURCE_DIR}/Makefile | awk '{ print $3 };'`
EXV=`grep ^EXTRAVERSION\ \= ${KERNEL_SOURCE_DIR}/Makefile | sed -e "s/EXTRAVERSION =//" -e "s/ //g" -e 's/\$([a-z]*)//gi'`
fi
cd ${KERNEL_DIR}
#compile_generic prepare kernel > /dev/null 2>&1
cd - > /dev/null 2>&1
[ -f "${KERNEL_DIR}/include/linux/version.h" ] && \
VERSION_SOURCE="${KERNEL_DIR}/include/linux/version.h"
[ -f "${KERNEL_DIR}/include/linux/utsrelease.h" ] && \
VERSION_SOURCE="${KERNEL_DIR}/include/linux/utsrelease.h"
# Handle new-style releases where version.h doesn't have UTS_RELEASE
if [ -f ${KERNEL_DIR}/include/config/kernel.release ]
then
UTS_RELEASE=`cat ${KERNEL_DIR}/include/config/kernel.release`
LOV=`echo ${UTS_RELEASE}|sed -e "s/${VER}.${PAT}.${SUB}${EXV}//"`
KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
elif [ -n "${VERSION_SOURCE}" ]
then
UTS_RELEASE=`grep UTS_RELEASE ${VERSION_SOURCE} | sed -e 's/#define UTS_RELEASE "\(.*\)"/\1/'`
LOV=`echo ${UTS_RELEASE}|sed -e "s/${VER}.${PAT}.${SUB}${EXV}//"`
KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
else
determine_config_file
LCV=`grep ^CONFIG_LOCALVERSION= "${KERNEL_CONFIG}" | sed -r -e "s/.*=\"(.*)\"/\1/"`
KV=${VER}.${PAT}.${SUB}${EXV}${LCV}
fi
fi
}
determine_real_args() {
print_info 4 "Resolving config file, command line, and arch default settings."
set_config_alias MDADM MDRAID
set_config_alias LUKS CRYPT
set_config_alias GPG CRYPT_GPG
set_config_alias SPLASH GENSPLASH
set_config_alias FBSPLASH GENSPLASH
# Dest / Config File Command Line Arch Default
# ------------------ ------------ ------------
set_config_with_override STRING LOGFILE CMD_LOGFILE
set_config_with_override STRING KERNEL_DIR CMD_KERNEL_DIR "${DEFAULT_KERNEL_SOURCE}"
set_config_with_override BOOL NO_KERNEL_SOURCES CMD_NO_KERNEL_SOURCES
set_config_with_override STRING KNAME CMD_KERNNAME "genkernel"
set_config_with_override STRING MAKEOPTS CMD_MAKEOPTS "$DEFAULT_MAKEOPTS"
set_config_with_override STRING KERNEL_MAKE CMD_KERNEL_MAKE "$DEFAULT_KERNEL_MAKE"
set_config_with_override STRING KERNEL_CC CMD_KERNEL_CC "$DEFAULT_KERNEL_CC"
set_config_with_override STRING KERNEL_LD CMD_KERNEL_LD "$DEFAULT_KERNEL_LD"
set_config_with_override STRING KERNEL_AS CMD_KERNEL_AS "$DEFAULT_KERNEL_AS"
set_config_with_override STRING KERNEL_CROSS_COMPILE CMD_KERNEL_CROSS_COMPILE
set_config_with_override STRING BOOTDIR CMD_BOOTDIR "/boot"
set_config_with_override BOOL POSTCLEAR CMD_POSTCLEAR
set_config_with_override BOOL MRPROPER CMD_MRPROPER
set_config_with_override BOOL MENUCONFIG CMD_MENUCONFIG
set_config_with_override BOOL CLEAN CMD_CLEAN
set_config_with_override STRING MINKERNPACKAGE CMD_MINKERNPACKAGE
set_config_with_override STRING MODULESPACKAGE CMD_MODULESPACKAGE
set_config_with_override STRING KERNCACHE CMD_KERNCACHE
set_config_with_override BOOL NORAMDISKMODULES CMD_NORAMDISKMODULES
set_config_with_override STRING INITRAMFS_OVERLAY CMD_INITRAMFS_OVERLAY
set_config_with_override BOOL MOUNTBOOT CMD_MOUNTBOOT
set_config_with_override BOOL BUILD_STATIC CMD_STATIC
set_config_with_override BOOL SAVE_CONFIG CMD_SAVE_CONFIG
set_config_with_override BOOL SYMLINK CMD_SYMLINK
set_config_with_override STRING INSTALL_MOD_PATH CMD_INSTALL_MOD_PATH
set_config_with_override BOOL OLDCONFIG CMD_OLDCONFIG
set_config_with_override BOOL LVM CMD_LVM
set_config_with_override BOOL DMRAID CMD_DMRAID
set_config_with_override BOOL ISCSI CMD_ISCSI
set_config_with_override BOOL UNIONFS CMD_UNIONFS
set_config_with_override BOOL MULTIPATH CMD_MULTIPATH
set_config_with_override BOOL FIRMWARE CMD_FIRMWARE
set_config_with_override STRING FIRMWARE_DIR CMD_FIRMWARE_DIR "/lib/firmware"
set_config_with_override STRING FIRMWARE_FILES CMD_FIRMWARE_FILES
set_config_with_override BOOL INTEGRATED_INITRAMFS CMD_INTEGRATED_INITRAMFS
set_config_with_override BOOL GENZIMAGE CMD_GENZIMAGE
set_config_with_override BOOL AUTO CMD_AUTO
set_config_with_override BOOL GENERIC CMD_GENERIC
set_config_with_override STRING DRACUT_DIR CMD_DRACUT_DIR
set_config_with_override BOOL MDRAID CMD_MDRAID
set_config_with_override BOOL CRYPT CMD_CRYPT
set_config_with_override BOOL CRYPT_GPG CMD_CRYPT_GPG
set_config_with_override BOOL PLYMOUTH CMD_PLYMOUTH
set_config_with_override BOOL GENSPLASH CMD_GENSPLASH
set_config_with_override STRING ADD_MODULES CMD_ADD_MODULES
set_config_with_override STRING EXTRA_OPTIONS CMD_EXTRA_OPTIONS
BOOTDIR=`arch_replace "${BOOTDIR}"`
BOOTDIR=${BOOTDIR%/} # Remove any trailing slash
CACHE_DIR=`arch_replace "${CACHE_DIR}"`
DEFAULT_KERNEL_CONFIG=`arch_replace "${DEFAULT_KERNEL_CONFIG}"`
if [ -n "${CMD_BOOTLOADER}" ]
then
BOOTLOADER="${CMD_BOOTLOADER}"
if [ "${CMD_BOOTLOADER}" != "${CMD_BOOTLOADER/:/}" ]
then
BOOTFS=`echo "${CMD_BOOTLOADER}" | cut -f2- -d:`
BOOTLOADER=`echo "${CMD_BOOTLOADER}" | cut -f1 -d:`
fi
fi
if [ "${NO_KERNEL_SOURCES}" != "1" ]
then
if [ ! -d ${KERNEL_DIR} ]
then
gen_die "kernel source directory \"${KERNEL_DIR}\" was not found!"
fi
fi
if [ -z "${KERNCACHE}" ]
then
if [ "${KERNEL_DIR}" = '' -a "${NO_KERNEL_SOURCES}" != "1" ]
then
gen_die 'No kernel source directory!'
fi
if [ ! -e "${KERNEL_DIR}" -a "${NO_KERNEL_SOURCES}" != "1" ]
then
gen_die 'No kernel source directory!'
fi
else
if [ "${KERNEL_DIR}" = '' ]
then
gen_die 'Kernel Cache specified but no kernel tree to verify against!'
fi
fi
# Special case: If --no-clean is specified on the command line,
# imply --no-mrproper.
if [ "${CMD_CLEAN}" != '' ]
then
if ! isTrue ${CLEAN}
then
MRPROPER=0
fi
fi
if [ -n "${MINKERNPACKAGE}" ]
then
mkdir -p `dirname ${MINKERNPACKAGE}`
fi
if [ -n "${MODULESPACKAGE}" ]
then
mkdir -p `dirname ${MODULESPACKAGE}`
fi
if [ -n "${KERNCACHE}" ]
then
mkdir -p `dirname ${KERNCACHE}`
fi
if ! isTrue "${BUILD_RAMDISK}"
then
INTEGRATED_INITRAMFS=0
fi
get_KV
}
|