From eb2d45a7852094a68466b116808a4ed33aac7313 Mon Sep 17 00:00:00 2001 From: Alon Bar-Lev Date: Thu, 18 Jan 2024 13:53:09 +0200 Subject: [PATCH] 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) --- XDMA/linux-kernel/tools/Makefile | 40 +++++++++++++++++++++----------- XDMA/linux-kernel/xdma/Makefile | 22 +++++++++++------- 2 files changed, 40 insertions(+), 22 deletions(-) diff --git a/XDMA/linux-kernel/tools/Makefile b/XDMA/linux-kernel/tools/Makefile index 80f636696..cb4d8e4bc 100644 --- a/XDMA/linux-kernel/tools/Makefile +++ b/XDMA/linux-kernel/tools/Makefile @@ -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)" diff --git a/XDMA/linux-kernel/xdma/Makefile b/XDMA/linux-kernel/xdma/Makefile index 41822048b..722db1186 100644 --- a/XDMA/linux-kernel/xdma/Makefile +++ b/XDMA/linux-kernel/xdma/Makefile @@ -33,8 +33,10 @@ 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 @@ -42,17 +44,19 @@ 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