From ad824cea112890272aaec311bfe7cfb08131633c Mon Sep 17 00:00:00 2001
From: Christian Helmuth <christian.helmuth@genode-labs.com>
Date: Wed, 21 Jun 2017 11:38:28 +0200
Subject: [PATCH] sd_card: cleanup driver library structure

Now both, the sd_card_drv and sd_card_bench use LIBS=sd_card_drv.
---
 repos/os/lib/import/import-sd_card_drv.mk     | 15 +++++++++++++++
 repos/os/lib/mk/sd_card.inc                   |  5 -----
 repos/os/lib/mk/spec/exynos5/sd_card_bench.mk |  6 ------
 repos/os/lib/mk/spec/exynos5/sd_card_drv.mk   |  6 ++++--
 repos/os/lib/mk/spec/imx53/sd_card_bench.mk   |  8 --------
 repos/os/lib/mk/spec/imx53/sd_card_drv.mk     | 10 +++++-----
 repos/os/lib/mk/spec/imx6/sd_card_bench.mk    |  8 --------
 repos/os/lib/mk/spec/imx6/sd_card_drv.mk      | 10 +++++-----
 repos/os/lib/mk/spec/omap4/sd_card_bench.mk   |  6 ------
 repos/os/lib/mk/spec/omap4/sd_card_drv.mk     |  6 ++++--
 repos/os/lib/mk/spec/pbxa9/sd_card_bench.mk   |  6 ------
 repos/os/lib/mk/spec/pbxa9/sd_card_drv.mk     |  6 ++++--
 repos/os/lib/mk/spec/rpi/sd_card_bench.mk     |  6 ------
 repos/os/lib/mk/spec/rpi/sd_card_drv.mk       |  6 ++++--
 repos/os/src/drivers/sd_card/empty.cc         |  3 ---
 repos/os/src/drivers/sd_card/target.mk        |  2 +-
 repos/os/src/test/sd_card_bench/empty.cc      |  3 ---
 repos/os/src/test/sd_card_bench/target.mk     |  4 ++--
 18 files changed, 44 insertions(+), 72 deletions(-)
 create mode 100644 repos/os/lib/import/import-sd_card_drv.mk
 delete mode 100644 repos/os/lib/mk/spec/exynos5/sd_card_bench.mk
 delete mode 100644 repos/os/lib/mk/spec/imx53/sd_card_bench.mk
 delete mode 100644 repos/os/lib/mk/spec/imx6/sd_card_bench.mk
 delete mode 100644 repos/os/lib/mk/spec/omap4/sd_card_bench.mk
 delete mode 100644 repos/os/lib/mk/spec/pbxa9/sd_card_bench.mk
 delete mode 100644 repos/os/lib/mk/spec/rpi/sd_card_bench.mk
 delete mode 100644 repos/os/src/drivers/sd_card/empty.cc
 delete mode 100644 repos/os/src/test/sd_card_bench/empty.cc

diff --git a/repos/os/lib/import/import-sd_card_drv.mk b/repos/os/lib/import/import-sd_card_drv.mk
new file mode 100644
index 0000000000..40f46fef7c
--- /dev/null
+++ b/repos/os/lib/import/import-sd_card_drv.mk
@@ -0,0 +1,15 @@
+ifeq ($(filter-out $(SPECS),exynos5),)
+SPEC = exynos5
+else ifeq ($(filter-out $(SPECS),imx53),)
+SPEC = imx
+else ifeq ($(filter-out $(SPECS),imx6),)
+SPEC = imx
+else ifeq ($(filter-out $(SPECS),omap4),)
+SPEC = omap4
+else ifeq ($(filter-out $(SPECS),pbxa9),)
+SPEC = pbxa9
+else ifeq ($(filter-out $(SPECS),rpi),)
+SPEC = rpi
+endif
+
+INC_DIR += $(REP_DIR)/src/drivers/sd_card $(REP_DIR)/src/drivers/sd_card/spec/$(SPEC)
diff --git a/repos/os/lib/mk/sd_card.inc b/repos/os/lib/mk/sd_card.inc
index d757f2fa5b..e69de29bb2 100644
--- a/repos/os/lib/mk/sd_card.inc
+++ b/repos/os/lib/mk/sd_card.inc
@@ -1,5 +0,0 @@
-INC_DIR += $(REP_DIR)/src/drivers/sd_card
-SRC_CC  += main.cc
-LIBS    += base
-
-vpath %.cc $(REP_DIR)/src/drivers/sd_card
diff --git a/repos/os/lib/mk/spec/exynos5/sd_card_bench.mk b/repos/os/lib/mk/spec/exynos5/sd_card_bench.mk
deleted file mode 100644
index d8f3a6f490..0000000000
--- a/repos/os/lib/mk/spec/exynos5/sd_card_bench.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-INC_DIR += $(REP_DIR)/src/drivers/sd_card/spec/exynos5
-SRC_CC  += spec/exynos5/driver.cc
-
-vpath main.cc $(REP_DIR)/src/test/sd_card_bench
-
-include $(REP_DIR)/lib/mk/sd_card.inc
diff --git a/repos/os/lib/mk/spec/exynos5/sd_card_drv.mk b/repos/os/lib/mk/spec/exynos5/sd_card_drv.mk
index a2356fa505..71469e5a99 100644
--- a/repos/os/lib/mk/spec/exynos5/sd_card_drv.mk
+++ b/repos/os/lib/mk/spec/exynos5/sd_card_drv.mk
@@ -1,4 +1,6 @@
-INC_DIR += $(REP_DIR)/src/drivers/sd_card/spec/exynos5
 SRC_CC  += spec/exynos5/driver.cc
