kbuild, deb-pkg: select userland architecture based on UTS_MACHINE

Instead of creating the debian package for the compiling userland,
create it for a userland matching the kernel thats being compiled.

This patch supports all Lenny release architectures,
and Linux-based architecture candidates for Squeeze.

If it can't find a proper Debian userspace it displays a warning,
and fallback to let deb-gencontrol use the host's userspace arch.

Eg. with this patch the following make command:

make ARCH=i386 deb-pkg

will output an i386 Debian package instead of an amd64 one,
when run on an amd64 machine.

Signed-off-by: Asbjoern Sloth Toennesen <asbjorn@asbjorn.biz>
Acked-by: maximilian attems <max@stro.at>
Signed-off-by: Michal Marek <mmarek@suse.cz>

authored by Asbjoern Sloth Toennesen and committed by Michal Marek 10f26fa6 e86c2412

+34 -1
+34 -1
scripts/package/builddeb
··· 25 chown -R root:root "$pdir" 26 chmod -R go-w "$pdir" 27 28 # Create the package 29 - dpkg-gencontrol -isp -p$pname -P"$pdir" 30 dpkg --build "$pdir" .. 31 } 32
··· 25 chown -R root:root "$pdir" 26 chmod -R go-w "$pdir" 27 28 + # Attempt to find the correct Debian architecture 29 + local forcearch="" debarch="" 30 + case "$UTS_MACHINE" in 31 + i386|ia64|alpha) 32 + debarch="$UTS_MACHINE" ;; 33 + x86_64) 34 + debarch=amd64 ;; 35 + sparc*) 36 + debarch=sparc ;; 37 + s390*) 38 + debarch=s390 ;; 39 + ppc*) 40 + debarch=powerpc ;; 41 + parisc*) 42 + debarch=hppa ;; 43 + mips*) 44 + debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y .config && echo el) ;; 45 + arm*) 46 + debarch=arm$(grep -q CONFIG_AEABI=y .config && echo el) ;; 47 + *) 48 + echo "" >&2 49 + echo "** ** ** WARNING ** ** **" >&2 50 + echo "" >&2 51 + echo "Your architecture doesn't have it's equivalent" >&2 52 + echo "Debian userspace architecture defined!" >&2 53 + echo "Falling back to using your current userspace instead!" >&2 54 + echo "Please add support for $UTS_MACHINE to ${0} ..." >&2 55 + echo "" >&2 56 + esac 57 + if [ -n "$debarch" ] ; then 58 + forcearch="-DArchitecture=$debarch" 59 + fi 60 + 61 # Create the package 62 + dpkg-gencontrol -isp $forcearch -p$pname -P"$pdir" 63 dpkg --build "$pdir" .. 64 } 65