Makefile 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. ifeq ($(srctree),)
  3. srctree := $(patsubst %/,%,$(dir $(CURDIR)))
  4. srctree := $(patsubst %/,%,$(dir $(srctree)))
  5. srctree := $(patsubst %/,%,$(dir $(srctree)))
  6. endif
  7. include $(srctree)/tools/scripts/Makefile.include
  8. # O is an alias for OUTPUT
  9. OUTPUT := $(O)
  10. ifeq ($(OUTPUT),)
  11. OUTPUT := $(CURDIR)
  12. else
  13. # subdir is used by the ../Makefile in $(call descend,)
  14. ifneq ($(subdir),)
  15. OUTPUT := $(OUTPUT)/$(subdir)
  16. endif
  17. endif
  18. ifneq ($(patsubst %/,,$(lastword $(OUTPUT))),)
  19. OUTPUT := $(OUTPUT)/
  20. endif
  21. LATENCY-COLLECTOR := $(OUTPUT)latency-collector
  22. LATENCY-COLLECTOR_IN := $(LATENCY-COLLECTOR)-in.o
  23. export CC := gcc
  24. export LD := ld
  25. export AR := ar
  26. export PKG_CONFIG := pkg-config
  27. FEATURE_TESTS := libtraceevent
  28. FEATURE_TESTS += libtracefs
  29. FEATURE_DISPLAY := libtraceevent
  30. FEATURE_DISPLAY += libtracefs
  31. all: $(LATENCY-COLLECTOR)
  32. include $(srctree)/tools/build/Makefile.include
  33. # check for dependencies only on required targets
  34. NON_CONFIG_TARGETS := clean install
  35. config := 1
  36. ifdef MAKECMDGOALS
  37. ifeq ($(filter-out $(NON_CONFIG_TARGETS),$(MAKECMDGOALS)),)
  38. config := 0
  39. endif
  40. endif
  41. ifeq ($(config),1)
  42. include $(srctree)/tools/build/Makefile.feature
  43. include Makefile.config
  44. endif
  45. CFLAGS += $(INCLUDES) $(LIB_INCLUDES)
  46. export CFLAGS OUTPUT srctree
  47. $(LATENCY-COLLECTOR): $(LATENCY-COLLECTOR_IN)
  48. $(QUIET_LINK)$(CC) $(LDFLAGS) -o $(LATENCY-COLLECTOR) $(LATENCY-COLLECTOR_IN) $(EXTLIBS)
  49. latency-collector.%: fixdep FORCE
  50. make -f $(srctree)/tools/build/Makefile.build dir=. $@
  51. $(LATENCY-COLLECTOR_IN): fixdep FORCE
  52. make $(build)=latency-collector
  53. INSTALL := install
  54. MKDIR := mkdir
  55. STRIP := strip
  56. BINDIR := /usr/bin
  57. install:
  58. @$(MKDIR) -p $(DESTDIR)$(BINDIR)
  59. $(call QUIET_INSTALL,latency-collector)$(INSTALL) $(LATENCY-COLLECTOR) -m 755 $(DESTDIR)$(BINDIR)
  60. @$(STRIP) $(DESTDIR)$(BINDIR)/latency-collector
  61. clean:
  62. $(call QUIET_CLEAN, latency-collector)
  63. $(Q)find . -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
  64. $(Q)@rm -f latency-collector fixdep FEATURE-DUMP
  65. $(Q)rm -rf feature
  66. .PHONY: FORCE clean install