Skip to content

Commit f325b73

Browse files
andy-shevbroonie
authored andcommitted
spi: tools: move to tools buildsystem
There is a nice buildsystem dedicated for userspace tools in Linux kernel tree. Switch spi target to be built by it. Signed-off-by: Andy Shevchenko <[email protected]> Signed-off-by: Mark Brown <[email protected]>
1 parent 5771a8c commit f325b73

File tree

2 files changed

+56
-2
lines changed

2 files changed

+56
-2
lines changed

tools/spi/Build

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
spidev_test-y += spidev_test.o
2+
spidev_fdx-y += spidev_fdx.o

tools/spi/Makefile

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,58 @@
1+
include ../scripts/Makefile.include
2+
3+
ifeq ($(srctree),)
4+
srctree := $(patsubst %/,%,$(dir $(CURDIR)))
5+
srctree := $(patsubst %/,%,$(dir $(srctree)))
6+
endif
7+
8+
# Do not use make's built-in rules
9+
# (this improves performance and avoids hard-to-debug behaviour);
10+
MAKEFLAGS += -r
11+
112
CC = $(CROSS_COMPILE)gcc
13+
LD = $(CROSS_COMPILE)ld
14+
CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include
15+
16+
ALL_TARGETS := spidev_test spidev_fdx
17+
ALL_PROGRAMS := $(patsubst %,$(OUTPUT)%,$(ALL_TARGETS))
18+
19+
all: $(ALL_PROGRAMS)
20+
21+
export srctree OUTPUT CC LD CFLAGS
22+
include $(srctree)/tools/build/Makefile.include
223

3-
all: spidev_test spidev_fdx
24+
#
25+
# We need the following to be outside of kernel tree
26+
#
27+
$(OUTPUT)include/linux/spi/spidev.h: ../../include/uapi/linux/spi/spidev.h
28+
mkdir -p $(OUTPUT)include/linux/spi 2>&1 || true
29+
ln -sf $(CURDIR)/../../include/uapi/linux/spi/spidev.h $@
30+
31+
prepare: $(OUTPUT)include/linux/spi/spidev.h
32+
33+
#
34+
# spidev_test
35+
#
36+
SPIDEV_TEST_IN := $(OUTPUT)spidev_test-in.o
37+
$(SPIDEV_TEST_IN): prepare FORCE
38+
$(Q)$(MAKE) $(build)=spidev_test
39+
$(OUTPUT)spidev_test: $(SPIDEV_TEST_IN)
40+
$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
41+
42+
#
43+
# spidev_fdx
44+
#
45+
SPIDEV_FDX_IN := $(OUTPUT)spidev_fdx-in.o
46+
$(SPIDEV_FDX_IN): prepare FORCE
47+
$(Q)$(MAKE) $(build)=spidev_fdx
48+
$(OUTPUT)spidev_fdx: $(SPIDEV_FDX_IN)
49+
$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
450

551
clean:
6-
$(RM) spidev_test spidev_fdx
52+
rm -f $(ALL_PROGRAMS)
53+
rm -f $(OUTPUT)include/linux/spi/spidev.h
54+
find $(if $(OUTPUT),$(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete
55+
56+
FORCE:
57+
58+
.PHONY: all clean FORCE prepare

0 commit comments

Comments
 (0)