summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile89
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