+LIBS    += base
 
-include $(REP_DIR)/lib/mk/sd_card.inc
+vpath %.cc $(REP_DIR)/src/drivers/sd_card
+
+include $(REP_DIR)/lib/import/import-sd_card_drv.mk
diff --git a/repos/os/lib/mk/spec/imx53/sd_card_bench.mk b/repos/os/lib/mk/spec/imx53/sd_card_bench.mk
deleted file mode 100644
index c551fd4c82..0000000000
--- a/repos/os/lib/mk/spec/imx53/sd_card_bench.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-INC_DIR += $(REP_DIR)/src/drivers/sd_card/spec/imx
-SRC_CC  += adma2.cc
-SRC_CC  += spec/imx/driver.cc
-SRC_CC  += spec/imx53/driver.cc
-
-vpath main.cc $(REP_DIR)/src/test/sd_card_bench
-
-include $(REP_DIR)/lib/mk/sd_card.inc
diff --git a/repos/os/lib/mk/spec/imx53/sd_card_drv.mk b/repos/os/lib/mk/spec/imx53/sd_card_drv.mk
index 54fb7eb653..1400eecfbf 100644
--- a/repos/os/lib/mk/spec/imx53/sd_card_drv.mk
+++ b/repos/os/lib/mk/spec/imx53/sd_card_drv.mk
@@ -1,6 +1,6 @@
-INC_DIR += $(REP_DIR)/src/drivers/sd_card/spec/imx
-SRC_CC  += adma2.cc
-SRC_CC  += spec/imx/driver.cc
-SRC_CC  += spec/imx53/driver.cc
+SRC_CC  += adma2.cc spec/imx53/driver.cc spec/imx/driver.cc
+LIBS    += base
 
-include $(REP_DIR)/lib/mk/sd_card.inc
+vpath %.cc $(REP_DIR)/src/drivers/sd_card
+
+include $(REP_DIR)/lib/import/import-sd_card_drv.mk
diff --git a/repos/os/lib/mk/spec/imx6/sd_card_bench.mk b/repos/os/lib/mk/spec/imx6/sd_card_bench.mk
deleted file mode 100644
index e2e3fb3d9b..0000000000
--- a/repos/os/lib/mk/spec/imx6/sd_card_bench.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-INC_DIR += $(REP_DIR)/src/drivers/sd_card/spec/imx
-SRC_CC  += adma2.cc
-SRC_CC  += spec/imx/driver.cc
-SRC_CC  += spec/imx6/driver.cc
-
-vpath main.cc $(REP_DIR)/src/test/sd_card_bench
-
-include $(REP_DIR)/lib/mk/sd_card.inc
diff --git a/repos/os/lib/mk/spec/imx6/sd_card_drv.mk b/repos/os/lib/mk/spec/imx6/sd_card_drv.mk
index dc586ee169..96afda8e68 100644
--- a/repos/os/lib/mk/spec/imx6/sd_card_drv.mk
+++ b/repos/os/lib/mk/spec/imx6/sd_card_drv.mk
@@ -1,6 +1,6 @@
-INC_DIR += $(REP_DIR)/src/drivers/sd_card/spec/imx
-SRC_CC  += adma2.cc
-SRC_CC  += spec/imx/driver.cc
-SRC_CC  += spec/imx6/driver.cc
+SRC_CC  += adma2.cc spec/imx/driver.cc spec/imx6/driver.cc
+LIBS    += base
 
-include $(REP_DIR)/lib/mk/sd_card.inc
+vpath %.cc $(REP_DIR)/src/drivers/sd_card
+
+include $(REP_DIR)/lib/import/import-sd_card_drv.mk
diff --git a/repos/os/lib/mk/spec/omap4/sd_card_bench.mk b/repos/os/lib/mk/spec/omap4/sd_card_bench.mk
deleted file mode 100644
index a3d1134068..0000000000
--- a/repos/os/lib/mk/spec/omap4/sd_card_bench.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-INC_DIR += $(REP_DIR)/src/drivers/sd_card/spec/omap4
-SRC_CC  += spec/omap4/driver.cc
-
-vpath main.cc $(REP_DIR)/src/test/sd_card_bench
-
-include $(REP_DIR)/lib/mk/sd_card.inc
diff --git a/repos/os/lib/mk/spec/omap4/sd_card_drv.mk b/repos/os/lib/mk/spec/omap4/sd_card_drv.mk
index 0f65c5db3d..38b22a3dd1 100644
--- a/repos/os/lib/mk/spec/omap4/sd_card_drv.mk
+++ b/repos/os/lib/mk/spec/omap4/sd_card_drv.mk
@@ -1,4 +1,6 @@
-INC_DIR += $(REP_DIR)/src/drivers/sd_card/spec/omap4
 SRC_CC  += spec/omap4/driver.cc
