#!/bin/bash TARGET=${TARGET:-"x86_64-native-linuxapp-gcc"} export ROOT_DIR=$(readlink -e $(dirname $0) | sed 's|/scripts||') pushd ${ROOT_DIR} echo '#include "pcap.h"' | cpp -H -o /dev/null 2>&1 if [ "$?" != "0" ]; then echo "Error: pcap is not installed. You may need to install libpcap-dev" fi echo '#include "numa.h"' | cpp -H -o /dev/null 2>&1 if [ "$?" != "0" ]; then echo "Error: NUMA library is not installed. You need to install libnuma-dev" exit 1 fi git -c advice.detachedHead=false clone -q --depth=1 --single-branch --branch=v17.08 http://dpdk.org/git/dpdk dpdk pushd dpdk git log --oneline --decorate #Make and edit DPDK configuration make config T=${TARGET} O=${TARGET} pushd ${TARGET} #To use I/O without DPDK supported NIC's enable pcap pmd: sed -ri 's,(CONFIG_RTE_LIBRTE_PMD_PCAP=).*,\1y,' .config popd #Build DPDK make build O=${TARGET} EXTRA_CFLAGS="-fPIC" make install O=${TARGET} DESTDIR=${TARGET} popd #Build ODP ./bootstrap; ./configure --enable-test-vald --enable-test-perf --enable-test-cpp \ --enable-debug --enable-debug-print \ --with-dpdk-path=`pwd`/dpdk/${TARGET}/usr/local make