genkernel: Add --kconfig to set specific kernel config options
[genkernel.git] / gen_arch.sh
1 #!/bin/bash
2 # $Id$
3
4 get_official_arch() {
5         if [ "${CMD_ARCHOVERRIDE}" != '' ]
6         then
7                 ARCH=${CMD_ARCHOVERRIDE}
8         else
9                 if [ "${ARCH_OVERRIDE}" != '' ]
10                 then
11                         ARCH=${ARCH_OVERRIDE}
12                 else
13                         ARCH=`uname -m`
14                         case "${ARCH}" in
15                                 i?86)
16                                         ARCH="x86"
17                                         ;;
18                                 mips|mips64)
19                                         ARCH="mips"
20                                         ;;
21                                 arm*)
22                                         ARCH=arm
23                                         ;;
24                                 *)
25                                         ;;
26                         esac
27                 fi
28         fi
29
30         if [ "${CMD_UTILS_ARCH}" != '' ]
31         then
32                 UTILS_ARCH=${CMD_UTILS_ARCH}
33         else
34                 if [ "${UTILS_ARCH}" != '' ]
35                 then
36                         UTILS_ARCH=${UTILS_ARCH}
37                 fi
38         fi
39
40         # sparc64 klibc is b0rked, so we force to 32
41         if [ "${ARCH}" = 'sparc64' ]
42         then
43                 UTILS_ARCH='sparc'
44         fi
45
46         ARCH_CONFIG="${GK_SHARE}/arch/${ARCH}/config.sh"
47         [ -f "${ARCH_CONFIG}" ] || gen_die "${ARCH} not yet supported by genkernel. Please add the arch-specific config file, ${ARCH_CONFIG}"
48 }
49
50 set_kernel_arch() {
51         KERNEL_ARCH=${ARCH}
52         case ${ARCH} in
53                 ppc|ppc64)
54                         if [ "${VER}" -ge "3" ]
55                         then
56                                         KERNEL_ARCH=powerpc
57                         elif [ "${VER}" -eq "2" -a "${PAT}" -ge "6" ]
58                         then
59                                 if [ "${PAT}" -eq "6" -a "${SUB}" -ge "16" ] || [ "${PAT}" -gt "6" ]
60                                 then
61                                         KERNEL_ARCH=powerpc
62                                 fi
63                         fi
64                         ;;
65                 x86)
66                         if [ "${VER}" -ge "3" ]
67                         then
68                                         KERNEL_ARCH=x86
69                         elif [ "${VER}" -eq "2" -a "${PAT}" -ge "6" ] || [ "${VER}" -gt "2" ]
70                         then
71                                 if [ "${PAT}" -eq "6" -a "${SUB}" -ge "24" ] || [ "${PAT}" -gt "6" ]
72                                 then
73                                         KERNEL_ARCH=x86
74                                 else
75                                         KERNEL_ARCH=i386
76                                 fi
77                         fi
78                         ;;
79                 x86_64)
80                         if [ "${VER}" -ge "3" ]
81                         then
82                                         KERNEL_ARCH=x86
83                         elif [ "${VER}" -eq "2" -a "${PAT}" -ge "6" ] || [ "${VER}" -gt "2" ]
84                         then
85                                 if [ "${PAT}" -eq "6" -a "${SUB}" -ge "24" ] || [ "${PAT}" -gt "6" ]
86                                 then
87                                         KERNEL_ARCH=x86
88                                 fi
89                         fi
90                         ;;
91         esac
92         export KERNEL_ARCH
93         print_info 2 "KERNEL_ARCH=${KERNEL_ARCH}"
94 }