1#!/bin/bash 2 3prefix=/usr/local 4kerneldir=/lib/modules/$(uname -r)/build 5cc=gcc 6ld=ld 7objcopy=objcopy 8ar=ar 9arch=`uname -m | sed -e s/i.86/i386/` 10processor="$arch" 11cross_prefix= 12 13usage() { 14 cat <<-EOF 15 Usage: $0 [options] 16 17 Options include: 18 --arch=ARCH architecture to compile for ($arch) 19 --cross-prefix=PREFIX cross compiler prefix 20 --cc=CC c compiler to use ($cc) 21 --ld=LD ld linker to use ($ld) 22 --prefix=PREFIX where to install things ($prefix) 23 --kerneldir=DIR kernel build directory for kvm.h ($kerneldir) 24EOF 25 exit 1 26} 27 28while [[ "$1" = -* ]]; do 29 opt="$1"; shift 30 arg= 31 if [[ "$opt" = *=* ]]; then 32 arg="${opt#*=}" 33 opt="${opt%%=*}" 34 fi 35 case "$opt" in 36 --prefix) 37 prefix="$arg" 38 ;; 39 --kerneldir) 40 kerneldir="$arg" 41 ;; 42 --arch) 43 arch="$arg" 44 ;; 45 --processor) 46 processor="$arg" 47 ;; 48 --cross-prefix) 49 cross_prefix="$arg" 50 ;; 51 --cc) 52 cc="$arg" 53 ;; 54 --ld) 55 ld="$arg" 56 ;; 57 --help) 58 usage 59 ;; 60 *) 61 usage 62 ;; 63 esac 64done 65 66cat <<EOF > config.mak 67PREFIX=$prefix 68KERNELDIR=$(readlink -f $kerneldir) 69ARCH=$arch 70PROCESSOR=$processor 71CC=$cross_prefix$cc 72LD=$cross_prefix$ld 73OBJCOPY=$cross_prefix$objcopy 74AR=$cross_prefix$ar 75EOF 76