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