Skip to content

Commit

Permalink
xdma: build improvements
Browse files Browse the repository at this point in the history
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)
  • Loading branch information
alonbl committed Feb 12, 2024
1 parent 1ec8f51 commit feab143
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 22 deletions.
40 changes: 27 additions & 13 deletions XDMA/linux-kernel/tools/Makefile
Original file line number Diff line number Diff line change
@@ -1,24 +1,38 @@
prefix := /usr/local
bindir := $(prefix)/bin
PROGRAM_PREFIX :=
CC ?= gcc
CFLAGS ?=
LDFLAGS ?=
EXTRA_CFLAGS = -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
INSTALL ?= install

all: reg_rw dma_to_device dma_from_device performance test_chrdev
PROGRAMS = $(PROGRAM_PREFIX)reg_rw $(PROGRAM_PREFIX)dma_to_device $(PROGRAM_PREFIX)dma_from_device $(PROGRAM_PREFIX)performance $(PROGRAM_PREFIX)test_chrdev

dma_to_device: dma_to_device.o
$(CC) -lrt -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
all: $(PROGRAMS)

dma_from_device: dma_from_device.o
$(CC) -lrt -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
$(PROGRAM_PREFIX)dma_to_device: dma_to_device.o
$(CC) -lrt -o $@ $< $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS)

performance: performance.o
$(CC) -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
$(PROGRAM_PREFIX)dma_from_device: dma_from_device.o
$(CC) -lrt -o $@ $< $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS)

reg_rw: reg_rw.o
$(CC) -o $@ $<
$(PROGRAM_PREFIX)performance: performance.o
$(CC) -o $@ $< $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS)

test_chrdev: test_chrdev.o
$(CC) -o $@ $<
$(PROGRAM_PREFIX)reg_rw: reg_rw.o
$(CC) -o $@ $< $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS)

$(PROGRAM_PREFIX)test_chrdev: test_chrdev.o
$(CC) -o $@ $< $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS)

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

clean:
rm -rf reg_rw *.o *.bin dma_to_device dma_from_device performance test_chrdev
rm -rf *.o *.bin
rm -fr $(PROGRAMS)

install: all
install -d -m 0755 "$(DESTDIR)$(bindir)"
install -m 0755 $(PROGRAMS) "$(DESTDIR)$(bindir)"
22 changes: 13 additions & 9 deletions XDMA/linux-kernel/xdma/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -33,26 +33,30 @@ ifneq ($(KERNELRELEASE),)
$(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
obj-m := $(TARGET_MODULE).o
else
BUILDSYSTEM_DIR:=/lib/modules/$(shell uname -r)/build
MODLIB:=/lib/modules/$(shell uname -r)
BUILDSYSTEM_DIR:=$(MODLIB)/build
PWD:=$(shell pwd)
DEPMOD:=depmod
all :
$(MAKE) -C $(BUILDSYSTEM_DIR) M=$(PWD) modules

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

install: all
install: modules_install
@rm -f /lib/modules/5.15.0-67-generic/extra/xdma.ko
@echo "installing kernel modules to /lib/modules/$(shell uname -r)/xdma ..."
@mkdir -p -m 755 /lib/modules/$(shell uname -r)/xdma
@install -v -m 644 *.ko /lib/modules/$(shell uname -r)/xdma
@depmod -a || true

modules_install: all
@echo "installing kernel modules to $(MODLIB)/xdma ..."
@mkdir -p -m 755 $(MODLIB)/xdma
@install -v -m 644 *.ko $(MODLIB)/xdma
@$(DEPMOD) -a || true

uninstall:
@echo "Un-installing /lib/modules/$(shell uname -r)/xdma ..."
@/bin/rm -rf /lib/modules/$(shell uname -r)/xdma
@depmod -a
@echo "Un-installing $(MODLIB)/xdma ..."
@/bin/rm -rf $(MODLIB)/xdma
@$(DEPMOD) -a || true



Expand Down

0 comments on commit feab143

Please sign in to comment.