From: Panu Matilainen <pmatilai@redhat.com>
To: dev@dpdk.org
Cc: christian.ehrhardt@canonical.com, thomas.monjalon@6wind.com,
ferruh.yigit@intel.com
Subject: [dpdk-dev] [PATCH] mk: generate internal library dependencies from DEPDIRS-y automatically
Date: Tue, 7 Jun 2016 13:01:54 +0300 [thread overview]
Message-ID: <62da0f5f31b2ab9db2dcc16acd2f8425a575a26f.1465293714.git.pmatilai@redhat.com> (raw)
Up to now dependencies between DPDK internal libraries have been
untracked at shared library level, requiring applications to know
about library internal dependencies and often consequently overlinking.
Since the dependencies are already recorded for build ordering in the
makefiles, we can use that information to generate LDLIBS entries for
internal libraries automatically.
Also revert commit 8180554d82b3 ("vhost: fix linkage of driver with
library") which is made redundant by this change.
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
---
drivers/net/vhost/Makefile | 1 -
mk/rte.lib.mk | 7 +++++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/net/vhost/Makefile b/drivers/net/vhost/Makefile
index 30b91a0..f49a69b 100644
--- a/drivers/net/vhost/Makefile
+++ b/drivers/net/vhost/Makefile
@@ -38,7 +38,6 @@ LIB = librte_pmd_vhost.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_vhost
EXPORT_MAP := rte_pmd_vhost_version.map
diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk
index b420280..1ff403f 100644
--- a/mk/rte.lib.mk
+++ b/mk/rte.lib.mk
@@ -77,6 +77,13 @@ else
_CPU_LDFLAGS := $(CPU_LDFLAGS)
endif
+# Translate DEPDIRS-y into LDLIBS
+# Ignore (sub)directory dependencies which do not provide an actual library
+_IGNORE_DIRS = lib/librte_eal/% lib/librte_net lib/librte_compat
+_DEPDIRS = $(filter-out $(_IGNORE_DIRS),$(DEPDIRS-y))
+_LDDIRS = $(subst librte_ether,libethdev,$(_DEPDIRS))
+LDLIBS += $(subst lib/lib,-l,$(_LDDIRS))
+
O_TO_A = $(AR) crDs $(LIB) $(OBJS-y)
O_TO_A_STR = $(subst ','\'',$(O_TO_A)) #'# fix syntax highlight
O_TO_A_DISP = $(if $(V),"$(O_TO_A_STR)"," AR $(@)")
--
2.5.5
next reply other threads:[~2016-06-07 10:01 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-07 10:01 Panu Matilainen [this message]
2016-06-07 12:36 ` Christian Ehrhardt
2016-06-07 13:00 ` Thomas Monjalon
2016-06-07 14:07 ` Bruce Richardson
2016-06-07 14:19 ` Thomas Monjalon
2016-06-07 14:37 ` Bruce Richardson
2016-06-07 14:40 ` Wiles, Keith
2016-06-08 12:34 ` Olivier Matz
2016-06-08 13:38 ` Thomas Monjalon
2016-06-09 9:40 ` Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=62da0f5f31b2ab9db2dcc16acd2f8425a575a26f.1465293714.git.pmatilai@redhat.com \
--to=pmatilai@redhat.com \
--cc=christian.ehrhardt@canonical.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=thomas.monjalon@6wind.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).