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