Makefile.rtla 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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 -Wno-maybe-uninitialized
  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. .PHONY: install
  32. install: doc_install
  33. @$(MKDIR) -p $(DESTDIR)$(BINDIR)
  34. $(call QUIET_INSTALL,rtla)$(INSTALL) $(RTLA) -m 755 $(DESTDIR)$(BINDIR)
  35. @$(STRIP) $(DESTDIR)$(BINDIR)/rtla
  36. @test ! -f $(DESTDIR)$(BINDIR)/osnoise || $(RM) $(DESTDIR)$(BINDIR)/osnoise
  37. @$(LN) rtla $(DESTDIR)$(BINDIR)/osnoise
  38. @test ! -f $(DESTDIR)$(BINDIR)/hwnoise || $(RM) $(DESTDIR)$(BINDIR)/hwnoise
  39. @$(LN) -s rtla $(DESTDIR)$(BINDIR)/hwnoise
  40. @test ! -f $(DESTDIR)$(BINDIR)/timerlat || $(RM) $(DESTDIR)$(BINDIR)/timerlat
  41. @$(LN) -s rtla $(DESTDIR)$(BINDIR)/timerlat
  42. .PHONY: doc doc_clean doc_install
  43. doc:
  44. $(MAKE) -C $(DOCSRC)
  45. doc_clean:
  46. $(MAKE) -C $(DOCSRC) clean
  47. doc_install:
  48. $(MAKE) -C $(DOCSRC) install
  49. # This section is neesary for the tarball, when the tarball
  50. # support is removed, we can delete these entries.
  51. NAME := rtla
  52. DIRS := src
  53. FILES := Makefile README.txt
  54. CEXT := bz2
  55. TARBALL := $(NAME)-$(VERSION).tar.$(CEXT)
  56. TAROPTS := -cvjf $(TARBALL)
  57. SRCTREE := $(or $(BUILD_SRC),$(CURDIR))
  58. tarball: clean
  59. $(RM) $(NAME)-$(VERSION) && $(MKDIR) $(NAME)-$(VERSION)
  60. echo $(VERSION) > $(NAME)-$(VERSION)/VERSION
  61. cp -r $(DIRS) $(FILES) $(NAME)-$(VERSION)
  62. $(MKDIR) $(NAME)-$(VERSION)/Documentation/
  63. cp -rp $(SRCTREE)/../../../Documentation/tools/$(NAME)/* $(NAME)-$(VERSION)/Documentation/
  64. cp Makefile.standalone $(NAME)-$(VERSION)/Makefile
  65. cp Makefile.$(NAME) $(NAME)-$(VERSION)/
  66. tar $(TAROPTS) --exclude='*~' $(NAME)-$(VERSION)
  67. $(RM) $(NAME)-$(VERSION)
  68. .PHONY: tarball