.. | .. |
---|
1 | 1 | # SPDX-License-Identifier: GPL-2.0 |
---|
2 | 2 | # Makefile for USB tools |
---|
| 3 | +include ../scripts/Makefile.include |
---|
3 | 4 | |
---|
4 | | -PTHREAD_LIBS = -lpthread |
---|
5 | | -WARNINGS = -Wall -Wextra |
---|
6 | | -CFLAGS = $(WARNINGS) -g -I../include |
---|
7 | | -LDFLAGS = $(PTHREAD_LIBS) |
---|
| 5 | +bindir ?= /usr/bin |
---|
8 | 6 | |
---|
9 | | -all: testusb ffs-test |
---|
10 | | -%: %.c |
---|
11 | | - $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) |
---|
| 7 | +ifeq ($(srctree),) |
---|
| 8 | +srctree := $(patsubst %/,%,$(dir $(CURDIR))) |
---|
| 9 | +srctree := $(patsubst %/,%,$(dir $(srctree))) |
---|
| 10 | +endif |
---|
| 11 | + |
---|
| 12 | +# Do not use make's built-in rules |
---|
| 13 | +# (this improves performance and avoids hard-to-debug behaviour); |
---|
| 14 | +MAKEFLAGS += -r |
---|
| 15 | + |
---|
| 16 | +override CFLAGS += -O2 -Wall -Wextra -g -D_GNU_SOURCE -I$(OUTPUT)include -I$(srctree)/tools/include |
---|
| 17 | +override LDFLAGS += -lpthread |
---|
| 18 | + |
---|
| 19 | +ALL_TARGETS := testusb ffs-test |
---|
| 20 | +ALL_PROGRAMS := $(patsubst %,$(OUTPUT)%,$(ALL_TARGETS)) |
---|
| 21 | + |
---|
| 22 | +all: $(ALL_PROGRAMS) |
---|
| 23 | + |
---|
| 24 | +export srctree OUTPUT CC LD CFLAGS |
---|
| 25 | +include $(srctree)/tools/build/Makefile.include |
---|
| 26 | + |
---|
| 27 | +TESTUSB_IN := $(OUTPUT)testusb-in.o |
---|
| 28 | +$(TESTUSB_IN): FORCE |
---|
| 29 | + $(Q)$(MAKE) $(build)=testusb |
---|
| 30 | +$(OUTPUT)testusb: $(TESTUSB_IN) |
---|
| 31 | + $(QUIET_LINK)$(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) |
---|
| 32 | + |
---|
| 33 | +FFS_TEST_IN := $(OUTPUT)ffs-test-in.o |
---|
| 34 | +$(FFS_TEST_IN): FORCE |
---|
| 35 | + $(Q)$(MAKE) $(build)=ffs-test |
---|
| 36 | +$(OUTPUT)ffs-test: $(FFS_TEST_IN) |
---|
| 37 | + $(QUIET_LINK)$(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) |
---|
12 | 38 | |
---|
13 | 39 | clean: |
---|
14 | | - $(RM) testusb ffs-test |
---|
| 40 | + rm -f $(ALL_PROGRAMS) |
---|
| 41 | + find $(if $(OUTPUT),$(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete -o -name '\.*.o.cmd' -delete |
---|
| 42 | + |
---|
| 43 | +install: $(ALL_PROGRAMS) |
---|
| 44 | + install -d -m 755 $(DESTDIR)$(bindir); \ |
---|
| 45 | + for program in $(ALL_PROGRAMS); do \ |
---|
| 46 | + install $$program $(DESTDIR)$(bindir); \ |
---|
| 47 | + done |
---|
| 48 | + |
---|
| 49 | +FORCE: |
---|
| 50 | + |
---|
| 51 | +.PHONY: all install clean FORCE prepare |
---|