81 lines · plain
1# SPDX-License-Identifier: GPL-2.0-only2 3define allow-override4 $(if $(or $(findstring environment,$(origin $(1))),\5 $(findstring command line,$(origin $(1)))),,\6 $(eval $(1) = $(2)))7endef8 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 LDCONFIG17 18FOPTS := -flto=auto -ffat-lto-objects -fexceptions -fstack-protector-strong \19 -fasynchronous-unwind-tables -fstack-clash-protection20WOPTS := -O -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 \21 -Wp,-D_GLIBCXX_ASSERTIONS -Wno-maybe-uninitialized22 23ifeq ($(CC),clang)24 FOPTS := $(filter-out -flto=auto -ffat-lto-objects, $(FOPTS))25 WOPTS := $(filter-out -Wno-maybe-uninitialized, $(WOPTS))26endif27 28CFLAGS := -g -DVERSION=\"$(VERSION)\" $(FOPTS) $(WOPTS) $(CFLAGS)29LDFLAGS := -ggdb $(LDFLAGS)30 31RM := rm -rf32LN := ln -s33INSTALL := install34MKDIR := mkdir35STRIP := strip36BINDIR := /usr/bin37 38.PHONY: install39install: doc_install40 @$(MKDIR) -p $(DESTDIR)$(BINDIR)41 $(call QUIET_INSTALL,rtla)$(INSTALL) $(RTLA) -m 755 $(DESTDIR)$(BINDIR)42 @$(STRIP) $(DESTDIR)$(BINDIR)/rtla43 @test ! -f $(DESTDIR)$(BINDIR)/osnoise || $(RM) $(DESTDIR)$(BINDIR)/osnoise44 @$(LN) rtla $(DESTDIR)$(BINDIR)/osnoise45 @test ! -f $(DESTDIR)$(BINDIR)/hwnoise || $(RM) $(DESTDIR)$(BINDIR)/hwnoise46 @$(LN) -s rtla $(DESTDIR)$(BINDIR)/hwnoise47 @test ! -f $(DESTDIR)$(BINDIR)/timerlat || $(RM) $(DESTDIR)$(BINDIR)/timerlat48 @$(LN) -s rtla $(DESTDIR)$(BINDIR)/timerlat49 50.PHONY: doc doc_clean doc_install51doc:52 $(MAKE) -C $(DOCSRC)53 54doc_clean:55 $(MAKE) -C $(DOCSRC) clean56 57doc_install:58 $(MAKE) -C $(DOCSRC) install59 60# This section is neesary for the tarball, when the tarball61# support is removed, we can delete these entries.62NAME := rtla63DIRS := src64FILES := Makefile README.txt65CEXT := bz266TARBALL := $(NAME)-$(VERSION).tar.$(CEXT)67TAROPTS := -cvjf $(TARBALL)68SRCTREE := $(or $(BUILD_SRC),$(CURDIR))69 70tarball: clean71 $(RM) $(NAME)-$(VERSION) && $(MKDIR) $(NAME)-$(VERSION)72 echo $(VERSION) > $(NAME)-$(VERSION)/VERSION73 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)/Makefile77 cp Makefile.$(NAME) $(NAME)-$(VERSION)/78 tar $(TAROPTS) --exclude='*~' $(NAME)-$(VERSION)79 $(RM) $(NAME)-$(VERSION)80.PHONY: tarball81