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# 28f325b73dSAndy Shevchenko$(OUTPUT)include/linux/spi/spidev.h: ../../include/uapi/linux/spi/spidev.h 29f325b73dSAndy Shevchenko mkdir -p $(OUTPUT)include/linux/spi 2>&1 || true 30f325b73dSAndy Shevchenko ln -sf $(CURDIR)/../../include/uapi/linux/spi/spidev.h $@ 31f325b73dSAndy Shevchenko 32f325b73dSAndy Shevchenkoprepare: $(OUTPUT)include/linux/spi/spidev.h 33f325b73dSAndy Shevchenko 34f325b73dSAndy Shevchenko# 35f325b73dSAndy Shevchenko# spidev_test 36f325b73dSAndy Shevchenko# 37f325b73dSAndy ShevchenkoSPIDEV_TEST_IN := $(OUTPUT)spidev_test-in.o 38f325b73dSAndy Shevchenko$(SPIDEV_TEST_IN): prepare FORCE 39f325b73dSAndy Shevchenko $(Q)$(MAKE) $(build)=spidev_test 40f325b73dSAndy Shevchenko$(OUTPUT)spidev_test: $(SPIDEV_TEST_IN) 41f325b73dSAndy Shevchenko $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ 42f325b73dSAndy Shevchenko 43f325b73dSAndy Shevchenko# 44f325b73dSAndy Shevchenko# spidev_fdx 45f325b73dSAndy Shevchenko# 46f325b73dSAndy ShevchenkoSPIDEV_FDX_IN := $(OUTPUT)spidev_fdx-in.o 47f325b73dSAndy Shevchenko$(SPIDEV_FDX_IN): prepare FORCE 48f325b73dSAndy Shevchenko $(Q)$(MAKE) $(build)=spidev_fdx 49f325b73dSAndy Shevchenko$(OUTPUT)spidev_fdx: $(SPIDEV_FDX_IN) 50f325b73dSAndy Shevchenko $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ 515eca4d84SJoshua Clayton 525eca4d84SJoshua Claytonclean: 53f325b73dSAndy Shevchenko rm -f $(ALL_PROGRAMS) 54*aea7afd9STiezhu Yang rm -rf $(OUTPUT)include/ 55f325b73dSAndy Shevchenko find $(if $(OUTPUT),$(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete 56f325b73dSAndy Shevchenko 57e9d4650dSAndy Shevchenkoinstall: $(ALL_PROGRAMS) 58e9d4650dSAndy Shevchenko install -d -m 755 $(DESTDIR)$(bindir); \ 59e9d4650dSAndy Shevchenko for program in $(ALL_PROGRAMS); do \ 60e9d4650dSAndy Shevchenko install $$program $(DESTDIR)$(bindir); \ 61e9d4650dSAndy Shevchenko done 62e9d4650dSAndy Shevchenko 63f325b73dSAndy ShevchenkoFORCE: 64f325b73dSAndy Shevchenko 65e9d4650dSAndy Shevchenko.PHONY: all install clean FORCE prepare 66