From patchwork Fri Sep 1 10:04:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 28269 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 7B4827D72; Fri, 1 Sep 2017 12:18:37 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 93D057D6B for ; Fri, 1 Sep 2017 12:18:35 +0200 (CEST) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Sep 2017 03:18:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.41,457,1498546800"; d="scan'208";a="306892647" Received: from silpixa00399126.ir.intel.com (HELO silpixa00399126.ger.corp.intel.com) ([10.237.223.223]) by fmsmga004.fm.intel.com with ESMTP; 01 Sep 2017 03:18:34 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: Bruce Richardson Date: Fri, 1 Sep 2017 11:04:15 +0100 Message-Id: <20170901100416.80264-17-bruce.richardson@intel.com> X-Mailer: git-send-email 2.13.5 In-Reply-To: <20170901100416.80264-1-bruce.richardson@intel.com> References: <20170901100416.80264-1-bruce.richardson@intel.com> Subject: [dpdk-dev] [PATCH 16/17] build: add option to version libs using DPDK version 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" Normally, each library has it's own version number based on the ABI. Add an option to have all libs just use the DPDK version number as the .so version. Signed-off-by: Bruce Richardson --- drivers/meson.build | 8 +++++++- lib/meson.build | 8 +++++++- meson_options.txt | 1 + 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/meson.build b/drivers/meson.build index d7a614f83..76d610a5b 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -92,6 +92,12 @@ foreach class:driver_classes depends: [pmdinfogen, tmp_lib]) endforeach + if get_option('per_library_versions') + so_version = '@0@.1'.format(version) + else + so_version = meson.project_version() + endif + # now build the driver itself, and add to the drivers list lib_name = driver_name_fmt.format(name) version_map = '@0@/@1@/@2@_version.map'.format( @@ -105,7 +111,7 @@ foreach class:driver_classes c_args: cflags, link_args: '-Wl,--version-script=' + version_map, link_depends: version_map, - version: '@0@.1'.format(version), + version: so_version, install: true, install_dir: driver_install_path) diff --git a/lib/meson.build b/lib/meson.build index b8c4304de..e20a9ab59 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -76,6 +76,12 @@ foreach l:libraries dep_objs += [get_variable('dep_rte_' + d)] endforeach + if get_option('per_library_versions') + so_version = '@0@.1'.format(version) + else + so_version = meson.project_version() + endif + version_map = '@0@/@1@/rte_@2@_version.map'.format( meson.current_source_dir(), dir_name, name) libname = 'rte_' + name @@ -87,7 +93,7 @@ foreach l:libraries include_directories: include_directories(dir_name), link_args: '-Wl,--version-script=' + version_map, link_depends: version_map, - version: '@0@.1'.format(version), + version: so_version, install: true) dep = declare_dependency(link_with: lib, include_directories: include_directories(dir_name), diff --git a/meson_options.txt b/meson_options.txt index 9c45b8159..636226ce8 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -6,3 +6,4 @@ option('allow_invalid_socket_id', type: 'boolean', value: false, description: 'allow out-of-range NUMA socket id\'s for platforms that don\'t report the value correctly') option('enable_kmods', type: 'boolean', value: true, description: 'build kernel modules') option('kernel_dir', type: 'string', value: '', description: 'path to the kernel for building kernel modules') +option('per_library_versions', type: 'boolean', value: true, description: 'true: each lib gets its own version number, false: DPDK version used for each lib')