1 # SPDX-License-Identifier: GPL-2.0
4 CFLAGS
+= -std
=gnu11
-O2
-W
-Wall
-Wextra
-Wno-unused-parameter
-Wshadow \
5 -I..
/lib
/ -idirafter
$(UAPI_PATH
)
7 CFLAGS
+= -g
-fsanitize
=address
-fsanitize
=leak
-static-libasan
10 include ..
/Makefile.deps
12 YNL_GEN_ARG_ethtool
:=--user-header linux
/ethtool_netlink.h \
13 --exclude-op stats-get
17 GENS_PATHS
=$(shell grep
-nrI
--files-without-match \
19 ..
/..
/..
/..
/Documentation
/netlink
/specs
/)
20 GENS
=$(patsubst ..
/..
/..
/..
/Documentation
/netlink
/specs
/%.yaml
,%,${GENS_PATHS})
21 SRCS
=$(patsubst %,%-user.c
,${GENS})
22 HDRS
=$(patsubst %,%-user.h
,${GENS})
23 OBJS
=$(patsubst %,%-user.o
,${GENS})
25 all: protos.a
$(HDRS
) $(SRCS
) $(KHDRS
) $(KSRCS
) $(UAPI
)
31 %-user.h
: ..
/..
/..
/..
/Documentation
/netlink
/specs
/%.yaml
$(TOOL
)
33 @
$(TOOL
) --mode user
--header
--spec
$< -o
$@
$(YNL_GEN_ARG_
$*)
35 %-user.c
: ..
/..
/..
/..
/Documentation
/netlink
/specs
/%.yaml
$(TOOL
)
37 @
$(TOOL
) --mode user
--source
--spec
$< -o
$@
$(YNL_GEN_ARG_
$*)
39 %-user.o
: %-user.c
%-user.h
41 @
$(COMPILE.c
) $(CFLAGS_
$*) -o
$@
$<
52 .PHONY
: all clean distclean regen