ifeq ($(filter ubuntu debian,$(OS_ID)),$(OS_ID))
PKG=deb
-else ifeq ($(filter rhel centos fedora,$(OS_ID)),$(OS_ID))
+else ifeq ($(filter rhel centos fedora opensuse-leap,$(OS_ID)),$(OS_ID))
PKG=rpm
endif
DEB_DEPENDS += libconfuse-dev git-review exuberant-ctags cscope pkg-config
DEB_DEPENDS += lcov chrpath autoconf libnuma-dev
DEB_DEPENDS += python3-all python3-setuptools check
-DEB_DEPENDS += libffi-dev python3-ply libmbedtls-dev
+DEB_DEPENDS += libffi-dev python3-ply
DEB_DEPENDS += cmake ninja-build uuid-dev 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
-DEB_DEPENDS += enchant # for docs
+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 # for libbpf (af_xdp)
+DEB_DEPENDS += iperf3 # for 'make test TEST=vcl'
+DEB_DEPENDS += nasm
LIBFFI=libffi6 # works on all but 20.04 and debian-testing
DEB_DEPENDS += python3-virtualenv
DEB_DEPENDS += libssl-dev
DEB_DEPENDS += libelf-dev # for libbpf (af_xdp)
- # TODO: change CLANG_FORMAT_VER default in extras/scripts/checkstyle.sh
- # when clang-format-10 is removed
- DEB_DEPENDS += clang-11 clang-format-11 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)
- # TODO: change CLANG_FORMAT_VER default in extras/scripts/checkstyle.sh
- # when clang-format-10 is removed
- DEB_DEPENDS += clang-11 clang-format-11 clang-format-10
+ 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
- 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 += 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 += enchant # for docs
+RPM_DEPENDS += libnl3-devel libmnl-devel
+RPM_DEPENDS += nasm
ifeq ($(OS_ID),fedora)
RPM_DEPENDS += dnf-utils
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 nasm
+RPM_SUSE_DEVEL_DEPS += libopenssl-devel openssl-devel libuuid-devel
+
+RPM_SUSE_PYTHON_DEPS = python-devel python3-devel python-pip python3-pip
+RPM_SUSE_PYTHON_DEPS += python-rpm-macros python3-rpm-macros
+
+RPM_SUSE_PLATFORM_DEPS = distribution-release shadow rpm-build
+
+ifeq ($(OS_ID),opensuse-leap)
+ifeq ($(OS_VERSION_ID),15.3)
+ RPM_SUSE_DEVEL_DEPS += curl libstdc++-devel bison gcc-c++ zlib-devel xmlto
+ RPM_SUSE_DEVEL_DEPS += lsb-release
+ RPM_SUSE_DEVEL_DEPS += asciidoc git
+ RPM_SUSE_PYTHON_DEPS += python3 python2-ply
+endif
+ifeq ($(OS_VERSION_ID),15.0)
+ RPM_SUSE_DEVEL_DEPS += gcc git curl
+ RPM_SUSE_PYTHON_DEPS += python3-ply python2-virtualenv
+endif
+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
@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\" )"
@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)-$(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)
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,$(OS_ID)),$(OS_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
rebuild-release: wipe-release build-release
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) 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_INSTALL_PATH=$(BR)/install-$(2)-native/ \
+ 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) \
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)
+ $(call test,vpp,test)
.PHONY: test-debug
test-debug:
- $(call test,vpp,vpp_debug,test)
+ $(call test,vpp_debug,test)
.PHONY: test-gcov
test-gcov:
- $(call test,vpp,vpp_gcov,test)
+ $(call test,vpp_gcov,test)
.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: papi-wipe
papi-wipe: test-wipe-papi
.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)
+ $(call test,vpp_gcov,shell)
.PHONY: test-dep
test-dep:
.PHONY: test-cov
test-cov:
- $(eval EXTENDED_TESTS=yes)
- $(call test,vpp,vpp_gcov,cov)
+ $(eval EXTENDED_TESTS=1)
+ $(call test,vpp_gcov,cov)
.PHONY: test-wipe-cov
test-wipe-cov:
.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
.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