[ovs-dev] [PATCH v1 3/4] travis: split cache and set target for

Lance Yang Lance.Yang at arm.com
Wed Nov 20 08:15:04 UTC 2019


To compile OvS with DPDK in some Travis jobs, it is necessary to set the
build target and split the dpdk cache directory according to different CPU
architectures.

Reviewed-by: Yanqin Wei <Yanqin.Wei at arm.com>
Reviewed-by: Malvika Gupta <Malvika.Gupta at arm.com>
Signed-off-by: Lance Yang <Lance.Yang at arm.com>
---
 .travis/linux-build.sh | 32 +++++++++++++++++++++-----------
 1 file changed, 21 insertions(+), 11 deletions(-)

diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
index 4e74973..557f397 100755
--- a/.travis/linux-build.sh
+++ b/.travis/linux-build.sh
@@ -6,7 +6,7 @@ set -x
 CFLAGS_FOR_OVS="-g -O2"
 SPARSE_FLAGS=""
 EXTRA_OPTS="--enable-Werror"
-TARGET="x86_64-native-linuxapp-gcc"
+TARGET=""
 
 function install_kernel()
 {
@@ -85,32 +85,42 @@ function install_kernel()
 function install_dpdk()
 {
     local DPDK_VER=$1
-    local VERSION_FILE="dpdk-dir/travis-dpdk-cache-version"
-
+    if [ -z "$TARGET" -a -z "$TRAVIS_ARCH" ] ||
+       [ "$TRAVIS_ARCH" == "amd64" ]; then
+        TARGET="x86_64-native-linuxapp-gcc"
+    else
+        echo "Target is unknown"
+        exit 1
+    fi
+    local DPDK_CACHE="dpdk-dir/${TARGET}-cache"
+    local VERSION_FILE="${DPDK_CACHE}/travis-dpdk-cache-version"
     if [ "${DPDK_VER##refs/*/}" != "${DPDK_VER}" ]; then
         # Avoid using cache for git tree build.
-        rm -rf dpdk-dir
+        rm -rf ${DPDK_CACHE}
 
         DPDK_GIT=${DPDK_GIT:-https://dpdk.org/git/dpdk}
-        git clone --single-branch $DPDK_GIT dpdk-dir -b "${DPDK_VER##refs/*/}"
-        pushd dpdk-dir
+        git clone --single-branch \
+                  $DPDK_GIT ${DPDK_CACHE} -b "${DPDK_VER##refs/*/}"
+        pushd ${DPDK_CACHE}
         git log -1 --oneline
     else
         if [ -f "${VERSION_FILE}" ]; then
             VER=$(cat ${VERSION_FILE})
             if [ "${VER}" = "${DPDK_VER}" ]; then
-                EXTRA_OPTS="${EXTRA_OPTS} --with-dpdk=$(pwd)/dpdk-dir/build"
-                echo "Found cached DPDK ${VER} build in $(pwd)/dpdk-dir"
+                EXTRA_OPTS="${EXTRA_OPTS} \
+                    --with-dpdk=$(pwd)/${DPDK_CACHE}/build"
+                echo "Found cached DPDK ${VER} build in \
+                      $(pwd)/${DPDK_CACHE}"
                 return
             fi
         fi
         # No cache or version mismatch.
-        rm -rf dpdk-dir
+        rm -rf ${DPDK_CACHE}
         wget https://fast.dpdk.org/rel/dpdk-$1.tar.xz
         tar xvf dpdk-$1.tar.xz > /dev/null
         DIR_NAME=$(tar -tf dpdk-$1.tar.xz | head -1 | cut -f1 -d"/")
-        mv ${DIR_NAME} dpdk-dir
-        pushd dpdk-dir
+        mv ${DIR_NAME} ${DPDK_CACHE}
+        pushd ${DPDK_CACHE}
     fi
 
     make config CC=gcc T=$TARGET
-- 
2.7.4



More information about the dev mailing list