summaryrefslogtreecommitdiff
path: root/.ci/linux-build.sh
diff options
context:
space:
mode:
Diffstat (limited to '.ci/linux-build.sh')
-rwxr-xr-x.ci/linux-build.sh64
1 files changed, 5 insertions, 59 deletions
diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 10021fddb..99850a943 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -9,9 +9,7 @@ EXTRA_OPTS="--enable-Werror"
function install_dpdk()
{
- local DPDK_VER=$1
local VERSION_FILE="dpdk-dir/cached-version"
- local DPDK_OPTS=""
local DPDK_LIB=$(pwd)/dpdk-dir/build/lib/x86_64-linux-gnu
if [ "$DPDK_SHARED" ]; then
@@ -24,63 +22,14 @@ function install_dpdk()
# Export the following path for pkg-config to find the .pc file.
export PKG_CONFIG_PATH=$DPDK_LIB/pkgconfig/:$PKG_CONFIG_PATH
- 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-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
- # Update the library paths.
- sudo ldconfig
- 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"/")
- mv ${DIR_NAME} dpdk-dir
- pushd dpdk-dir
+ if [ ! -f "${VERSION_FILE}" ]; then
+ echo "Could not find DPDK in $(pwd)/dpdk-dir"
+ return 1
fi
- # Switching to 'default' machine to make dpdk-dir cache usable on
- # different CPUs. We can't be sure that all CI machines are exactly same.
- DPDK_OPTS="$DPDK_OPTS -Dmachine=default"
-
- # Disable building DPDK unit tests. Not needed for OVS build or tests.
- DPDK_OPTS="$DPDK_OPTS -Dtests=false"
-
- # Disable DPDK developer mode, this results in less build checks and less
- # meson verbose outputs.
- DPDK_OPTS="$DPDK_OPTS -Ddeveloper_mode=disabled"
-
- # OVS compilation and "normal" unit tests (run in the CI) do not depend on
- # any DPDK driver being present.
- # We can disable all drivers to save compilation time.
- DPDK_OPTS="$DPDK_OPTS -Ddisable_drivers=*/*"
-
- # Install DPDK using prefix.
- DPDK_OPTS="$DPDK_OPTS --prefix=$(pwd)/build"
-
- CC=gcc meson $DPDK_OPTS build
- ninja -C build
- ninja -C build install
-
# Update the library paths.
sudo ldconfig
-
-
- echo "Installed DPDK source in $(pwd)"
- popd
- echo "${DPDK_VER}" > ${VERSION_FILE}
+ echo "Found cached DPDK $(cat ${VERSION_FILE}) build in $(pwd)/dpdk-dir"
}
function configure_ovs()
@@ -130,10 +79,7 @@ assert ovs.json.from_string('{\"a\": 42}') == {'a': 42}"
fi
if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
- if [ -z "$DPDK_VER" ]; then
- DPDK_VER="22.11.1"
- fi
- install_dpdk $DPDK_VER
+ install_dpdk
fi
if [ "$CC" = "clang" ]; then