-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
108 lines (101 loc) · 3.74 KB
/
Makefile
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# Makefile for UiharuOS
CC = gcc
AS = nasm
ASFLAGS = -f elf32
OUT = build
KERNEL_ADDR = 0xc0001500
Ttext = -Ttext $(KERNEL_ADDR)
LIBCFLAGS = -I $(LIBINCLUDE) -m32
CFLAGS = $(INCLUDE) -m32 -fno-builtin
INCLUDE = -Ilib/ -Ikernel/ -Ikernel/lib/ -Ikernel/device/ -Ikernel/thread/ -Iacademy_city/
all: kernel.bin
kernel.bin: kernel_main \
kernel_lib_print \
kernel_lib_print_string \
kernel_lib_print_int \
kernel_lib_bitmap \
kernel_lib_dlist \
kernel_init \
kernel_interrupt \
kernel_interrupt_switch \
kernel_kernel \
kernel_debug \
kernel_device_timer \
kernel_device_terminal \
kernel_device_keyboard \
kernel_device_bufferq \
kernel_memory \
kernel_thread \
kernel_thread_switch \
kernel_thread_sync \
lib_string \
user_tss
ld -m elf_i386 $(Ttext) -e main -o \
${OUT}/kernel.bin \
${OUT}/main.o \
${OUT}/print.o \
${OUT}/print_string.o \
${OUT}/print_int.o \
${OUT}/init.o \
${OUT}/interrupt.o \
${OUT}/interrupt_switch.o \
${OUT}/kernel.o \
${OUT}/debug.o \
${OUT}/timer.o \
${OUT}/string.o \
${OUT}/bitmap.o \
${OUT}/memory.o \
${OUT}/thread.o \
${OUT}/dlist.o \
${OUT}/switch.o \
${OUT}/sync.o \
${OUT}/terminal.o \
${OUT}/keyboard.o \
${OUT}/bufferqueue.o \
${OUT}/tss.o
kernel_main: kernel/main.c
$(CC) $(CFLAGS) -c -o ${OUT}/main.o $<
kernel_lib_print: kernel/lib/print.S
$(AS) $(ASFLAGS) -o ${OUT}/print.o $<
kernel_kernel: kernel/kernel.S
$(AS) $(ASFLAGS) -o ${OUT}/kernel.o $<
kernel_thread_switch: kernel/thread/switch.S
$(AS) $(ASFLAGS) -o ${OUT}/switch.o $<
kernel_lib_print_string: kernel/lib/print_string.c
$(CC) $(CFLAGS) -c -o ${OUT}/print_string.o $<
kernel_lib_print_int: kernel/lib/print_int.c
$(CC) $(CFLAGS) -c -o ${OUT}/print_int.o $<
kernel_lib_bitmap: kernel/lib/bitmap.c
$(CC) $(CFLAGS) -c -o ${OUT}/bitmap.o $<
kernel_lib_dlist: kernel/lib/dlist.c
$(CC) $(CFLAGS) -c -o ${OUT}/dlist.o $<
kernel_init: kernel/init.c
$(CC) $(CFLAGS) -c -o ${OUT}/init.o $<
kernel_interrupt: kernel/interrupt.c
$(CC) $(CFLAGS) -c -o ${OUT}/interrupt.o $<
kernel_interrupt_switch: kernel/interrupt_switch.c
$(CC) $(CFLAGS) -c -o ${OUT}/interrupt_switch.o $<
kernel_debug: kernel/debug.c
$(CC) $(CFLAGS) -c -o ${OUT}/debug.o $<
kernel_memory: kernel/memory.c
$(CC) $(CFLAGS) -c -o ${OUT}/memory.o $<
kernel_thread: kernel/thread/thread.c
$(CC) $(CFLAGS) -c -o ${OUT}/thread.o $<
kernel_thread_sync: kernel/thread/sync.c
$(CC) $(CFLAGS) -c -o ${OUT}/sync.o $<
kernel_device_timer: kernel/device/timer.c
$(CC) $(CFLAGS) -c -o ${OUT}/timer.o $<
kernel_device_terminal: kernel/device/terminal.c
$(CC) $(CFLAGS) -c -o ${OUT}/terminal.o $<
kernel_device_keyboard: kernel/device/keyboard.c
$(CC) $(CFLAGS) -c -o ${OUT}/keyboard.o $<
kernel_device_bufferq: kernel/device/bufferqueue.c
$(CC) $(CFLAGS) -c -o ${OUT}/bufferqueue.o $<
user_tss: academy_city/tss.c
$(CC) $(CFLAGS) -c -o ${OUT}/tss.o $<
lib_string: lib/string.c
$(CC) $(CFLAGS) -c -o ${OUT}/string.o $<
build:
mkdir ${OUT}
clean:
rm -rf ${OUT}