xref: /linux/tools/counter/Makefile (revision 06d07429858317ded2db7986113a9e0129cd599b)
108609989SWilliam Breathitt Gray# SPDX-License-Identifier: GPL-2.0
208609989SWilliam Breathitt Grayinclude ../scripts/Makefile.include
308609989SWilliam Breathitt Gray
408609989SWilliam Breathitt Graybindir ?= /usr/bin
508609989SWilliam Breathitt Gray
608609989SWilliam Breathitt Grayifeq ($(srctree),)
708609989SWilliam Breathitt Graysrctree := $(patsubst %/,%,$(dir $(CURDIR)))
808609989SWilliam Breathitt Graysrctree := $(patsubst %/,%,$(dir $(srctree)))
908609989SWilliam Breathitt Grayendif
1008609989SWilliam Breathitt Gray
1108609989SWilliam Breathitt Gray# Do not use make's built-in rules
1208609989SWilliam Breathitt Gray# (this improves performance and avoids hard-to-debug behaviour);
1308609989SWilliam Breathitt GrayMAKEFLAGS += -r
1408609989SWilliam Breathitt Gray
15*1e73427fSFabrice Gasnieroverride CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include \
16*1e73427fSFabrice Gasnier	 -I$(srctree)/tools/include
1708609989SWilliam Breathitt Gray
18*1e73427fSFabrice GasnierALL_TARGETS := counter_example counter_watch_events
1908609989SWilliam Breathitt GrayALL_PROGRAMS := $(patsubst %,$(OUTPUT)%,$(ALL_TARGETS))
2008609989SWilliam Breathitt Gray
2108609989SWilliam Breathitt Grayall: $(ALL_PROGRAMS)
2208609989SWilliam Breathitt Gray
2308609989SWilliam Breathitt Grayexport srctree OUTPUT CC LD CFLAGS
2408609989SWilliam Breathitt Grayinclude $(srctree)/tools/build/Makefile.include
2508609989SWilliam Breathitt Gray
2608609989SWilliam Breathitt Gray#
2708609989SWilliam Breathitt Gray# We need the following to be outside of kernel tree
2808609989SWilliam Breathitt Gray#
2908609989SWilliam Breathitt Gray$(OUTPUT)include/linux/counter.h: ../../include/uapi/linux/counter.h
3008609989SWilliam Breathitt Gray	mkdir -p $(OUTPUT)include/linux 2>&1 || true
3108609989SWilliam Breathitt Gray	ln -sf $(CURDIR)/../../include/uapi/linux/counter.h $@
3208609989SWilliam Breathitt Gray
3308609989SWilliam Breathitt Grayprepare: $(OUTPUT)include/linux/counter.h
3408609989SWilliam Breathitt Gray
3508609989SWilliam Breathitt GrayCOUNTER_EXAMPLE := $(OUTPUT)counter_example.o
3608609989SWilliam Breathitt Gray$(COUNTER_EXAMPLE): prepare FORCE
3708609989SWilliam Breathitt Gray	$(Q)$(MAKE) $(build)=counter_example
3808609989SWilliam Breathitt Gray$(OUTPUT)counter_example: $(COUNTER_EXAMPLE)
3908609989SWilliam Breathitt Gray	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
4008609989SWilliam Breathitt Gray
41*1e73427fSFabrice GasnierCOUNTER_WATCH_EVENTS := $(OUTPUT)counter_watch_events.o
42*1e73427fSFabrice Gasnier$(COUNTER_WATCH_EVENTS): prepare FORCE
43*1e73427fSFabrice Gasnier	$(Q)$(MAKE) $(build)=counter_watch_events
44*1e73427fSFabrice Gasnier$(OUTPUT)counter_watch_events: $(COUNTER_WATCH_EVENTS)
45*1e73427fSFabrice Gasnier	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
46*1e73427fSFabrice Gasnier
4708609989SWilliam Breathitt Grayclean:
4808609989SWilliam Breathitt Gray	rm -f $(ALL_PROGRAMS)
4908609989SWilliam Breathitt Gray	rm -rf $(OUTPUT)include/linux/counter.h
50aead7812SAnh Tuan Phan	rm -df $(OUTPUT)include/linux
51aead7812SAnh Tuan Phan	rm -df $(OUTPUT)include
525c816641SMasahiro Yamada	find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete
53*1e73427fSFabrice Gasnier	find $(or $(OUTPUT),.) -name '\.*.o.cmd' -delete
5408609989SWilliam Breathitt Gray
5508609989SWilliam Breathitt Grayinstall: $(ALL_PROGRAMS)
5608609989SWilliam Breathitt Gray	install -d -m 755 $(DESTDIR)$(bindir);		\
5708609989SWilliam Breathitt Gray	for program in $(ALL_PROGRAMS); do		\
5808609989SWilliam Breathitt Gray		install $$program $(DESTDIR)$(bindir);	\
5908609989SWilliam Breathitt Gray	done
6008609989SWilliam Breathitt Gray
6108609989SWilliam Breathitt GrayFORCE:
6208609989SWilliam Breathitt Gray
6308609989SWilliam Breathitt Gray.PHONY: all install clean FORCE prepare
64