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