diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5c22e85 --- /dev/null +++ b/Makefile @@ -0,0 +1,89 @@ + +# SPDX-License-Identifier: GPL-2.0 +# Top level Makefile for xdp-tools + +ifeq ("$(origin V)", "command line") +VERBOSE = $(V) +endif +ifndef VERBOSE +VERBOSE = 0 +endif + +ifeq ($(VERBOSE),0) +MAKEFLAGS += --no-print-directory +endif + +include version.mk + +UTILS := xdp-filter xdp-loader xdp-dump xdp-bench xdp-monitor xdp-trafficgen +SUBDIRS := lib $(UTILS) +.PHONY: check_submodule help clobber distclean clean install test libxdp $(SUBDIRS) + +all: $(SUBDIRS) + +lib: config.mk check_submodule + @echo; echo $@; $(MAKE) -C $@ + +libxdp: config.mk check_submodule + @echo; echo lib; $(MAKE) -C lib $@ + +libxdp_install: libxdp + @$(MAKE) -C lib $@ + +$(UTILS): lib + @echo; echo $@; $(MAKE) -C $@ + +help: + @echo "Make Targets:" + @echo " all - build binaries" + @echo " clean - remove products of build" + @echo " distclean - remove configuration and build" + @echo " install - install binaries on local machine" + @echo " test - run test suite" + @echo " archive - create tarball of all sources" + @echo "" + @echo "Make Arguments:" + @echo " V=[0|1] - set build verbosity level" + +config.mk: configure + sh configure + +check_submodule: + @if [ -d .git ] && `git submodule status lib/libbpf | grep -q '^+'`; then \ + echo "" ;\ + echo "** WARNING **: git submodule SHA-1 out-of-sync" ;\ + echo " consider running: git submodule update" ;\ + echo "" ;\ + fi\ + +clobber: + touch config.mk + $(MAKE) clean + rm -f config.mk cscope.* compile_commands.json + +distclean: clobber + +clean: check_submodule + @for i in $(SUBDIRS); \ + do $(MAKE) -C $$i clean; done + +install: all + @for i in $(SUBDIRS); \ + do $(MAKE) -C $$i install; done + +test: all + @for i in lib/libxdp $(UTILS); do \ + echo; echo test $$i; $(MAKE) -C $$i test; \ + if [ $$? -ne 0 ]; then failed="y"; fi; \ + done; \ + if [ ! -z $$failed ]; then exit 1; fi + + +archive: xdp-tools-$(TOOLS_VERSION).tar.gz + +.PHONY: xdp-tools-$(TOOLS_VERSION).tar.gz +xdp-tools-$(TOOLS_VERSION).tar.gz: + @./mkarchive.sh "$(TOOLS_VERSION)" + +compile_commands.json: clean + compiledb make V=1 |