From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 22B86A04DD; Thu, 22 Oct 2020 17:00:06 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5B465AA08; Thu, 22 Oct 2020 17:00:03 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 9B12FAA05 for ; Thu, 22 Oct 2020 17:00:00 +0200 (CEST) IronPort-SDR: CWvq7YT2ppv8sRIb6GJFjXIyQVaisNviVeeTgu+hW7s5+4RLX3Rw1X3pFsu5zFPFyflR9W2XTL 4O/kZdZv8WiQ== X-IronPort-AV: E=McAfee;i="6000,8403,9781"; a="185218988" X-IronPort-AV: E=Sophos;i="5.77,404,1596524400"; d="scan'208";a="185218988" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Oct 2020 07:59:56 -0700 IronPort-SDR: nrC5wM7IuSiPUkQB78QWzf4NEdt0cSIUNJ7MyrxdtySKqA5/LpivKQvFprdB9YLvbmf+/S/B04 x49+J1+GOaFQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,404,1596524400"; d="scan'208";a="533997464" Received: from silpixa00399126.ir.intel.com ([10.237.222.4]) by orsmga005.jf.intel.com with ESMTP; 22 Oct 2020 07:59:55 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: Bruce Richardson Date: Thu, 22 Oct 2020 15:59:42 +0100 Message-Id: <20201022145944.470054-2-bruce.richardson@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201022145944.470054-1-bruce.richardson@intel.com> References: <20201022145944.470054-1-bruce.richardson@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [RFC PATCH 1/3] build: add a dpdk-specific meson log file 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" While meson itself writes a log file of all the tests it runs and the output of those, to help debug any build problems and provide more developer information it can be helpful to have a logfile created and controlled by the dpdk meson.build files themselves. Since meson doesn't directly support this we need to use run_command to implement it manually. Using a python script to do the writing of the log makes things cross-platform, and as initial log entries we can add in the messages about the defined internal dependencies, since these are of developer interest only. Signed-off-by: Bruce Richardson --- buildtools/meson.build | 1 + buildtools/write-log-entry.py | 23 +++++++++++++++++++++++ drivers/meson.build | 2 +- lib/meson.build | 2 +- meson.build | 8 ++++++-- 5 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 buildtools/write-log-entry.py diff --git a/buildtools/meson.build b/buildtools/meson.build index 04808dabc..35a8f4290 100644 --- a/buildtools/meson.build +++ b/buildtools/meson.build @@ -17,3 +17,4 @@ else endif map_to_win_cmd = py3 + files('map_to_win.py') sphinx_wrapper = py3 + files('call-sphinx-build.py') +log = py3 + [files('write-log-entry.py'), 'dpdk-meson.log'] diff --git a/buildtools/write-log-entry.py b/buildtools/write-log-entry.py new file mode 100644 index 000000000..6ec748a4f --- /dev/null +++ b/buildtools/write-log-entry.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2020 Intel Corporation + +from sys import argv, exit +from time import strftime +from os import environ +from os.path import join as path_join + +if len(argv) < 2: # error if no filename + exit(1) +if len(argv) < 3: # do nothing if no contents to log + exit(0) + +build_dir = environ.get('MESON_BUILD_ROOT', '.') +filename = path_join(build_dir, argv[1]) + +# append dates to headings +if argv[2].startswith('===='): + argv.append(strftime('@@ %Y-%m-%d %X')) + +with open(filename, 'a') as log: + print(" ".join(argv[2:]), file=log) diff --git a/drivers/meson.build b/drivers/meson.build index a5a6fed06..c008abd4a 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -228,7 +228,7 @@ foreach subpath:subdirs set_variable('shared_@0@'.format(lib_name), shared_dep) set_variable('static_@0@'.format(lib_name), static_dep) dependency_name = ''.join(lib_name.split('rte_')) - message('drivers/@0@: Defining dependency "@1@"'.format( + run_command(log, 'drivers/@0@: Defining dependency "@1@"'.format( drv_path, dependency_name)) endif # build endforeach diff --git a/lib/meson.build b/lib/meson.build index dd55b5cb5..2715c0f66 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -200,7 +200,7 @@ foreach l:libraries set_variable('shared_rte_' + name, shared_dep) set_variable('static_rte_' + name, static_dep) - message('lib/@0@: Defining dependency "@1@"'.format( + run_command(log, 'lib/@0@: Defining dependency "@1@"'.format( dir_name, name)) endif # if build endforeach diff --git a/meson.build b/meson.build index 61d9a4f5f..ab950a2ce 100644 --- a/meson.build +++ b/meson.build @@ -11,6 +11,11 @@ project('DPDK', 'C', meson_version: '>= 0.47.1' ) +# get tool paths and scripts +subdir('buildtools') + +run_command(log, '======= Starting meson =======') + # set up some global vars for compiler, platform, configuration, etc. cc = meson.get_compiler('c') dpdk_conf = configuration_data() @@ -40,8 +45,7 @@ global_inc = include_directories('.', 'config', 'lib/librte_eal/@0@/include'.format(arch_subdir), ) -# do configuration and get tool paths -subdir('buildtools') +# do main build config subdir('config') # build libs and drivers -- 2.25.1