devtools/test-meson-build: use shared libraries to save space

Message ID 20180914155518.15669-1-bruce.richardson@intel.com (mailing list archive)
State Superseded, archived
Headers
Series devtools/test-meson-build: use shared libraries to save space |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail apply issues

Commit Message

Bruce Richardson Sept. 14, 2018, 3:55 p.m. UTC
  For usability, the default build type in meson is static, so that
binaries can be run from the build directly easily. However, static
builds take more space, so for build-testing purposes default to using
shared builds where possible.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
With this patch applied on Debian 9 (Stretch) the space used by a DPDK
checkout and test builds drops from ~2.5G to <1G. [Including space used
by cross compiles]
---
 devtools/test-meson-builds.sh | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
  

Patch

diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
index 66723fe2b..1542dab01 100755
--- a/devtools/test-meson-builds.sh
+++ b/devtools/test-meson-builds.sh
@@ -9,6 +9,7 @@ 
 
 srcdir=$(dirname $(readlink -m $0))/..
 MESON=${MESON:-meson}
+use_shared="--default-library=shared"
 
 if command -v ninja >/dev/null 2>&1 ; then
 	ninja_cmd=ninja
@@ -42,23 +43,23 @@  for c in gcc clang ; do
 done
 
 # test compilation with minimal x86 instruction set
-build build-x86-default -Dmachine=nehalem
+build build-x86-default -Dmachine=nehalem $use_shared
 
 # test 32-bit x86 compilation
 # NOTE: meson >0.47 recommended for best results
-build build-i686 --cross-file config/x86/i686_sse4_linuxapp_gcc
+build build-i686 --cross-file config/x86/i686_sse4_linuxapp_gcc $use_shared
 
 # enable cross compilation if gcc cross-compiler is found
 c=aarch64-linux-gnu-gcc
 if command -v $c >/dev/null 2>&1 ; then
 	# compile the general v8a also for clang to increase coverage
 	export CC="ccache clang"
-	build build-arm64-host-clang --cross-file \
+	build build-arm64-host-clang $use_shared --cross-file \
 		config/arm/arm64_armv8_linuxapp_gcc
 
 	for f in config/arm/arm*gcc ; do
 		export CC="ccache gcc"
 		build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) \
-			--cross-file $f
+			--cross-file $f $use_shared
 	done
 fi