BOARD_SYSTEMSDK_VERSIONS should depend on BOARD_*_API_LEVEL if it exists

BOARD_SYSTEMSDK_VERSIONS should be checked by BOARD_API_LEVEL,
BOARD_SHIPPING_API_LEVEL, or PRODUCT_SHIPPING_API_LEVEL in a forward
order.

Bug: 201489975
Test: BOARD_SYSTEMSDK_VERSIONS := 30, PRODUCT_SHIPPING_API_LEVEL := 31,
BOARD_API_LEVEL := 30, and then check if there isn't an error

Change-Id: I00e3bf8dda6e6e87a2daf42c74d703503cbeed1f
diff --git a/core/config.mk b/core/config.mk
index bead8f6..8824d3b 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -723,10 +723,13 @@
 endif
 .KATI_READONLY := BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES
 
+min_systemsdk_version := $(firstword $(BOARD_API_LEVEL) $(BOARD_SHIPPING_API_LEVEL) $(PRODUCT_SHIPPING_API_LEVEL))
+ifneq (,$(min_systemsdk_version))
+ifneq ($(call numbers_less_than,$(min_systemsdk_version),$(BOARD_SYSTEMSDK_VERSIONS)),)
+  $(error BOARD_SYSTEMSDK_VERSIONS ($(BOARD_SYSTEMSDK_VERSIONS)) must all be greater than or equal to BOARD_API_LEVEL, BOARD_SHIPPING_API_LEVEL or PRODUCT_SHIPPING_API_LEVEL ($(min_systemsdk_version)))
+endif
+endif
 ifdef PRODUCT_SHIPPING_API_LEVEL
-  ifneq ($(call numbers_less_than,$(PRODUCT_SHIPPING_API_LEVEL),$(BOARD_SYSTEMSDK_VERSIONS)),)
-    $(error BOARD_SYSTEMSDK_VERSIONS ($(BOARD_SYSTEMSDK_VERSIONS)) must all be greater than or equal to PRODUCT_SHIPPING_API_LEVEL ($(PRODUCT_SHIPPING_API_LEVEL)))
-  endif
   ifneq ($(call math_gt_or_eq,$(PRODUCT_SHIPPING_API_LEVEL),28),)
     ifneq ($(TARGET_IS_64_BIT), true)
       ifneq ($(TARGET_USES_64_BIT_BINDER), true)