Makefile: Gather lists of dependencies by feature/lib

For each feature or library that we treat as dependency, list which
programmers depend on it.

Change-Id: I6929181f18213e1434cbbc7ba2d2b0b04bd46a6a
Signed-off-by: Nico Huber <nico.h@gmx.de>
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/55872
Original-Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71404
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/Makefile b/Makefile
index 3563c0c..34da0c1 100644
--- a/Makefile
+++ b/Makefile
@@ -85,6 +85,55 @@
     { $(1) ; } | tee -a $(BUILD_DETAILS_FILE) ; echo >&2 ; } 2>>$(BUILD_DETAILS_FILE))
 
 ###############################################################################
+# Dependency handling.
+
+DEPENDS_ON_SERIAL := \
+	CONFIG_BUSPIRATE_SPI \
+	CONFIG_PONY_SPI \
+	CONFIG_SERPROG \
+
+DEPENDS_ON_BITBANG_SPI := \
+	CONFIG_INTERNAL \
+	CONFIG_NICINTEL_SPI \
+	CONFIG_OGP_SPI \
+	CONFIG_PONY_SPI \
+	CONFIG_RAYER_SPI \
+
+DEPENDS_ON_LIBPCI := \
+	CONFIG_ATAHPT \
+	CONFIG_ATAPROMISE \
+	CONFIG_ATAVIA \
+	CONFIG_DRKAISER \
+	CONFIG_GFXNVIDIA \
+	CONFIG_INTERNAL \
+	CONFIG_IT8212 \
+	CONFIG_NIC3COM \
+	CONFIG_NICINTEL \
+	CONFIG_NICINTEL_EEPROM \
+	CONFIG_NICINTEL_SPI \
+	CONFIG_NICNATSEMI \
+	CONFIG_NICREALTEK \
+	CONFIG_OGP_SPI \
+	CONFIG_SATAMV \
+	CONFIG_SATASII \
+
+DEPENDS_ON_LIBUSB1 := \
+	CONFIG_CH341A_SPI \
+	CONFIG_DEDIPROG \
+	CONFIG_DEVELOPERBOX_SPI \
+	CONFIG_DIGILENT_SPI \
+	CONFIG_PICKIT2_SPI \
+	CONFIG_RAIDEN_DEBUG_SPI \
+	CONFIG_STLINKV3_SPI \
+
+DEPENDS_ON_LIBFTDI := \
+	CONFIG_FT2232_SPI \
+	CONFIG_USBBLASTER_SPI \
+
+DEPENDS_ON_LIBJAYLINK := \
+	CONFIG_JLINK_SPI \
+
+###############################################################################
 # General OS-specific settings.
 # 1. Prepare for later by gathering information about host and target OS
 # 2. Set compiler flags and parameters according to OSes