7b35e50c37afab954ce99665126fcd7e9ca2f242
[vpp.git] / src / Makefile.am
1 # Copyright (c) 2016 Cisco and/or its affiliates.
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at:
5 #
6 #     http://www.apache.org/licenses/LICENSE-2.0
7 #
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
13
14 ###############################################################################
15 # Global Defines
16 ###############################################################################
17
18 AUTOMAKE_OPTIONS = foreign subdir-objects
19 ACLOCAL_AMFLAGS = -I m4
20 AM_LIBTOOLFLAGS = --quiet
21
22 AM_CFLAGS = -Wall
23
24 SUBDIRS = .
25 SUFFIXES = .api.h .api .api.json
26 API_FILES =
27 noinst_HEADERS =
28 dist_bin_SCRIPTS =
29 lib_LTLIBRARIES =
30 BUILT_SOURCES =
31 CLEANFILES =
32 install-data-local:
33         @echo "Building vppctl command list..."
34         @DIR_SEARCH="$(srcdir)" ; \
35         DIR_EXCLUDE="examples" ; \
36         GREP_TIME=`time (grep -wIr "\.path = " $$DIR_SEARCH --exclude-dir=$$DIR_EXCLUDE \
37         | cut -d '"' -f2 | sort -u > $(srcdir)/scripts/vppctl-cmd-list) 2>&1` ; \
38         GREP_TIME=`echo $$GREP_TIME | awk '{print $$2}'` ; \
39         echo "Command list built, Time taken: $$GREP_TIME"
40
41 ###############################################################################
42 # Components
43 ###############################################################################
44
45 include vppinfra.am
46 include vppapigen.am
47
48 if ENABLE_PERFTOOL
49 include perftool.am
50 endif
51
52 if ENABLE_G2
53 include g2.am
54 endif
55
56 if ENABLE_SVM
57 include svm.am
58 endif
59
60 if ENABLE_VLIB
61 include vlib.am
62 endif
63
64 if ENABLE_SVM
65 if ENABLE_VLIB
66 include vlib-api.am
67 include vnet.am
68 include vpp.am
69 include vpp-api-test.am
70 include uri.am
71
72 SUBDIRS += plugins
73
74 if ENABLE_PAPI
75 include vpp-api.am
76 SUBDIRS += vpp-api/python
77 endif
78
79 if ENABLE_JAPI
80 SUBDIRS += vpp-api/java
81 endif
82
83 SUBDIRS += vpp-api/vapi
84
85 ###############################################################################
86 # API
87 ###############################################################################
88
89 include suffix-rules.mk
90
91 # Set the suffix list
92 apidir = $(prefix)/share/vpp/api/core
93
94 api_DATA = \
95         $(patsubst %.api,%.api.json,$(API_FILES))
96
97 BUILT_SOURCES += \
98         $(patsubst %.api,%.api.h,$(API_FILES))
99
100 endif # if ENABLE_VLIB
101 endif # if ENABLE_SVM
102
103 CLEANFILES += $(BUILT_SOURCES) $(api_DATA)