186878f14SJakub Kicinski# SPDX-License-Identifier: GPL-2.0 286878f14SJakub Kicinski 386878f14SJakub KicinskiCC=gcc 4*05a318b4SJan StancekCFLAGS += -std=gnu11 -O2 -W -Wall -Wextra -Wno-unused-parameter -Wshadow \ 5f0ec58d5SJakub Kicinski -I../lib/ -idirafter $(UAPI_PATH) 686878f14SJakub Kicinskiifeq ("$(DEBUG)","1") 786878f14SJakub Kicinski CFLAGS += -g -fsanitize=address -fsanitize=leak -static-libasan 886878f14SJakub Kicinskiendif 986878f14SJakub Kicinski 10f0ec58d5SJakub Kicinskiinclude ../Makefile.deps 11f0ec58d5SJakub Kicinski 122d7be507SJakub KicinskiYNL_GEN_ARG_ethtool:=--user-header linux/ethtool_netlink.h \ 132d7be507SJakub Kicinski --exclude-op stats-get 142d7be507SJakub Kicinski 1586878f14SJakub KicinskiTOOL:=../ynl-gen-c.py 1686878f14SJakub Kicinski 17d2866539SJakub KicinskiGENS_PATHS=$(shell grep -nrI --files-without-match \ 18d2866539SJakub Kicinski 'protocol: netlink' \ 19d2866539SJakub Kicinski ../../../../Documentation/netlink/specs/) 20d2866539SJakub KicinskiGENS=$(patsubst ../../../../Documentation/netlink/specs/%.yaml,%,${GENS_PATHS}) 2186878f14SJakub KicinskiSRCS=$(patsubst %,%-user.c,${GENS}) 2286878f14SJakub KicinskiHDRS=$(patsubst %,%-user.h,${GENS}) 2386878f14SJakub KicinskiOBJS=$(patsubst %,%-user.o,${GENS}) 2486878f14SJakub Kicinski 25a5066017SJakub Kicinskiall: protos.a $(HDRS) $(SRCS) $(KHDRS) $(KSRCS) $(UAPI) 2686878f14SJakub Kicinski 2786878f14SJakub Kicinskiprotos.a: $(OBJS) 2886878f14SJakub Kicinski @echo -e "\tAR $@" 2986878f14SJakub Kicinski @ar rcs $@ $(OBJS) 3086878f14SJakub Kicinski 3186878f14SJakub Kicinski%-user.h: ../../../../Documentation/netlink/specs/%.yaml $(TOOL) 3286878f14SJakub Kicinski @echo -e "\tGEN $@" 33cb7fb0aaSJakub Kicinski @$(TOOL) --mode user --header --spec $< -o $@ $(YNL_GEN_ARG_$*) 3486878f14SJakub Kicinski 3586878f14SJakub Kicinski%-user.c: ../../../../Documentation/netlink/specs/%.yaml $(TOOL) 3686878f14SJakub Kicinski @echo -e "\tGEN $@" 37cb7fb0aaSJakub Kicinski @$(TOOL) --mode user --source --spec $< -o $@ $(YNL_GEN_ARG_$*) 3886878f14SJakub Kicinski 3986878f14SJakub Kicinski%-user.o: %-user.c %-user.h 4086878f14SJakub Kicinski @echo -e "\tCC $@" 41f0ec58d5SJakub Kicinski @$(COMPILE.c) $(CFLAGS_$*) -o $@ $< 4286878f14SJakub Kicinski 4386878f14SJakub Kicinskiclean: 4486878f14SJakub Kicinski rm -f *.o 4586878f14SJakub Kicinski 464e887471SJakub Kicinskidistclean: clean 4786878f14SJakub Kicinski rm -f *.c *.h *.a 4886878f14SJakub Kicinski 4986878f14SJakub Kicinskiregen: 5086878f14SJakub Kicinski @../ynl-regen.sh 5186878f14SJakub Kicinski 524e887471SJakub Kicinski.PHONY: all clean distclean regen 5386878f14SJakub Kicinski.DEFAULT_GOAL: all 54