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