summaryrefslogtreecommitdiff
path: root/.travis/linux-build.sh
diff options
context:
space:
mode:
Diffstat (limited to '.travis/linux-build.sh')
-rwxr-xr-x.travis/linux-build.sh28
1 files changed, 23 insertions, 5 deletions
diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
index 17428fa6b..98aa12b22 100755
--- a/.travis/linux-build.sh
+++ b/.travis/linux-build.sh
@@ -65,16 +65,33 @@ function install_kernel()
function install_dpdk()
{
- if [ "${1##refs/*/}" != "${1}" ]; then
+ local DPDK_VER=$1
+ local VERSION_FILE="dpdk-dir/travis-dpdk-cache-version"
+
+ if [ "${DPDK_VER##refs/*/}" != "${DPDK_VER}" ]; then
+ # Avoid using cache for git tree build.
+ rm -rf dpdk-dir
+
DPDK_GIT=${DPDK_GIT:-https://dpdk.org/git/dpdk}
- git clone --single-branch $DPDK_GIT dpdk-git -b "${1##refs/*/}"
- cd dpdk-git
+ git clone --single-branch $DPDK_GIT dpdk-dir -b "${DPDK_VER##refs/*/}"
+ pushd dpdk-dir
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"
+ return
+ fi
+ fi
+ # No cache or version mismatch.
+ rm -rf dpdk-dir
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"/")
- cd $DIR_NAME
+ mv ${DIR_NAME} dpdk-dir
+ pushd dpdk-dir
fi
make config CC=gcc T=$TARGET
@@ -91,7 +108,8 @@ function install_dpdk()
make -j4 CC=gcc EXTRA_CFLAGS='-fPIC'
EXTRA_OPTS="$EXTRA_OPTS --with-dpdk=$(pwd)/build"
echo "Installed DPDK source in $(pwd)"
- cd ..
+ popd
+ echo "${DPDK_VER}" > ${VERSION_FILE}
}
function configure_ovs()