aboutsummaryrefslogtreecommitdiffstats
path: root/extras/japi/configure.ac
blob: f6e7b53ac7f6a1d5482ac366e4478c93ccb02b08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
AC_INIT(japi, 18.10)
LT_INIT
AM_INIT_AUTOMAKE
AM_SILENT_RULES([yes])
AC_PREFIX_DEFAULT([/usr])

PKG_CHECK_MODULES([CHECK], [check], [HAVE_CHECK=1], [HAVE_CHECK=0])
AM_CONDITIONAL([USE_CHECK],[test "$HAVE_CHECK" -eq 1])

AC_PROG_CC
AC_PROG_CXX

# Check if compiler supports specific flag
AC_DEFUN([CC_CHECK_FLAG],
[
  AC_MSG_CHECKING([if $CC supports $1])
  AC_LANG_PUSH([C])
  ac_saved_cflags="$CFLAGS"
  CFLAGS="-Werror $1"
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
  [cc_flag_check=yes],
  [cc_flag_check=no]
)
  AC_MSG_RESULT([$cc_flag_check])
  CFLAGS="$ac_saved_cflags"
  AC_LANG_POP([C])
])

CC_CHECK_FLAG("-Wno-address-of-packed-member")
AS_IF([test "$cc_flag_check" = yes],
        [CFLAGS="${CFLAGS} -Wno-address-of-packed-member"], [])

AM_CONDITIONAL(ENABLE_ACL_PLUGIN, test "yes" = "yes")
AM_CONDITIONAL(ENABLE_NAT_PLUGIN, test "yes" = "yes")
AM_CONDITIONAL(ENABLE_L2E_PLUGIN, test "yes" = "yes")
AM_CONDITIONAL(ENABLE_GBP_PLUGIN, test "yes" = "yes")
AM_CONDITIONAL(ENABLE_PPPOE_PLUGIN, test "yes" = "yes")
AM_CONDITIONAL(ENABLE_GTPU_PLUGIN, test "yes" = "yes")
AM_CONDITIONAL(ENABLE_IOAM_PLUGIN, test "yes" = "yes")
AM_CONDITIONAL(ENABLE_NSH_PLUGIN, test "yes" = "yes")

AX_VPP_FIND_JDK8
AC_SUBST(JAVA_HOME)
AC_SUBST(JAVAC)
AC_SUBST(JAVAH)
AC_SUBST(JAR)

AS_CASE([$host_cpu],
	[x86_64], [CPU_FLAGS="-march=corei7 -mtune=corei7-avx"],
	[aarch64], [CPU_FLAGS="-march=armv8-a+crc"],
	[CPU_FLAGS=""],
)
AC_SUBST([CPU_FLAGS])

AC_OUTPUT([Makefile java/Makefile])

AC_CONFIG_MACRO_DIR([m4])
##################################################################### # Global Defines ############################################################################### AUTOMAKE_OPTIONS = foreign subdir-objects ACLOCAL_AMFLAGS = -I m4 AM_LIBTOOLFLAGS = --quiet AM_CFLAGS = -Wall SUBDIRS = . SUFFIXES = .api.h .api .api.json API_FILES = noinst_HEADERS = dist_bin_SCRIPTS = lib_LTLIBRARIES = BUILT_SOURCES = install-data-local: @echo "Building vppctl command list..." @DIR_SEARCH="$(srcdir)" ; \ DIR_EXCLUDE="examples" ; \ GREP_TIME=`time (grep -wIr "\.path = " $$DIR_SEARCH --exclude-dir=$$DIR_EXCLUDE \ | cut -d '"' -f2 | sort -u > $(srcdir)/scripts/vppctl-cmd-list) 2>&1` ; \ GREP_TIME=`echo $$GREP_TIME | awk '{print $$2}'` ; \ echo "Command list built, Time taken: $$GREP_TIME" ############################################################################### # DPDK ############################################################################### if WITH_DPDK if ENABLE_DPDK_SHARED DPDK_LD_FLAGS = -Wl,--whole-archive,-ldpdk,--no-whole-archive else DPDK_LD_FLAGS = -Wl,--whole-archive,-l:libdpdk.a,--no-whole-archive,-lm,-ldl endif if WITH_DPDK_CRYPTO DPDK_LD_ADD = -L$(AESNI_MULTI_BUFFER_LIB_PATH) -lIPSec_MB endif if WITH_DPDK_MLX5_PMD DPDK_LD_FLAGS += -libverbs -lmlx5 -lnuma endif else DPDK_LD_FLAGS = DPDK_LD_ADD = endif ############################################################################### # Components ############################################################################### include vppinfra.am include vppapigen.am if ENABLE_PERFTOOL include perftool.am endif if ENABLE_G2 include g2.am endif if ENABLE_SVM include svm.am endif if ENABLE_VLIB include vlib.am endif if ENABLE_SVM if ENABLE_VLIB include vlib-api.am include vnet.am include vpp.am include vpp-api-test.am SUBDIRS += plugins if ENABLE_PAPI SUBDIRS += vpp-api/python endif if ENABLE_JAPI SUBDIRS += vpp-api/java endif ############################################################################### # API ############################################################################### include suffix-rules.mk # Set the suffix list apidir = $(prefix)/share/vpp/api/core api_DATA = \ $(patsubst %.api,%.api.json,$(API_FILES)) BUILT_SOURCES += \ $(patsubst %.api,%.api.h,$(API_FILES)) endif # if ENABLE_VLIB endif # if ENABLE_SVM