Skip to content

Commit 5d41dc3

Browse files
authored
Merge pull request #2 from odeliyach/claude/organize-repository-structure
Reorganize repository into professional structure with src/, include/, and user_apps/ directories
2 parents 5d9bb09 + f187398 commit 5d41dc3

10 files changed

Lines changed: 458 additions & 117 deletions

File tree

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,3 +115,10 @@ Module.symvers
115115
# User-space programs from kernel module
116116
Linux_Kernel_Module/message_sender
117117
Linux_Kernel_Module/message_reader
118+
119+
# User-space programs in new structure
120+
user_apps/message_sender
121+
user_apps/message_reader
122+
123+
# Kernel module in root
124+
message_slot.ko

Linux_Kernel_Module/Makefile

Lines changed: 0 additions & 40 deletions
This file was deleted.

Makefile

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Makefile for Message Slot Kernel Module and User Applications
2+
# Builds the kernel module and user-space programs with a single command
3+
4+
# Kernel module object
5+
obj-m := message_slot.o
6+
7+
# Kernel build directory
8+
KDIR := /lib/modules/$(shell uname -r)/build
9+
10+
# Current working directory
11+
PWD := $(shell pwd)
12+
13+
# Source directories
14+
SRC_DIR := src
15+
INCLUDE_DIR := include
16+
USER_APPS_DIR := user_apps
17+
18+
# User-space programs
19+
USER_PROGS := message_sender message_reader
20+
21+
# Compiler flags for user-space programs
22+
CFLAGS := -O3 -Wall -std=c11 -I$(INCLUDE_DIR)
23+
24+
.PHONY: all module user_programs clean help
25+
26+
# Default target: build everything
27+
all: module user_programs
28+
29+
# Build the kernel module
30+
module:
31+
@echo "Building kernel module..."
32+
make -C $(KDIR) M=$(PWD)/$(SRC_DIR) modules
33+
@cp $(SRC_DIR)/message_slot.ko .
34+
@echo "Kernel module built successfully: message_slot.ko"
35+
36+
# Build user-space programs
37+
user_programs: $(addprefix $(USER_APPS_DIR)/, $(USER_PROGS))
38+
@echo "User applications built successfully"
39+
40+
$(USER_APPS_DIR)/message_sender: $(USER_APPS_DIR)/message_sender.c $(INCLUDE_DIR)/message_slot.h
41+
@echo "Building message_sender..."
42+
gcc $(CFLAGS) -o $(USER_APPS_DIR)/message_sender $(USER_APPS_DIR)/message_sender.c
43+
44+
$(USER_APPS_DIR)/message_reader: $(USER_APPS_DIR)/message_reader.c $(INCLUDE_DIR)/message_slot.h
45+
@echo "Building message_reader..."
46+
gcc $(CFLAGS) -o $(USER_APPS_DIR)/message_reader $(USER_APPS_DIR)/message_reader.c
47+
48+
# Clean build artifacts
49+
clean:
50+
@echo "Cleaning build artifacts..."
51+
make -C $(KDIR) M=$(PWD)/$(SRC_DIR) clean
52+
rm -f $(addprefix $(USER_APPS_DIR)/, $(USER_PROGS))
53+
rm -f message_slot.ko
54+
@echo "Clean complete"
55+
56+
# Help target
57+
help:
58+
@echo "Message Slot Build System"
59+
@echo "========================="
60+
@echo ""
61+
@echo "Targets:"
62+
@echo " all - Build kernel module and user applications (default)"
63+
@echo " module - Build only the kernel module"
64+
@echo " user_programs - Build only the user-space programs"
65+
@echo " clean - Remove all build artifacts"
66+
@echo " help - Display this help message"
67+
@echo ""
68+
@echo "Directory Structure:"
69+
@echo " src/ - Kernel module source code"
70+
@echo " include/ - Header files"
71+
@echo " user_apps/ - User-space applications"
72+
@echo ""
73+
@echo "Build Products:"
74+
@echo " message_slot.ko - Kernel module (root directory)"
75+
@echo " user_apps/message_sender - Message sender program"
76+
@echo " user_apps/message_reader - Message reader program"

0 commit comments

Comments
 (0)