From: Donald Hunter <donald.hunter@gmail.com>
To: Jan Stancek <jstancek@redhat.com>
Cc: stfomichev@gmail.com, kuba@kernel.org, jdamato@fastly.com,
pabeni@redhat.com, davem@davemloft.net, edumazet@google.com,
horms@kernel.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 3/4] tools: ynl: add install target for generated content
Date: Mon, 16 Dec 2024 14:01:06 +0000 [thread overview]
Message-ID: <m2a5cv917h.fsf@gmail.com> (raw)
In-Reply-To: <a2e4ffb9cbd4a9c2fd0d7944b603794bff66e593.1734345017.git.jstancek@redhat.com> (Jan Stancek's message of "Mon, 16 Dec 2024 11:41:43 +0100")
Jan Stancek <jstancek@redhat.com> writes:
> Generate docs using ynl_gen_rst and add install target for
> headers, specs and generates rst files.
>
> Signed-off-by: Jan Stancek <jstancek@redhat.com>
> ---
> tools/net/ynl/generated/.gitignore | 1 +
> tools/net/ynl/generated/Makefile | 40 +++++++++++++++++++++++++++---
> 2 files changed, 38 insertions(+), 3 deletions(-)
>
> diff --git a/tools/net/ynl/generated/.gitignore b/tools/net/ynl/generated/.gitignore
> index ade488626d26..859a6fb446e1 100644
> --- a/tools/net/ynl/generated/.gitignore
> +++ b/tools/net/ynl/generated/.gitignore
> @@ -1,2 +1,3 @@
> *-user.c
> *-user.h
> +*.rst
> diff --git a/tools/net/ynl/generated/Makefile b/tools/net/ynl/generated/Makefile
> index 00af721b1571..208f7fead784 100644
> --- a/tools/net/ynl/generated/Makefile
> +++ b/tools/net/ynl/generated/Makefile
> @@ -7,12 +7,19 @@ ifeq ("$(DEBUG)","1")
> CFLAGS += -g -fsanitize=address -fsanitize=leak -static-libasan
> endif
>
> +INSTALL ?= install
nit: mix of tabs and spaces here
> +prefix ?= /usr
> +datarootdir ?= $(prefix)/share
> +docdir ?= $(datarootdir)/doc
> +includedir ?= $(prefix)/include
> +
> include ../Makefile.deps
>
> YNL_GEN_ARG_ethtool:=--user-header linux/ethtool_netlink.h \
> --exclude-op stats-get
>
> TOOL:=../pyynl/ynl_gen_c.py
> +TOOL_RST:=../pyynl/ynl_gen_rst.py
>
> GENS_PATHS=$(shell grep -nrI --files-without-match \
> 'protocol: netlink' \
> @@ -22,7 +29,11 @@ SRCS=$(patsubst %,%-user.c,${GENS})
> HDRS=$(patsubst %,%-user.h,${GENS})
> OBJS=$(patsubst %,%-user.o,${GENS})
>
> -all: protos.a $(HDRS) $(SRCS) $(KHDRS) $(KSRCS) $(UAPI)
> +SPECS_PATHS=$(wildcard ../../../../Documentation/netlink/specs/*.yaml)
You missed Jakub's request to factor out SPECS_DIR:
Maybe factor out:
SPECS_DIR := ../../../../Documentation/netlink/specs
? It's pretty long and we repeat it all over the place.
> +SPECS=$(patsubst ../../../../Documentation/netlink/specs/%.yaml,%,${SPECS_PATHS})
> +RSTS=$(patsubst %,%.rst,${SPECS})
> +
> +all: protos.a $(HDRS) $(SRCS) $(KHDRS) $(KSRCS) $(UAPI) $(RSTS)
>
> protos.a: $(OBJS)
> @echo -e "\tAR $@"
> @@ -40,8 +51,12 @@ protos.a: $(OBJS)
> @echo -e "\tCC $@"
> @$(COMPILE.c) $(CFLAGS_$*) -o $@ $<
>
> +%.rst: ../../../../Documentation/netlink/specs/%.yaml $(TOOL2)
Did you miss Jakub's review comment: TOOL2 -> TOOL_RST ?
> + @echo -e "\tGEN_RST $@"
> + @$(TOOL_RST) -o $@ -i $<
> +
> clean:
> - rm -f *.o
> + rm -f *.o *.rst
Also Jakub's comment:
No strong preference but I'd count .rst as final artifacts so I'd clean
them up in distclean target only, not the clean target. The distinction
itself may be a local custom..
> distclean: clean
> rm -f *.c *.h *.a
> @@ -49,5 +64,24 @@ distclean: clean
> regen:
> @../ynl-regen.sh
>
> -.PHONY: all clean distclean regen
> +install-headers: $(HDRS)
> + @echo -e "\tINSTALL generated headers"
> + @$(INSTALL) -d $(DESTDIR)$(includedir)/ynl
> + @$(INSTALL) -m 0644 *.h $(DESTDIR)$(includedir)/ynl/
> +
> +install-rsts: $(RSTS)
> + @echo -e "\tINSTALL generated docs"
> + @$(INSTALL) -d $(DESTDIR)$(docdir)/ynl
> + @$(INSTALL) -m 0644 $(RSTS) $(DESTDIR)$(docdir)/ynl/
> +
> +install-specs:
> + @echo -e "\tINSTALL specs"
> + @$(INSTALL) -d $(DESTDIR)$(datarootdir)/ynl
> + @$(INSTALL) -m 0644 ../../../../Documentation/netlink/*.yaml $(DESTDIR)$(datarootdir)/ynl/
> + @$(INSTALL) -d $(DESTDIR)$(datarootdir)/ynl/specs
> + @$(INSTALL) -m 0644 ../../../../Documentation/netlink/specs/*.yaml $(DESTDIR)$(datarootdir)/ynl/specs/
> +
> +install: install-headers install-rsts install-specs
> +
> +.PHONY: all clean distclean regen install install-headers install-rsts install-specs
> .DEFAULT_GOAL: all
next prev parent reply other threads:[~2024-12-16 14:10 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-16 10:41 [PATCH v3 0/4] tools: ynl: add install target Jan Stancek
2024-12-16 10:41 ` [PATCH v3 1/4] tools: ynl: move python code to separate sub-directory Jan Stancek
2024-12-16 13:45 ` Donald Hunter
2024-12-16 10:41 ` [PATCH v3 2/4] tools: ynl: add initial pyproject.toml for packaging Jan Stancek
2024-12-16 13:52 ` Donald Hunter
2025-01-06 11:57 ` Jan Stancek
2024-12-16 10:41 ` [PATCH v3 3/4] tools: ynl: add install target for generated content Jan Stancek
2024-12-16 14:01 ` Donald Hunter [this message]
2025-01-06 11:35 ` Jan Stancek
2024-12-16 10:41 ` [PATCH v3 4/4] tools: ynl: add main install target Jan Stancek
2024-12-16 14:09 ` Donald Hunter
2024-12-16 22:58 ` Joe Damato
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m2a5cv917h.fsf@gmail.com \
--to=donald.hunter@gmail.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=jdamato@fastly.com \
--cc=jstancek@redhat.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=stfomichev@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.