xref: /linux/tools/net/ynl/ynltool/Makefile (revision 24f171c7e145f43b9f187578e89b0982ce87e54c)
1b02d2290SJakub Kicinski# SPDX-License-Identifier: GPL-2.0-only
2b02d2290SJakub Kicinski
3b02d2290SJakub Kicinskiinclude ../Makefile.deps
4b02d2290SJakub Kicinski
5b02d2290SJakub KicinskiINSTALL	?= install
6b02d2290SJakub Kicinskiprefix  ?= /usr
7b02d2290SJakub Kicinski
8b02d2290SJakub KicinskiCC := gcc
9b02d2290SJakub KicinskiCFLAGS := -Wall -Wextra -Werror -O2
10b02d2290SJakub Kicinskiifeq ("$(DEBUG)","1")
11b02d2290SJakub Kicinski  CFLAGS += -g -fsanitize=address -fsanitize=leak -static-libasan
12b02d2290SJakub Kicinskiendif
13124dac9bSJakub KicinskiCFLAGS += -I../lib -I../generated -I../../../include/uapi/
14b02d2290SJakub Kicinski
15b02d2290SJakub KicinskiSRC_VERSION := \
16b02d2290SJakub Kicinski	$(shell make --no-print-directory -sC ../../../.. kernelversion || \
17b02d2290SJakub Kicinski		echo "unknown")
18b02d2290SJakub Kicinski
19b02d2290SJakub KicinskiCFLAGS += -DSRC_VERSION='"$(SRC_VERSION)"'
20b02d2290SJakub Kicinski
21b02d2290SJakub KicinskiSRCS := $(wildcard *.c)
22b02d2290SJakub KicinskiOBJS := $(patsubst %.c,$(OUTPUT)%.o,$(SRCS))
23b02d2290SJakub Kicinski
24b02d2290SJakub KicinskiYNLTOOL := $(OUTPUT)ynltool
25b02d2290SJakub Kicinski
26b02d2290SJakub Kicinskiinclude $(wildcard *.d)
27b02d2290SJakub Kicinski
28b02d2290SJakub Kicinskiall: $(YNLTOOL)
29b02d2290SJakub Kicinski
30b02d2290SJakub KicinskiQ = @
31b02d2290SJakub Kicinski
32124dac9bSJakub Kicinski$(YNLTOOL): ../libynl.a $(OBJS)
33b02d2290SJakub Kicinski	$(Q)echo -e "\tLINK $@"
34*40ea4085SJakub Kicinski	$(Q)$(CC) $(CFLAGS) -o $@ $(OBJS) ../libynl.a -lm
35b02d2290SJakub Kicinski
36124dac9bSJakub Kicinski%.o: %.c ../libynl.a
37b02d2290SJakub Kicinski	$(Q)echo -e "\tCC $@"
38b02d2290SJakub Kicinski	$(Q)$(COMPILE.c) -MMD -c -o $@ $<
39b02d2290SJakub Kicinski
40124dac9bSJakub Kicinski../libynl.a:
41124dac9bSJakub Kicinski	$(Q)$(MAKE) -C ../
42124dac9bSJakub Kicinski
43b02d2290SJakub Kicinskiclean:
44b02d2290SJakub Kicinski	rm -f *.o *.d *~
45b02d2290SJakub Kicinski
46b02d2290SJakub Kicinskidistclean: clean
47b02d2290SJakub Kicinski	rm -f $(YNLTOOL)
48b02d2290SJakub Kicinski
49b02d2290SJakub Kicinskibindir ?= /usr/bin
50b02d2290SJakub Kicinski
51b02d2290SJakub Kicinskiinstall: $(YNLTOOL)
529c577f09SJakub Kicinski	$(INSTALL) -m 0755 $(YNLTOOL) $(DESTDIR)$(bindir)/$(YNLTOOL)
53b02d2290SJakub Kicinski
54b02d2290SJakub Kicinski.PHONY: all clean distclean
55b02d2290SJakub Kicinski.DEFAULT_GOAL=all
56