Deliver all_release_configs.json as a build artifact

Bug: 328495189
Test: manual
Change-Id: Iebb07c303e6eae51d6c74dd80aa5ac2024b5629e
diff --git a/core/release_config.mk b/core/release_config.mk
index e3ec3a0..887c78b 100644
--- a/core/release_config.mk
+++ b/core/release_config.mk
@@ -130,7 +130,8 @@
         # Disable the build flag in release-config.
         _args += --guard=false
     endif
-    _flags_file:=$(OUT_DIR)/soong/release-config/release_config-$(TARGET_PRODUCT)-$(TARGET_RELEASE).vars
+    _flags_dir:=$(OUT_DIR)/soong/release-config
+    _flags_file:=$(_flags_dir)/release_config-$(TARGET_PRODUCT)-$(TARGET_RELEASE).vars
     # release-config generates $(_flags_varmk)
     _flags_varmk:=$(_flags_file:.vars=.varmk)
     $(shell $(OUT_DIR)/release-config $(_args) >$(OUT_DIR)/release-config.out && touch -t 200001010000 $(_flags_varmk))
@@ -148,7 +149,21 @@
     _used_files :=
     ifeq (,$(_must_protobuf)$(RELEASE_BUILD_FLAGS_IN_PROTOBUF))
         _use_protobuf :=
+    else
+        _base_all_release := all_release_configs-$(TARGET_PRODUCT)
+        $(call dist-for-goals,droid,\
+            $(_flags_dir)/$(_base_all_release).pb:build_flags/all_release_configs.pb \
+            $(_flags_dir)/$(_base_all_release).textproto:build_flags/all_release_configs.textproto \
+            $(_flags_dir)/$(_base_all_release).json:build_flags/all_release_configs.json \
+        )
+# These are always created, add an empty rule for them to keep ninja happy.
+$(_flags_dir)/$(_base_all_release).pb $(_flags_dir)/$(_base_all_release).textproto $(_flags_dir)/$(_base_all_release).json:
+	: created by $(OUT_DIR)/release-config
+        _base_all_release :=
     endif
+    _flags_dir:=
+    _flags_file:=
+    _flags_varmk:=
 endif
 ifeq (,$(_use_protobuf))
     # The .mk files are the canonical source of truth.