On Thu, Jul 23, 2015 at 11:09:32AM -0400, Mussar, Gary wrote: > Dpdk allows users to create a config that includes other config files and > then override values. > > Eg. > defconfig_x86_64-native_vhost_cuse-linuxapp-gcc: > > CONFIG_RTE_BUILD_COMBINE_LIBS=y > CONFIG_RTE_BUILD_SHARED_LIB=n > CONFIG_RTE_LIBRTE_VHOST=y > CONFIG_RTE_LIBRTE_VHOST_USER=n > > This allows you to have both a vhostuser and vhostcuse config in the same > source tree without the need to replicate everything in those config files > just to change a couple of settings. The resultant .config file has all of > the settings from the included files with the updated settings at the end. > The resultant rte_config.h contains multiple undefs and defines for the > overridden settings. > > Eg. > > grep RTE_LIBRTE_VHOST_USER > x86_64-native_vhost_cuse-linuxapp-gcc/include/rte_config.h > #undef RTE_LIBRTE_VHOST_USER > #define RTE_LIBRTE_VHOST_USER 1 > #undef RTE_LIBRTE_VHOST_USER > > The current mechanism to detect the RTE_LIBRTE_VHOST_USER setting merely > greps the rte_config.h file for the string "define RTE_LIBRTE_VHOST_USER 1" > rather than the final setting of RTE_LIBRTE_VHOST_USER. The following patch > changes this test to detect the final setting of RTE_LIBRTE_VHOST_USER. > > Signed-off-by: Gary Mussar <gmus...@ciena.com> > --- > acinclude.m4 | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/acinclude.m4 b/acinclude.m4 > index 3604e55..0e05468 100644 > --- a/acinclude.m4 > +++ b/acinclude.m4 > @@ -175,7 +175,10 @@ AC_DEFUN([OVS_CHECK_DPDK], [ > DPDK_LIB="-lintel_dpdk" > DPDK_EXTRA_LIB="" > > - OVS_GREP_IFELSE([$RTE_SDK/include/rte_config.h], [define > RTE_LIBRTE_VHOST_USER 1], > + AC_EGREP_CPP([int vhost = 1;], [ > +#include <$RTE_SDK/include/rte_config.h> > +int vhost = RTE_LIBRTE_VHOST_USER; > +], > [], [AC_DEFINE([VHOST_CUSE], [1], [DPDK vhost-cuse > support enabled, vhost-user disabled.]) > DPDK_EXTRA_LIB="-lfuse"])
We use OVS_GREP_IFELSE for kernel checks because it's relatively difficult to get the kernel build system to compile a random fragment of text for us, but it's somewhat odd to use AC_EGREP_CPP to detect the value of something when we can easily do a real compile. The usual Autoconf test for something like this would be more like: AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <rte_config.h> #if !RTE_LIBRTE_VHOST_USER choke me #endif]])], [...if it's present...], [...if it's missing....]) and then you don't worry about someone changing the definition of the macro to "(1)" or "true". _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev