X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=Makefile;h=fe5e6e950bab8d1378f4c651266c61c3fc4cfec0;hb=f382b06febf2b26c37fd384824a1915e16517a2b;hp=fde91c4a680bff285ff8f52c680234235e75df0c;hpb=6d97e62c009086030cddb38c5432c8f860b1c02c;p=vpp.git diff --git a/Makefile b/Makefile index fde91c4a680..fe5e6e950ba 100644 --- a/Makefile +++ b/Makefile @@ -65,29 +65,37 @@ 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 libffi6 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 DEB_DEPENDS += python3-dev # needed for python3 -m pip install psutil # python3.6 on 16.04 requires python36-dev -ifeq ($(OS_VERSION_ID),16.04) - DEB_DEPENDS += python-dev +LIBFFI=libffi6 # works on all but 20.04 + +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 += clang-9 +else ifeq ($(OS_VERSION_ID),20.04) + DEB_DEPENDS += python3-virtualenv DEB_DEPENDS += libssl-dev + 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 +DEB_DEPENDS += $(LIBFFI) + RPM_DEPENDS = redhat-lsb glibc-static RPM_DEPENDS += apr-devel RPM_DEPENDS += numactl-devel @@ -97,6 +105,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 @@ -110,7 +120,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' @@ -120,7 +130,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 @@ -128,6 +138,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) @@ -216,9 +231,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" @@ -308,13 +325,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) @@ -453,7 +472,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: @@ -647,6 +666,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 @@ -665,6 +688,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