Fix #97672, #98886, #98893, #98897; fix real_root=/dev/mdX: upgraded busybox to 1...
[genkernel.git] / gen_determineargs.sh
1 #!/bin/bash
2
3 get_KV() {
4         if [ "${CMD_NO_KERNEL_SOURCES}" = '1' -a -e "${CMD_KERNCACHE}" ]
5         then
6                 [ -d ${tmp} ] && gen_die "temporary directory already exists! Exiting."
7                 (umask 077 && mkdir ${tmp}) || {
8                         gen_die "Could not create temporary directory! Exiting."
9                 }
10                 /bin/tar -xj -C ${tmp} -f ${CMD_KERNCACHE} kerncache.config 
11                 if [ -e ${tmp}/kerncache.config ]
12                 then
13                         VER=`grep ^VERSION\ \= ${tmp}/kerncache.config | awk '{ print $3 };'`
14                         PAT=`grep ^PATCHLEVEL\ \= ${tmp}/kerncache.config | awk '{ print $3 };'`
15                         SUB=`grep ^SUBLEVEL\ \= ${tmp}/kerncache.config | awk '{ print $3 };'`
16                         EXV=`grep ^EXTRAVERSION\ \= ${tmp}/kerncache.config | sed -e "s/EXTRAVERSION =//" -e "s/ //g"`
17                         if [ "${PAT}" -gt '4' -a "${VER}" -ge '2' ]
18                         then
19                                 LOV=`grep ^CONFIG_LOCALVERSION\= ${tmp}/kerncache.config | sed -e "s/CONFIG_LOCALVERSION=\"\(.*\)\"/\1/"`
20                                 KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
21                         else
22                                 KERN_24=1
23                                 KV=${VER}.${PAT}.${SUB}${EXV}
24                         fi
25
26
27                 else
28                         rm -r ${tmp}
29                         gen_die "Could not find kerncache.config in the kernel cache! Exiting."
30                 fi
31                 rm -r ${tmp}
32
33         else
34                 # Configure the kernel
35                 # If BUILD_KERNEL=0 then assume --no-clean, menuconfig is cleared
36
37                 VER=`grep ^VERSION\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };'`
38                 PAT=`grep ^PATCHLEVEL\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };'`
39                 SUB=`grep ^SUBLEVEL\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };'`
40                 EXV=`grep ^EXTRAVERSION\ \= ${KERNEL_DIR}/Makefile | sed -e "s/EXTRAVERSION =//" -e "s/ //g"`
41                 if [ "${PAT}" -gt '4' -a "${VER}" -ge '2' -a -e ${KERNEL_DIR}/.config ]
42                 then
43                         cd ${KERNEL_DIR}
44                         compile_generic prepare kernel > /dev/null 2>&1
45                         cd - > /dev/null 2>&1
46                         if [ -f ${KERNEL_DIR}/include/linux/version.h ]
47                         then
48                                 UTS_RELEASE=`grep UTS_RELEASE ${KERNEL_DIR}/include/linux/version.h | sed -e 's/#define UTS_RELEASE "\(.*\)"/\1/'`
49                                 LOV=`echo ${UTS_RELEASE}|sed -e "s/${VER}.${PAT}.${SUB}${EXV}//"`
50                                 KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
51                         else
52                                 LCV=`grep ^CONFIG_LOCALVERSION= ${KERNEL_DIR}/.config | sed -r -e "s/.*=\"(.*)\"/\1/"`
53                                 KV=${VER}.${PAT}.${SUB}${EXV}${LCV}
54                         fi
55                 else
56                         KERN_24=1
57                         KV=${VER}.${PAT}.${SUB}${EXV}
58                 fi
59
60         fi
61
62         if isTrue "${CMD_DISKLABEL}"
63         then
64                 DISKLABEL=1
65         else
66                 DISKLABEL=0
67         fi
68 }
69
70 determine_real_args() {
71         if [ "${CMD_DEBUGFILE}" != '' ]
72         then
73                 DEBUGFILE="${CMD_DEBUGFILE}"
74         fi
75
76         if [ "${CMD_MAKEOPTS}" != '' ]
77         then
78                 MAKEOPTS="${CMD_MAKEOPTS}"
79         fi
80
81         if [ "${CMD_KERNELDIR}" != '' ]
82         then
83                 KERNEL_DIR=${CMD_KERNELDIR}
84         else
85                 KERNEL_DIR=${DEFAULT_KERNEL_SOURCE}
86         fi
87         
88         if [ "${CMD_NO_KERNEL_SOURCES}" != "1" ]
89         then
90                 if [ ! -d ${KERNEL_DIR} ]
91                 then
92                         gen_die "kernel source directory \"${KERNEL_DIR}\" was not found!"
93                 fi
94         fi
95
96         if [ "${CMD_KERNCACHE}" != "" ]
97         then    
98                 if [ "${KERNEL_DIR}" = '' -a "${CMD_NO_KERNEL_SOURCES}" != "1" ]
99                 then
100                         gen_die 'No kernel source directory!'
101                 fi
102                 if [ ! -e "${KERNEL_DIR}" -a "${CMD_NO_KERNEL_SOURCES}" != "1" ]
103                 then
104                         gen_die 'No kernel source directory!'
105                 fi
106         else    
107                 if [ "${KERNEL_DIR}" = '' ]
108                 then
109                         gen_die 'Kernel Cache specified but no kernel tree to verify against!'
110                 fi
111         fi
112         
113         if [ "${CMD_KERNNAME}" != "" ]
114         then
115                 KNAME=${CMD_KERNNAME}
116         else
117                 KNAME="genkernel"
118         fi
119         
120         if [ "${CMD_KERNEL_MAKE}" != '' ]
121         then
122                 KERNEL_MAKE="${CMD_KERNEL_MAKE}"
123         fi
124
125         if [ "${KERNEL_MAKE}" = '' ]
126         then
127                 KERNEL_MAKE='make'
128         fi
129
130         if [ "${CMD_UTILS_MAKE}" != '' ]
131         then
132                 UTILS_MAKE="${CMD_UTILS_MAKE}"
133         fi
134
135         if [ "${UTILS_MAKE}" = '' ]
136         then
137                 UTILS_MAKE='make'
138         fi
139
140         if [ "${CMD_KERNEL_CC}" != '' ]
141         then
142                 KERNEL_CC="${CMD_KERNEL_CC}"
143         fi
144
145         if [ "${CMD_KERNEL_LD}" != '' ]
146         then
147                 KERNEL_LD="${CMD_KERNEL_LD}"
148         fi
149
150         if [ "${CMD_KERNEL_AS}" != '' ]
151         then
152                 KERNEL_AS="${CMD_KERNEL_AS}"
153         fi
154         
155         if [ "${CMD_KERNEL_CROSS_COMPILE}" != '' ]
156         then
157                 KERNEL_CROSS_COMPILE="${CMD_KERNEL_CROSS_COMPILE}"
158         fi
159
160         if [ "${CMD_UTILS_CC}" != '' ]
161         then
162                 UTILS_CC="${CMD_UTILS_CC}"
163         fi
164
165         if [ "${CMD_UTILS_LD}" != '' ]
166         then
167                 UTILS_LD="${CMD_UTILS_LD}"
168         fi
169
170         if [ "${CMD_UTILS_AS}" != '' ]
171         then
172                 UTILS_AS="${CMD_UTILS_AS}"
173         fi
174
175         CACHE_DIR=`arch_replace "${CACHE_DIR}"`
176
177         BUSYBOX_BINCACHE=`cache_replace "${BUSYBOX_BINCACHE}"`
178         MODULE_INIT_TOOLS_BINCACHE=`cache_replace "${MODULE_INIT_TOOLS_BINCACHE}"`
179         MODUTILS_BINCACHE=`cache_replace "${MODUTILS_BINCACHE}"`
180         DIETLIBC_BINCACHE=`cache_replace "${DIETLIBC_BINCACHE}"`
181         DIETLIBC_BINCACHE_TEMP=`cache_replace "${DIETLIBC_BINCACHE_TEMP}"`
182         DEVFSD_BINCACHE=`cache_replace "${DEVFSD_BINCACHE}"`
183         DEVFSD_CONF_BINCACHE=`cache_replace "${DEVFSD_CONF_BINCACHE}"`
184         UDEV_BINCACHE=`cache_replace "${UDEV_BINCACHE}"`
185         DEVICE_MAPPER_BINCACHE=`cache_replace "${DEVICE_MAPPER_BINCACHE}"`
186         LVM2_BINCACHE=`cache_replace "${LVM2_BINCACHE}"`
187         DMRAID_BINCACHE=`cache_replace "${DMRAID_BINCACHE}"`
188         UNIONFS_BINCACHE=`cache_replace "${UNIONFS_BINCACHE}"`
189         UNIONFS_MODULES_BINCACHE=`cache_replace "${UNIONFS_MODULES_BINCACHE}"`
190         BLKID_BINCACHE=`cache_replace "${BLKID_BINCACHE}"`
191   
192         DEFAULT_KERNEL_CONFIG=`arch_replace "${DEFAULT_KERNEL_CONFIG}"`
193         BUSYBOX_CONFIG=`arch_replace "${BUSYBOX_CONFIG}"`
194         BUSYBOX_BINCACHE=`arch_replace "${BUSYBOX_BINCACHE}"`
195         MODULE_INIT_TOOLS_BINCACHE=`arch_replace "${MODULE_INIT_TOOLS_BINCACHE}"`
196         MODUTILS_BINCACHE=`arch_replace "${MODUTILS_BINCACHE}"`
197         DIETLIBC_BINCACHE=`arch_replace "${DIETLIBC_BINCACHE}"`
198         DIETLIBC_BINCACHE_TEMP=`arch_replace "${DIETLIBC_BINCACHE_TEMP}"`
199         DEVFSD_BINCACHE=`arch_replace "${DEVFSD_BINCACHE}"`
200         DEVFSD_CONF_BINCACHE=`arch_replace "${DEVFSD_CONF_BINCACHE}"`
201         UDEV_BINCACHE=`arch_replace "${UDEV_BINCACHE}"`
202         DEVICE_MAPPER_BINCACHE=`arch_replace "${DEVICE_MAPPER_BINCACHE}"`
203         LVM2_BINCACHE=`arch_replace "${LVM2_BINCACHE}"`
204         DMRAID_BINCACHE=`arch_replace "${DMRAID_BINCACHE}"`
205         UNIONFS_BINCACHE=`arch_replace "${UNIONFS_BINCACHE}"`
206         UNIONFS_MODULES_BINCACHE=`arch_replace "${UNIONFS_MODULES_BINCACHE}"`
207         BLKID_BINCACHE=`arch_replace "${BLKID_BINCACHE}"`
208         
209         if [ "${CMD_BOOTSPLASH}" != '' ]
210         then
211                 BOOTSPLASH=${CMD_BOOTSPLASH}
212         fi
213
214         if isTrue ${BOOTSPLASH}
215         then
216                 BOOTSPLASH=1
217         else
218                 BOOTSPLASH=0
219         fi
220
221         if [ "${CMD_GENSPLASH}" != '' ]
222         then
223                 GENSPLASH=${CMD_GENSPLASH}
224         fi
225
226         if isTrue ${GENSPLASH}
227         then
228                 GENSPLASH=1
229         else
230                 GENSPLASH=0
231         fi
232
233         if isTrue ${COMPRESS_INITRD}
234         then
235                 COMPRESS_INITRD=1
236         else
237                 COMPRESS_INITRD=0
238         fi
239
240         if [ "${CMD_MRPROPER}" != '' ]
241         then
242                 MRPROPER="${CMD_MRPROPER}"
243         fi
244         if [ "${CMD_MENUCONFIG}" != '' ]
245         then
246                 MENUCONFIG="${CMD_MENUCONFIG}"
247         fi
248         if [ "${CMD_CLEAN}" != '' ]
249         then
250                 CLEAN="${CMD_CLEAN}"
251                 if ! isTrue ${CLEAN}
252                 then
253                         MRPROPER=0
254                 fi
255         fi
256
257         if [ "${CMD_MINKERNPACKAGE}" != '' ]
258         then
259                 MINKERNPACKAGE="${CMD_MINKERNPACKAGE}"
260         fi
261         
262         if [ "${CMD_MODULESPACKAGE}" != '' ]
263         then
264                 MODULESPACKAGE="${CMD_MODULESPACKAGE}"
265         fi
266
267         if [ "${CMD_KERNCACHE}" != '' ]
268         then
269                 KERNCACHE="${CMD_KERNCACHE}"
270         fi
271         
272         if [ "${CMD_NOINITRDMODULES}" != '' ]
273         then
274                 NOINITRDMODULES="${CMD_NOINITRDMODULES}"
275         fi
276         
277         if [ "${CMD_INITRAMFS_OVERLAY}" != '' ]
278         then
279                 INITRAMFS_OVERLAY="${CMD_INITRAMFS_OVERLAY}"
280         fi
281
282         if [ "${CMD_MOUNTBOOT}" != '' ]
283         then
284                 MOUNTBOOT="${CMD_MOUNTBOOT}"
285         fi
286
287         if isTrue ${MOUNTBOOT}
288         then
289                 MOUNTBOOT=1
290         else
291                 MOUNTBOOT=0
292         fi
293
294         if [ "${CMD_SAVE_CONFIG}" != '' ]
295         then
296                 SAVE_CONFIG="${CMD_SAVE_CONFIG}"
297         fi
298
299         if isTrue "${SAVE_CONFIG}"
300         then
301                 SAVE_CONFIG=1
302         else
303                 SAVE_CONFIG=0
304         fi
305   
306         if isTrue "${CMD_SYMLINK}"
307         then
308                 SYMLINK=1
309         else
310                 SYMLINK=0
311         fi
312         
313         if [ "${CMD_INSTALL_MOD_PATH}" != '' ]
314         then
315                 INSTALL_MOD_PATH="${CMD_INSTALL_MOD_PATH}"
316         fi
317
318         if [ "${CMD_BOOTLOADER}" != '' ]
319         then
320                 BOOTLOADER="${CMD_BOOTLOADER}"
321         fi
322
323         if isTrue "${CMD_OLDCONFIG}"
324         then
325                 OLDCONFIG=1
326         else
327                 OLDCONFIG=0
328         fi
329
330         if isTrue "${CMD_NO_UDEV}"
331         then
332                 UDEV=0
333                 if isTrue "${CMD_NO_DEVFS}"
334                 then
335                     DEVFS=0
336                 else
337                     DEVFS=1
338                 fi
339         else
340                 UDEV=1
341                 DEVFS=0
342         fi
343         
344         if isTrue "${CMD_NO_DEVFS}"
345         then
346                 DEVFS=0
347         fi
348         
349         if isTrue "${CMD_DEVFS}"
350         then
351                 DEVFS=1
352                 UDEV=0
353         fi
354
355         if isTrue "${CMD_LVM2}"
356         then
357                 LVM2=1
358         else
359                 LVM2=0
360         fi
361         
362         if isTrue "${CMD_EVMS2}"
363         then
364                 EVMS2=1
365         else
366                 EVMS2=0
367         fi
368         
369         if isTrue "${CMD_UNIONFS}"
370         then
371                 UNIONFS=1
372         else
373                 UNIONFS=0
374         fi
375         
376         if isTrue "${CMD_NO_BUSYBOX}"
377         then
378                 BUSYBOX=0
379         else
380                 BUSYBOX=1
381         fi
382         
383         if isTrue "${CMD_DMRAID}"
384         then
385                 DMRAID=1
386         else
387                 DMRAID=0
388         fi
389         
390         get_KV
391         UNIONFS_MODULES_BINCACHE=`kv_replace "${UNIONFS_MODULES_BINCACHE}"`
392 }