Makefile 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. include ../Makefile.deps
  3. INSTALL ?= install
  4. prefix ?= /usr
  5. CC := gcc
  6. CFLAGS := -Wall -Wextra -Werror -O2
  7. ifeq ("$(DEBUG)","1")
  8. CFLAGS += -g -fsanitize=address -fsanitize=leak -static-libasan
  9. endif
  10. CFLAGS += -I../lib -I../generated -I../../../include/uapi/
  11. SRC_VERSION := \
  12. $(shell make --no-print-directory -sC ../../../.. kernelversion 2>/dev/null || \
  13. echo "unknown")
  14. CFLAGS += -DSRC_VERSION='"$(SRC_VERSION)"'
  15. SRCS := $(wildcard *.c)
  16. OBJS := $(patsubst %.c,$(OUTPUT)%.o,$(SRCS))
  17. YNLTOOL := $(OUTPUT)ynltool
  18. include $(wildcard *.d)
  19. all: $(YNLTOOL)
  20. Q = @
  21. $(YNLTOOL): ../libynl.a $(OBJS)
  22. $(Q)echo -e "\tLINK $@"
  23. $(Q)$(CC) $(CFLAGS) -o $@ $(OBJS) ../libynl.a -lm
  24. %.o: %.c ../libynl.a
  25. $(Q)echo -e "\tCC $@"
  26. $(Q)$(COMPILE.c) -MMD -c -o $@ $<
  27. ../libynl.a:
  28. $(Q)$(MAKE) -C ../
  29. clean:
  30. rm -f *.o *.d *~
  31. distclean: clean
  32. rm -f $(YNLTOOL)
  33. bindir ?= /usr/bin
  34. install: $(YNLTOOL)
  35. $(INSTALL) -m 0755 $(YNLTOOL) $(DESTDIR)$(bindir)/$(YNLTOOL)
  36. .PHONY: all clean distclean
  37. .DEFAULT_GOAL=all