From patchwork Tue Jan 31 12:14:27 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ferruh Yigit X-Patchwork-Id: 20091 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 3438547CE; Tue, 31 Jan 2017 13:14:42 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 9C39E2B98 for ; Tue, 31 Jan 2017 13:14:33 +0100 (CET) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP; 31 Jan 2017 04:14:32 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,314,1477983600"; d="scan'208";a="928524064" Received: from sivswdev02.ir.intel.com ([10.237.217.46]) by orsmga003.jf.intel.com with ESMTP; 31 Jan 2017 04:14:31 -0800 From: Ferruh Yigit To: Thomas Monjalon Cc: dev@dpdk.org, Ferruh Yigit Date: Tue, 31 Jan 2017 12:14:27 +0000 Message-Id: <20170131121427.31279-2-ferruh.yigit@intel.com> X-Mailer: git-send-email 2.8.4 In-Reply-To: <20170131121427.31279-1-ferruh.yigit@intel.com> References: <20170131121427.31279-1-ferruh.yigit@intel.com> Subject: [dpdk-dev] [PATCH 2/2] mk: move PMD libraries to applications X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Same PMDs provide device specific APIs. Bond and xenvirt are existing samples for this. And since these are PMD libraries, there are two options on how to link them. 1- They can be fully included to all applications, using common rte.app.mk file by default. 2- They can be explicitly linked to applications that use device specific API. Currently option one is in use, this patch switches to the option two. Moves library linking to the application of Makefile that uses device specific API. This prevent including these libraries into final applications that don't use these device specific APIs. Signed-off-by: Ferruh Yigit --- app/test-pmd/Makefile | 8 ++++++++ app/test/Makefile | 21 +++++++++++++++++---- examples/bond/Makefile | 4 ++++ mk/rte.app.mk | 5 ++--- 4 files changed, 31 insertions(+), 7 deletions(-) diff --git a/app/test-pmd/Makefile b/app/test-pmd/Makefile index 7e52eb8..eec1ed0 100644 --- a/app/test-pmd/Makefile +++ b/app/test-pmd/Makefile @@ -61,6 +61,10 @@ SRCS-$(CONFIG_RTE_LIBRTE_IEEE1588) += ieee1588fwd.c ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) +ifeq ($(CONFIG_RTE_LIBRTE_PMD_BOND),y) +LDLIBS += -lrte_pmd_bond +endif + ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y) LDLIBS += -lrte_pmd_ixgbe endif @@ -69,6 +73,10 @@ ifeq ($(CONFIG_RTE_LIBRTE_I40E_PMD),y) LDLIBS += -lrte_pmd_i40e endif +ifeq ($(CONFIG_RTE_LIBRTE_PMD_XENVIRT),y) +LDLIBS += -lrte_pmd_xenvirt +endif + endif CFLAGS_cmdline.o := -D_GNU_SOURCE diff --git a/app/test/Makefile b/app/test/Makefile index 9de301f..1a5e03d 100644 --- a/app/test/Makefile +++ b/app/test/Makefile @@ -188,9 +188,6 @@ endif ifeq ($(CONFIG_RTE_LIBRTE_PMD_NULL),y) SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += test_link_bonding_rssconf.c -ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) -LDLIBS += -lrte_pmd_null -endif endif SRCS-$(CONFIG_RTE_LIBRTE_PMD_RING) += test_pmd_ring.c @@ -224,11 +221,27 @@ DEPDIRS-y += lib drivers ifeq ($(CONFIG_RTE_LIBRTE_PMD_BOND),y) ifneq ($(CONFIG_RTE_LIBRTE_PMD_RING),y) $(error Link bonding tests require CONFIG_RTE_LIBRTE_PMD_RING=y) -else +endif +endif + ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) + +ifeq ($(CONFIG_RTE_LIBRTE_PMD_BOND),y) +LDLIBS += -lrte_pmd_bond +endif + +ifeq ($(CONFIG_RTE_LIBRTE_PMD_NULL),y) +LDLIBS += -lrte_pmd_null +endif + +ifeq ($(CONFIG_RTE_LIBRTE_PMD_RING),y) LDLIBS += -lrte_pmd_ring endif + +ifeq ($(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER),y) +LDLIBS += -lrte_pmd_crypto_scheduler endif + endif ifeq ($(CONFIG_RTE_APP_TEST_RESOURCE_TAR),y) diff --git a/examples/bond/Makefile b/examples/bond/Makefile index 626d79d..ae4cb6e 100644 --- a/examples/bond/Makefile +++ b/examples/bond/Makefile @@ -54,4 +54,8 @@ endif CFLAGS += -O3 +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) +LDLIBS += -lrte_pmd_bond +endif + include $(RTE_SDK)/mk/rte.extapp.mk diff --git a/mk/rte.app.mk b/mk/rte.app.mk index a4a09d8..92f3635 100644 --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -100,15 +100,13 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_EAL) += -lrte_eal _LDLIBS-$(CONFIG_RTE_LIBRTE_CMDLINE) += -lrte_cmdline _LDLIBS-$(CONFIG_RTE_LIBRTE_REORDER) += -lrte_reorder -_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += -lrte_pmd_bond -_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_XENVIRT) += -lrte_pmd_xenvirt -lxenstore - ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),n) # plugins (link only if static libraries) _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET) += -lrte_pmd_af_packet _LDLIBS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += -lrte_pmd_bnx2x -lz _LDLIBS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += -lrte_pmd_bnxt +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += -lrte_pmd_bond _LDLIBS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += -lrte_pmd_cxgbe _LDLIBS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += -lrte_pmd_e1000 _LDLIBS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += -lrte_pmd_ena @@ -133,6 +131,7 @@ ifeq ($(CONFIG_RTE_LIBRTE_VHOST),y) _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_VHOST) += -lrte_pmd_vhost endif # $(CONFIG_RTE_LIBRTE_VHOST) _LDLIBS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += -lrte_pmd_vmxnet3_uio +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_XENVIRT) += -lrte_pmd_xenvirt -lxenstore ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y) _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += -lrte_pmd_aesni_mb