udp: fix csum computation when offload disabled
[vpp.git] / Makefile
index dadb762..6675b51 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -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), \
@@ -57,7 +61,7 @@ endif
 
 ifeq ($(filter ubuntu debian linuxmint,$(OS_ID)),$(OS_ID))
 PKG=deb
-else ifeq ($(filter rhel centos fedora opensuse-leap rocky,$(OS_ID)),$(OS_ID))
+else ifeq ($(filter rhel centos fedora opensuse-leap rocky almalinux,$(OS_ID)),$(OS_ID))
 PKG=rpm
 endif
 
@@ -82,6 +86,7 @@ DEB_DEPENDS += nasm
 DEB_DEPENDS += iperf ethtool  # for 'make test TEST=vm_vpp_interfaces'
 DEB_DEPENDS += libpcap-dev
 DEB_DEPENDS += tshark
+DEB_DEPENDS += jq # for extracting test summary from .json report (hs-test)
 
 LIBFFI=libffi6 # works on all but 20.04 and debian-testing
 
@@ -109,6 +114,8 @@ else ifeq ($(OS_ID)-$(OS_VERSION_ID),debian-11)
 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 += clang-11 clang-format-11
@@ -148,6 +155,15 @@ else ifeq ($(OS_ID),rocky)
        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
@@ -296,7 +312,7 @@ help:
 
 $(BR)/.deps.ok:
 ifeq ($(findstring y,$(UNATTENDED)),y)
-       make install-dep
+       $(MAKE) install-dep
 endif
 ifeq ($(filter ubuntu debian linuxmint,$(OS_ID)),$(OS_ID))
        @MISSING=$$(apt-get install -y -qq -s $(DEB_DEPENDS) | grep "^Inst ") ; \
@@ -369,7 +385,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:
@@ -434,9 +450,9 @@ rebuild-release: wipe-release build-release
 export TEST_DIR ?= $(WS_ROOT)/test
 
 define test
-       $(if $(filter-out $(2),retest),make -C $(BR) PLATFORM=vpp TAG=$(1) CC=$(CC) 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 \
+       $(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/ \
@@ -509,15 +525,15 @@ 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:
@@ -550,27 +566,27 @@ test-wipe-doc:
 .PHONY: test-wipe-cov
 test-wipe-cov:
        $(call make,$(PLATFORM)_gcov,$(addsuffix -wipe,$(TARGETS)))
-       @make -C test wipe-cov
+       @$(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:
        $(warning test-checkstyle is deprecated. Running checkstyle-python.")
-       @make -C test checkstyle-python-all
+       @$(MAKE) -C test checkstyle-python-all
 
 # Note: All python venv consolidated in test/Makefile, test/requirements*.txt
 .PHONY: test-checkstyle-diff
 test-checkstyle-diff:
        $(warning test-checkstyle-diff is deprecated. Running checkstyle-python.")
-       @make -C test checkstyle-python-all
+       @$(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:
@@ -632,7 +648,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:
@@ -670,15 +686,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
@@ -725,12 +741,12 @@ checkstyle-commit:
 .PHONY: checkstyle-test
 checkstyle-test:
        $(warning test-checkstyle is deprecated. Running checkstyle-python.")
-       @make -C test checkstyle-python-all
+       @$(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
+       @$(MAKE) -C test checkstyle-python-all
 
 .PHONY: checkstyle-all
 checkstyle-all: checkstyle-commit checkstyle checkstyle-python docs-spell
@@ -742,7 +758,7 @@ fixstyle:
 # Note: All python venv consolidated in test/Makefile, test/requirements*.txt
 .PHONY: fixstyle-python
 fixstyle-python:
-       @make -C test fixstyle-python-all
+       @$(MAKE) -C test fixstyle-python-all
 
 .PHONY: checkstyle-api
 checkstyle-api:
@@ -786,22 +802,22 @@ wipe-doxygen:
 
 .PHONY: docs-%
 docs-%:
-       @make -C $(WS_ROOT)/docs $*
+       @$(MAKE) -C $(WS_ROOT)/docs $*
 
 .PHONY: docs
 docs:
-       @make -C $(WS_ROOT)/docs 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")
-       @make -C build-root PLATFORM=vpp TAG=vpp wipe-all install-packages
+       @$(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)
 
 # Note: 'make verify' target is not used by ci-management scripts
 MAKE_VERIFY_GATE_OS ?= ubuntu-22.04
@@ -811,11 +827,11 @@ 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 ]
+       @[ $$($(MAKE) -sC build/external dpdk-show-DPDK_MLX_DEFAULT) = y ]