1 # SPDX-License-Identifier: GPL-2.0-only 2 3 define allow-override 4 $(if $(or $(findstring environment,$(origin $(1))),\ 5 $(findstring command line,$(origin $(1)))),,\ 6 $(eval $(1) = $(2))) 7 endef 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) 16 export CC AR STRIP PKG_CONFIG LD_SO_CONF_PATH LDCONFIG 17 18 FOPTS := -flto=auto -ffat-lto-objects -fexceptions -fstack-protector-strong \ 19 -fasynchronous-unwind-tables -fstack-clash-protection 20 WOPTS := -O -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 \ 21 -Wp,-D_GLIBCXX_ASSERTIONS -Wno-maybe-uninitialized 22 23 ifeq ($(CC),clang) 24 FOPTS := $(filter-out -flto=auto -ffat-lto-objects, $(FOPTS)) 25 WOPTS := $(filter-out -Wno-maybe-uninitialized, $(WOPTS)) 26 endif 27 28 CFLAGS := -g -DVERSION=\"$(VERSION)\" $(FOPTS) $(WOPTS) $(CFLAGS) 29 LDFLAGS := -ggdb $(LDFLAGS) 30 31 RM := rm -rf 32 LN := ln -s 33 INSTALL := install 34 MKDIR := mkdir 35 STRIP := strip 36 BINDIR := /usr/bin 37 38 .PHONY: install 39 install: doc_install 40 @$(MKDIR) -p $(DESTDIR)$(BINDIR) 41 $(call QUIET_INSTALL,rtla)$(INSTALL) $(RTLA) -m 755 $(DESTDIR)$(BINDIR) 42 @$(STRIP) $(DESTDIR)$(BINDIR)/rtla 43 @test ! -f $(DESTDIR)$(BINDIR)/osnoise || $(RM) $(DESTDIR)$(BINDIR)/osnoise 44 @$(LN) rtla $(DESTDIR)$(BINDIR)/osnoise 45 @test ! -f $(DESTDIR)$(BINDIR)/hwnoise || $(RM) $(DESTDIR)$(BINDIR)/hwnoise 46 @$(LN) -s rtla $(DESTDIR)$(BINDIR)/hwnoise 47 @test ! -f $(DESTDIR)$(BINDIR)/timerlat || $(RM) $(DESTDIR)$(BINDIR)/timerlat 48 @$(LN) -s rtla $(DESTDIR)$(BINDIR)/timerlat 49 50 .PHONY: doc doc_clean doc_install 51 doc: 52 $(MAKE) -C $(DOCSRC) 53 54 doc_clean: 55 $(MAKE) -C $(DOCSRC) clean 56 57 doc_install: 58 $(MAKE) -C $(DOCSRC) install 59 60 # This section is neesary for the tarball, when the tarball 61 # support is removed, we can delete these entries. 62 NAME := rtla 63 DIRS := src 64 FILES := Makefile README.txt 65 CEXT := bz2 66 TARBALL := $(NAME)-$(VERSION).tar.$(CEXT) 67 TAROPTS := -cvjf $(TARBALL) 68 SRCTREE := $(or $(BUILD_SRC),$(CURDIR)) 69 70 tarball: clean 71 $(RM) $(NAME)-$(VERSION) && $(MKDIR) $(NAME)-$(VERSION) 72 echo $(VERSION) > $(NAME)-$(VERSION)/VERSION 73 cp -r $(DIRS) $(FILES) $(NAME)-$(VERSION) 74 $(MKDIR) $(NAME)-$(VERSION)/Documentation/ 75 cp -rp $(SRCTREE)/../../../Documentation/tools/$(NAME)/* $(NAME)-$(VERSION)/Documentation/ 76 cp Makefile.standalone $(NAME)-$(VERSION)/Makefile 77 cp Makefile.$(NAME) $(NAME)-$(VERSION)/ 78 tar $(TAROPTS) --exclude='*~' $(NAME)-$(VERSION) 79 $(RM) $(NAME)-$(VERSION) 80 .PHONY: tarball
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.