X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=devtools%2Ftest-meson-builds.sh;h=e3a5a5d51d49b2094740c7b705b27ca4d5a8c5ff;hb=12a652a02b080f26a1e9fd0169a58d6bcbe7b03c;hp=618dd877e3a9d3fbfd736bb94a11afe4c2725b85;hpb=e0ae780e65698353cd78947288e9a6b8b77bf6ae;p=dpdk.git diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh index 618dd877e3..e3a5a5d51d 100755 --- a/devtools/test-meson-builds.sh +++ b/devtools/test-meson-builds.sh @@ -28,6 +28,25 @@ else echo "ERROR: ninja is not found" >&2 exit 1 fi +if command -v ccache >/dev/null 2>&1 ; then + CCACHE=ccache +else + CCACHE= +fi + +default_path=$PATH +default_pkgpath=$PKG_CONFIG_PATH + +load_env () # +{ + targetcc=$1 + export PATH=$default_path + export PKG_CONFIG_PATH=$default_pkgpath + unset DPDK_MESON_OPTIONS + command -v $targetcc >/dev/null 2>&1 || return 1 + DPDK_TARGET=$($targetcc -v 2>&1 | sed -n 's,^Target: ,,p') + . $srcdir/devtools/load-devel-config +} build () # { @@ -36,10 +55,14 @@ build () # targetcc=$1 shift # skip build if compiler not available - command -v $CC >/dev/null 2>&1 || return 0 - command -v $targetcc >/dev/null 2>&1 || return 0 + command -v ${CC##* } >/dev/null 2>&1 || return 0 + load_env $targetcc || return 0 if [ ! -f "$builddir/build.ninja" ] ; then - options="--werror -Dexamples=all $*" + options="--werror -Dexamples=all" + for option in $DPDK_MESON_OPTIONS ; do + options="$options -D$option" + done + options="$options $*" echo "$MESON $options $srcdir $builddir" $MESON $options $srcdir $builddir unset CC @@ -73,7 +96,7 @@ fi for c in gcc clang ; do command -v $c >/dev/null 2>&1 || continue for s in static shared ; do - export CC="ccache $c" + export CC="$CCACHE $c" build build-$c-$s $c --default-library=$s done done @@ -95,7 +118,7 @@ build build-arm64-host-clang $c $use_shared \ --cross-file $srcdir/config/arm/arm64_armv8_linux_gcc # all gcc/arm configurations for f in $srcdir/config/arm/arm*gcc ; do - export CC="ccache gcc" + export CC="$CCACHE gcc" build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) $c \ $use_shared --cross-file $f done @@ -106,10 +129,15 @@ build_path=build-x86-default export DESTDIR=$(pwd)/$build_path/install-root $ninja_cmd -C $build_path install +load_env cc pc_file=$(find $DESTDIR -name libdpdk.pc) export PKG_CONFIG_PATH=$(dirname $pc_file):$PKG_CONFIG_PATH -for example in cmdline helloworld l2fwd l3fwd skeleton timer; do - echo "## Building $example" - $MAKE -C $DESTDIR/usr/local/share/dpdk/examples/$example clean all -done +# if pkg-config defines the necessary flags, test building some examples +if pkg-config --define-prefix libdpdk >/dev/null 2>&1; then + export PKGCONF="pkg-config --define-prefix" + for example in cmdline helloworld l2fwd l3fwd skeleton timer; do + echo "## Building $example" + $MAKE -C $DESTDIR/usr/local/share/dpdk/examples/$example clean all + done +fi