X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=Makefile;h=f0173cc1757afbbc727d3bf947a106dc91a5c237;hb=78053e164fbb75c014126a3deff440f165504582;hp=6e512fe5a2f2f8d3e5f66d4b317370981b216a92;hpb=6484b3baa3ef3186dc11fbf7706494da95079626;p=vpp.git diff --git a/Makefile b/Makefile index 6e512fe5a2f..f0173cc1757 100644 --- a/Makefile +++ b/Makefile @@ -30,10 +30,16 @@ 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)) +PKG=deb +else ifeq ($(filter rhel centos,$(OS_ID)),$(OS_ID)) +PKG=rpm +endif + DEB_DEPENDS = curl build-essential autoconf automake bison libssl-dev ccache DEB_DEPENDS += debhelper dkms git libtool libganglia1-dev libapr1-dev dh-systemd DEB_DEPENDS += libconfuse-dev git-review exuberant-ctags cscope pkg-config -DEB_DEPENDS += python-dev python-virtualenv python-pip lcov chrpath autoconf +DEB_DEPENDS += python-dev python-virtualenv python-pip lcov chrpath autoconf nasm ifeq ($(OS_VERSION_ID),14.04) DEB_DEPENDS += openjdk-8-jdk-headless else @@ -69,14 +75,19 @@ help: @echo " wipe-release - wipe all products of release build " @echo " build - build debug binaries" @echo " build-release - build release binaries" + @echo " build-coverity - build coverity artifacts" @echo " rebuild - wipe and build debug binares" @echo " rebuild-release - wipe and build release binares" @echo " run - run debug binary" @echo " run-release - run release binary" @echo " debug - run debug binary with debugger" @echo " debug-release - run release binary with debugger" - @echo " test - build and run functional tests" - @echo " test-debug - build and run functional tests (debug build)" + @echo " test - build and run (basic) functional tests" + @echo " test-debug - build and run (basic) functional tests (debug build)" + @echo " test-all - build and run (all) functional tests" + @echo " test-all-debug - build and run (all) functional tests (debug build)" + @echo " test-shell - enter shell with test environment" + @echo " test-shell-debug - enter shell with test environment (debug build)" @echo " test-wipe - wipe files generated by unit tests" @echo " retest - run functional tests" @echo " retest-debug - run functional tests (debug build)" @@ -84,6 +95,7 @@ help: @echo " run-vat - run vpp-api-test tool" @echo " pkg-deb - build DEB packages" @echo " pkg-rpm - build RPM packages" + @echo " dpdk-install-dev - install DPDK development packages" @echo " ctags - (re)generate ctags database" @echo " gtags - (re)generate gtags database" @echo " cscope - (re)generate cscope database" @@ -96,6 +108,7 @@ help: @echo " test-wipe-doc - wipe documentation for test framework" @echo " test-cov - generate code coverage report for test framework" @echo " test-wipe-cov - wipe code coverage report for test framework" + @echo " test-checkstyle - check PEP8 compliance for test framework" @echo "" @echo "Make Arguments:" @echo " V=[0|1] - set build verbosity level" @@ -106,7 +119,7 @@ help: @echo " startup.conf file is present" @echo " GDB= - gdb binary to use for debugging" @echo " PLATFORM= - target platform. default is vpp" - @echo " TEST= - only run specific test" + @echo " TEST= - apply filter to test set, see test-help" @echo "" @echo "Current Argument Values:" @echo " V = $(V)" @@ -153,8 +166,8 @@ ifeq ($(OS_ID),ubuntu) ifeq ($(OS_VERSION_ID),14.04) @sudo -E apt-get $(CONFIRM) $(FORCE) install software-properties-common @sudo -E add-apt-repository ppa:openjdk-r/ppa $(CONFIRM) - @sudo -E apt-get update endif + @sudo -E apt-get update @sudo -E apt-get $(CONFIRM) $(FORCE) install $(DEB_DEPENDS) else ifneq ("$(wildcard /etc/redhat-release)","") @sudo -E yum groupinstall $(CONFIRM) $(RPM_DEPENDS_GROUPS) @@ -212,6 +225,7 @@ define test VPP_TEST_PLUGIN_PATH=$(BR)/install-$(2)-native/vpp/lib64/vpp_plugins \ VPP_TEST_INSTALL_PATH=$(BR)/install-$(2)-native/ \ LD_LIBRARY_PATH=$(BR)/install-$(2)-native/vpp/lib64/ \ + EXTENDED_TESTS=$(EXTENDED_TESTS) \ $(3) endef @@ -221,12 +235,26 @@ test: bootstrap test-debug: bootstrap $(call test,vpp_lite,vpp_lite_debug,test) +test-all: bootstrap + $(eval EXTENDED_TESTS=yes) + $(call test,vpp_lite,vpp_lite,test) + +test-all-debug: bootstrap + $(eval EXTENDED_TESTS=yes) + $(call test,vpp_lite,vpp_lite_debug,test) + test-help: @make -C test help test-wipe: @make -C test wipe +test-shell: bootstrap + $(call test,vpp_lite,vpp_lite,shell) + +test-shell-debug: bootstrap + $(call test,vpp_lite,vpp_lite_debug,shell) + test-doc: @make -C test doc @@ -239,6 +267,9 @@ test-cov: bootstrap test-wipe-cov: @make -C test wipe-cov +test-checkstyle: + @make -C test checkstyle + retest: $(call test,vpp_lite,vpp_lite,retest) @@ -276,6 +307,9 @@ run-release: debug: $(call run, $(BR)/install-$(PLATFORM)_debug-native,$(GDB) $(GDB_ARGS) --args) +build-coverity: + $(call make,$(PLATFORM)_coverity,install-packages) + debug-release: $(call run, $(BR)/install-$(PLATFORM)-native,$(GDB) $(GDB_ARGS) --args) @@ -291,6 +325,9 @@ pkg-deb: pkg-rpm: dist $(call make,$(PLATFORM),install-rpm) +dpdk-install-dev: + make -C dpdk install-$(PKG) + ctags: ctags.files @ctags --totals --tag-relative -L $< @rm $< @@ -336,25 +373,20 @@ define banner @echo " " endef -verify: install-dep $(BR)/.bootstrap.ok +verify: install-dep $(BR)/.bootstrap.ok dpdk-install-dev $(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_lite using gcc") @make -C build-root PLATFORM=vpp_lite TAG=vpp_lite wipe-all install-packages -ifeq ($(OS_ID),ubuntu) -ifeq ($(OS_VERSION_ID),16.04) +ifeq ($(OS_ID)-$(OS_VERSION_ID),ubuntu-16.04) $(call banner,"Installing dependencies") @sudo -E apt-get update @sudo -E apt-get $(CONFIRM) $(FORCE) install clang $(call banner,"Building for PLATFORM=vpp using clang") @make -C build-root CC=clang PLATFORM=vpp TAG=vpp_clang wipe-all install-packages endif - $(call banner,"Building deb packages") - @make pkg-deb -endif -ifeq ($(OS_ID),centos) - $(call banner,"Building rpm packages") - @make pkg-rpm -endif + $(call banner,"Building $(PKG) packages") + @make pkg-$(PKG) + @make test-all