Skip to content

Commit fa5bbcc

Browse files
authored
Add Makefile
1 parent acde251 commit fa5bbcc

1 file changed

Lines changed: 53 additions & 0 deletions

File tree

Makefile

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

0 commit comments

Comments
 (0)