build: allow using DEVICES variable for sysupgrade_image/factory_image images

Setting DEVICES will also suppress cleaning the package directory,
improving incremental build speed.
This commit is contained in:
Matthias Schiffer 2017-01-27 01:30:47 +01:00
parent 6b62e2fc78
commit 3d1860e092
No known key found for this signature in database
GPG Key ID: 16EF3F64CB201D9C
4 changed files with 25 additions and 19 deletions

View File

@ -17,4 +17,4 @@ fi
rm -f "lede/bin/targets/${LEDE_BINDIR}"/* 2>/dev/null || true
# Full builds will output the "packages" directory, so clean up first
[ "$has_devices" ] || rm -rf "lede/bin/targets/${LEDE_BINDIR}/packages"
[ "$DEVICES" ] || rm -rf "lede/bin/targets/${LEDE_BINDIR}/packages"

View File

@ -31,36 +31,32 @@ sysupgrade() {
}
if [ "$DEVICES" ]; then
has_devices=1
else
has_devices=
fi
unknown_devices="$DEVICES"
want_device() {
[ "$has_devices" ] || return 0
[ "$DEVICES" ] || return 0
local new_devices=''
local ret=1
for device in $DEVICES; do
if [ "$device" = "$1" ]; then
ret=0
else
for device in $unknown_devices; do
if [ "$device" != "$1" ]; then
new_devices="${new_devices:+${new_devices} }$device"
fi
done
unknown_devices=$new_devices
DEVICES=$new_devices
for device in $DEVICES; do
if [ "$device" = "$1" ]; then
return 0
fi
done
return $ret
return 1
}
check_devices() {
[ "$has_devices" ] || return 0
if [ "$DEVICES" ]; then
echo "Error: unknown devices given: $DEVICES" >&2
if [ "$unknown_devices" ]; then
echo "Error: unknown devices given: ${unknown_devices}" >&2
exit 1
fi
}

View File

@ -149,7 +149,7 @@ sysupgrade() {
. targets/"$1"; copy
# Copy opkg repo
if [ -z "$has_devices" ]; then
if [ -z "$DEVICES" ]; then
rm -f "$GLUON_PACKAGEDIR"/*/"$LEDE_BINDIR"/*
rmdir -p "$GLUON_PACKAGEDIR"/*/"$LEDE_BINDIR" 2>/dev/null || true
mkdir -p "${GLUON_PACKAGEDIR}/${PACKAGE_PREFIX}/${LEDE_BINDIR}"

View File

@ -67,6 +67,16 @@ device() {
done
}
factory_image() {
output="$1"
want_device "${output}" || return 0
}
sysupgrade_image() {
output="$1"
want_device "${output}" || return 0
}
packages() {
if [ "${output}" ]; then
want_device "${output}" || return 0