Browse Source

build: allow using DEVICES variable for sysupgrade_image/factory_image images

Setting DEVICES will also suppress cleaning the package directory,
improving incremental build speed.
Matthias Schiffer 7 years ago
parent
commit
3d1860e092
4 changed files with 25 additions and 19 deletions
  1. 1 1
      scripts/clean_output.sh
  2. 13 17
      scripts/common.inc.sh
  3. 1 1
      scripts/copy_output.sh
  4. 10 0
      scripts/target_config_check.sh

+ 1 - 1
scripts/clean_output.sh

@@ -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"

+ 13 - 17
scripts/common.inc.sh

@@ -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
 }

+ 1 - 1
scripts/copy_output.sh

@@ -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}"

+ 10 - 0
scripts/target_config_check.sh

@@ -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