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 1508609989SWilliam Breathitt Grayoverride CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include 1608609989SWilliam Breathitt Gray 1708609989SWilliam Breathitt GrayALL_TARGETS := counter_example 1808609989SWilliam Breathitt GrayALL_PROGRAMS := $(patsubst %,$(OUTPUT)%,$(ALL_TARGETS)) 1908609989SWilliam Breathitt Gray 2008609989SWilliam Breathitt Grayall: $(ALL_PROGRAMS) 2108609989SWilliam Breathitt Gray 2208609989SWilliam Breathitt Grayexport srctree OUTPUT CC LD CFLAGS 2308609989SWilliam Breathitt Grayinclude $(srctree)/tools/build/Makefile.include 2408609989SWilliam Breathitt Gray 2508609989SWilliam Breathitt Gray# 2608609989SWilliam Breathitt Gray# We need the following to be outside of kernel tree 2708609989SWilliam Breathitt Gray# 2808609989SWilliam Breathitt Gray$(OUTPUT)include/linux/counter.h: ../../include/uapi/linux/counter.h 2908609989SWilliam Breathitt Gray mkdir -p $(OUTPUT)include/linux 2>&1 || true 3008609989SWilliam Breathitt Gray ln -sf $(CURDIR)/../../include/uapi/linux/counter.h $@ 3108609989SWilliam Breathitt Gray 3208609989SWilliam Breathitt Grayprepare: $(OUTPUT)include/linux/counter.h 3308609989SWilliam Breathitt Gray 3408609989SWilliam Breathitt GrayCOUNTER_EXAMPLE := $(OUTPUT)counter_example.o 3508609989SWilliam Breathitt Gray$(COUNTER_EXAMPLE): prepare FORCE 3608609989SWilliam Breathitt Gray $(Q)$(MAKE) $(build)=counter_example 3708609989SWilliam Breathitt Gray$(OUTPUT)counter_example: $(COUNTER_EXAMPLE) 3808609989SWilliam Breathitt Gray $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ 3908609989SWilliam Breathitt Gray 4008609989SWilliam Breathitt Grayclean: 4108609989SWilliam Breathitt Gray rm -f $(ALL_PROGRAMS) 4208609989SWilliam Breathitt Gray rm -rf $(OUTPUT)include/linux/counter.h 43*aead7812SAnh Tuan Phan rm -df $(OUTPUT)include/linux 44*aead7812SAnh Tuan Phan rm -df $(OUTPUT)include 455c816641SMasahiro Yamada find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete 4608609989SWilliam Breathitt Gray 4708609989SWilliam Breathitt Grayinstall: $(ALL_PROGRAMS) 4808609989SWilliam Breathitt Gray install -d -m 755 $(DESTDIR)$(bindir); \ 4908609989SWilliam Breathitt Gray for program in $(ALL_PROGRAMS); do \ 5008609989SWilliam Breathitt Gray install $$program $(DESTDIR)$(bindir); \ 5108609989SWilliam Breathitt Gray done 5208609989SWilliam Breathitt Gray 5308609989SWilliam Breathitt GrayFORCE: 5408609989SWilliam Breathitt Gray 5508609989SWilliam Breathitt Gray.PHONY: all install clean FORCE prepare 56