summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/opkbuild.sh44
1 files changed, 23 insertions, 21 deletions
diff --git a/src/opkbuild.sh b/src/opkbuild.sh
index 4915787..a9f87d8 100644
--- a/src/opkbuild.sh
+++ b/src/opkbuild.sh
@@ -68,11 +68,11 @@ while true; do
shift 2
;;
-a)
- arch=${2}
+ host_arch=${2}
shift 2
;;
-p)
- platform=${2}
+ host_platform=${2}
shift 2
;;
-d)
@@ -121,37 +121,39 @@ if [ "$(cat format)" != '1.0' ]; then
exit 1
fi
-# If a host architecture is not specified ...
-if [ -z "${arch}" ]; then
- # Attempt to detect the host architecture tuple.
- arch=$(opkg print-architecture | sed -n \
- 's/^arch \([^ -][^ -]*-[^ -][^ -]*-[^ -][^ -]*\) [0-9][0-9]*$/\1/p')
- if [ -z "${arch}" ]; then
- printf 'opkbuild: Error: No installable architecture found\n' >&2
- exit 1
- elif [ $(echo "${arch}" | wc -l) -gt 1 ]; then
- printf 'opkbuild: Error: Multiple installable architectures found\n' >&2
- exit 1
- fi
+# Attempt to detect the build architecture tuple.
+build_arch=$(opkg print-architecture | sed -n \
+ 's/^arch \([^ -][^ -]*-[^ -][^ -]*-[^ -][^ -]*\) [0-9][0-9]*$/\1/p')
+if [ -z "${build_arch}" ]; then
+ printf 'opkbuild: Error: No installable architecture found\n' >&2
+ exit 1
+elif [ $(echo "${build_arch}" | wc -l) -gt 1 ]; then
+ printf 'opkbuild: Error: Multiple installable architectures found\n' >&2
+ exit 1
+fi
+
+# If a host architecture is not specified, natively build.
+if [ -z "${host_arch}" ]; then
+ host_arch="${build_arch}"
fi
# Attempt to detect the host platform.
# If there no config files to copy, build platform-independent packages.
if [ ! -f config ]; then
- platform=''
+ host_platform=''
# If a host platform was not specified ...
-elif [ -z "${platform}" ]; then
- platform=$(opkg print-architecture | \
+elif [ -z "${host_platform}" ]; then
+ host_platform=$(opkg print-architecture | \
sed -n 's/^arch \([^ -][^ -]*\) [0-9][0-9]*$/\1/p' | \
grep -v 'all')
# ... and there are config files and zero installable platforms, fail.
- if [ -z "${platform}" ]; then
+ if [ -z "${host_platform}" ]; then
printf 'opkbuild: Error: %s\n' \
'Building platform-dependent package and no platforms detected' >&2
exit 1
# ... and there are config files and multiple installable platforms, request
# explicit selection.
- elif [ $(echo "${platform}" | wc -l) -gt 1 ]; then
+ elif [ $(echo "${host_platform}" | wc -l) -gt 1 ]; then
printf 'opkbuild: Error: %s\n' \
'Multiple platforms found while detecting host' >&2
exit 1
@@ -178,8 +180,8 @@ export OH_SRCPKG="${srcpkg}"
export OH_PKGVER=${version}
# Set environment variables for the build configuration.
-export OH_HOST_PLATFORM="${platform}"
-export OH_HOST_ARCH_DIST="${arch}"
+export OH_HOST_PLATFORM="${host_platform}"
+export OH_HOST_ARCH_DIST="${host_arch}"
IFS=- read OH_HOST_ARCH_CPU OH_HOST_ARCH_KERNEL OH_HOST_ARCH_LIBS <<EOF
${OH_HOST_ARCH_DIST}
EOF