diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml
index c4bd1f2584..4c29b2464f 100644
--- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml
+++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml
@@ -1124,6 +1124,67 @@
+ BBFILES_DYNAMIC
+
+ BBFILES_DYNAMIC[doc] = "Activates content depending on presence of identified layers."
+
+
+
+ Activates content depending on presence of identified layers.
+ You identify the layers by the collections that the layers
+ define.
+
+
+
+ Use the BBFILES_DYNAMIC variable to
+ avoid .bbappend files whose
+ corresponding .bb file is in a layer
+ that attempts to modify other layers through
+ .bbappend but does not want to
+ introduce a hard dependency on those other layers.
+
+
+
+ Additionally you can prefix the rule with "!" to add
+ .bbappend and .bb files
+ in case a layer is not present.
+ Use this avoid hard dependency on those other layers.
+
+
+
+ Use the following form for
+ BBFILES_DYNAMIC:
+
+ collection_name:filename_pattern
+
+ The following example identifies two collection names and
+ two filename patterns:
+
+ BBFILES_DYNAMIC += "\
+ clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
+ core:${LAYERDIR}/bbappends/openembedded-core/meta/*/*/*.bbappend \
+ "
+
+ When the collection name is prefixed with "!" it will add the file pattern in case
+ the layer is absent:
+
+ BBFILES_DYNAMIC += "\
+ !clang-layer:${LAYERDIR}/backfill/meta-clang/*/*/*.bb \
+ "
+
+
+ This next example shows an error message that occurs
+ because invalid entries are found, which cause parsing to
+ abort:
+
+ ERROR: BBFILES_DYNAMIC entries must be of the form {!}<collection name>:<filename pattern>, not:
+ /work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
+ /work/my-layer/bbappends/openembedded-core/meta/*/*/*.bbappend
+
+
+
+
+
BBINCLUDED