summaryrefslogtreecommitdiffstats
path: root/src/Makefile.am
blob: 641707ed122d7930cdc56d98fa1aba9acdffd1b2 (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# Copyright (c) 2016 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

###############################################################################
# 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 =
CLEANFILES =
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_SW
DPDK_LD_ADD = -lIPSec_MB -lisal_crypto
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
include uri.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

CLEANFILES += $(BUILT_SOURCES) $(api_DATA)