diff --git a/Makefile b/Makefile
index 7358cac6c81265098d826df2694bda21a2c6aa63..b220afe9fd79049fea04e0634ace45f20d3ec1c7 100644
--- a/Makefile
+++ b/Makefile
@@ -44,6 +44,7 @@ $(eval $(call mkabspath,GLUON_TARGETSDIR))
 $(eval $(call mkabspath,GLUON_PATCHESDIR))
 
 GLUON_MULTIDOMAIN ?= 0
+GLUON_AUTOREMOVE ?= 0
 GLUON_DEBUG ?= 0
 GLUON_MINIFY ?= 1
 
@@ -54,8 +55,8 @@ src-link gluon_base ../../package
 endef
 
 GLUON_VARS = \
-	GLUON_RELEASE GLUON_REGION GLUON_MULTIDOMAIN GLUON_DEBUG GLUON_MINIFY GLUON_DEPRECATED GLUON_DEVICES \
-	GLUON_TARGETSDIR GLUON_PATCHESDIR GLUON_TMPDIR GLUON_IMAGEDIR GLUON_PACKAGEDIR \
+	GLUON_RELEASE GLUON_REGION GLUON_MULTIDOMAIN GLUON_AUTOREMOVE GLUON_DEBUG GLUON_MINIFY GLUON_DEPRECATED \
+	GLUON_DEVICES GLUON_TARGETSDIR GLUON_PATCHESDIR GLUON_TMPDIR GLUON_IMAGEDIR GLUON_PACKAGEDIR \
 	GLUON_SITEDIR GLUON_RELEASE GLUON_BRANCH GLUON_LANGS GLUON_BASE_FEEDS \
 	GLUON_TARGET BOARD SUBTARGET
 
diff --git a/contrib/actions/run-build.sh b/contrib/actions/run-build.sh
index 62b641ad017afc6a9f8d7b9bb80a3f5d71cfcae6..c688163061cadb7910a23fcf835482a730d8852f 100755
--- a/contrib/actions/run-build.sh
+++ b/contrib/actions/run-build.sh
@@ -1,6 +1,7 @@
 #!/bin/bash
 
 export BROKEN=1
+export GLUON_AUTOREMOVE=1
 export GLUON_DEPRECATED=1
 export GLUON_SITEDIR="contrib/ci/minimal-site"
 export GLUON_TARGET=$1
diff --git a/docs/user/getting_started.rst b/docs/user/getting_started.rst
index f4be37fdf39025e82566443192a686951b0f19d1..64d7aed4ec2d0f7585ff323b35dd35d711ffae99 100644
--- a/docs/user/getting_started.rst
+++ b/docs/user/getting_started.rst
@@ -208,6 +208,12 @@ GLUON_TARGET
 Special variables
 .................
 
+GLUON_AUTOREMOVE
+  Setting ``GLUON_AUTOREMOVE=1`` enables the ``CONFIG_AUTOREMOVE`` OpenWrt setting, which will delete package build
+  directories after a package build has finished to save space. This is mostly useful for CI builds from scratch. Do
+  not set this flag during development (or generally, when you want you reuse your build tree for subsequent builds),
+  as it significantly increases incremental build times.
+
 GLUON_DEBUG
   Setting ``GLUON_DEBUG=1`` will provide firmware images including debugging symbols usable with GDB or
   similar tools. Requires a device or target with at least 16 MB of flash space, e.g. `x86-64`. Unset by default.
diff --git a/targets/generic b/targets/generic
index 7672833de1c8e420ec52c52fd7f86c910fc13baf..702f52bd276a4141f7fcaaec946388c52cfcd046 100644
--- a/targets/generic
+++ b/targets/generic
@@ -31,6 +31,7 @@ end
 
 config '# CONFIG_TARGET_ROOTFS_INITRAMFS is not set'
 
+config 'CONFIG_DEVEL=y'
 config 'CONFIG_ALL_NONSHARED=y'
 
 config '# CONFIG_PACKAGE_usbip is not set' -- fails to build
@@ -51,6 +52,10 @@ if istrue(env.GLUON_MULTIDOMAIN) then
 	config 'CONFIG_GLUON_MULTIDOMAIN=y'
 end
 
+if istrue(env.GLUON_AUTOREMOVE) then
+	config 'CONFIG_AUTOREMOVE=y'
+end
+
 if istrue(env.GLUON_DEBUG) then
 	config 'CONFIG_DEBUG=y'
 	config 'CONFIG_NO_STRIP=y'