#!/usr/bin/env bash
set -euxo pipefail

repo="$(dirname "$(readlink -f "$0")")"
dpdk_version=${dpdk_version:-24.07}
workdir=${workdir:-$repo/workdir.ignoreme}
prefix=${prefix:-$repo/prefix.ignoreme}
dpdk_src=$workdir/dpdk/

rm -rf -- "$workdir"
mkdir -- "$workdir" "$dpdk_src"

archive=$workdir/dpdk.tar.xz
curl "http://fast.dpdk.org/rel/dpdk-$dpdk_version.tar.xz" > "$archive"
tar --extract --file "$archive" --strip-components=1 --directory "$dpdk_src"

venv=$workdir/.venv
python3 -m venv "$venv"
source "$venv/bin/activate"
python3 -m pip install meson ninja pyelftools

dpdk_build=$dpdk_src/build/
meson setup -Dbuildtype=debug -Dexamples=skeleton --prefix="$prefix" --libdir=lib "$dpdk_src" "$dpdk_build"
ninja -C "$dpdk_build"
meson install -C "$dpdk_build"

PKG_CONFIG_PATH="$prefix/lib/pkgconfig" pkg-config libdpdk --validate

: set PKG_CONFIG_PATH and LD_LIBRARY_PATH as required
: ----
: done
