| 1 |
|
| 2 | include ../scripts/Makefile.include
|
| 3 |
|
| 4 | bindir ?= /usr/bin
|
| 5 |
|
| 6 | ifeq ($(srctree),)
|
| 7 | srctree := $(patsubst %/,%,$(dir $(CURDIR)))
|
| 8 | srctree := $(patsubst %/,%,$(dir $(srctree)))
|
| 9 | endif
|
| 10 |
|
| 11 |
|
| 12 |
|
| 13 | MAKEFLAGS += -r
|
| 14 |
|
| 15 | override CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include \
|
| 16 | -I$(srctree)/tools/include
|
| 17 |
|
| 18 | ALL_TARGETS := counter_example counter_watch_events
|
| 19 | ALL_PROGRAMS := $(patsubst %,$(OUTPUT)%,$(ALL_TARGETS))
|
| 20 |
|
| 21 | all: $(ALL_PROGRAMS)
|
| 22 |
|
| 23 | export srctree OUTPUT CC LD CFLAGS
|
| 24 | include $(srctree)/tools/build/Makefile.include
|
| 25 |
|
| 26 |
|
| 27 |
|
| 28 |
|
| 29 | $(OUTPUT)include/linux/counter.h: ../../include/uapi/linux/counter.h
|
| 30 | mkdir -p $(OUTPUT)include/linux 2>&1 || true
|
| 31 | ln -sf $(CURDIR)/../../include/uapi/linux/counter.h $@
|
| 32 |
|
| 33 | prepare: $(OUTPUT)include/linux/counter.h
|
| 34 |
|
| 35 | COUNTER_EXAMPLE := $(OUTPUT)counter_example.o
|
| 36 | $(COUNTER_EXAMPLE): prepare FORCE
|
| 37 | $(Q)$(MAKE) $(build)=counter_example
|
| 38 | $(OUTPUT)counter_example: $(COUNTER_EXAMPLE)
|
| 39 | $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
|
| 40 |
|
| 41 | COUNTER_WATCH_EVENTS := $(OUTPUT)counter_watch_events.o
|
| 42 | $(COUNTER_WATCH_EVENTS): prepare FORCE
|
| 43 | $(Q)$(MAKE) $(build)=counter_watch_events
|
| 44 | $(OUTPUT)counter_watch_events: $(COUNTER_WATCH_EVENTS)
|
| 45 | $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
|
| 46 |
|
| 47 | clean:
|
| 48 | rm -f $(ALL_PROGRAMS)
|
| 49 | rm -rf $(OUTPUT)include/linux/counter.h
|
| 50 | rm -df $(OUTPUT)include/linux
|
| 51 | rm -df $(OUTPUT)include
|
| 52 | find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete
|
| 53 | find $(or $(OUTPUT),.) -name '\.*.o.cmd' -delete
|
| 54 |
|
| 55 | install: $(ALL_PROGRAMS)
|
| 56 | install -d -m 755 $(DESTDIR)$(bindir); \
|
| 57 | for program in $(ALL_PROGRAMS); do \
|
| 58 | install $$program $(DESTDIR)$(bindir); \
|
| 59 | done
|
| 60 |
|
| 61 | FORCE:
|
| 62 |
|
| 63 | .PHONY: all install clean FORCE prepare
|