fe4d0d5dde
Linus had a problem compiling RTLA, saying: "[...] I wish the tracing tools would do a bit more package checking and helpful error messages too, rather than just fail with: fatal error: tracefs.h: No such file or directory" Which is indeed not a helpful message. Update the Makefile, adding proper checks for the dependencies, with useful information about how to resolve possible problems. For example, the previous error is now reported as: $ make ******************************************** ** NOTICE: libtracefs version 1.3 or higher not found ** ** Consider installing the latest libtracefs from your ** distribution, e.g., 'dnf install libtracefs' on Fedora, ** or from source: ** ** https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/ ** ******************************************** These messages are inspired by the ones used on trace-cmd, as suggested by Stevel Rostedt. Link: https://lore.kernel.org/r/CAHk-=whxmA86E=csNv76DuxX_wYsg8mW15oUs3XTabu2Yc80yw@mail.gmail.com/ Changes from V1: - Moved the rst2man check to the install phase (when it is used). - Removed the procps-ng lib check [1] as it is being removed. [1] a0f9f8c1030c66305c9b921057c3d483064d5529.1651220820.git.bristot@kernel.org Link: https://lkml.kernel.org/r/3f1fac776c37e4b67c876a94e5a0e45ed022ff3d.1651238057.git.bristot@kernel.org Cc: Ingo Molnar <mingo@kernel.org> Cc: Andrew Morton <akpm@linux-foundation.org> Reported-by: Linus Torvalds <torvalds@linux-foundation.org> Suggested-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
54 lines
1.4 KiB
Makefile
54 lines
1.4 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0-only
|
|
# Based on bpftool's Documentation Makefile
|
|
|
|
INSTALL ?= install
|
|
RM ?= rm -f
|
|
RMDIR ?= rmdir --ignore-fail-on-non-empty
|
|
|
|
PREFIX ?= /usr/share
|
|
MANDIR ?= $(PREFIX)/man
|
|
MAN1DIR = $(MANDIR)/man1
|
|
|
|
MAN1_RST = $(wildcard rtla*.rst)
|
|
|
|
_DOC_MAN1 = $(patsubst %.rst,%.1,$(MAN1_RST))
|
|
DOC_MAN1 = $(addprefix $(OUTPUT),$(_DOC_MAN1))
|
|
|
|
RST2MAN_DEP := $(shell command -v rst2man 2>/dev/null)
|
|
RST2MAN_OPTS += --verbose
|
|
|
|
TEST_RST2MAN = $(shell sh -c "rst2man --version > /dev/null 2>&1 || echo n")
|
|
|
|
$(OUTPUT)%.1: %.rst
|
|
ifndef RST2MAN_DEP
|
|
$(info ********************************************)
|
|
$(info ** NOTICE: rst2man not found)
|
|
$(info **)
|
|
$(info ** Consider installing the latest rst2man from your)
|
|
$(info ** distribution, e.g., 'dnf install python3-docutils' on Fedora,)
|
|
$(info ** or from source:)
|
|
$(info **)
|
|
$(info ** https://docutils.sourceforge.io/docs/dev/repository.html )
|
|
$(info **)
|
|
$(info ********************************************)
|
|
$(error NOTICE: rst2man required to generate man pages)
|
|
endif
|
|
rst2man $(RST2MAN_OPTS) $< > $@
|
|
|
|
man1: $(DOC_MAN1)
|
|
man: man1
|
|
|
|
clean:
|
|
$(RM) $(DOC_MAN1)
|
|
|
|
install: man
|
|
$(INSTALL) -d -m 755 $(DESTDIR)$(MAN1DIR)
|
|
$(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(MAN1DIR)
|
|
|
|
uninstall:
|
|
$(RM) $(addprefix $(DESTDIR)$(MAN1DIR)/,$(_DOC_MAN1))
|
|
$(RMDIR) $(DESTDIR)$(MAN1DIR)
|
|
|
|
.PHONY: man man1 clean install uninstall
|
|
.DEFAULT_GOAL := man
|