CMake as an alternative to autotools (experimental)
[vpp.git] / build-data / platforms / vpp.mk
1 # Copyright (c) 2015 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 # vector packet processor
15
16 MACHINE=$(shell uname -m)
17
18 vpp_arch = native
19 ifeq ($(TARGET_PLATFORM),thunderx)
20 vpp_dpdk_target = arm64-thunderx-linuxapp-gcc
21 endif
22 vpp_native_tools = vppapigen
23
24 vpp_uses_dpdk = yes
25
26 # use cmake as an alternative to autotools
27 # vpp_uses_cmake = yes
28
29 # Uncoment to enable building unit tests
30 # vpp_enable_tests = yes
31
32 vpp_root_packages = vpp vom japi
33
34 # DPDK configuration parameters
35 # vpp_uses_dpdk_mlx4_pmd = yes
36 # vpp_uses_dpdk_mlx5_pmd = yes
37 # vpp_uses_external_dpdk = yes
38 # vpp_dpdk_inc_dir = /usr/include/dpdk
39 # vpp_dpdk_lib_dir = /usr/lib
40 # vpp_dpdk_shared_lib = yes
41
42 # Use '--without-libnuma' for non-numa aware architecture
43 # Use '--enable-dlmalloc' to use dlmalloc instead of mheap
44 vpp_configure_args_vpp = --enable-dlmalloc
45 sample-plugin_configure_args_vpp = --enable-dlmalloc
46
47 # load balancer plugin is not portable on 32 bit platform
48 ifeq ($(MACHINE),i686)
49 vpp_configure_args_vpp += --disable-lb-plugin
50 endif
51
52 vpp_debug_TAG_CFLAGS = -g -O0 -DCLIB_DEBUG -DFORTIFY_SOURCE=2 \
53         -fstack-protector-all -fPIC -Werror
54 vpp_debug_TAG_CXXFLAGS = -g -O0 -DCLIB_DEBUG -DFORTIFY_SOURCE=2 \
55         -fstack-protector-all -fPIC -Werror
56 vpp_debug_TAG_LDFLAGS = -g -O0 -DCLIB_DEBUG -DFORTIFY_SOURCE=2 \
57         -fstack-protector-all -fPIC -Werror
58
59 vpp_TAG_CFLAGS = -g -O2 -DFORTIFY_SOURCE=2 -fstack-protector -fPIC -Werror
60 vpp_TAG_CXXFLAGS = -g -O2 -DFORTIFY_SOURCE=2 -fstack-protector -fPIC -Werror
61 vpp_TAG_LDFLAGS = -g -O2 -DFORTIFY_SOURCE=2 -fstack-protector -fPIC -Werror -pie -Wl,-z,now
62
63 vpp_clang_TAG_CFLAGS = -g -O2 -DFORTIFY_SOURCE=2 -fstack-protector -fPIC -Werror
64 vpp_clang_TAG_LDFLAGS = -g -O2 -DFORTIFY_SOURCE=2 -fstack-protector -fPIC -Werror
65
66 vpp_gcov_TAG_CFLAGS = -g -O0 -DCLIB_DEBUG -fPIC -Werror -fprofile-arcs -ftest-coverage
67 vpp_gcov_TAG_LDFLAGS = -g -O0 -DCLIB_DEBUG -fPIC -Werror -coverage
68
69 vpp_coverity_TAG_CFLAGS = -g -O2 -fPIC -Werror -D__COVERITY__
70 vpp_coverity_TAG_LDFLAGS = -g -O2 -fPIC -Werror -D__COVERITY__
71