Makefile.rtla 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. define allow-override
  3. $(if $(or $(findstring environment,$(origin $(1))),\
  4. $(findstring command line,$(origin $(1)))),,\
  5. $(eval $(1) = $(2)))
  6. endef
  7. # Allow setting CC and AR, or setting CROSS_COMPILE as a prefix.
  8. $(call allow-override,CC,$(CROSS_COMPILE)gcc)
  9. $(call allow-override,AR,$(CROSS_COMPILE)ar)
  10. $(call allow-override,STRIP,$(CROSS_COMPILE)strip)
  11. $(call allow-override,PKG_CONFIG,pkg-config)
  12. $(call allow-override,LD_SO_CONF_PATH,/etc/ld.so.conf.d/)
  13. $(call allow-override,LDCONFIG,ldconfig)
  14. export CC AR STRIP PKG_CONFIG LD_SO_CONF_PATH LDCONFIG
  15. FOPTS := -flto=auto -ffat-lto-objects -fexceptions -fstack-protector-strong \
  16. -fasynchronous-unwind-tables -fstack-clash-protection
  17. WOPTS := -O -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 \
  18. -Wp,-D_GLIBCXX_ASSERTIONS
  19. ifeq ($(CC),clang)
  20. FOPTS := $(filter-out -flto=auto -ffat-lto-objects, $(FOPTS))
  21. WOPTS := $(filter-out -Wno-maybe-uninitialized, $(WOPTS))
  22. endif
  23. CFLAGS := -g -DVERSION=\"$(VERSION)\" $(FOPTS) $(WOPTS) $(CFLAGS)
  24. LDFLAGS := -ggdb $(LDFLAGS)
  25. RM := rm -rf
  26. LN := ln -s
  27. INSTALL := install
  28. MKDIR := mkdir
  29. STRIP := strip
  30. BINDIR := /usr/bin
  31. CTAGS := ctags
  32. ETAGS := ctags -e
  33. .PHONY: install
  34. install: doc_install
  35. @$(MKDIR) -p $(DESTDIR)$(BINDIR)
  36. $(call QUIET_INSTALL,rtla)$(INSTALL) $(RTLA) -m 755 $(DESTDIR)$(BINDIR)
  37. @$(STRIP) $(DESTDIR)$(BINDIR)/rtla
  38. @test ! -f $(DESTDIR)$(BINDIR)/osnoise || $(RM) $(DESTDIR)$(BINDIR)/osnoise
  39. @$(LN) rtla $(DESTDIR)$(BINDIR)/osnoise
  40. @test ! -f $(DESTDIR)$(BINDIR)/hwnoise || $(RM) $(DESTDIR)$(BINDIR)/hwnoise
  41. @$(LN) -s rtla $(DESTDIR)$(BINDIR)/hwnoise
  42. @test ! -f $(DESTDIR)$(BINDIR)/timerlat || $(RM) $(DESTDIR)$(BINDIR)/timerlat
  43. @$(LN) -s rtla $(DESTDIR)$(BINDIR)/timerlat
  44. .PHONY: tags
  45. tags:
  46. $(CTAGS) -R --extras=+f --c-kinds=+p src
  47. .PHONY: TAGS
  48. TAGS:
  49. $(ETAGS) -R --extras=+f --c-kinds=+p src
  50. .PHONY: tags_clean
  51. tags_clean:
  52. $(RM) tags TAGS
  53. .PHONY: doc doc_clean doc_install
  54. doc:
  55. $(MAKE) -C $(DOCSRC)
  56. doc_clean:
  57. $(MAKE) -C $(DOCSRC) clean
  58. doc_install:
  59. $(MAKE) -C $(DOCSRC) install
  60. # This section is necessary to make the rtla tarball
  61. NAME := rtla
  62. DIRS := src
  63. FILES := Makefile README.txt
  64. CEXT := bz2
  65. TARBALL := $(NAME)-$(VERSION).tar.$(CEXT)
  66. TAROPTS := -cvjf $(TARBALL)
  67. SRCTREE := $(or $(BUILD_SRC),$(CURDIR))
  68. tarball: clean
  69. $(RM) $(NAME)-$(VERSION) && $(MKDIR) $(NAME)-$(VERSION)
  70. echo $(VERSION) > $(NAME)-$(VERSION)/VERSION
  71. cp -r $(DIRS) $(FILES) $(NAME)-$(VERSION)
  72. $(MKDIR) $(NAME)-$(VERSION)/Documentation/
  73. cp -rp $(SRCTREE)/../../../Documentation/tools/$(NAME)/* $(NAME)-$(VERSION)/Documentation/
  74. cp Makefile.standalone $(NAME)-$(VERSION)/Makefile
  75. cp Makefile.$(NAME) $(NAME)-$(VERSION)/
  76. tar $(TAROPTS) --exclude='*~' $(NAME)-$(VERSION)
  77. $(RM) $(NAME)-$(VERSION)
  78. .PHONY: tarball