1# SPDX-License-Identifier: GPL-2.0-only 2 3define allow-override 4 $(if $(or $(findstring environment,$(origin $(1))),\ 5 $(findstring command line,$(origin $(1)))),,\ 6 $(eval $(1) = $(2))) 7endef 8 9# Allow setting CC and AR, or setting CROSS_COMPILE as a prefix. 10$(call allow-override,CC,$(CROSS_COMPILE)gcc) 11$(call allow-override,AR,$(CROSS_COMPILE)ar) 12$(call allow-override,STRIP,$(CROSS_COMPILE)strip) 13$(call allow-override,PKG_CONFIG,pkg-config) 14$(call allow-override,LD_SO_CONF_PATH,/etc/ld.so.conf.d/) 15$(call allow-override,LDCONFIG,ldconfig) 16export CC AR STRIP PKG_CONFIG LD_SO_CONF_PATH LDCONFIG 17 18FOPTS :=-flto=auto -ffat-lto-objects -fexceptions -fstack-protector-strong \ 19 -fasynchronous-unwind-tables -fstack-clash-protection 20WOPTS := -O -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 \ 21 -Wp,-D_GLIBCXX_ASSERTIONS -Wno-maybe-uninitialized 22 23ifeq ($(CC),clang) 24 FOPTS := $(filter-out -flto=auto -ffat-lto-objects, $(FOPTS)) 25 WOPTS := $(filter-out -Wno-maybe-uninitialized, $(WOPTS)) 26endif 27 28INCLUDE := -Iinclude/ 29CFLAGS := -g -DVERSION=\"$(VERSION)\" $(FOPTS) $(WOPTS) $(EXTRA_CFLAGS) $(INCLUDE) 30LDFLAGS := -ggdb $(EXTRA_LDFLAGS) 31 32INSTALL := install 33MKDIR := mkdir 34STRIP := strip 35BINDIR := /usr/bin 36 37.PHONY: install 38install: doc_install 39 $(Q)$(MKDIR) -p $(DESTDIR)$(BINDIR) 40 $(call QUIET_INSTALL,rv)$(INSTALL) $(OUTPUT)rv -m 755 $(DESTDIR)$(BINDIR) 41 $(Q)@$(STRIP) $(DESTDIR)$(BINDIR)/rv 42 43.PHONY: doc doc_clean doc_install 44doc: 45 $(MAKE) -C $(DOCSRC) 46 47doc_clean: 48 $(MAKE) -C $(DOCSRC) clean 49 50doc_install: 51 $(MAKE) -C $(DOCSRC) install 52