aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile56
1 files changed, 33 insertions, 23 deletions
diff --git a/Makefile b/Makefile
index 70a2fe6acdb..1806b8824ae 100644
--- a/Makefile
+++ b/Makefile
@@ -23,6 +23,11 @@ MACHINE=$(shell uname -m)
SUDO?=sudo -E
DPDK_CONFIG?=no-pci
+# we prefer clang by default
+ifeq ($(CC),cc)
+ CC=clang
+endif
+
ifeq ($(strip $(SHELL)),)
$(error "bash not found, VPP requires bash to build")
endif
@@ -85,7 +90,7 @@ endif
DEB_DEPENDS = curl build-essential autoconf automake ccache
DEB_DEPENDS += debhelper dkms git libtool libapr1-dev dh-python
DEB_DEPENDS += libconfuse-dev git-review exuberant-ctags cscope pkg-config
-DEB_DEPENDS += gcovr lcov chrpath autoconf libnuma-dev
+DEB_DEPENDS += clang gcovr lcov chrpath autoconf libnuma-dev
DEB_DEPENDS += python3-all python3-setuptools check
DEB_DEPENDS += libffi-dev python3-ply libunwind-dev
DEB_DEPENDS += cmake ninja-build python3-jsonschema python3-yaml
@@ -297,7 +302,7 @@ help:
@echo " build - build debug binaries"
@echo " build-release - build release binaries"
@echo " build-coverity - build coverity artifacts"
- @echo " build-vpp-gcov - build gcov vpp only"
+ @echo " build-gcov - build gcov vpp only"
@echo " rebuild - wipe and build debug binaries"
@echo " rebuild-release - wipe and build release binaries"
@echo " run - run debug binary"
@@ -317,6 +322,7 @@ help:
@echo " install-ext-dep[s] - install external development dependencies"
@echo " install-opt-deps - install optional dependencies"
@echo " ctags - (re)generate ctags database"
+ @echo " etags - (re)generate etags database"
@echo " gtags - (re)generate gtags database"
@echo " cscope - (re)generate cscope database"
@echo " compdb - (re)generate compile_commands.json"
@@ -452,7 +458,7 @@ endif
install-deps: install-dep
define make
- @$(MAKE) -C $(BR) PLATFORM=$(PLATFORM) TAG=$(1) $(2)
+ @$(MAKE) -C $(BR) CC=$(CC) PLATFORM=$(PLATFORM) TAG=$(1) $(2)
endef
$(BR)/scripts/.version:
@@ -507,9 +513,10 @@ rebuild: wipe build
build-release: $(BR)/.deps.ok
$(call make,$(PLATFORM),$(addsuffix -install,$(TARGETS)))
-.PHONY: build-vpp-gcov
-build-vpp-gcov:
- $(call test,vpp_gcov)
+.PHONY: build-gcov
+build-gcov: $(BR)/.deps.ok
+ $(eval CC=gcc)
+ $(call make,vpp_gcov,$(addsuffix -install,$(TARGETS)))
.PHONY: wipe-release
wipe-release: test-wipe $(BR)/.deps.ok
@@ -540,16 +547,10 @@ endef
.PHONY: test
test:
-ifeq ($(CC),cc)
- $(eval CC=clang)
-endif
$(call test,vpp,test)
.PHONY: test-debug
test-debug:
-ifeq ($(CC),cc)
- $(eval CC=clang)
-endif
$(call test,vpp_debug,test)
.PHONY: test-cov
@@ -559,9 +560,13 @@ test-cov:
$(call test,vpp_gcov,cov)
.PHONY: test-cov-hs
-test-cov-hs:
- @$(MAKE) -C extras/hs-test build-cov
- @$(MAKE) -C extras/hs-test test-cov
+test-cov-hs: build-gcov
+ @$(MAKE) CC=$(CC) -C extras/hs-test test-cov \
+ VPP_BUILD_DIR=$(BR)/build-vpp_gcov-native/vpp
+
+.PHONY: test-cov-post-standalone
+test-cov-post-standalone:
+ $(MAKE) CC=$(CC) -C test cov-post VPP_BUILD_DIR=$(BR)/build-vpp_gcov-native/vpp
.PHONY: test-cov-both
test-cov-both:
@@ -791,14 +796,14 @@ pkg-srpm: dist
.PHONY: install-ext-deps
install-ext-deps:
- $(MAKE) -C build/external install-$(PKG)
+ $(MAKE) CC=$(CC) -C build/external install-$(PKG)
.PHONY: install-ext-dep
install-ext-dep: install-ext-deps
.PHONY: install-opt-deps
install-opt-deps:
- $(MAKE) -C build/optional install-$(PKG)
+ $(MAKE) CC=$(CC) -C build/optional install-$(PKG)
.PHONY: json-api-files
json-api-files:
@@ -821,6 +826,11 @@ ctags: ctags.files
@ctags --totals --tag-relative=yes -L $<
@rm $<
+.PHONY: etags
+etags: ctags.files
+ @ctags -e --totals -L $<
+ @rm $<
+
.PHONY: gtags
gtags: ctags
@gtags --gtagslabel=ctags
@@ -922,15 +932,15 @@ docs:
@$(MAKE) -C $(WS_ROOT)/docs docs
.PHONY: pkg-verify
-pkg-verify: install-dep $(BR)/.deps.ok install-ext-deps
+pkg-verify: $(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) CC=$(CC) -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) CC=$(CC) -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) CC=gcc -C build-root PLATFORM=vpp TAG=vpp libmemif-install
$(call banner,"Building $(PKG) packages")
- @$(MAKE) pkg-$(PKG)
+ @$(MAKE) CC=$(CC) pkg-$(PKG)
# Note: 'make verify' target is not used by ci-management scripts
MAKE_VERIFY_GATE_OS ?= ubuntu-22.04
@@ -940,7 +950,7 @@ 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) CC=$(CC) COMPRESS_FAILED_TEST_LOGS=yes RETRIES=3 test
else
$(call banner,"Skipping tests. Tests under 'make verify' supported on $(MAKE_VERIFY_GATE_OS)")
endif