Makefile 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. ifeq ($(V),1)
  32. Q =
  33. else
  34. Q = @
  35. endif
  36. all: $(LATENCY-COLLECTOR)
  37. include $(srctree)/tools/build/Makefile.include
  38. # check for dependencies only on required targets
  39. NON_CONFIG_TARGETS := clean install
  40. config := 1
  41. ifdef MAKECMDGOALS
  42. ifeq ($(filter-out $(NON_CONFIG_TARGETS),$(MAKECMDGOALS)),)
  43. config := 0
  44. endif
  45. endif
  46. ifeq ($(config),1)
  47. include $(srctree)/tools/build/Makefile.feature
  48. include Makefile.config
  49. endif
  50. CFLAGS += $(INCLUDES) $(LIB_INCLUDES)
  51. export CFLAGS OUTPUT srctree
  52. $(LATENCY-COLLECTOR): $(LATENCY-COLLECTOR_IN)
  53. $(QUIET_LINK)$(CC) $(LDFLAGS) -o $(LATENCY-COLLECTOR) $(LATENCY-COLLECTOR_IN) $(EXTLIBS)
  54. latency-collector.%: fixdep FORCE
  55. make -f $(srctree)/tools/build/Makefile.build dir=. $@
  56. $(LATENCY-COLLECTOR_IN): fixdep FORCE
  57. make $(build)=latency-collector
  58. INSTALL := install
  59. MKDIR := mkdir
  60. STRIP := strip
  61. BINDIR := /usr/bin
  62. install:
  63. @$(MKDIR) -p $(DESTDIR)$(BINDIR)
  64. $(call QUIET_INSTALL,latency-collector)$(INSTALL) $(LATENCY-COLLECTOR) -m 755 $(DESTDIR)$(BINDIR)
  65. @$(STRIP) $(DESTDIR)$(BINDIR)/latency-collector
  66. clean:
  67. $(call QUIET_CLEAN, latency-collector)
  68. $(Q)find . -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
  69. $(Q)@rm -f latency-collector fixdep FEATURE-DUMP
  70. $(Q)rm -rf feature
  71. .PHONY: FORCE clean install