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:=ethtool devlink handshake fou netdev nfsd
18 SRCS=$(patsubst %,%-user.c,${GENS})
19 HDRS=$(patsubst %,%-user.h,${GENS})
20 OBJS=$(patsubst %,%-user.o,${GENS})
22 all: protos.a $(HDRS) $(SRCS) $(KHDRS) $(KSRCS) $(UAPI)
28 %-user.h: ../../../../Documentation/netlink/specs/%.yaml $(TOOL)
30 @$(TOOL) --mode user --header --spec $< -o $@ $(YNL_GEN_ARG_$*)
32 %-user.c: ../../../../Documentation/netlink/specs/%.yaml $(TOOL)
34 @$(TOOL) --mode user --source --spec $< -o $@ $(YNL_GEN_ARG_$*)
36 %-user.o: %-user.c %-user.h
38 @$(COMPILE.c) $(CFLAGS_$*) -o $@ $<
49 .PHONY: all clean hardclean regen