+LIBS    += base
 
-include $(REP_DIR)/lib/mk/sd_card.inc
+vpath %.cc $(REP_DIR)/src/drivers/sd_card
+
+include $(REP_DIR)/lib/import/import-sd_card_drv.mk
diff --git a/repos/os/lib/mk/spec/pbxa9/sd_card_bench.mk b/repos/os/lib/mk/spec/pbxa9/sd_card_bench.mk
deleted file mode 100644
index 4fbb7b1900..0000000000
--- a/repos/os/lib/mk/spec/pbxa9/sd_card_bench.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-INC_DIR += $(REP_DIR)/src/drivers/sd_card/spec/pbxa9
-SRC_CC  += spec/pbxa9/driver.cc
-
-vpath main.cc $(REP_DIR)/src/test/sd_card_bench
-
-include $(REP_DIR)/lib/mk/sd_card.inc
diff --git a/repos/os/lib/mk/spec/pbxa9/sd_card_drv.mk b/repos/os/lib/mk/spec/pbxa9/sd_card_drv.mk
index 662320a499..548d45d1e0 100644
--- a/repos/os/lib/mk/spec/pbxa9/sd_card_drv.mk
+++ b/repos/os/lib/mk/spec/pbxa9/sd_card_drv.mk
@@ -1,4 +1,6 @@
-INC_DIR += $(REP_DIR)/src/drivers/sd_card/spec/pbxa9
 SRC_CC  += spec/pbxa9/driver.cc
+LIBS    += base
 
-include $(REP_DIR)/lib/mk/sd_card.inc
+vpath %.cc $(REP_DIR)/src/drivers/sd_card
+
+include $(REP_DIR)/lib/import/import-sd_card_drv.mk
diff --git a/repos/os/lib/mk/spec/rpi/sd_card_bench.mk b/repos/os/lib/mk/spec/rpi/sd_card_bench.mk
deleted file mode 100644
index 9bcb592b70..0000000000
--- a/repos/os/lib/mk/spec/rpi/sd_card_bench.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-INC_DIR += $(REP_DIR)/src/drivers/sd_card/spec/rpi
-SRC_CC  += spec/rpi/driver.cc
-
-vpath main.cc $(REP_DIR)/src/test/sd_card_bench
-
-include $(REP_DIR)/lib/mk/sd_card.inc
diff --git a/repos/os/lib/mk/spec/rpi/sd_card_drv.mk b/repos/os/lib/mk/spec/rpi/sd_card_drv.mk
index f93c1716a8..73f3ddcba8 100644
--- a/repos/os/lib/mk/spec/rpi/sd_card_drv.mk
+++ b/repos/os/lib/mk/spec/rpi/sd_card_drv.mk
@@ -1,4 +1,6 @@
-INC_DIR += $(REP_DIR)/src/drivers/sd_card/spec/rpi
 SRC_CC  += spec/rpi/driver.cc
+LIBS    += base
 
-include $(REP_DIR)/lib/mk/sd_card.inc
+vpath %.cc $(REP_DIR)/src/drivers/sd_card
+
+include $(REP_DIR)/lib/import/import-sd_card_drv.mk
diff --git a/repos/os/src/drivers/sd_card/empty.cc b/repos/os/src/drivers/sd_card/empty.cc
deleted file mode 100644
index 066c1bf825..0000000000
--- a/repos/os/src/drivers/sd_card/empty.cc
+++ /dev/null
@@ -1,3 +0,0 @@
-/*
- * Dummy compilation unit needed to link a valid target.
- */
diff --git a/repos/os/src/drivers/sd_card/target.mk b/repos/os/src/drivers/sd_card/target.mk
index 5df6b6cbda..91e166f59b 100644
--- a/repos/os/src/drivers/sd_card/target.mk
+++ b/repos/os/src/drivers/sd_card/target.mk
@@ -1,3 +1,3 @@
 TARGET = sd_card_drv
 LIBS   = sd_card_drv
-SRC_CC = empty.cc
+SRC_CC = main.cc
diff --git a/repos/os/src/test/sd_card_bench/empty.cc b/repos/os/src/test/sd_card_bench/empty.cc
deleted file mode 100644
index 066c1bf825..0000000000
--- a/repos/os/src/test/sd_card_bench/empty.cc
+++ /dev/null
@@ -1,3 +0,0 @@
-/*
- * Dummy compilation unit needed to link a valid target.
- */
diff --git a/repos/os/src/test/sd_card_bench/target.mk b/repos/os/src/test/sd_card_bench/target.mk
index 727948d36c..995ebf31e1 100644
--- a/repos/os/src/test/sd_card_bench/target.mk
+++ b/repos/os/src/test/sd_card_bench/target.mk
@@ -1,3 +1,3 @@
 TARGET = sd_card_bench
-LIBS   = sd_card_bench
-SRC_CC = empty.cc
+LIBS   = sd_card_drv
+SRC_CC = main.cc