diff options
author | Asbjoern Sloth Toennesen <asbjorn@asbjorn.biz> | 2010-11-05 13:30:08 +0000 |
---|---|---|
committer | Michal Marek <mmarek@suse.cz> | 2010-11-25 15:32:05 +0100 |
commit | 10f26fa64200095af0e5d80a980e47877865e4b7 (patch) | |
tree | 4ea8feadf312b9bd2203df79b06982e2c9e473e9 | |
parent | e86c2412c88fbe4676920c40348d3c547c9edb0d (diff) | |
download | linux-10f26fa64200095af0e5d80a980e47877865e4b7.tar.bz2 |
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>
-rw-r--r-- | scripts/package/builddeb | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/scripts/package/builddeb b/scripts/package/builddeb index 4dfec9aaaace..5d6be3f5e7f7 100644 --- a/scripts/package/builddeb +++ b/scripts/package/builddeb @@ -25,8 +25,41 @@ create_package() { chown -R root:root "$pdir" chmod -R go-w "$pdir" + # Attempt to find the correct Debian architecture + local forcearch="" debarch="" + case "$UTS_MACHINE" in + i386|ia64|alpha) + debarch="$UTS_MACHINE" ;; + x86_64) + debarch=amd64 ;; + sparc*) + debarch=sparc ;; + s390*) + debarch=s390 ;; + ppc*) + debarch=powerpc ;; + parisc*) + debarch=hppa ;; + mips*) + debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y .config && echo el) ;; + arm*) + debarch=arm$(grep -q CONFIG_AEABI=y .config && echo el) ;; + *) + echo "" >&2 + echo "** ** ** WARNING ** ** **" >&2 + echo "" >&2 + echo "Your architecture doesn't have it's equivalent" >&2 + echo "Debian userspace architecture defined!" >&2 + echo "Falling back to using your current userspace instead!" >&2 + echo "Please add support for $UTS_MACHINE to ${0} ..." >&2 + echo "" >&2 + esac + if [ -n "$debarch" ] ; then + forcearch="-DArchitecture=$debarch" + fi + # Create the package - dpkg-gencontrol -isp -p$pname -P"$pdir" + dpkg-gencontrol -isp $forcearch -p$pname -P"$pdir" dpkg --build "$pdir" .. } |