-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
33 lines (27 loc) · 875 Bytes
/
Makefile
File metadata and controls
33 lines (27 loc) · 875 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
MODULE_NAME = lab_kernel_module
KERNEL_DIR ?= "/lib/modules/$(shell uname -r)/build"
KERNEL_SRCS = module.c getting_structures.c
USER_SRCS = user_app.c
KERNEL_OBJS = $(KERNEL_SRCS:.c=.o)
obj-m += $(MODULE_NAME).o
$(MODULE_NAME)-objs := $(KERNEL_OBJS)
CFLAGS=-std=gnu99 -Wno-declaration-after-statement
ccflags-y=-std=gnu99 -Wno-declaration-after-statement
USER_APP=user_app
LAB_CHARACTER_DEVICE=lab_character_device
LAB_MAJOR_NUMBER_DEVICE=100
all: module install create_dev
user: $(USER_SRCS)
gcc $(USER_SRCS) -o $(USER_APP) -std=c99
module: $(KERNEL_SRCS)
make -C $(KERNEL_DIR) M=$(PWD) modules
install: $(MODULE_NAME).ko
sudo insmod ./$(MODULE_NAME).ko
create_dev:
sudo mknod $(LAB_CHARACTER_DEVICE) c $(LAB_MAJOR_NUMBER_DEVICE) 0
remove:
sudo rmmod $(MODULE_NAME)
clear:
make -C $(KERNEL_DIR) M=$(PWD) clean
rm -f $(USER_APP)
rm -f $(LAB_CHARACTER_DEVICE)