forked from Minki/linux
rtla: Consolidate and show all necessary libraries that failed for building
When building rtla tools, if the necessary libraries are not installed (libtraceevent and libtracefs), show the ones that are missing in one consolidated output, and also show how to install them (at least for Fedora). Link: https://lore.kernel.org/all/CAHk-=wh+e1qcCnEYJ3JRDVLNCYbJ=0u+Ts5bOYZnY3mX_k-hFA@mail.gmail.com/ Link: https://lkml.kernel.org/r/20220810113918.5d19ce59@gandalf.local.home Suggested-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
This commit is contained in:
parent
1a7b22ab15
commit
20aec89aac
@ -61,40 +61,50 @@ endif
|
||||
LIBTRACEEVENT_MIN_VERSION = 1.5
|
||||
LIBTRACEFS_MIN_VERSION = 1.3
|
||||
|
||||
.PHONY: all warnings show_warnings
|
||||
all: warnings rtla
|
||||
|
||||
TEST_LIBTRACEEVENT = $(shell sh -c "$(PKG_CONFIG) --atleast-version $(LIBTRACEEVENT_MIN_VERSION) libtraceevent > /dev/null 2>&1 || echo n")
|
||||
ifeq ("$(TEST_LIBTRACEEVENT)", "n")
|
||||
.PHONY: warning_traceevent
|
||||
warning_traceevent:
|
||||
@echo "********************************************"
|
||||
@echo "** NOTICE: libtraceevent version $(LIBTRACEEVENT_MIN_VERSION) or higher not found"
|
||||
@echo "**"
|
||||
@echo "** Consider installing the latest libtraceevent from your"
|
||||
@echo "** distribution, e.g., 'dnf install libtraceevent' on Fedora,"
|
||||
@echo "** or from source:"
|
||||
@echo "**"
|
||||
@echo "** https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/ "
|
||||
@echo "**"
|
||||
@echo "********************************************"
|
||||
WARNINGS = show_warnings
|
||||
MISSING_LIBS += echo "** libtraceevent version $(LIBTRACEEVENT_MIN_VERSION) or higher";
|
||||
MISSING_PACKAGES += "libtraceevent-devel"
|
||||
MISSING_SOURCE += echo "** https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/ ";
|
||||
endif
|
||||
|
||||
TEST_LIBTRACEFS = $(shell sh -c "$(PKG_CONFIG) --atleast-version $(LIBTRACEFS_MIN_VERSION) libtracefs > /dev/null 2>&1 || echo n")
|
||||
ifeq ("$(TEST_LIBTRACEFS)", "n")
|
||||
.PHONY: warning_tracefs
|
||||
warning_tracefs:
|
||||
@echo "********************************************"
|
||||
@echo "** NOTICE: libtracefs version $(LIBTRACEFS_MIN_VERSION) or higher not found"
|
||||
@echo "**"
|
||||
@echo "** Consider installing the latest libtracefs from your"
|
||||
@echo "** distribution, e.g., 'dnf install libtracefs' on Fedora,"
|
||||
@echo "** or from source:"
|
||||
@echo "**"
|
||||
@echo "** https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/ "
|
||||
@echo "**"
|
||||
@echo "********************************************"
|
||||
WARNINGS = show_warnings
|
||||
MISSING_LIBS += echo "** libtracefs version $(LIBTRACEFS_MIN_VERSION) or higher";
|
||||
MISSING_PACKAGES += "libtracefs-devel"
|
||||
MISSING_SOURCE += echo "** https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/ ";
|
||||
endif
|
||||
|
||||
.PHONY: all
|
||||
all: rtla
|
||||
define show_dependencies
|
||||
@echo "********************************************"; \
|
||||
echo "** NOTICE: Failed build dependencies"; \
|
||||
echo "**"; \
|
||||
echo "** Required Libraries:"; \
|
||||
$(MISSING_LIBS) \
|
||||
echo "**"; \
|
||||
echo "** Consider installing the latest libtracefs from your"; \
|
||||
echo "** distribution, e.g., 'dnf install $(MISSING_PACKAGES)' on Fedora,"; \
|
||||
echo "** or from source:"; \
|
||||
echo "**"; \
|
||||
$(MISSING_SOURCE) \
|
||||
echo "**"; \
|
||||
echo "********************************************"
|
||||
endef
|
||||
|
||||
show_warnings:
|
||||
$(call show_dependencies);
|
||||
|
||||
ifneq ("$(WARNINGS)", "")
|
||||
ERROR_OUT = $(error Please add the necessary dependencies)
|
||||
|
||||
warnings: $(WARNINGS)
|
||||
$(ERROR_OUT)
|
||||
endif
|
||||
|
||||
rtla: $(OBJ)
|
||||
$(CC) -o rtla $(LDFLAGS) $(OBJ) $(LIBS)
|
||||
|
Loading…
Reference in New Issue
Block a user