diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 56 |
1 files changed, 33 insertions, 23 deletions
@@ -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 |