From: Thomas Monjalon <thomas@monjalon.net>
To: dev@dpdk.org
Cc: Bruce Richardson <bruce.richardson@intel.com>
Subject: [dpdk-dev] [PATCH v5] devtools: add test script for meson builds
Date: Tue, 29 May 2018 16:42:43 +0200 [thread overview]
Message-ID: <20180529144243.9619-1-thomas@monjalon.net> (raw)
In-Reply-To: <20180424123255.204330-1-bruce.richardson@intel.com>
From: Bruce Richardson <bruce.richardson@intel.com>
To simplify testing with the meson and ninja builds, we can add a script
to set up and do multiple builds. Currently this script sets up:
* clang and gcc builds
* builds using static and shared linkage for binaries (libs are always
built as both)
* a build using the lowest instruction-set level for x86 (-march=nehalem)
* cross-builds for each cross-file listed in config/arm
Each build is configured in a directory ending in *-build, and then for
the build stage, we just call ninja in each directory in turn. [i.e. we
assume every directory starting with "build-" is a meson build, which is
probably an ok assumption].
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
v2: it is a rework with 3 major changes
- automatically stop on error thanks to -e
- directory name starts with "build-"
- optionally load a config file to get some environment variables
v3:
- remove forcing "cd": use current directory
- remove CROSS: use hard-written aarch64-linux-gnu-gcc
- remove config load in script start
v4:
- remove config file loading (will be improved and sent later)
- the v4 is closer to what Bruce sent as v1
v5:
- specify srcdir to build from anywhere
- use ccache for ARM
---
MAINTAINERS | 1 +
devtools/test-meson-builds.sh | 46 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 47 insertions(+)
create mode 100755 devtools/test-meson-builds.sh
diff --git a/MAINTAINERS b/MAINTAINERS
index e56c72687..4d015fe53 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -86,6 +86,7 @@ F: devtools/get-maintainer.sh
F: devtools/git-log-fixes.sh
F: devtools/load-devel-config
F: devtools/test-build.sh
+F: devtools/test-meson-builds.sh
F: license/
diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
new file mode 100755
index 000000000..9868c325b
--- /dev/null
+++ b/devtools/test-meson-builds.sh
@@ -0,0 +1,46 @@
+#! /bin/sh -e
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Intel Corporation
+
+# Run meson to auto-configure the various builds.
+# * all builds get put in a directory whose name starts with "build-"
+# * if a build-directory already exists we assume it was properly configured
+# Run ninja after configuration is done.
+
+srcdir=$(dirname $(readlink -m $0))/..
+MESON=${MESON:-meson}
+
+build () # <directory> <meson options>
+{
+ builddir=$1
+ shift
+ if [ ! -d "$builddir" ] ; then
+ options="--werror -Dexamples=all $*"
+ echo "$MESON $options $srcdir $builddir"
+ $MESON $options $srcdir $builddir
+ unset CC
+ fi
+ echo "ninja -C $builddir"
+ ninja -C $builddir
+}
+
+# shared and static linked builds with gcc and clang
+for c in gcc clang ; do
+ for s in static shared ; do
+ export CC="ccache $c"
+ build build-$c-$s --default-library=$s
+ done
+done
+
+# test compilation with minimal x86 instruction set
+build build-x86-default -Dmachine=nehalem
+
+# enable cross compilation if gcc cross-compiler is found
+for f in config/arm/arm*gcc ; do
+ c=aarch64-linux-gnu-gcc
+ if ! command -v $c >/dev/null 2>&1 ; then
+ continue
+ fi
+ export CC="ccache $c"
+ build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) --cross-file $f
+done
--
2.16.2
next prev parent reply other threads:[~2018-05-29 14:42 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-24 12:32 [dpdk-dev] [PATCH] " Bruce Richardson
2018-04-24 14:36 ` Bruce Richardson
2018-04-24 14:38 ` Bruce Richardson
2018-05-25 14:51 ` [dpdk-dev] [PATCH v2] " Thomas Monjalon
2018-05-25 15:18 ` Bruce Richardson
2018-05-26 9:32 ` Thomas Monjalon
2018-05-28 9:33 ` Bruce Richardson
2018-05-28 10:26 ` Thomas Monjalon
2018-05-28 13:20 ` Bruce Richardson
2018-05-29 10:38 ` Thomas Monjalon
2018-05-29 10:59 ` Bruce Richardson
2018-05-26 9:54 ` [dpdk-dev] [PATCH v3] " Thomas Monjalon
2018-05-26 11:21 ` [dpdk-dev] [PATCH v4] " Thomas Monjalon
2018-05-28 9:39 ` Bruce Richardson
2018-05-29 14:42 ` Thomas Monjalon [this message]
2018-05-29 14:58 ` [dpdk-dev] [PATCH v5] " Richardson, Bruce
2018-05-29 15:37 ` 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=20180529144243.9619-1-thomas@monjalon.net \
--to=thomas@monjalon.net \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
/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).