Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Fix coverity CIDs 161048, 163895
[vpp.git]
/
Makefile
diff --git
a/Makefile
b/Makefile
index
6af33b0
..
f0173cc
100644
(file)
--- a/
Makefile
+++ b/
Makefile
@@
-11,8
+11,8
@@
# See the License for the specific language governing permissions and
# limitations under the License.
# See the License for the specific language governing permissions and
# limitations under the License.
-WS_ROOT=$(CURDIR)
-BR=$(WS_ROOT)/build-root
+
export
WS_ROOT=$(CURDIR)
+
export
BR=$(WS_ROOT)/build-root
CCACHE_DIR?=$(BR)/.ccache
GDB?=gdb
PLATFORM?=vpp
CCACHE_DIR?=$(BR)/.ccache
GDB?=gdb
PLATFORM?=vpp
@@
-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
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 = 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
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 " 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 " 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)"
@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 " 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"
@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-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"
@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=<path> - gdb binary to use for debugging"
@echo " PLATFORM=<name> - target platform. default is vpp"
@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=<
name> - only run specific test
"
+ @echo " TEST=<
filter> - apply filter to test set, see test-help
"
@echo ""
@echo "Current Argument Values:"
@echo " V = $(V)"
@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)
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
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)
@sudo -E apt-get $(CONFIRM) $(FORCE) install $(DEB_DEPENDS)
else ifneq ("$(wildcard /etc/redhat-release)","")
@sudo -E yum groupinstall $(CONFIRM) $(RPM_DEPENDS_GROUPS)
@@
-202,18
+215,18
@@
wipe-release: $(BR)/.bootstrap.ok
rebuild-release: wipe-release build-release
rebuild-release: wipe-release build-release
-VPP_PYTHON_PREFIX=$(BR)/python
+
export
VPP_PYTHON_PREFIX=$(BR)/python
define test
$(if $(filter-out $(3),retest),make -C $(BR) PLATFORM=$(1) TAG=$(2) vpp-install,)
make -C test \
define test
$(if $(filter-out $(3),retest),make -C $(BR) PLATFORM=$(1) TAG=$(2) vpp-install,)
make -C test \
- BR=$(BR) \
VPP_TEST_BUILD_DIR=$(BR)/build-$(2)-native \
VPP_TEST_BIN=$(BR)/install-$(2)-native/vpp/bin/vpp \
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/ \
VPP_TEST_BUILD_DIR=$(BR)/build-$(2)-native \
VPP_TEST_BIN=$(BR)/install-$(2)-native/vpp/bin/vpp \
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/ \
- WS_ROOT=$(WS_ROOT) V=$(V) TEST=$(TEST) VPP_PYTHON_PREFIX=$(VPP_PYTHON_PREFIX) $(3)
+ EXTENDED_TESTS=$(EXTENDED_TESTS) \
+ $(3)
endef
test: bootstrap
endef
test: bootstrap
@@
-222,23
+235,40
@@
test: bootstrap
test-debug: bootstrap
$(call test,vpp_lite,vpp_lite_debug,test)
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-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:
test-doc:
- @make -C test
WS_ROOT=$(WS_ROOT) BR=$(BR) VPP_PYTHON_PREFIX=$(VPP_PYTHON_PREFIX)
doc
+ @make -C test doc
test-wipe-doc:
test-wipe-doc:
- @make -C test wipe-doc
BR=$(BR)
+ @make -C test wipe-doc
test-cov: bootstrap
$(call test,vpp_lite,vpp_lite_gcov,cov)
test-wipe-cov:
test-cov: bootstrap
$(call test,vpp_lite,vpp_lite_gcov,cov)
test-wipe-cov:
- @make -C test wipe-cov BR=$(BR)
+ @make -C test wipe-cov
+
+test-checkstyle:
+ @make -C test checkstyle
retest:
$(call test,vpp_lite,vpp_lite,retest)
retest:
$(call test,vpp_lite,vpp_lite,retest)
@@
-277,6
+307,9
@@
run-release:
debug:
$(call run, $(BR)/install-$(PLATFORM)_debug-native,$(GDB) $(GDB_ARGS) --args)
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)
debug-release:
$(call run, $(BR)/install-$(PLATFORM)-native,$(GDB) $(GDB_ARGS) --args)
@@
-292,6
+325,9
@@
pkg-deb:
pkg-rpm: dist
$(call make,$(PLATFORM),install-rpm)
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 $<
ctags: ctags.files
@ctags --totals --tag-relative -L $<
@rm $<
@@
-316,7
+352,7
@@
fixstyle:
export DOXY_DIR ?= $(WS_ROOT)/doxygen
define make-doxy
export DOXY_DIR ?= $(WS_ROOT)/doxygen
define make-doxy
- @OS_ID="$(OS_ID)"
WS_ROOT="$(WS_ROOT)" BR="$(BR)"
make -C $(DOXY_DIR) $@
+ @OS_ID="$(OS_ID)" make -C $(DOXY_DIR) $@
endef
.PHONY: bootstrap-doxygen doxygen wipe-doxygen
endef
.PHONY: bootstrap-doxygen doxygen wipe-doxygen
@@
-337,25
+373,20
@@
define banner
@echo " "
endef
@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
$(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,"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