[PATCH] kbuild, deb-pkg: fix Architecture field when cross compiling

Asbjoern Sloth Toennesen
2010-11-04T03:44:35Z

Attempt to guess the correct value of the Architecture control
field, based on the ARCH environment variable. Fallback to letting
deb-gencontrol use the host platform's architecture.

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 amd64 machine.

Signed-off-by: Asbjoern Sloth Toennesen <asbjorn@asbjorn.biz>
---
scripts/package/builddeb | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 5f1e2fc..43b8826 100644
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -25,8 +25,23 @@ create_package() {
chown -R root:root "$pdir"
chmod -R go-w "$pdir"

+ # Attempt to find the correct Debian architecture
+ local forcearch="" debarch=""
+ case "$ARCH" in
+ i386|ia64)
+ debarch="$ARCH" ;;
+ x86_64)
+ debarch="amd64" ;;
+ *)
+ grep -q CONFIG_ARM=y .config &&
+ debarch=arm$(grep -q CONFIG_AEABI=y .config && echo el)
+ 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" ..
}

--
1.7.2.3