linux/tools/tracing/rtla/Makefile.rtla

# SPDX-License-Identifier: GPL-2.0-only

define allow-override
  $(if $(or $(findstring environment,$(origin $(1))),\
            $(findstring command line,$(origin $(1)))),,\
    $(eval $(1) = $(2)))
endef

# Allow setting CC and AR, or setting CROSS_COMPILE as a prefix.
$(call allow-override,CC,$(CROSS_COMPILE)gcc)
$(call allow-override,AR,$(CROSS_COMPILE)ar)
$(call allow-override,STRIP,$(CROSS_COMPILE)strip)
$(call allow-override,PKG_CONFIG,pkg-config)
$(call allow-override,LD_SO_CONF_PATH,/etc/ld.so.conf.d/)
$(call allow-override,LDCONFIG,ldconfig)
export CC AR STRIP PKG_CONFIG LD_SO_CONF_PATH LDCONFIG

FOPTS		:= -flto=auto -ffat-lto-objects -fexceptions -fstack-protector-strong	\
		-fasynchronous-unwind-tables -fstack-clash-protection
WOPTS		:= -O -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2		\
		-Wp,-D_GLIBCXX_ASSERTIONS -Wno-maybe-uninitialized

ifeq ($(CC),clang)
  FOPTS		:= $(filter-out -flto=auto -ffat-lto-objects, $(FOPTS))
  WOPTS		:= $(filter-out -Wno-maybe-uninitialized, $(WOPTS))
endif

CFLAGS		:= -g -DVERSION=\"$(VERSION)\" $(FOPTS) $(WOPTS) $(CFLAGS)
LDFLAGS		:= -ggdb $(LDFLAGS)

RM		:= rm -rf
LN		:= ln -s
INSTALL		:= install
MKDIR		:= mkdir
STRIP		:= strip
BINDIR		:= /usr/bin

.PHONY: install
install: doc_install
	@$(MKDIR) -p $(DESTDIR)$(BINDIR)
	$(call QUIET_INSTALL,rtla)$(INSTALL) $(RTLA) -m 755 $(DESTDIR)$(BINDIR)
	@$(STRIP) $(DESTDIR)$(BINDIR)/rtla
	@test ! -f $(DESTDIR)$(BINDIR)/osnoise || $(RM) $(DESTDIR)$(BINDIR)/osnoise
	@$(LN) rtla $(DESTDIR)$(BINDIR)/osnoise
	@test ! -f $(DESTDIR)$(BINDIR)/hwnoise || $(RM) $(DESTDIR)$(BINDIR)/hwnoise
	@$(LN) -s rtla $(DESTDIR)$(BINDIR)/hwnoise
	@test ! -f $(DESTDIR)$(BINDIR)/timerlat || $(RM) $(DESTDIR)$(BINDIR)/timerlat
	@$(LN) -s rtla $(DESTDIR)$(BINDIR)/timerlat

.PHONY: doc doc_clean doc_install
doc:
	$(MAKE) -C $(DOCSRC)

doc_clean:
	$(MAKE) -C $(DOCSRC) clean

doc_install:
	$(MAKE) -C $(DOCSRC) install

# This section is neesary for the tarball, when the tarball
# support is removed, we can delete these entries.
NAME		:= rtla
DIRS		:= src
FILES		:= Makefile README.txt
CEXT		:= bz2
TARBALL		:= $(NAME)-$(VERSION).tar.$(CEXT)
TAROPTS		:= -cvjf $(TARBALL)
SRCTREE		:=	$(or $(BUILD_SRC),$(CURDIR))

tarball: clean
	$(RM) $(NAME)-$(VERSION) && $(MKDIR) $(NAME)-$(VERSION)
	echo $(VERSION) > $(NAME)-$(VERSION)/VERSION
	cp -r $(DIRS) $(FILES) $(NAME)-$(VERSION)
	$(MKDIR) $(NAME)-$(VERSION)/Documentation/
	cp -rp $(SRCTREE)/../../../Documentation/tools/$(NAME)/* $(NAME)-$(VERSION)/Documentation/
	cp Makefile.standalone $(NAME)-$(VERSION)/Makefile
	cp Makefile.$(NAME) $(NAME)-$(VERSION)/
	tar $(TAROPTS) --exclude='*~' $(NAME)-$(VERSION)
	$(RM) $(NAME)-$(VERSION)
.PHONY: tarball