| # SPDX-License-Identifier: GPL-2.0-only |
| |
| include ../Makefile.deps |
| |
| INSTALL ?= install |
| prefix ?= /usr |
| |
| CC := gcc |
| CFLAGS := -Wall -Wextra -Werror -O2 |
| ifeq ("$(DEBUG)","1") |
| CFLAGS += -g -fsanitize=address -fsanitize=leak -static-libasan |
| endif |
| CFLAGS += -I../lib -I../generated -I../../../include/uapi/ |
| |
| SRC_VERSION := \ |
| $(shell make --no-print-directory -sC ../../../.. kernelversion || \ |
| echo "unknown") |
| |
| CFLAGS += -DSRC_VERSION='"$(SRC_VERSION)"' |
| |
| SRCS := $(wildcard *.c) |
| OBJS := $(patsubst %.c,$(OUTPUT)%.o,$(SRCS)) |
| |
| YNLTOOL := $(OUTPUT)ynltool |
| |
| include $(wildcard *.d) |
| |
| all: $(YNLTOOL) |
| |
| Q = @ |
| |
| $(YNLTOOL): ../libynl.a $(OBJS) |
| $(Q)echo -e "\tLINK $@" |
| $(Q)$(CC) $(CFLAGS) -o $@ $(OBJS) ../libynl.a -lm |
| |
| %.o: %.c ../libynl.a |
| $(Q)echo -e "\tCC $@" |
| $(Q)$(COMPILE.c) -MMD -c -o $@ $< |
| |
| ../libynl.a: |
| $(Q)$(MAKE) -C ../ |
| |
| clean: |
| rm -f *.o *.d *~ |
| |
| distclean: clean |
| rm -f $(YNLTOOL) |
| |
| bindir ?= /usr/bin |
| |
| install: $(YNLTOOL) |
| $(INSTALL) -m 0755 $(YNLTOOL) $(DESTDIR)$(bindir)/$(YNLTOOL) |
| |
| .PHONY: all clean distclean |
| .DEFAULT_GOAL=all |