>From ddec3b9e4e1e6e8da44d0d7eec643db7b82b2b81 Mon Sep 17 00:00:00 2001 From: Giuseppe Lettieri Date: Mon, 2 Sep 2019 17:35:33 +0200 Subject: [PATCH] netmap: support git-submodule build otption With this patch, netmap support can be enabled with the following options to the configure script: --enable-netmap=system Use the host system netmap installation. Fail if not found. --enable-netmap=git clone the official netmap repository on github --enable-netmap try system and then git. --- .gitmodules | 3 +++ configure | 68 ++++++++++++++++++++++++++++++++++++++++++++--------- netmap | 1 + 3 files changed, 61 insertions(+), 11 deletions(-) create mode 160000 netmap diff --git a/.gitmodules b/.gitmodules index c5c474169d..bf75dbc5e3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -58,3 +58,6 @@ [submodule "roms/opensbi"] path = roms/opensbi url = https://git.qemu.org/git/opensbi.git +[submodule "netmap"] + path = netmap + url = https://github.com/luigirizzo/netmap.git diff --git a/configure b/configure index e44e454c43..560f357967 100755 --- a/configure +++ b/configure @@ -1155,6 +1155,10 @@ for opt do ;; --enable-netmap) netmap="yes" ;; + --enable-netmap=git) netmap="git" + ;; + --enable-netmap=system) netmap="system" + ;; --disable-xen) xen="no" ;; --enable-xen) xen="yes" @@ -3351,8 +3355,9 @@ fi # a minor/major version number. Minor new features will be marked with values up # to 15, and if something happens that requires a change to the backend we will # move above 15, submit the backend fixes and modify this two bounds. -if test "$netmap" != "no" ; then - cat > $TMPC << EOF +case "$netmap" in + "" | yes | system) + cat > $TMPC << EOF #include #include #include @@ -3362,15 +3367,56 @@ if test "$netmap" != "no" ; then #endif int main(void) { return 0; } EOF - if compile_prog "" "" ; then - netmap=yes - else - if test "$netmap" = "yes" ; then - feature_not_found "netmap" + if compile_prog "" "" ; then + netmap_system=yes + else + netmap_system=no + fi + ;; +esac + +case "$netmap" in + "" | yes) + if test "$netmap_system" = "yes"; then + netmap=system + elif test -e "${source_path}/.git" && test $git_update = 'yes' ; then + netmap=git + elif test -e "${source_path}/netmap/configure" ; then + netmap=internal + elif test -z "$netmap" ; then + netmap=no + else + feature_not_found "netmap" "Install netmap or git submodule" fi - netmap=no - fi -fi + ;; + + system) + if test "$netmap_system" = "no"; then + feature_not_found "netmap" "Install netmap" + fi + ;; +esac + +case "$netmap" in + git | internal) + if test "$netmap" = git; then + git_submodules="${git_submodules} netmap" + fi + mkdir -p netmap + QEMU_CFLAGS="$QEMU_CFLAGS -I\$(SRC_PATH)/netmap/sys" + ;; + + system) + ;; + + no) + ;; + *) + error_exit "Unknown state for netmap: $netmap" + ;; +esac + +########################################## ########################################## # libcap-ng library probe @@ -6630,7 +6676,7 @@ if test "$vde" = "yes" ; then echo "CONFIG_VDE=y" >> $config_host_mak echo "VDE_LIBS=$vde_libs" >> $config_host_mak fi -if test "$netmap" = "yes" ; then +if test "$netmap" != "no" ; then echo "CONFIG_NETMAP=y" >> $config_host_mak fi if test "$l2tpv3" = "yes" ; then diff --git a/netmap b/netmap new file mode 160000 index 0000000000..137f537eae --- /dev/null +++ b/netmap @@ -0,0 +1 @@ +Subproject commit 137f537eae513f02d5d6871d1f91c049e6345803 -- 2.20.1