From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5D47242CD8; Fri, 16 Jun 2023 11:42:18 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 48C7840DDB; Fri, 16 Jun 2023 11:42:18 +0200 (CEST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id AEA4C40A7A for ; Fri, 16 Jun 2023 11:42:16 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686908536; x=1718444536; h=date:from:to:cc:subject:message-id:references: in-reply-to:mime-version; bh=x+bq4fdRNJ6gVzFPdhHfb4Uzi/YBP07ia8mdCE/WbdI=; b=iT5WNBdnwTjntgzvkGFwFe5F0QQhMmX9lrUwvhFxSx0y6SyQ5+r8uZvL QtnTKD6Kit1DCa7HMfzrmmRRU/Dy0nrvUBh6j5xMv7a2B0OlfiDyDe4dA ahSkFe6dT0LrCAu1cVNZiRLGOrQDiy4hElmM5BmSoe058iuX42SLv+pU1 U4/XkX7qQPZ4lpHoTvBZdKO4meLPXQ5JcXaU/0FoghyGgYpBC5QdWuO4G IYZnqYSpn67op83DxoHtGIa8nOl6Bs2ggka3eNk0ETuFfvhxb4lCF3Bkl OiU+We3XMBVEXQJG47lIhSHwi+qTiEBVhODtEggWiszqE/Rsx0meXdi/+ g==; X-IronPort-AV: E=McAfee;i="6600,9927,10742"; a="356660460" X-IronPort-AV: E=Sophos;i="6.00,247,1681196400"; d="scan'208";a="356660460" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jun 2023 02:42:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10742"; a="836974678" X-IronPort-AV: E=Sophos;i="6.00,247,1681196400"; d="scan'208";a="836974678" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga004.jf.intel.com with ESMTP; 16 Jun 2023 02:42:13 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Fri, 16 Jun 2023 02:42:13 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Fri, 16 Jun 2023 02:42:13 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.172) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Fri, 16 Jun 2023 02:42:13 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fZKQZgywM5wjZU9ZpeHNmSMr4MuVdlZCi/W6xdGl4vw1cf+WrJtJEGhGHZEqbc/6aEQkhTf5fzvVjBCKmfcrK29qA5X9vb4rMKKhuF/dOrB+uyKNxNzV62+5x+EZwEolSpCN6pfMjFf59vSyP56fojId69V3FQRxftWG222KllB4LH2qqn0kGGIV2IxuzhixcdngJpAvyfWBl95HOAu+tTz6k3Q47quWDbV7phKRNOMVm5EF1FkNFn01jCM473bH1LroIZnBvrO7AU37Cqc9pcBzSBKJImhmjAofC3ncGuJ97FDE3LnYb5socpjSKH2igXO79Rsk4TI+rFTUcvcRTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=rYwF43p5IRGO4tTJkpyY0gnMPcPuZcVMMxWfLB6AX/I=; b=Z+jbEk5WaXiuT8b8BdTCOD/XT/6B/L+Ae6Zzmp0fKuKPv31XOEAJ80GsQsPALdUa3RKFv6RSG8Lmf+IzogzES2Y8968C+MOTskfWjjTygoPMTU9Etra+NT0lNA7jubHmbALGxXLAcvI8SJRQ4+mnqqtlee78NjN6md307r6mF4+ztIpfZrYxqjMB4nUeIdYkXWF6sRmPexVhtAmsG5qVWCBI3eRZ70X/etAb3kLValHSoC93osNHeb6bqg3fxCvaFmcxPn+Er943vPReaon8/CdkJ/nkR+xainBQIgQ/zwjtxfefsTfcj+VudYM6vbDyYyeoo0lpZFsdLfJ4Qw51kw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DS0PR11MB7309.namprd11.prod.outlook.com (2603:10b6:8:13e::17) by SA1PR11MB7015.namprd11.prod.outlook.com (2603:10b6:806:2b8::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6500.25; Fri, 16 Jun 2023 09:42:11 +0000 Received: from DS0PR11MB7309.namprd11.prod.outlook.com ([fe80::b8f3:958:d2c5:2232]) by DS0PR11MB7309.namprd11.prod.outlook.com ([fe80::b8f3:958:d2c5:2232%3]) with mapi id 15.20.6477.037; Fri, 16 Jun 2023 09:42:11 +0000 Date: Fri, 16 Jun 2023 10:42:03 +0100 From: Bruce Richardson To: David Marchand CC: , , , , , , , Aaron Conole , Michael Santana Subject: Re: [PATCH v3] build: select optional libraries Message-ID: References: <20211117112847.7362-6-david.marchand@redhat.com> <20230616071450.3542479-1-david.marchand@redhat.com> Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20230616071450.3542479-1-david.marchand@redhat.com> X-ClientProxiedBy: LO2P265CA0172.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a::16) To DS0PR11MB7309.namprd11.prod.outlook.com (2603:10b6:8:13e::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR11MB7309:EE_|SA1PR11MB7015:EE_ X-MS-Office365-Filtering-Correlation-Id: 53776290-0b34-4a27-cf98-08db6e4df526 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: a5N/xTtoJmdFoFwnDWUNmpBZLfimdjhIsLLvCbqEF9B8lxDGyQVPp55IjDb6bp2Bc2L/WlLEIpeUmBtr2ztnE2wINFGTYVfMLxVFsSG/i/dfOeIqSeeqMXOwsEyYmdgHY1C4TAt2FMcld3ILyuZWNrBNnZTVgD3ZsMg17WNspO7im7ZjvyiqKwL1GKnwezRDPmB81AmDyuCIetcM+kyyttxyyFnRAB+2Tm0L/9VmaRbQU0WbmD58TqW0y353MIgLeoT5d598VCWdC73N/PsHDksCk2yzUyvtmt8/9EuAjTPPtsMWPM88FAc+9G1lBThh5N0qzMhwFT+kPxcDMhSg55vJMEUDw7QOuV2dxsHAt9aeJeut1T9lNHUXli7ZjhnhJLveOYlLWtPydi9st8Md7yNxuJHNcWetlvCEp4SqkJJuzJaw5PIXlUImm6uIXLk3lHViR9AAfP65qzlb8iuQce/p737cz5zPG1b9SlXP8PqS0mN/LNNfjo4GkOR8+TREf5+gmZCY4Fh3mtM+vqgJKcXHpk7HWw15chm2RR/WjzRbfENFdnGr0dnr4JokuUV/ X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DS0PR11MB7309.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(346002)(396003)(39860400002)(376002)(136003)(366004)(451199021)(5660300002)(478600001)(54906003)(8936002)(41300700001)(8676002)(316002)(6486002)(6506007)(66899021)(44832011)(186003)(6916009)(6666004)(4326008)(66476007)(66556008)(66946007)(26005)(6512007)(2906002)(83380400001)(38100700002)(82960400001)(86362001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?c+v89gosBSIGKOgZJ1f9pY9e0iqJEaUiyOLbsAml+FAXVplGBgK+YRS1C0BP?= =?us-ascii?Q?4ipQZpdPW+yWbAJ5w6th/T2eVyvSXER8Kt0Nr1R2TwohWA/oJgyoCwkS+RMp?= =?us-ascii?Q?smsXc10JJyKTV8DozVlgDUPucb0QzupmZ+WqpBE9tCIZtcBz6hRafVkagtrC?= =?us-ascii?Q?ahdqs+iSIYQy7EBCk7Dte5SIv6iXSGz1/1qEWs3YNtyHQc0Z7vzqHNJRmZoy?= =?us-ascii?Q?5rHU42eEVs7VJbqaE0XDTMvUjp2NdSdYkEfaEHfMWSsE7fQFkT5L8UuiCBQr?= =?us-ascii?Q?DtoxFy0u29nVOW+ZJ9daq2pscEvbtPUpEsSVoG1616y++3vRnzmemm/9BW9l?= =?us-ascii?Q?fdqTth3SVj7vykjVfOnisVq31eufV23X+V+OgXC0SZZocosT4FF166Pxh6XI?= =?us-ascii?Q?f2X7KOq1WAgJ5ZncBPj+Pd8ZfJv7LNIE2uq7aivtcMpu72Ks+v2nVSFvnRio?= =?us-ascii?Q?7vVnEFG05nwqmH/n8eJ3D1Dz6LOdmwLpUz0SVdz3iVsFFYr1HuU8Sc/qCDGy?= =?us-ascii?Q?PNnNDkSrifh9ACCT/bDcXsow8HgqslDFMnVd2xXDs+lG/MnLxQ2s4JUJ5Ysj?= =?us-ascii?Q?F5Jthgk401476pB9KmbcK/9x2LkAE/jfWhBKzeUO9e9qy4glFoxk58xX+BCg?= =?us-ascii?Q?E0+qlh20ZlXPUZaVirXHkEAUpld7XB5v6hohVkFd/scewL+Ij+rK0X846nZ1?= =?us-ascii?Q?XG3juYRVumMZZrpgglSkXTnnsjkVV1eI5eemOx87plsXOjEQY65k3Nf+HUb/?= =?us-ascii?Q?rkJFp/53QcCMvyVJvNQd2RewUUTJzZ5Y/VOiaWtPY395JfJez2IK+WuilBsj?= =?us-ascii?Q?qrpInBelRzNqQGRmzECrvmo6kOOfIjtOtXMulPLiY3AzYlbb/V2F7JYTpd2g?= =?us-ascii?Q?TB1SAV/Vd2pWDvuMrszo58YyT4bVWnSYoQmKXNuK9G2nHGcDW3S2quOTP8Qb?= =?us-ascii?Q?ysg6dqFL2YfJiS1gJgR7XQTS+gOcg3e9hvbYxvpfcPoZrc2QmSquO+eznFfV?= =?us-ascii?Q?cgXohbpGu/t/upvHdSyosTVCuRODHmAuuMMHq2UzMwLo6B+VxwbG36gi8rS/?= =?us-ascii?Q?cV15m5bTDixXEuMLaX0V2VrF3DDJTdh+Kk6LBN4CfvSa5DwSYkG/wTTyBhzL?= =?us-ascii?Q?OYtLCY9kBpIzQYyxji0xbB4oVYGsaUs9mMMPIiT++drK4QgWEc6YpH6pv4UB?= =?us-ascii?Q?fw1cT4KM2Eoc6XWOV2nlg/Oftary9ZZn2lvKsLzjtVN6ygEIafdqwLcopCFX?= =?us-ascii?Q?WX/hxNU/a7hm+T7c54iPaxvOigufaWp4vWpeac5MivJ4IAMLQn/kRHaFxm0s?= =?us-ascii?Q?iSUjV7EvgLTE/0rv9Xu+W3Yl/lyz2ZSBJUY8wCUYOVpQ99Xw7nSbchqIXKk0?= =?us-ascii?Q?Mgs2j4WI/xkqkHAo0qjYkE/Ec+wgy9K77R0Re7sWFTTifFRRKSohxHGzayO5?= =?us-ascii?Q?tkrfd/sjF0yCFJh+eOavgtwyr00oIWInCPMz6tM3nsxcN94hdMDKDWq/MUDO?= =?us-ascii?Q?EVcadN4BeJG/Uh3TZKJBXeoA1eYshEKMbtR4IJDpIcOPF9Et8RADlJeB5wZ5?= =?us-ascii?Q?TfAX4YuIAjkl2RtRQrXKaDt15FI2FMLI64c/muMnhFRKuNP+M7RjKRYIann4?= =?us-ascii?Q?jw=3D=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: 53776290-0b34-4a27-cf98-08db6e4df526 X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7309.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2023 09:42:11.1593 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: yCracad+gYa2aqn3FXZc/azMPRggHT745LgKwDzEQkrqHelWm/5eJQWsdNqW9GtuncQ/8NcNTUw/Iko0NtNn3FZj0vodTy6Y2OAd5qM+3bc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB7015 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On Fri, Jun 16, 2023 at 09:14:50AM +0200, David Marchand wrote: > There is currently no way to know which libraries are optional. > Introduce a enable_libs option (close to what we have for drivers) so > that packagers or projects consuming DPDK can more easily select the > optional libraries that matter to them and disable other optional > libraries. > > Deprecated libraries are handled via some logic in lib/meson.build > rather than a default value in meson_options.txt. > Enabling deprecated libraries is achieved by requesting all > libraries to be built in the CI. > > kni dependency to IOVA configuration is moved to its own meson.build. > > Note: the enabled_libs variable is renamed for sake of consistency wrt to > drivers and applications similar variables. > > Signed-off-by: David Marchand > --- Thanks David. Some comments inline below just on the usability aspects of this. /Bruce > The topic was raised again while Stephen was reviewing stale patches in > patchwork. The idea of this patch is the same as before. > I simply rebased the change (and dealt with the deprecated libraries that > added some little complication). > > Changes since v2: > - moved the IOVA check for kni build in lib/kni/meson.build, > - reworked deprecated libraries handling by only considering them when > no enable_libs option is set. With this, no need for a default value > in meson_options.txt, yet configurations in the CI must be adjusted, > - moved mandatory libraries check after enable/disable_libs evaluation, > > --- > .ci/linux-build.sh | 2 +- > app/test/meson.build | 2 +- > buildtools/chkincs/meson.build | 2 +- > devtools/test-meson-builds.sh | 4 ++-- > lib/kni/meson.build | 5 ++++ > lib/meson.build | 44 ++++++++++++++++++++-------------- > meson.build | 3 ++- > meson_options.txt | 4 +++- > 8 files changed, 41 insertions(+), 25 deletions(-) > > diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh > index 9631e342b5..a4e474a900 100755 > --- a/.ci/linux-build.sh > +++ b/.ci/linux-build.sh > @@ -97,7 +97,7 @@ if [ "$MINI" = "true" ]; then > OPTS="$OPTS -Denable_drivers=net/null" > OPTS="$OPTS -Ddisable_libs=*" > else > - OPTS="$OPTS -Ddisable_libs=" > + OPTS="$OPTS -Denable_libs=*" > fi > > if [ "$ASAN" = "true" ]; then > diff --git a/app/test/meson.build b/app/test/meson.build > index d0fabcbb8b..f3217ae577 100644 > --- a/app/test/meson.build > +++ b/app/test/meson.build > @@ -152,7 +152,7 @@ test_sources = files( > 'virtual_pmd.c', > ) > > -test_deps = enabled_libs > +test_deps = dpdk_libs_enabled > # as well as libs, the pci and vdev bus drivers are needed for a lot of tests > test_deps += ['bus_pci', 'bus_vdev'] > > diff --git a/buildtools/chkincs/meson.build b/buildtools/chkincs/meson.build > index 378c2f19ef..f2dadcae18 100644 > --- a/buildtools/chkincs/meson.build > +++ b/buildtools/chkincs/meson.build > @@ -22,7 +22,7 @@ sources += gen_c_files.process(dpdk_chkinc_headers) > # so we always include them in deps list > deps = [get_variable('shared_rte_bus_vdev'), get_variable('shared_rte_bus_pci')] > # add the rest of the libs to the dependencies > -foreach l:enabled_libs > +foreach l:dpdk_libs_enabled > deps += get_variable('shared_rte_' + l) > endforeach > > diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh > index 9131088c9d..4f93702e1f 100755 > --- a/devtools/test-meson-builds.sh > +++ b/devtools/test-meson-builds.sh > @@ -122,8 +122,8 @@ config () # > options= > # deprecated libs may be disabled by default, so for complete builds ensure > # no libs are disabled > - if ! echo $* | grep -q -- 'disable_libs' ; then > - options="$options -Ddisable_libs=" > + if ! echo $* | grep -q -- 'enable_libs' ; then > + options="$options -Denable_libs=*" > fi > if echo $* | grep -qw -- '--default-library=shared' ; then > options="$options -Dexamples=all" > diff --git a/lib/kni/meson.build b/lib/kni/meson.build > index 8a71d8ba6f..5ce410f7f2 100644 > --- a/lib/kni/meson.build > +++ b/lib/kni/meson.build > @@ -7,6 +7,11 @@ if is_windows > subdir_done() > endif > > +if dpdk_conf.get('RTE_IOVA_IN_MBUF') == 0 > + build = false > + reason = 'requires IOVA in mbuf (set enable_iova_as_pa option)' > +endif > + > if not is_linux or not dpdk_conf.get('RTE_ARCH_64') > build = false > reason = 'only supported on 64-bit Linux' > diff --git a/lib/meson.build b/lib/meson.build > index 9677239236..6018f5230d 100644 > --- a/lib/meson.build > +++ b/lib/meson.build > @@ -92,20 +92,18 @@ dpdk_libs_deprecated += [ > 'kni', > ] > > -disabled_libs = [] > -opt_disabled_libs = run_command(list_dir_globs, get_option('disable_libs'), > +disable_libs = run_command(list_dir_globs, get_option('disable_libs'), > check: true).stdout().split() > -if dpdk_conf.get('RTE_IOVA_IN_MBUF') == 0 > - opt_disabled_libs += ['kni'] > +enable_libs = run_command(list_dir_globs, get_option('enable_libs'), > + check: true).stdout().split() > +if enable_libs.length() == 0 > + enable_libs = [] > + foreach l:run_command(list_dir_globs, '*', check: true).stdout().split() > + if l not in dpdk_libs_deprecated > + enable_libs += [l] > + endif > + endforeach The enable libraries option is really only used for enabling optional libraries - mandatory libs should not need to be specified. I'm wondering about if we should append the mandatory libs to the glob search automatically. This specifically concerns the error messsage about mandatory libs being disabled below.... > endif > -foreach l:opt_disabled_libs > - if not optional_libs.contains(l) > - warning('Cannot disable mandatory library "@0@"'.format(l)) > - continue > - endif > - disabled_libs += l > -endforeach > - > > default_cflags = machine_args > default_cflags += ['-DALLOW_EXPERIMENTAL_API'] > @@ -115,8 +113,6 @@ if cc.has_argument('-Wno-format-truncation') > default_cflags += '-Wno-format-truncation' > endif > > -enabled_libs = [] # used to print summary at the end > - > foreach l:libraries > build = true > reason = '' # set if build == false to explain why > @@ -141,13 +137,25 @@ foreach l:libraries > deps += ['eal'] > endif > > - if disabled_libs.contains(l) > + if not enable_libs.contains(l) > + build = false > + reason = 'not in enabled libraries build config' > + elif disable_libs.contains(l) > build = false > reason = 'explicitly disabled via build config' > - if dpdk_libs_deprecated.contains(l) > + endif > + > + if not build > + if not optional_libs.contains(l) > + warning('Cannot disable mandatory library "@0@"'.format(l)) > + build = true > + reason = '' > + elif dpdk_libs_deprecated.contains(l) This error message seems weird/wrong in the case that the user uses "enable_libs" option rather than "disable_libs". If the user specified he wanted to enable the vhost lib, for example, it would be strange getting an error about having disabled eal, mbuf etc. etc. > reason += ' (deprecated lib)' > endif > - else > + endif > + > + if build > if dpdk_libs_deprecated.contains(l) > warning('Enabling deprecated library, "@0@"'.format(l)) > endif > @@ -183,7 +191,7 @@ foreach l:libraries > continue > endif > > - enabled_libs += name > + dpdk_libs_enabled += name > dpdk_conf.set('RTE_LIB_' + name.to_upper(), 1) > install_headers(headers) > install_headers(indirect_headers) > diff --git a/meson.build b/meson.build > index 992ca91e88..39cb73846d 100644 > --- a/meson.build > +++ b/meson.build > @@ -44,6 +44,7 @@ dpdk_extra_ldflags = [] > dpdk_libs_deprecated = [] > dpdk_apps_disabled = [] > dpdk_libs_disabled = [] > +dpdk_libs_enabled = [] > dpdk_drvs_disabled = [] > testpmd_drivers_sources = [] > testpmd_drivers_deps = [] > @@ -134,7 +135,7 @@ message(output_message + '\n') > output_message = '\n=================\nLibraries Enabled\n=================\n' > output_message += '\nlibs:\n\t' > output_count = 0 > -foreach lib:enabled_libs > +foreach lib:dpdk_libs_enabled > output_message += lib + ', ' > output_count += 1 > if output_count == 8 > diff --git a/meson_options.txt b/meson_options.txt > index 82c8297065..af54f8b8d4 100644 > --- a/meson_options.txt > +++ b/meson_options.txt > @@ -10,7 +10,7 @@ option('disable_apps', type: 'string', value: '', description: > 'Comma-separated list of apps to explicitly disable.') > option('disable_drivers', type: 'string', value: '', description: > 'Comma-separated list of drivers to explicitly disable.') > -option('disable_libs', type: 'string', value: 'flow_classify,kni', description: > +option('disable_libs', type: 'string', value: '', description: > 'Comma-separated list of libraries to explicitly disable. [NOTE: not all libs can be disabled]') > option('drivers_install_subdir', type: 'string', value: 'dpdk/pmds-', description: > 'Subdirectory of libdir where to install PMDs. Defaults to using a versioned subdirectory.') > @@ -20,6 +20,8 @@ option('enable_apps', type: 'string', value: '', description: > 'Comma-separated list of apps to build. If unspecified, build all apps.') > option('enable_drivers', type: 'string', value: '', description: > 'Comma-separated list of drivers to build. If unspecified, build all drivers.') > +option('enable_libs', type: 'string', value: '', description: > + 'Comma-separated list of libraries to explicitly enable.') s/libraries/optional libraries/ ?? Maybe like with the disable option, add a note that mandatory libs are always enabled? > option('enable_driver_sdk', type: 'boolean', value: false, description: > 'Install headers to build drivers.') > option('enable_kmods', type: 'boolean', value: false, description: > -- > 2.40.1 >