xref: /openbmc/linux/tools/net/ynl/generated/Makefile (revision 86878f14)
1*86878f14SJakub Kicinski# SPDX-License-Identifier: GPL-2.0
2*86878f14SJakub Kicinski
3*86878f14SJakub KicinskiCC=gcc
4*86878f14SJakub KicinskiCFLAGS=-std=gnu11 -O2 -W -Wall -Wextra -Wno-unused-parameter -Wshadow \
5*86878f14SJakub Kicinski	-I../lib/
6*86878f14SJakub Kicinskiifeq ("$(DEBUG)","1")
7*86878f14SJakub Kicinski  CFLAGS += -g -fsanitize=address -fsanitize=leak -static-libasan
8*86878f14SJakub Kicinskiendif
9*86878f14SJakub Kicinski
10*86878f14SJakub KicinskiTOOL:=../ynl-gen-c.py
11*86878f14SJakub Kicinski
12*86878f14SJakub KicinskiGENS:=
13*86878f14SJakub KicinskiSRCS=$(patsubst %,%-user.c,${GENS})
14*86878f14SJakub KicinskiHDRS=$(patsubst %,%-user.h,${GENS})
15*86878f14SJakub KicinskiOBJS=$(patsubst %,%-user.o,${GENS})
16*86878f14SJakub Kicinski
17*86878f14SJakub Kicinskiall: protos.a $(HDRS) $(SRCS) $(KHDRS) $(KSRCS) $(UAPI) regen
18*86878f14SJakub Kicinski
19*86878f14SJakub Kicinskiprotos.a: $(OBJS)
20*86878f14SJakub Kicinski	@echo -e "\tAR $@"
21*86878f14SJakub Kicinski	@ar rcs $@ $(OBJS)
22*86878f14SJakub Kicinski
23*86878f14SJakub Kicinski%-user.h: ../../../../Documentation/netlink/specs/%.yaml $(TOOL)
24*86878f14SJakub Kicinski	@echo -e "\tGEN $@"
25*86878f14SJakub Kicinski	@$(TOOL) --mode user --header --spec $< > $@
26*86878f14SJakub Kicinski
27*86878f14SJakub Kicinski%-user.c: ../../../../Documentation/netlink/specs/%.yaml $(TOOL)
28*86878f14SJakub Kicinski	@echo -e "\tGEN $@"
29*86878f14SJakub Kicinski	@$(TOOL) --mode user --source --spec $< > $@
30*86878f14SJakub Kicinski
31*86878f14SJakub Kicinski%-user.o: %-user.c %-user.h
32*86878f14SJakub Kicinski	@echo -e "\tCC $@"
33*86878f14SJakub Kicinski	@$(COMPILE.c) -c -o $@ $<
34*86878f14SJakub Kicinski
35*86878f14SJakub Kicinskiclean:
36*86878f14SJakub Kicinski	rm -f *.o
37*86878f14SJakub Kicinski
38*86878f14SJakub Kicinskihardclean: clean
39*86878f14SJakub Kicinski	rm -f *.c *.h *.a
40*86878f14SJakub Kicinski
41*86878f14SJakub Kicinskiregen:
42*86878f14SJakub Kicinski	@../ynl-regen.sh
43*86878f14SJakub Kicinski
44*86878f14SJakub Kicinski.PHONY: all clean hardclean regen
45*86878f14SJakub Kicinski.DEFAULT_GOAL: all
46