| # 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 | |
| INCLUDE := -Iinclude/ | |
| CFLAGS := -g -DVERSION=\"$(VERSION)\" $(FOPTS) $(WOPTS) $(EXTRA_CFLAGS) $(INCLUDE) | |
| LDFLAGS := -ggdb $(LDFLAGS) $(EXTRA_LDFLAGS) | |
| INSTALL := install | |
| MKDIR := mkdir | |
| STRIP := strip | |
| BINDIR := /usr/bin | |
| .PHONY: install | |
| install: doc_install | |
| $(Q)$(MKDIR) -p $(DESTDIR)$(BINDIR) | |
| $(call QUIET_INSTALL,rv)$(INSTALL) $(OUTPUT)rv -m 755 $(DESTDIR)$(BINDIR) | |
| $(Q)@$(STRIP) $(DESTDIR)$(BINDIR)/rv | |
| .PHONY: doc doc_clean doc_install | |
| doc: | |
| $(MAKE) -C $(DOCSRC) | |
| doc_clean: | |
| $(MAKE) -C $(DOCSRC) clean | |
| doc_install: | |
| $(MAKE) -C $(DOCSRC) install |