Skip to content

Commit feab143

Browse files
committed
xdma: build improvements
tools: * Support program prefix. * Support install target. * Support CFLAGS and LDFLAGS from build system. module: * depmod should be optional. * Accept installation target. * Support modules_install target (avoid removal of leftovers)
1 parent 1ec8f51 commit feab143

File tree

2 files changed

+40
-22
lines changed

2 files changed

+40
-22
lines changed

XDMA/linux-kernel/tools/Makefile

+27-13
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,38 @@
1+
prefix := /usr/local
2+
bindir := $(prefix)/bin
3+
PROGRAM_PREFIX :=
14
CC ?= gcc
5+
CFLAGS ?=
6+
LDFLAGS ?=
7+
EXTRA_CFLAGS = -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
8+
INSTALL ?= install
29

3-
all: reg_rw dma_to_device dma_from_device performance test_chrdev
10+
PROGRAMS = $(PROGRAM_PREFIX)reg_rw $(PROGRAM_PREFIX)dma_to_device $(PROGRAM_PREFIX)dma_from_device $(PROGRAM_PREFIX)performance $(PROGRAM_PREFIX)test_chrdev
411

5-
dma_to_device: dma_to_device.o
6-
$(CC) -lrt -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
12+
all: $(PROGRAMS)
713

8-
dma_from_device: dma_from_device.o
9-
$(CC) -lrt -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
14+
$(PROGRAM_PREFIX)dma_to_device: dma_to_device.o
15+
$(CC) -lrt -o $@ $< $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS)
1016

11-
performance: performance.o
12-
$(CC) -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
17+
$(PROGRAM_PREFIX)dma_from_device: dma_from_device.o
18+
$(CC) -lrt -o $@ $< $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS)
1319

14-
reg_rw: reg_rw.o
15-
$(CC) -o $@ $<
20+
$(PROGRAM_PREFIX)performance: performance.o
21+
$(CC) -o $@ $< $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS)
1622

17-
test_chrdev: test_chrdev.o
18-
$(CC) -o $@ $<
23+
$(PROGRAM_PREFIX)reg_rw: reg_rw.o
24+
$(CC) -o $@ $< $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS)
25+
26+
$(PROGRAM_PREFIX)test_chrdev: test_chrdev.o
27+
$(CC) -o $@ $< $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS)
1928

2029
%.o: %.c
21-
$(CC) -c -std=c99 -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
30+
$(CC) -c -std=c99 -o $@ $< $(CFLAGS) $(EXTRA_CFLAGS)
2231

2332
clean:
24-
rm -rf reg_rw *.o *.bin dma_to_device dma_from_device performance test_chrdev
33+
rm -rf *.o *.bin
34+
rm -fr $(PROGRAMS)
35+
36+
install: all
37+
install -d -m 0755 "$(DESTDIR)$(bindir)"
38+
install -m 0755 $(PROGRAMS) "$(DESTDIR)$(bindir)"

XDMA/linux-kernel/xdma/Makefile

+13-9
Original file line numberDiff line numberDiff line change
@@ -33,26 +33,30 @@ ifneq ($(KERNELRELEASE),)
3333
$(TARGET_MODULE)-objs := libxdma.o xdma_cdev.o cdev_ctrl.o cdev_events.o cdev_sgdma.o cdev_xvc.o cdev_bypass.o xdma_mod.o xdma_thread.o
3434
obj-m := $(TARGET_MODULE).o
3535
else
36-
BUILDSYSTEM_DIR:=/lib/modules/$(shell uname -r)/build
36+
MODLIB:=/lib/modules/$(shell uname -r)
37+
BUILDSYSTEM_DIR:=$(MODLIB)/build
3738
PWD:=$(shell pwd)
39+
DEPMOD:=depmod
3840
all :
3941
$(MAKE) -C $(BUILDSYSTEM_DIR) M=$(PWD) modules
4042

4143
clean:
4244
$(MAKE) -C $(BUILDSYSTEM_DIR) M=$(PWD) clean
4345
@/bin/rm -f *.ko modules.order *.mod.c *.o *.o.ur-safe .*.o.cmd
4446

45-
install: all
47+
install: modules_install
4648
@rm -f /lib/modules/5.15.0-67-generic/extra/xdma.ko
47-
@echo "installing kernel modules to /lib/modules/$(shell uname -r)/xdma ..."
48-
@mkdir -p -m 755 /lib/modules/$(shell uname -r)/xdma
49-
@install -v -m 644 *.ko /lib/modules/$(shell uname -r)/xdma
50-
@depmod -a || true
49+
50+
modules_install: all
51+
@echo "installing kernel modules to $(MODLIB)/xdma ..."
52+
@mkdir -p -m 755 $(MODLIB)/xdma
53+
@install -v -m 644 *.ko $(MODLIB)/xdma
54+
@$(DEPMOD) -a || true
5155

5256
uninstall:
53-
@echo "Un-installing /lib/modules/$(shell uname -r)/xdma ..."
54-
@/bin/rm -rf /lib/modules/$(shell uname -r)/xdma
55-
@depmod -a
57+
@echo "Un-installing $(MODLIB)/xdma ..."
58+
@/bin/rm -rf $(MODLIB)/xdma
59+
@$(DEPMOD) -a || true
5660

5761

5862

0 commit comments

Comments
 (0)