aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile371
1 files changed, 237 insertions, 134 deletions
diff --git a/Makefile b/Makefile
index 5c16b9a317c..edd632e42d5 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-# Copyright (c) 2016 Cisco and/or its affiliates.
+# Copyright (c) 2021 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:
@@ -14,7 +14,7 @@
export WS_ROOT=$(CURDIR)
export BR=$(WS_ROOT)/build-root
CCACHE_DIR?=$(BR)/.ccache
-SHELL:=/bin/bash
+SHELL:=$(shell which bash)
GDB?=gdb
PLATFORM?=vpp
SAMPLE_PLUGIN?=no
@@ -23,6 +23,10 @@ MACHINE=$(shell uname -m)
SUDO?=sudo -E
DPDK_CONFIG?=no-pci
+ifeq ($(strip $(SHELL)),)
+$(error "bash not found, VPP requires bash to build")
+endif
+
,:=,
define disable_plugins
$(if $(1), \
@@ -40,6 +44,7 @@ unix { \
$(if $(wildcard startup.vpp),"exec startup.vpp",) \
} \
$(if $(DPDK_CONFIG), "dpdk { $(DPDK_CONFIG) }",) \
+$(if $(EXTRA_VPP_CONFIG), "$(EXTRA_VPP_CONFIG)",) \
$(call disable_plugins,$(DISABLED_PLUGINS)) \
"
@@ -54,9 +59,9 @@ OS_ID = $(shell grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"
OS_VERSION_ID= $(shell grep '^VERSION_ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
endif
-ifeq ($(filter ubuntu debian,$(OS_ID)),$(OS_ID))
+ifeq ($(filter ubuntu debian linuxmint,$(OS_ID)),$(OS_ID))
PKG=deb
-else ifeq ($(filter rhel centos fedora,$(OS_ID)),$(OS_ID))
+else ifeq ($(filter rhel centos fedora opensuse-leap rocky almalinux,$(OS_ID)),$(OS_ID))
PKG=rpm
endif
@@ -65,57 +70,71 @@ endif
DEB_DEPENDS = curl build-essential autoconf automake ccache
DEB_DEPENDS += debhelper dkms git libtool libapr1-dev dh-python
DEB_DEPENDS += libconfuse-dev git-review exuberant-ctags cscope pkg-config
-DEB_DEPENDS += lcov chrpath autoconf libnuma-dev
+DEB_DEPENDS += gcovr lcov chrpath autoconf libnuma-dev
DEB_DEPENDS += python3-all python3-setuptools check
-DEB_DEPENDS += libffi-dev python3-ply libmbedtls-dev
-DEB_DEPENDS += cmake ninja-build uuid-dev python3-jsonschema python3-yaml
+DEB_DEPENDS += libffi-dev python3-ply
+DEB_DEPENDS += cmake ninja-build python3-jsonschema python3-yaml
DEB_DEPENDS += python3-venv # ensurepip
-DEB_DEPENDS += python3-dev # needed for python3 -m pip install psutil
-DEB_DEPENDS += libnl-3-dev libnl-route-3-dev
-# python3.6 on 16.04 requires python36-dev
+DEB_DEPENDS += python3-dev python3-pip
+DEB_DEPENDS += libnl-3-dev libnl-route-3-dev libmnl-dev
+# DEB_DEPENDS += enchant # for docs
+DEB_DEPENDS += python3-virtualenv
+DEB_DEPENDS += libssl-dev
+DEB_DEPENDS += libelf-dev libpcap-dev # for libxdp (af_xdp)
+DEB_DEPENDS += iperf3 # for 'make test TEST=vcl'
+DEB_DEPENDS += nasm
+DEB_DEPENDS += iperf ethtool # for 'make test TEST=vm_vpp_interfaces'
+DEB_DEPENDS += libpcap-dev
+DEB_DEPENDS += tshark
LIBFFI=libffi6 # works on all but 20.04 and debian-testing
-ifeq ($(OS_VERSION_ID),18.04)
- DEB_DEPENDS += python-dev python-all python-pip python-virtualenv
+ifeq ($(OS_VERSION_ID),22.04)
+ DEB_DEPENDS += python3-virtualenv
DEB_DEPENDS += libssl-dev
- DEB_DEPENDS += clang-9 clang-format-10
+ DEB_DEPENDS += clang clang-format-11
+ LIBFFI=libffi7
+ DEB_DEPENDS += enchant-2 # for docs
else ifeq ($(OS_VERSION_ID),20.04)
DEB_DEPENDS += python3-virtualenv
DEB_DEPENDS += libssl-dev
- DEB_DEPENDS += libelf-dev # for libbpf (af_xdp)
- DEB_DEPENDS += clang-format-10
+ DEB_DEPENDS += clang clang-format-11
LIBFFI=libffi7
+ DEB_DEPENDS += enchant-2 # for docs
else ifeq ($(OS_VERSION_ID),20.10)
- DEB_DEPENDS += python3-virtualenv
- DEB_DEPENDS += libssl-dev
- DEB_DEPENDS += libelf-dev # for libbpf (af_xdp)
- DEB_DEPENDS += clang-format-10
- LIBFFI=libffi8ubuntu1
+ DEB_DEPENDS += clang clang-format-11
+ LIBFFI=libffi8ubuntu1
else ifeq ($(OS_ID)-$(OS_VERSION_ID),debian-10)
- DEB_DEPENDS += python3-virtualenv virtualenv
- DEB_DEPENDS += libssl-dev
- DEB_DEPENDS += libelf-dev # for libbpf (af_xdp)
+ DEB_DEPENDS += virtualenv
+else ifeq ($(OS_ID)-$(OS_VERSION_ID),debian-11)
+ DEB_DEPENDS += virtualenv
+ DEB_DEPENDS += clang clang-format-11
+ LIBFFI=libffi7
+else ifeq ($(OS_ID)-$(OS_VERSION_ID),debian-12)
+ DEB_DEPENDS += virtualenv
+ DEB_DEPENDS += clang-14 clang-format-14
+ # for extras/scripts/checkstyle.sh
+ export CLANG_FORMAT_VER=14
+ LIBFFI=libffi8
else
- DEB_DEPENDS += libssl-dev
- DEB_DEPENDS += libelf-dev # for libbpf (af_xdp)
+ DEB_DEPENDS += clang-11 clang-format-11
LIBFFI=libffi7
+ DEB_DEPENDS += enchant-2 # for docs
endif
DEB_DEPENDS += $(LIBFFI)
-RPM_DEPENDS = redhat-lsb glibc-static
+RPM_DEPENDS = glibc-static
RPM_DEPENDS += apr-devel
RPM_DEPENDS += numactl-devel
RPM_DEPENDS += check check-devel
RPM_DEPENDS += selinux-policy selinux-policy-devel
RPM_DEPENDS += ninja-build
-RPM_DEPENDS += libuuid-devel
-RPM_DEPENDS += mbedtls-devel
RPM_DEPENDS += ccache
RPM_DEPENDS += xmlto
-RPM_DEPENDS += elfutils-libelf-devel
-RPM_DEPENDS += libnl3-devel
+RPM_DEPENDS += elfutils-libelf-devel libpcap-devel
+RPM_DEPENDS += libnl3-devel libmnl-devel
+RPM_DEPENDS += nasm
ifeq ($(OS_ID),fedora)
RPM_DEPENDS += dnf-utils
@@ -126,12 +145,32 @@ ifeq ($(OS_ID),fedora)
RPM_DEPENDS += python3-virtualenv python3-jsonschema
RPM_DEPENDS += cmake
RPM_DEPENDS_GROUPS = 'C Development Tools and Libraries'
+else ifeq ($(OS_ID),rocky)
+ RPM_DEPENDS += yum-utils
+ RPM_DEPENDS += subunit subunit-devel
+ RPM_DEPENDS += openssl-devel
+ RPM_DEPENDS += python3-devel # needed for python3 -m pip install psutil
+ RPM_DEPENDS += python3-ply # for vppapigen
+ RPM_DEPENDS += python3-virtualenv python3-jsonschema
+ RPM_DEPENDS += infiniband-diags llvm clang cmake
+ RPM_DEPENDS_GROUPS = 'Development Tools'
+else ifeq ($(OS_ID),almalinux)
+ RPM_DEPENDS += yum-utils
+ RPM_DEPENDS += subunit subunit-devel
+ RPM_DEPENDS += openssl-devel
+ RPM_DEPENDS += python3-devel # needed for python3 -m pip install psutil
+ RPM_DEPENDS += python3-ply # for vppapigen
+ RPM_DEPENDS += python3-virtualenv python3-jsonschema
+ RPM_DEPENDS += infiniband-diags llvm clang cmake
+ RPM_DEPENDS_GROUPS = 'Development Tools'
else ifeq ($(OS_ID)-$(OS_VERSION_ID),centos-8)
RPM_DEPENDS += yum-utils
RPM_DEPENDS += compat-openssl10 openssl-devel
RPM_DEPENDS += python2-devel python36-devel python3-ply
RPM_DEPENDS += python3-virtualenv python3-jsonschema
RPM_DEPENDS += libarchive cmake
+ RPM_DEPENDS += infiniband-diags libibumad
+ RPM_DEPENDS += libpcap-devel llvm-toolset
RPM_DEPENDS_GROUPS = 'Development Tools'
else
RPM_DEPENDS += yum-utils
@@ -153,13 +192,34 @@ RPM_DEPENDS_DEBUG += krb5-debuginfo openssl-debuginfo
RPM_DEPENDS_DEBUG += zlib-debuginfo nss-softokn-debuginfo
RPM_DEPENDS_DEBUG += yum-plugin-auto-update-debug-info
+RPM_SUSE_BUILDTOOLS_DEPS = autoconf automake ccache check-devel chrpath
+RPM_SUSE_BUILDTOOLS_DEPS += clang cmake indent libtool make ninja python3-ply
+
+RPM_SUSE_DEVEL_DEPS = glibc-devel-static libnuma-devel libelf-devel
+RPM_SUSE_DEVEL_DEPS += libopenssl-devel lsb-release
+RPM_SUSE_DEVEL_DEPS += libpcap-devel llvm-devel
+RPM_SUSE_DEVEL_DEPS += curl libstdc++-devel bison gcc-c++ zlib-devel
+
+RPM_SUSE_PYTHON_DEPS = python3-devel python3-pip python3-rpm-macros
+
+RPM_SUSE_PLATFORM_DEPS = shadow rpm-build
+
+ifeq ($(OS_ID),opensuse-leap)
+ RPM_SUSE_DEVEL_DEPS += xmlto openssl-devel asciidoc git nasm
+ RPM_SUSE_PYTHON_DEPS += python3 python3-ply python3-virtualenv
+ RPM_SUSE_PLATFORM_DEPS += distribution-release
+endif
+
+RPM_SUSE_DEPENDS += $(RPM_SUSE_BUILDTOOLS_DEPS) $(RPM_SUSE_DEVEL_DEPS) $(RPM_SUSE_PYTHON_DEPS) $(RPM_SUSE_PLATFORM_DEPS)
+
ifneq ($(wildcard $(STARTUP_DIR)/startup.conf),)
STARTUP_CONF ?= $(STARTUP_DIR)/startup.conf
endif
ifeq ($(findstring y,$(UNATTENDED)),y)
+DEBIAN_FRONTEND=noninteractive
CONFIRM=-y
-FORCE=--force-yes
+FORCE=--allow-downgrades --allow-remove-essential --allow-change-held-packages
endif
TARGETS = vpp
@@ -205,13 +265,13 @@ help:
@echo " compdb - (re)generate compile_commands.json"
@echo " checkstyle - check coding style"
@echo " checkstyle-commit - check commit message format"
- @echo " checkstyle-test - check test framework coding style"
- @echo " checkstyle-test-diff - check test framework coding style (only changed files)"
+ @echo " checkstyle-python - check python coding style using 'black' formatter"
@echo " checkstyle-api - check api for incompatible changes"
@echo " fixstyle - fix coding style"
- @echo " doxygen - (re)generate documentation"
- @echo " bootstrap-doxygen - setup Doxygen dependencies"
- @echo " wipe-doxygen - wipe all generated documentation"
+ @echo " fixstyle-python - fix python coding style using 'black' formatter"
+ @echo " doxygen - DEPRECATED - use 'make docs'"
+ @echo " bootstrap-doxygen - DEPRECATED"
+ @echo " wipe-doxygen - DEPRECATED"
@echo " checkfeaturelist - check FEATURE.yaml according to schema"
@echo " featurelist - dump feature list in markdown"
@echo " json-api-files - (re)-generate json api files"
@@ -220,6 +280,7 @@ help:
@echo " docs - Build the Sphinx documentation"
@echo " docs-venv - Build the virtual environment for the Sphinx docs"
@echo " docs-clean - Remove the generated files from the Sphinx docs"
+ @echo " docs-rebuild - Rebuild all of the Sphinx documentation"
@echo ""
@echo "Make Arguments:"
@echo " V=[0|1] - set build verbosity level"
@@ -230,7 +291,6 @@ help:
@echo " startup.conf file is present"
@echo " GDB=<path> - gdb binary to use for debugging"
@echo " PLATFORM=<name> - target platform. default is vpp"
- @echo " TEST=<filter> - apply filter to test set, see test-help"
@echo " DPDK_CONFIG=<conf> - add specified dpdk config commands to"
@echo " autogenerated startup.conf"
@echo " (e.g. \"no-pci\" )"
@@ -251,9 +311,9 @@ help:
$(BR)/.deps.ok:
ifeq ($(findstring y,$(UNATTENDED)),y)
- make install-dep
+ $(MAKE) install-dep
endif
-ifeq ($(filter ubuntu debian,$(OS_ID)),$(OS_ID))
+ifeq ($(filter ubuntu debian linuxmint,$(OS_ID)),$(OS_ID))
@MISSING=$$(apt-get install -y -qq -s $(DEB_DEPENDS) | grep "^Inst ") ; \
if [ -n "$$MISSING" ] ; then \
echo "\nPlease install missing packages: \n$$MISSING\n" ; \
@@ -281,7 +341,7 @@ bootstrap:
.PHONY: install-dep
install-dep:
-ifeq ($(filter ubuntu debian,$(OS_ID)),$(OS_ID))
+ifeq ($(filter ubuntu debian linuxmint,$(OS_ID)),$(OS_ID))
@sudo -E apt-get update
@sudo -E apt-get $(APT_ARGS) $(CONFIRM) $(FORCE) install $(DEB_DEPENDS)
else ifneq ("$(wildcard /etc/redhat-release)","")
@@ -289,11 +349,17 @@ ifeq ($(OS_ID),rhel)
@sudo -E yum-config-manager --enable rhel-server-rhscl-7-rpms
@sudo -E yum groupinstall $(CONFIRM) $(RPM_DEPENDS_GROUPS)
@sudo -E yum install $(CONFIRM) $(RPM_DEPENDS)
- @sudo -E debuginfo-install $(CONFIRM) glibc openssl-libs mbedtls-devel zlib
+ @sudo -E debuginfo-install $(CONFIRM) glibc openssl-libs zlib
+else ifeq ($(OS_ID),rocky)
+ @sudo -E dnf install $(CONFIRM) dnf-plugins-core epel-release
+ @sudo -E dnf config-manager --set-enabled \
+ $(shell dnf repolist all 2>/dev/null|grep -i crb|cut -d' ' -f1|grep -v source)
+ @sudo -E dnf groupinstall $(CONFIRM) $(RPM_DEPENDS_GROUPS)
+ @sudo -E dnf install $(CONFIRM) $(RPM_DEPENDS)
else ifeq ($(OS_ID)-$(OS_VERSION_ID),centos-8)
@sudo -E dnf install $(CONFIRM) dnf-plugins-core epel-release
@sudo -E dnf config-manager --set-enabled \
- $(shell dnf repolist all 2>/dev/null|grep -i powertools|cut -d' ' -f1)
+ $(shell dnf repolist all 2>/dev/null|grep -i powertools|cut -d' ' -f1|grep -v source)
@sudo -E dnf groupinstall $(CONFIRM) $(RPM_DEPENDS_GROUPS)
@sudo -E dnf install --skip-broken $(CONFIRM) $(RPM_DEPENDS)
else ifeq ($(OS_ID),centos)
@@ -304,10 +370,13 @@ else ifeq ($(OS_ID),centos)
else ifeq ($(OS_ID),fedora)
@sudo -E dnf groupinstall $(CONFIRM) $(RPM_DEPENDS_GROUPS)
@sudo -E dnf install $(CONFIRM) $(RPM_DEPENDS)
- @sudo -E debuginfo-install $(CONFIRM) glibc openssl-libs mbedtls-devel zlib
+ @sudo -E debuginfo-install $(CONFIRM) glibc openssl-libs zlib
endif
+else ifeq ($(filter opensuse-leap-15.3 opensuse-leap-15.4 ,$(OS_ID)-$(OS_VERSION_ID)),$(OS_ID)-$(OS_VERSION_ID))
+ @sudo -E zypper refresh
+ @sudo -E zypper install -y $(RPM_SUSE_DEPENDS)
else
- $(error "This option currently works only on Ubuntu, Debian, RHEL, or CentOS systems")
+ $(error "This option currently works only on Ubuntu, Debian, RHEL, CentOS or openSUSE-leap systems")
endif
git config commit.template .git_commit_template.txt
@@ -315,7 +384,7 @@ endif
install-deps: install-dep
define make
- @make -C $(BR) PLATFORM=$(PLATFORM) TAG=$(1) $(2)
+ @$(MAKE) -C $(BR) PLATFORM=$(PLATFORM) TAG=$(1) $(2)
endef
$(BR)/scripts/.version:
@@ -377,50 +446,77 @@ wipe-release: test-wipe $(BR)/.deps.ok
.PHONY: rebuild-release
rebuild-release: wipe-release build-release
-libexpand = $(subst $(subst ,, ),:,$(foreach lib,$(1),$(BR)/install-$(2)-native/vpp/$(lib)/$(3)))
-
export TEST_DIR ?= $(WS_ROOT)/test
-export RND_SEED ?= $(shell python3 -c 'import time; print(time.time())')
define test
- $(if $(filter-out $(3),retest),make -C $(BR) PLATFORM=$(1) TAG=$(2) vpp-install,)
+ $(if $(filter-out $(2),retest),$(MAKE) -C $(BR) PLATFORM=vpp TAG=$(1) CC=$(CC) vpp-install,)
$(eval libs:=lib lib64)
- make -C test \
- VPP_BUILD_DIR=$(BR)/build-$(2)-native \
- VPP_BIN=$(BR)/install-$(2)-native/vpp/bin/vpp \
- VPP_PLUGIN_PATH=$(call libexpand,$(libs),$(2),vpp_plugins) \
- VPP_TEST_PLUGIN_PATH=$(call libexpand,$(libs),$(2),vpp_api_test_plugins) \
- VPP_INSTALL_PATH=$(BR)/install-$(2)-native/ \
- LD_LIBRARY_PATH=$(call libexpand,$(libs),$(2),) \
+ $(MAKE) -C test \
+ VPP_BUILD_DIR=$(BR)/build-$(1)-native/vpp \
+ VPP_BIN=$(BR)/install-$(1)-native/vpp/bin/vpp \
+ VPP_INSTALL_PATH=$(BR)/install-$(1)-native/ \
EXTENDED_TESTS=$(EXTENDED_TESTS) \
+ TEST_GCOV=$(TEST_GCOV) \
PYTHON=$(PYTHON) \
OS_ID=$(OS_ID) \
RND_SEED=$(RND_SEED) \
CACHE_OUTPUT=$(CACHE_OUTPUT) \
- $(3)
+ TAG=$(1) \
+ $(2)
endef
.PHONY: test
test:
- $(call test,vpp,vpp,test)
+ifeq ($(CC),cc)
+ $(eval CC=clang)
+endif
+ $(call test,vpp,test)
.PHONY: test-debug
test-debug:
- $(call test,vpp,vpp_debug,test)
+ifeq ($(CC),cc)
+ $(eval CC=clang)
+endif
+ $(call test,vpp_debug,test)
-.PHONY: test-gcov
-test-gcov:
- $(call test,vpp,vpp_gcov,test)
+.PHONY: test-cov
+test-cov:
+ $(eval CC=gcc)
+ $(eval TEST_GCOV=1)
+ $(call test,vpp_gcov,cov)
+
+.PHONY: test-cov-build
+test-cov-build:
+ $(eval CC=gcc)
+ $(eval TEST_GCOV=1)
+ $(call test,vpp_gcov,test)
+
+.PHONY: test-cov-prep
+test-cov-prep:
+ $(eval CC=gcc)
+ $(call test,vpp_gcov,cov-prep)
+
+.PHONY: test-cov-post
+test-cov-post:
+ $(eval CC=gcc)
+ $(call test,vpp_gcov,cov-post)
.PHONY: test-all
test-all:
- $(eval EXTENDED_TESTS=yes)
- $(call test,vpp,vpp,test)
+ $(eval EXTENDED_TESTS=1)
+ $(call test,vpp,test)
.PHONY: test-all-debug
test-all-debug:
- $(eval EXTENDED_TESTS=yes)
- $(call test,vpp,vpp_debug,test)
+ $(eval EXTENDED_TESTS=1)
+ $(call test,vpp_debug,test)
+
+.PHONY: test-all-cov
+test-all-cov:
+ $(eval CC=gcc)
+ $(eval TEST_GCOV=1)
+ $(eval EXTENDED_TESTS=1)
+ $(call test,vpp_gcov,test)
.PHONY: papi-wipe
papi-wipe: test-wipe-papi
@@ -428,27 +524,29 @@ papi-wipe: test-wipe-papi
.PHONY: test-wipe-papi
test-wipe-papi:
- @make -C test wipe-papi
+ @$(MAKE) -C test wipe-papi
.PHONY: test-help
test-help:
- @make -C test help
+ @$(MAKE) -C test help
.PHONY: test-wipe
test-wipe:
- @make -C test wipe
+ @$(MAKE) -C test wipe
.PHONY: test-shell
test-shell:
- $(call test,vpp,vpp,shell)
+ $(call test,vpp,shell)
.PHONY: test-shell-debug
test-shell-debug:
- $(call test,vpp,vpp_debug,shell)
+ $(call test,vpp_debug,shell)
-.PHONY: test-shell-gcov
-test-shell-gcov:
- $(call test,vpp,vpp_gcov,shell)
+.PHONY: test-shell-cov
+test-shell-cov:
+ $(eval CC=gcc)
+ $(eval TEST_GCOV=1)
+ $(call test,vpp_gcov,shell)
.PHONY: test-dep
test-dep:
@@ -456,62 +554,64 @@ test-dep:
.PHONY: test-doc
test-doc:
- @make -C test doc
+ @echo "make test-doc is DEPRECATED: use 'make docs'"
+ sleep 300
.PHONY: test-wipe-doc
test-wipe-doc:
- @make -C test wipe-doc
-
-.PHONY: test-cov
-test-cov:
- $(eval EXTENDED_TESTS=yes)
- $(call test,vpp,vpp_gcov,cov)
+ @echo "make test-wipe-doc is DEPRECATED"
+ sleep 300
.PHONY: test-wipe-cov
test-wipe-cov:
- @make -C test wipe-cov
+ $(call make,$(PLATFORM)_gcov,$(addsuffix -wipe,$(TARGETS)))
+ @$(MAKE) -C test wipe-cov
.PHONY: test-wipe-all
test-wipe-all:
- @make -C test wipe-all
+ @$(MAKE) -C test wipe-all
+# Note: All python venv consolidated in test/Makefile, test/requirements*.txt
.PHONY: test-checkstyle
test-checkstyle:
- @make -C test checkstyle
+ $(warning test-checkstyle is deprecated. Running checkstyle-python.")
+ @$(MAKE) -C test checkstyle-python-all
+# Note: All python venv consolidated in test/Makefile, test/requirements*.txt
.PHONY: test-checkstyle-diff
test-checkstyle-diff:
- @make -C test checkstyle-diff
+ $(warning test-checkstyle-diff is deprecated. Running checkstyle-python.")
+ @$(MAKE) -C test checkstyle-python-all
.PHONY: test-refresh-deps
test-refresh-deps:
- @make -C test refresh-deps
+ @$(MAKE) -C test refresh-deps
.PHONY: retest
retest:
- $(call test,vpp,vpp,retest)
+ $(call test,vpp,retest)
.PHONY: retest-debug
retest-debug:
- $(call test,vpp,vpp_debug,retest)
+ $(call test,vpp_debug,retest)
.PHONY: retest-all
retest-all:
- $(eval EXTENDED_TESTS=yes)
- $(call test,vpp,vpp,retest)
+ $(eval EXTENDED_TESTS=1)
+ $(call test,vpp,retest)
.PHONY: retest-all-debug
retest-all-debug:
- $(eval EXTENDED_TESTS=yes)
- $(call test,vpp,vpp_debug,retest)
+ $(eval EXTENDED_TESTS=1)
+ $(call test,vpp_debug,retest)
.PHONY: test-start-vpp-in-gdb
test-start-vpp-in-gdb:
- $(call test,vpp,vpp,start-gdb)
+ $(call test,vpp,start-gdb)
.PHONY: test-start-vpp-debug-in-gdb
test-start-vpp-debug-in-gdb:
- $(call test,vpp,vpp_debug,start-gdb)
+ $(call test,vpp_debug,start-gdb)
ifeq ("$(wildcard $(STARTUP_CONF))","")
define run
@@ -547,7 +647,7 @@ debug:
.PHONY: build-coverity
build-coverity:
$(call make,$(PLATFORM)_coverity,install-packages)
- @make -C build-root PLATFORM=vpp TAG=vpp_coverity libmemif-install
+ @$(MAKE) -C build-root PLATFORM=vpp TAG=vpp_coverity libmemif-install
.PHONY: debug-release
debug-release:
@@ -585,15 +685,15 @@ pkg-deb-debug:
.PHONY: pkg-rpm
pkg-rpm: dist
- make -C extras/rpm
+ $(MAKE) -C extras/rpm
.PHONY: pkg-srpm
pkg-srpm: dist
- make -C extras/rpm srpm
+ $(MAKE) -C extras/rpm srpm
.PHONY: install-ext-deps
install-ext-deps:
- make -C build/external install-$(PKG)
+ $(MAKE) -C build/external install-$(PKG)
.PHONY: install-ext-dep
install-ext-dep: install-ext-deps
@@ -608,7 +708,7 @@ json-api-files-debug:
.PHONY: go-api-files
go-api-files: json-api-files
- $(WS_ROOT)/src/tools/vppapigen/generate_go.py
+ $(WS_ROOT)/src/tools/vppapigen/generate_go.py $(ARGS)
.PHONY: ctags
ctags: ctags.files
@@ -638,15 +738,27 @@ checkstyle-commit:
@extras/scripts/check_commit_msg.sh
.PHONY: checkstyle-test
-checkstyle-test: test-checkstyle
+checkstyle-test:
+ $(warning test-checkstyle is deprecated. Running checkstyle-python.")
+ @$(MAKE) -C test checkstyle-python-all
+
+# Note: All python venv consolidated in test/Makefile, test/requirements*.txt
+.PHONY: checkstyle-python
+checkstyle-python:
+ @$(MAKE) -C test checkstyle-python-all
.PHONY: checkstyle-all
-checkstyle-all: checkstyle-commit checkstyle checkstyle-test
+checkstyle-all: checkstyle-commit checkstyle checkstyle-python docs-spell
.PHONY: fixstyle
fixstyle:
@extras/scripts/checkstyle.sh --fix
+# Note: All python venv consolidated in test/Makefile, test/requirements*.txt
+.PHONY: fixstyle-python
+fixstyle-python:
+ @$(MAKE) -C test fixstyle-python-all
+
.PHONY: checkstyle-api
checkstyle-api:
@extras/scripts/crcchecker.py --check-patchset
@@ -672,62 +784,53 @@ checkfeaturelist: centos-pyyaml
# Build the documentation
#
-# Doxygen configuration and our utility scripts
-export DOXY_DIR ?= $(WS_ROOT)/doxygen
-
-define make-doxy
- @OS_ID="$(OS_ID)" make -C $(DOXY_DIR) $@
-endef
-
.PHONY: bootstrap-doxygen
bootstrap-doxygen:
- $(call make-doxy)
+ @echo "make bootstrap-doxygen is DEPRECATED"
+ sleep 300
.PHONY: doxygen
-doxygen: bootstrap-doxygen
- $(call make-doxy)
+doxygen: docs
+ @echo "make doxygen is DEPRECATED: use 'make docs'"
+ sleep 300
.PHONY: wipe-doxygen
wipe-doxygen:
- $(call make-doxy)
+ @echo "make wipe-doxygen is DEPRECATED"
+ sleep 300
-# Sphinx Documents
-export DOCS_DIR = $(WS_ROOT)/docs
-export VENV_DIR = $(WS_ROOT)/sphinx_venv
-export SPHINX_SCRIPTS_DIR = $(WS_ROOT)/docs/scripts
-
-.PHONY: docs-venv
-docs-venv:
- @($(SPHINX_SCRIPTS_DIR)/sphinx-make.sh venv)
+.PHONY: docs-%
+docs-%:
+ @$(MAKE) -C $(WS_ROOT)/docs $*
.PHONY: docs
-docs: $(DOCS_DIR)
- @($(SPHINX_SCRIPTS_DIR)/sphinx-make.sh html)
-
-.PHONY: docs-clean
-docs-clean:
- @rm -rf $(DOCS_DIR)/_build
- @rm -rf $(VENV_DIR)
+docs:
+ @$(MAKE) -C $(WS_ROOT)/docs docs
.PHONY: pkg-verify
pkg-verify: install-dep $(BR)/.deps.ok install-ext-deps
- $(call banner,"Building for PLATFORM=vpp using gcc")
- @make -C build-root PLATFORM=vpp TAG=vpp wipe-all install-packages
+ $(call banner,"Building for PLATFORM=vpp")
+ @$(MAKE) -C build-root PLATFORM=vpp TAG=vpp wipe-all install-packages
$(call banner,"Building sample-plugin")
- @make -C build-root PLATFORM=vpp TAG=vpp sample-plugin-install
+ @$(MAKE) -C build-root PLATFORM=vpp TAG=vpp sample-plugin-install
$(call banner,"Building libmemif")
- @make -C build-root PLATFORM=vpp TAG=vpp libmemif-install
+ @$(MAKE) -C build-root PLATFORM=vpp TAG=vpp libmemif-install
$(call banner,"Building $(PKG) packages")
- @make pkg-$(PKG)
+ @$(MAKE) pkg-$(PKG)
-MAKE_VERIFY_GATE_OS ?= ubuntu-18.04
+# Note: 'make verify' target is not used by ci-management scripts
+MAKE_VERIFY_GATE_OS ?= ubuntu-22.04
.PHONY: verify
verify: pkg-verify
ifeq ($(OS_ID)-$(OS_VERSION_ID),$(MAKE_VERIFY_GATE_OS))
$(call banner,"Testing vppapigen")
@src/tools/vppapigen/test_vppapigen.py
$(call banner,"Running tests")
- @make COMPRESS_FAILED_TEST_LOGS=yes RETRIES=3 test
+ @$(MAKE) COMPRESS_FAILED_TEST_LOGS=yes RETRIES=3 test
else
$(call banner,"Skipping tests. Tests under 'make verify' supported on $(MAKE_VERIFY_GATE_OS)")
endif
+
+.PHONY: check-dpdk-mlx
+check-dpdk-mlx:
+ @[ $$($(MAKE) -sC build/external dpdk-show-DPDK_MLX_DEFAULT) = y ]