X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=gen_arch.sh;h=866a40f2ca575e8b5067ea4d5c1a2c416688326d;hb=bddbeeb8874bd22b8b60e27dd366bc5f3a8d1cee;hp=aba7ccc431ebfdebd4f56c331c6892d6c727190d;hpb=0347fe12ee80a2a0c997138b81213de1695b4353;p=genkernel.git diff --git a/gen_arch.sh b/gen_arch.sh index aba7ccc..866a40f 100755 --- a/gen_arch.sh +++ b/gen_arch.sh @@ -1,20 +1,94 @@ #!/bin/bash +# $Id$ get_official_arch() { - if [ "${CMD_ARCHOVERRIDE}" != "" ] + if [ "${CMD_ARCHOVERRIDE}" != '' ] then ARCH=${CMD_ARCHOVERRIDE} else - ARCH=`uname -m` - case "${ARCH}" in - i?86) - ARCH="x86" - ;; - *) - ;; - esac + if [ "${ARCH_OVERRIDE}" != '' ] + then + ARCH=${ARCH_OVERRIDE} + else + ARCH=`uname -m` + case "${ARCH}" in + i?86) + ARCH="x86" + ;; + mips|mips64) + ARCH="mips" + ;; + arm*) + ARCH=arm + ;; + *) + ;; + esac + fi + fi + + if [ "${CMD_UTILS_ARCH}" != '' ] + then + UTILS_ARCH=${CMD_UTILS_ARCH} + else + if [ "${UTILS_ARCH}" != '' ] + then + UTILS_ARCH=${UTILS_ARCH} + fi + fi + + # sparc64 klibc is b0rked, so we force to 32 + if [ "${ARCH}" = 'sparc64' ] + then + UTILS_ARCH='sparc' fi - ARCH_CONFIG="${GK_SHARE}/${ARCH}/config.sh" - [ ! -f "${ARCH_CONFIG}" ] && gen_die "ARCH: ${ARCH} not yet supported by genkernel. Please add arch-specific config file ${ARCH_CONFIG}" + 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}" }