Makefile.rv 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. INCLUDE := -Iinclude/
  24. CFLAGS := -g -DVERSION=\"$(VERSION)\" $(FOPTS) $(WOPTS) $(EXTRA_CFLAGS) $(INCLUDE)
  25. LDFLAGS := -ggdb $(LDFLAGS) $(EXTRA_LDFLAGS)
  26. INSTALL := install
  27. MKDIR := mkdir
  28. STRIP := strip
  29. BINDIR := /usr/bin
  30. .PHONY: install
  31. install: doc_install
  32. $(Q)$(MKDIR) -p $(DESTDIR)$(BINDIR)
  33. $(call QUIET_INSTALL,rv)$(INSTALL) $(OUTPUT)rv -m 755 $(DESTDIR)$(BINDIR)
  34. $(Q)@$(STRIP) $(DESTDIR)$(BINDIR)/rv
  35. .PHONY: doc doc_clean doc_install
  36. doc:
  37. $(MAKE) -C $(DOCSRC)
  38. doc_clean:
  39. $(MAKE) -C $(DOCSRC) clean
  40. doc_install:
  41. $(MAKE) -C $(DOCSRC) install