xref: /linux/tools/net/ynl/generated/Makefile (revision 60675d4ca1ef0857e44eba5849b74a3a998d0c0f)
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