X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=devtools%2Ftest-meson-builds.sh;h=a87de635a2cb72e20b392e52f1540ea705a44043;hb=b8d81e9cbf5e411133800da8fddc80a636e3555d;hp=18b874fac5b9a8ec5a12ae015edf8cde43b2c507;hpb=ef5391b7658b0ce9c0626bf3ecdc3db600e44c0e;p=dpdk.git diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh index 18b874fac5..a87de635a2 100755 --- a/devtools/test-meson-builds.sh +++ b/devtools/test-meson-builds.sh @@ -52,9 +52,15 @@ load_env () # export CFLAGS=$default_cflags export LDFLAGS=$default_ldflags unset DPDK_MESON_OPTIONS - command -v $targetcc >/dev/null 2>&1 || return 1 - DPDK_TARGET=$($targetcc -v 2>&1 | sed -n 's,^Target: ,,p') + if command -v $targetcc >/dev/null 2>&1 ; then + DPDK_TARGET=$($targetcc -v 2>&1 | sed -n 's,^Target: ,,p') + else # toolchain not yet in PATH: its name should be enough + DPDK_TARGET=$targetcc + fi + # config input: $DPDK_TARGET . $srcdir/devtools/load-devel-config + # config output: $DPDK_MESON_OPTIONS, $PATH, $PKG_CONFIG_PATH, etc + command -v $targetcc >/dev/null 2>&1 || return 1 } config () # @@ -117,16 +123,24 @@ install_target () # fi } -build () # +build () # { targetdir=$1 shift - targetcc=$1 + crossfile= + [ -r $1 ] && crossfile=$1 || targetcc=$1 shift # skip build if compiler not available command -v ${CC##* } >/dev/null 2>&1 || return 0 + if [ -n "$crossfile" ] ; then + cross="--cross-file $crossfile" + targetcc=$(sed -n 's,^c[[:space:]]*=[[:space:]]*,,p' \ + $crossfile | tr -d "'" | tr -d '"') + else + cross= + fi load_env $targetcc || return 0 - config $srcdir $builds_dir/$targetdir --werror $* + config $srcdir $builds_dir/$targetdir $cross --werror $* compile $builds_dir/$targetdir if [ -n "$DPDK_ABI_REF_VERSION" ]; then abirefdir=${DPDK_ABI_REF_DIR:-reference}/$DPDK_ABI_REF_VERSION @@ -140,10 +154,16 @@ build () # fi rm -rf $abirefdir/build - config $abirefdir/src $abirefdir/build $* + config $abirefdir/src $abirefdir/build $cross \ + -Dexamples= $* compile $abirefdir/build install_target $abirefdir/build $abirefdir/$targetdir $srcdir/devtools/gen-abi.sh $abirefdir/$targetdir + + # save disk space by removing static libs and apps + find $abirefdir/$targetdir/usr/local -name '*.a' -delete + rm -rf $abirefdir/$targetdir/usr/local/bin + rm -rf $abirefdir/$targetdir/usr/local/share fi install_target $builds_dir/$targetdir \ @@ -186,20 +206,26 @@ if [ "$ok" = "false" ] ; then fi build build-x86-default cc -Dlibdir=lib -Dmachine=$default_machine $use_shared -c=aarch64-linux-gnu-gcc +# x86 MinGW +build build-x86-mingw $srcdir/config/x86/cross-mingw -Dexamples=helloworld + # generic armv8a with clang as host compiler +f=$srcdir/config/arm/arm64_armv8_linux_gcc export CC="clang" -build build-arm64-host-clang $c $use_shared \ - --cross-file $srcdir/config/arm/arm64_armv8_linux_gcc +build build-arm64-host-clang $f $use_shared unset CC -# all gcc/arm configurations +# some gcc/arm configurations for f in $srcdir/config/arm/arm64_[bdo]*gcc ; do export CC="$CCACHE gcc" - build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) $c \ - $use_shared --cross-file $f + build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) $f $use_shared unset CC done +# ppc configurations +for f in $srcdir/config/ppc/ppc* ; do + build build-$(basename $f | cut -d'-' -f-2) $f $use_shared +done + # Test installation of the x86-default target, to be used for checking # the sample apps build using the pkg-config file for cflags and libs build_path=$(readlink -f $builds_dir/build-x86-default) @@ -218,6 +244,6 @@ 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 + $MAKE -C $DESTDIR/usr/local/share/dpdk/examples/$example clean shared static done fi