linux/tools/spi/Makefile
<<
>>
Prefs
   1# SPDX-License-Identifier: GPL-2.0-only
   2include ../scripts/Makefile.include
   3
   4bindir ?= /usr/bin
   5
   6ifeq ($(srctree),)
   7srctree := $(patsubst %/,%,$(dir $(CURDIR)))
   8srctree := $(patsubst %/,%,$(dir $(srctree)))
   9endif
  10
  11# Do not use make's built-in rules
  12# (this improves performance and avoids hard-to-debug behaviour);
  13MAKEFLAGS += -r
  14
  15CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include
  16
  17ALL_TARGETS := spidev_test spidev_fdx
  18ALL_PROGRAMS := $(patsubst %,$(OUTPUT)%,$(ALL_TARGETS))
  19
  20all: $(ALL_PROGRAMS)
  21
  22export srctree OUTPUT CC LD CFLAGS
  23include $(srctree)/tools/build/Makefile.include
  24
  25#
  26# We need the following to be outside of kernel tree
  27#
  28$(OUTPUT)include/linux/spi: ../../include/uapi/linux/spi
  29        mkdir -p $(OUTPUT)include/linux/spi 2>&1 || true
  30        ln -sf $(CURDIR)/../../include/uapi/linux/spi/spidev.h $@
  31        ln -sf $(CURDIR)/../../include/uapi/linux/spi/spi.h $@
  32
  33prepare: $(OUTPUT)include/linux/spi
  34
  35#
  36# spidev_test
  37#
  38SPIDEV_TEST_IN := $(OUTPUT)spidev_test-in.o
  39$(SPIDEV_TEST_IN): prepare FORCE
  40        $(Q)$(MAKE) $(build)=spidev_test
  41$(OUTPUT)spidev_test: $(SPIDEV_TEST_IN)
  42        $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
  43
  44#
  45# spidev_fdx
  46#
  47SPIDEV_FDX_IN := $(OUTPUT)spidev_fdx-in.o
  48$(SPIDEV_FDX_IN): prepare FORCE
  49        $(Q)$(MAKE) $(build)=spidev_fdx
  50$(OUTPUT)spidev_fdx: $(SPIDEV_FDX_IN)
  51        $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
  52
  53clean:
  54        rm -f $(ALL_PROGRAMS)
  55        rm -rf $(OUTPUT)include/
  56        find $(if $(OUTPUT),$(OUTPUT),.) -name '*.o' -delete
  57        find $(if $(OUTPUT),$(OUTPUT),.) -name '\.*.o.d' -delete
  58        find $(if $(OUTPUT),$(OUTPUT),.) -name '\.*.o.cmd' -delete
  59
  60install: $(ALL_PROGRAMS)
  61        install -d -m 755 $(DESTDIR)$(bindir);          \
  62        for program in $(ALL_PROGRAMS); do              \
  63                install $$program $(DESTDIR)$(bindir);  \
  64        done
  65
  66FORCE:
  67
  68.PHONY: all install clean FORCE prepare
  69