X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=Makefile;h=feb23e50cb83f38054981e05d30fd99631cd8e26;hb=4a76d6f6d;hp=67fdcd487e26e4a0bafaa7ab0ecf4804fc421c76;hpb=33c9931cb4108a8394420fcae5d4c8f9ea0f367f;p=vpp.git diff --git a/Makefile b/Makefile index 67fdcd487e2..feb23e50cb8 100644 --- a/Makefile +++ b/Makefile @@ -59,19 +59,13 @@ else ifeq ($(filter rhel centos fedora opensuse opensuse-leap opensuse-tumblewee PKG=rpm endif -# on ubuntu 18.04 prefer gcc-8 if it is installed and CC is not set -ifeq ($(OS_VERSION_ID)-$(CC)-$(shell which gcc-8 > /dev/null; echo $$?),18.04-cc-0) - CC = gcc-8 -endif - # +libganglia1-dev if building the gmond plugin DEB_DEPENDS = curl build-essential autoconf automake ccache DEB_DEPENDS += debhelper dkms git libtool libapr1-dev dh-systemd DEB_DEPENDS += libconfuse-dev git-review exuberant-ctags cscope pkg-config DEB_DEPENDS += lcov chrpath autoconf indent clang-format libnuma-dev -DEB_DEPENDS += python-all python3-all python3-setuptools -DEB_DEPENDS += python-virtualenv python-pip check +DEB_DEPENDS += python3-all python3-setuptools check DEB_DEPENDS += libboost-all-dev libffi-dev python3-ply libmbedtls-dev DEB_DEPENDS += cmake ninja-build uuid-dev python3-jsonschema python3-yaml DEB_DEPENDS += python3-venv # ensurepip @@ -80,20 +74,23 @@ DEB_DEPENDS += python3-dev # needed for python3 -m pip install psutil LIBFFI=libffi6 # works on all but 20.04 -ifeq ($(OS_VERSION_ID),16.04) - DEB_DEPENDS += python-dev +ifeq ($(OS_VERSION_ID),18.04) + DEB_DEPENDS += python-dev python-all python-pip python-virtualenv DEB_DEPENDS += libssl-dev -else ifeq ($(OS_VERSION_ID),18.04) - DEB_DEPENDS += python-dev - DEB_DEPENDS += libssl-dev - DEB_DEPENDS += gcc-8 + DEB_DEPENDS += clang-9 else ifeq ($(OS_VERSION_ID),20.04) + DEB_DEPENDS += python3-virtualenv + DEB_DEPENDS += libssl-dev + DEB_DEPENDS += libelf-dev # for libbpf (af_xdp) LIBFFI=libffi7 else ifeq ($(OS_ID)-$(OS_VERSION_ID),debian-8) DEB_DEPENDS += libssl-dev + DEB_DEPENDS += python-dev python-all python-pip python-virtualenv APT_ARGS = -t jessie-backports else ifeq ($(OS_ID)-$(OS_VERSION_ID),debian-9) DEB_DEPENDS += libssl1.0-dev + DEB_DEPENDS += python-all python-pip + DEB_DEPENDS += python-dev python-all python-pip python-virtualenv else DEB_DEPENDS += libssl-dev endif @@ -109,6 +106,8 @@ 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 ifeq ($(OS_ID),fedora) RPM_DEPENDS += dnf-utils @@ -122,7 +121,7 @@ ifeq ($(OS_ID),fedora) else ifeq ($(OS_ID)-$(OS_VERSION_ID),centos-8) RPM_DEPENDS += yum-utils RPM_DEPENDS += compat-openssl10 - RPM_DEPENDS += python36-devel python3-ply + RPM_DEPENDS += python2-devel python36-devel python3-ply RPM_DEPENDS += python3-virtualenv python3-jsonschema RPM_DEPENDS += cmake RPM_DEPENDS_GROUPS = 'Development Tools' @@ -132,7 +131,7 @@ else RPM_DEPENDS += python36-ply # for vppapigen RPM_DEPENDS += python3-devel python3-pip RPM_DEPENDS += python-virtualenv python36-jsonschema - RPM_DEPENDS += devtoolset-7 + RPM_DEPENDS += devtoolset-9 RPM_DEPENDS += cmake3 RPM_DEPENDS_GROUPS = 'Development Tools' endif @@ -140,6 +139,11 @@ endif # +ganglia-devel if building the ganglia plugin RPM_DEPENDS += chrpath libffi-devel rpm-build + +RPM_DEPENDS_DEBUG = glibc-debuginfo e2fsprogs-debuginfo +RPM_DEPENDS_DEBUG += krb5-debuginfo openssl-debuginfo +RPM_DEPENDS_DEBUG += zlib-debuginfo nss-softokn-debuginfo +RPM_DEPENDS_DEBUG += yum-plugin-auto-update-debug-info # lowercase- replace spaces with dashes. SUSE_NAME= $(shell grep '^NAME=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g' | sed -e 's/ /-/' | awk '{print tolower($$0)}') SUSE_ID= $(shell grep '^VERSION_ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g' | cut -d' ' -f2) @@ -228,9 +232,11 @@ help: @echo " ctags - (re)generate ctags database" @echo " gtags - (re)generate gtags database" @echo " cscope - (re)generate cscope database" + @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-api - check api for incompatible changes" @echo " fixstyle - fix coding style" @echo " doxygen - (re)generate documentation" @echo " bootstrap-doxygen - setup Doxygen dependencies" @@ -320,13 +326,15 @@ ifeq ($(OS_ID),rhel) @sudo -E yum install $(CONFIRM) $(RPM_DEPENDS) @sudo -E debuginfo-install $(CONFIRM) glibc openssl-libs mbedtls-devel zlib else ifeq ($(OS_ID)-$(OS_VERSION_ID),centos-8) + @sudo -E dnf install $(CONFIRM) epel-release + @sudo -E dnf config-manager --set-enabled PowerTools @sudo -E dnf groupinstall $(CONFIRM) $(RPM_DEPENDS_GROUPS) @sudo -E dnf install $(CONFIRM) $(RPM_DEPENDS) else ifeq ($(OS_ID),centos) @sudo -E yum install $(CONFIRM) centos-release-scl-rh epel-release @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 yum install $(CONFIRM) --enablerepo=base-debuginfo $(RPM_DEPENDS_DEBUG) else ifeq ($(OS_ID),fedora) @sudo -E dnf groupinstall $(CONFIRM) $(RPM_DEPENDS_GROUPS) @sudo -E dnf install $(CONFIRM) $(RPM_DEPENDS) @@ -465,7 +473,7 @@ papi-wipe: test-wipe-papi .PHONY: test-wipe-papi test-wipe-papi: - @make -C test papi-wipe + @make -C test wipe-papi .PHONY: test-help test-help: @@ -659,6 +667,10 @@ gtags: ctags cscope: cscope.files @cscope -b -q -v +.PHONY: compdb +compdb: + @ninja -C build-root/build-vpp_debug-native/vpp -t compdb > compile_commands.json + .PHONY: checkstyle checkstyle: checkfeaturelist @build-root/scripts/checkstyle.sh @@ -677,6 +689,10 @@ checkstyle-all: checkstyle-commit checkstyle checkstyle-test fixstyle: @build-root/scripts/checkstyle.sh --fix +.PHONY: checkstyle-api +checkstyle-api: + @extras/scripts/crcchecker.py --check-patch + # necessary because Bug 1696324 - Update to python3.6 breaks PyYAML dependencies # Status: CLOSED CANTFIX # https://bugzilla.redhat.com/show_bug.cgi?id=1696324