Add new C API
[vpp.git] / src / configure.ac
index 4c2d3b4..2efb23a 100644 (file)
@@ -3,7 +3,7 @@ LT_INIT
 AC_CONFIG_AUX_DIR([.])
 AM_INIT_AUTOMAKE([subdir-objects])
 AM_SILENT_RULES([yes])
-AC_CONFIG_FILES([Makefile plugins/Makefile vpp-api/python/Makefile vpp-api/java/Makefile])
+AC_CONFIG_FILES([Makefile plugins/Makefile vpp-api/python/Makefile vpp-api/java/Makefile vpp-api/vapi/Makefile])
 AC_CONFIG_MACRO_DIR([m4])
 
 AC_PROG_CC
@@ -97,6 +97,26 @@ AC_DEFUN([DPDK_IS_PMD_ENABLED],
   m4_append_uniq([list_of_with], [$2], [, ])
 ])
 
+AC_DEFUN([DETECT_DPDK_IS_1702_OR_1705],
+[
+  AC_MSG_CHECKING([for RTE_VERSION 17.02/17.05 in rte_version.h])
+  AC_TRY_RUN(
+    [
+    #include <rte_version.h>
+    int main()
+    {
+      return ((RTE_VER_YEAR != 17) ||
+             (RTE_VER_MONTH != 2 && RTE_VER_MONTH != 5));
+    }
+    ],
+    [dpdk_is_1702_or_1705=yes]
+    [AC_MSG_RESULT([yes])],
+    [dpdk_is_1702_or_1705=no]
+    [AC_MSG_RESULT([no])]
+  )
+  AM_CONDITIONAL(DPDK_IS_1702_OR_1705, test "$dpdk_is_1702_or_1705" = "yes")
+])
+
 ###############################################################################
 # configure arguments
 ###############################################################################
@@ -185,34 +205,64 @@ AM_COND_IF([ENABLE_DPDK_SHARED],
     [AC_MSG_ERROR([DPDK shared library not found])],)
 ])
 
+with_aesni_mb_lib=no
+with_isa_l_crypto_lib=no
+
 DPDK_IS_PMD_ENABLED(LIBRTE_PMD_AESNI_MB, dpdk_aesni_mb_pmd)
+DPDK_IS_PMD_ENABLED(LIBRTE_PMD_AESNI_GCM, dpdk_aesni_gcm_pmd)
+
+DETECT_DPDK_IS_1702_OR_1705()
+
 AM_COND_IF([WITH_DPDK_AESNI_MB_PMD],
 [
-  AC_CHECK_LIB([IPSec_MB], [submit_job_sse], [],
+  AC_CHECK_LIB([IPSec_MB], [submit_job_sse],
+              [with_aesni_mb_lib=yes],
               [AC_MSG_ERROR([IPSec_MB library not found])])
 ])
 
-DPDK_IS_PMD_ENABLED(LIBRTE_PMD_AESNI_GCM, dpdk_aesni_gcm_pmd)
 AM_COND_IF([WITH_DPDK_AESNI_GCM_PMD],
 [
-  AC_CHECK_LIB([isal_crypto], [aesni_gcm128_init], [],
-              [AC_MSG_ERROR([isal_crypto library not found])])
+  AM_COND_IF([DPDK_IS_1702_OR_1705],
+  [
+    AC_CHECK_LIB([isal_crypto], [aesni_gcm128_init],
+                [with_isa_l_crypto_lib=yes],
+                [AC_MSG_ERROR([isal_crypto library not found])])
+  ],
+  [
+    AC_CHECK_LIB([IPSec_MB], [submit_job_sse],
+                [with_aesni_mb_lib=yes],
+                [AC_MSG_ERROR([IPSec_MB library not found])])
+  ])
 ])
 
-DPDK_IS_PMD_ENABLED(LIBRTE_MLX5_PMD, dpdk_mlx5_pmd)
-AM_COND_IF([WITH_DPDK_MLX5_PMD],
+m4_append([list_of_with], [aesni_mb_lib], [, ])
+AM_CONDITIONAL(WITH_AESNI_MB_LIB, test "$with_aesni_mb_lib" = "yes")
+
+m4_append([list_of_with], [isa_l_crypto_lib], [, ])
+AM_CONDITIONAL(WITH_ISA_L_CRYPTO_LIB, test "$with_isa_l_crypto_lib" = "yes")
+
+
+with_ibverbs_lib=no
+DPDK_IS_PMD_ENABLED(LIBRTE_MLX4_PMD, dpdk_mlx4_pmd)
+AM_COND_IF([WITH_DPDK_MLX4_PMD],
 [
-  AC_CHECK_LIB([ibverbs], [ibv_fork_init], [],
+  AC_CHECK_LIB([ibverbs], [ibv_fork_init],
+              [with_ibverbs_lib=yes],
               [AC_MSG_ERROR([ibverbs library not found])])
 ])
 
-DPDK_IS_PMD_ENABLED(LIBRTE_MLX4_PMD, dpdk_mlx4_pmd)
-AM_COND_IF([WITH_DPDK_MLX4_PMD],
+DPDK_IS_PMD_ENABLED(LIBRTE_MLX5_PMD, dpdk_mlx5_pmd)
+AM_COND_IF([WITH_DPDK_MLX5_PMD],
 [
-  AC_CHECK_LIB([ibverbs], [ibv_fork_init], [],
+  AC_CHECK_LIB([ibverbs], [ibv_fork_init],
+              [with_ibverbs_lib=yes],
               [AC_MSG_ERROR([ibverbs library not found])])
 ])
 
+m4_append([list_of_with], [ibverbs_lib], [, ])
+AM_CONDITIONAL(WITH_IBVERBS_LIB, test "$with_ibverbs_lib" = "yes")
+
+
 AM_COND_IF([ENABLE_G2],
 [
   PKG_CHECK_MODULES(g2, gtk+-2.0)