1 # SPDX-License-Identifier: GPL-2.0 1 # SPDX-License-Identifier: GPL-2.0 2 2 3 CC=gcc 3 CC=gcc 4 CFLAGS=-std=gnu11 -O2 -W -Wall -Wextra -Wno-un 4 CFLAGS=-std=gnu11 -O2 -W -Wall -Wextra -Wno-unused-parameter -Wshadow \ 5 -I../lib/ -idirafter $(UAPI_PATH) 5 -I../lib/ -idirafter $(UAPI_PATH) 6 ifeq ("$(DEBUG)","1") 6 ifeq ("$(DEBUG)","1") 7 CFLAGS += -g -fsanitize=address -fsanitize=l 7 CFLAGS += -g -fsanitize=address -fsanitize=leak -static-libasan 8 endif 8 endif 9 9 10 include ../Makefile.deps 10 include ../Makefile.deps 11 11 12 YNL_GEN_ARG_ethtool:=--user-header linux/ethto 12 YNL_GEN_ARG_ethtool:=--user-header linux/ethtool_netlink.h \ 13 --exclude-op stats-get 13 --exclude-op stats-get 14 14 15 TOOL:=../ynl-gen-c.py 15 TOOL:=../ynl-gen-c.py 16 16 17 GENS_PATHS=$(shell grep -nrI --files-without-m 17 GENS_PATHS=$(shell grep -nrI --files-without-match \ 18 'protocol: netlink' \ 18 'protocol: netlink' \ 19 ../../../../Documentation/netl 19 ../../../../Documentation/netlink/specs/) 20 GENS=$(patsubst ../../../../Documentation/netl 20 GENS=$(patsubst ../../../../Documentation/netlink/specs/%.yaml,%,${GENS_PATHS}) 21 SRCS=$(patsubst %,%-user.c,${GENS}) 21 SRCS=$(patsubst %,%-user.c,${GENS}) 22 HDRS=$(patsubst %,%-user.h,${GENS}) 22 HDRS=$(patsubst %,%-user.h,${GENS}) 23 OBJS=$(patsubst %,%-user.o,${GENS}) 23 OBJS=$(patsubst %,%-user.o,${GENS}) 24 24 25 all: protos.a $(HDRS) $(SRCS) $(KHDRS) $(KSRCS 25 all: protos.a $(HDRS) $(SRCS) $(KHDRS) $(KSRCS) $(UAPI) 26 26 27 protos.a: $(OBJS) 27 protos.a: $(OBJS) 28 @echo -e "\tAR $@" 28 @echo -e "\tAR $@" 29 @ar rcs $@ $(OBJS) 29 @ar rcs $@ $(OBJS) 30 30 31 %-user.h: ../../../../Documentation/netlink/sp 31 %-user.h: ../../../../Documentation/netlink/specs/%.yaml $(TOOL) 32 @echo -e "\tGEN $@" 32 @echo -e "\tGEN $@" 33 @$(TOOL) --mode user --header --spec $ 33 @$(TOOL) --mode user --header --spec $< -o $@ $(YNL_GEN_ARG_$*) 34 34 35 %-user.c: ../../../../Documentation/netlink/sp 35 %-user.c: ../../../../Documentation/netlink/specs/%.yaml $(TOOL) 36 @echo -e "\tGEN $@" 36 @echo -e "\tGEN $@" 37 @$(TOOL) --mode user --source --spec $ 37 @$(TOOL) --mode user --source --spec $< -o $@ $(YNL_GEN_ARG_$*) 38 38 39 %-user.o: %-user.c %-user.h 39 %-user.o: %-user.c %-user.h 40 @echo -e "\tCC $@" 40 @echo -e "\tCC $@" 41 @$(COMPILE.c) $(CFLAGS_$*) -o $@ $< 41 @$(COMPILE.c) $(CFLAGS_$*) -o $@ $< 42 42 43 clean: 43 clean: 44 rm -f *.o 44 rm -f *.o 45 45 46 distclean: clean 46 distclean: clean 47 rm -f *.c *.h *.a 47 rm -f *.c *.h *.a 48 48 49 regen: 49 regen: 50 @../ynl-regen.sh 50 @../ynl-regen.sh 51 51 52 .PHONY: all clean distclean regen 52 .PHONY: all clean distclean regen 53 .DEFAULT_GOAL: all 53 .DEFAULT_GOAL: all
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.