xref: /openbmc/linux/tools/spi/Makefile (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2f325b73dSAndy Shevchenkoinclude ../scripts/Makefile.include
32a4635eaSJorge Ramirez-Ortiz
4e9d4650dSAndy Shevchenkobindir ?= /usr/bin
5e9d4650dSAndy Shevchenko
6f325b73dSAndy Shevchenkoifeq ($(srctree),)
7f325b73dSAndy Shevchenkosrctree := $(patsubst %/,%,$(dir $(CURDIR)))
8f325b73dSAndy Shevchenkosrctree := $(patsubst %/,%,$(dir $(srctree)))
9f325b73dSAndy Shevchenkoendif
10f325b73dSAndy Shevchenko
11f325b73dSAndy Shevchenko# Do not use make's built-in rules
12f325b73dSAndy Shevchenko# (this improves performance and avoids hard-to-debug behaviour);
13f325b73dSAndy ShevchenkoMAKEFLAGS += -r
14f325b73dSAndy Shevchenko
15f325b73dSAndy ShevchenkoCFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include
16f325b73dSAndy Shevchenko
17f325b73dSAndy ShevchenkoALL_TARGETS := spidev_test spidev_fdx
18f325b73dSAndy ShevchenkoALL_PROGRAMS := $(patsubst %,$(OUTPUT)%,$(ALL_TARGETS))
19f325b73dSAndy Shevchenko
20f325b73dSAndy Shevchenkoall: $(ALL_PROGRAMS)
21f325b73dSAndy Shevchenko
22f325b73dSAndy Shevchenkoexport srctree OUTPUT CC LD CFLAGS
23f325b73dSAndy Shevchenkoinclude $(srctree)/tools/build/Makefile.include
24f325b73dSAndy Shevchenko
25f325b73dSAndy Shevchenko#
26f325b73dSAndy Shevchenko# We need the following to be outside of kernel tree
27f325b73dSAndy Shevchenko#
28bc2e9578SQuanyang Wang$(OUTPUT)include/linux/spi: ../../include/uapi/linux/spi
29f325b73dSAndy Shevchenko	mkdir -p $(OUTPUT)include/linux/spi 2>&1 || true
30f325b73dSAndy Shevchenko	ln -sf $(CURDIR)/../../include/uapi/linux/spi/spidev.h $@
31bc2e9578SQuanyang Wang	ln -sf $(CURDIR)/../../include/uapi/linux/spi/spi.h $@
32f325b73dSAndy Shevchenko
33bc2e9578SQuanyang Wangprepare: $(OUTPUT)include/linux/spi
34f325b73dSAndy Shevchenko
35f325b73dSAndy Shevchenko#
36f325b73dSAndy Shevchenko# spidev_test
37f325b73dSAndy Shevchenko#
38f325b73dSAndy ShevchenkoSPIDEV_TEST_IN := $(OUTPUT)spidev_test-in.o
39f325b73dSAndy Shevchenko$(SPIDEV_TEST_IN): prepare FORCE
40f325b73dSAndy Shevchenko	$(Q)$(MAKE) $(build)=spidev_test
41f325b73dSAndy Shevchenko$(OUTPUT)spidev_test: $(SPIDEV_TEST_IN)
42f325b73dSAndy Shevchenko	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
43f325b73dSAndy Shevchenko
44f325b73dSAndy Shevchenko#
45f325b73dSAndy Shevchenko# spidev_fdx
46f325b73dSAndy Shevchenko#
47f325b73dSAndy ShevchenkoSPIDEV_FDX_IN := $(OUTPUT)spidev_fdx-in.o
48f325b73dSAndy Shevchenko$(SPIDEV_FDX_IN): prepare FORCE
49f325b73dSAndy Shevchenko	$(Q)$(MAKE) $(build)=spidev_fdx
50f325b73dSAndy Shevchenko$(OUTPUT)spidev_fdx: $(SPIDEV_FDX_IN)
51f325b73dSAndy Shevchenko	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
525eca4d84SJoshua Clayton
535eca4d84SJoshua Claytonclean:
54f325b73dSAndy Shevchenko	rm -f $(ALL_PROGRAMS)
55aea7afd9STiezhu Yang	rm -rf $(OUTPUT)include/
56*5c816641SMasahiro Yamada	find $(or $(OUTPUT),.) -name '*.o' -delete
57*5c816641SMasahiro Yamada	find $(or $(OUTPUT),.) -name '\.*.o.d' -delete
58*5c816641SMasahiro Yamada	find $(or $(OUTPUT),.) -name '\.*.o.cmd' -delete
59f325b73dSAndy Shevchenko
60e9d4650dSAndy Shevchenkoinstall: $(ALL_PROGRAMS)
61e9d4650dSAndy Shevchenko	install -d -m 755 $(DESTDIR)$(bindir);		\
62e9d4650dSAndy Shevchenko	for program in $(ALL_PROGRAMS); do		\
63e9d4650dSAndy Shevchenko		install $$program $(DESTDIR)$(bindir);	\
64e9d4650dSAndy Shevchenko	done
65e9d4650dSAndy Shevchenko
66f325b73dSAndy ShevchenkoFORCE:
67f325b73dSAndy Shevchenko
68e9d4650dSAndy Shevchenko.PHONY: all install clean FORCE prepare
69