# 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
CTAGS		:= ctags
ETAGS		:= ctags -e

.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: tags
tags:
	$(CTAGS) -R --extras=+f --c-kinds=+p src

.PHONY: TAGS
TAGS:
	$(ETAGS) -R --extras=+f --c-kinds=+p src

.PHONY: tags_clean
tags_clean:
	$(RM) tags TAGS

.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 necessary to make the rtla tarball
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
