Advertisement
alsiva

Makefile

Dec 18th, 2022
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.86 KB | None | 0 0
  1. MODULE_NAME = lab_kernel_module
  2. KERNEL_DIR ?= "/lib/modules/$(shell uname -r)/build"
  3.  
  4. KERNEL_SRCS = lab_km.c
  5. USER_SRCS = user_app.c
  6. KERNEL_OBJS = $(KERNEL_SRCS:.c=.o)
  7.  
  8. obj-m += $(MODULE_NAME).o
  9.  
  10. $(MODULE_NAME)-objs := $(KERNEL_OBJS)
  11.  
  12. CFLAGS=-std=gnu99 -Wno-declaration-after-statement
  13. ccflags-y=-std=gnu99 -Wno-declaration-after-statement
  14. USER_APP=user_app
  15. LAB_CHARACTER_DEVICE=lab_character_device
  16. LAB_MAJOR_NUMBER_DEVICE=100
  17.  
  18. all: module create_dev install
  19. user: $(USER_SRCS)
  20.     gcc $(USER_SRCS) -o $(USER_APP) -std=c99
  21. module: $(KERNEL_SRCS)
  22.     make -C $(KERNEL_DIR) M=$(PWD) modules
  23. install: $(MODULE_NAME).ko
  24.     sudo insmod ./$(MODULE_NAME).ko
  25. create_dev:
  26.     sudo mknod $(LAB_CHARACTER_DEVICE) c $(LAB_MAJOR_NUMBER_DEVICE) 0
  27. remove:
  28.     sudo rmmod $(MODULE_NAME)
  29. clean:
  30.     make -C $(KERNEL_DIR) M=$(PWD) clean
  31.     rm -f $(USER_APP)
  32.     rm -f $(LAB_CHARACTER_DEVICE)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement