genkernel: Add --kconfig to set specific kernel config options
[genkernel.git] / gen_arch.sh
index fcb45febb0390f7cbbf3727f1ed4bef27796ceb1..866a40f2ca575e8b5067ea4d5c1a2c416688326d 100755 (executable)
@@ -1,4 +1,5 @@
 #!/bin/bash
+# $Id$
 
 get_official_arch() {
        if [ "${CMD_ARCHOVERRIDE}" != '' ]
@@ -13,12 +14,15 @@ get_official_arch() {
                        case "${ARCH}" in
                                i?86)
                                        ARCH="x86"
-                               ;;
+                                       ;;
                                mips|mips64)
                                        ARCH="mips"
-                               ;;
+                                       ;;
+                               arm*)
+                                       ARCH=arm
+                                       ;;
                                *)
-                               ;;
+                                       ;;
                        esac
                fi
        fi
@@ -38,7 +42,53 @@ get_official_arch() {
        then
                UTILS_ARCH='sparc'
        fi
-       
-       ARCH_CONFIG="${GK_SHARE}/${ARCH}/config.sh"
+
+       ARCH_CONFIG="${GK_SHARE}/arch/${ARCH}/config.sh"
        [ -f "${ARCH_CONFIG}" ] || gen_die "${ARCH} not yet supported by genkernel. Please add the arch-specific config file, ${ARCH_CONFIG}"
 }
+
+set_kernel_arch() {
+       KERNEL_ARCH=${ARCH}
+       case ${ARCH} in
+               ppc|ppc64)
+                       if [ "${VER}" -ge "3" ]
+                       then
+                                       KERNEL_ARCH=powerpc
+                       elif [ "${VER}" -eq "2" -a "${PAT}" -ge "6" ]
+                       then
+                               if [ "${PAT}" -eq "6" -a "${SUB}" -ge "16" ] || [ "${PAT}" -gt "6" ]
+                               then
+                                       KERNEL_ARCH=powerpc
+                               fi
+                       fi
+                       ;;
+               x86)
+                       if [ "${VER}" -ge "3" ]
+                       then
+                                       KERNEL_ARCH=x86
+                       elif [ "${VER}" -eq "2" -a "${PAT}" -ge "6" ] || [ "${VER}" -gt "2" ]
+                       then
+                               if [ "${PAT}" -eq "6" -a "${SUB}" -ge "24" ] || [ "${PAT}" -gt "6" ]
+                               then
+                                       KERNEL_ARCH=x86
+                               else
+                                       KERNEL_ARCH=i386
+                               fi
+                       fi
+                       ;;
+               x86_64)
+                       if [ "${VER}" -ge "3" ]
+                       then
+                                       KERNEL_ARCH=x86
+                       elif [ "${VER}" -eq "2" -a "${PAT}" -ge "6" ] || [ "${VER}" -gt "2" ]
+                       then
+                               if [ "${PAT}" -eq "6" -a "${SUB}" -ge "24" ] || [ "${PAT}" -gt "6" ]
+                               then
+                                       KERNEL_ARCH=x86
+                               fi
+                       fi
+                       ;;
+       esac
+       export KERNEL_ARCH
+       print_info 2 "KERNEL_ARCH=${KERNEL_ARCH}"
+}