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