forked from softirq/prettyos
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile
More file actions
82 lines (66 loc) · 2.05 KB
/
Copy pathmakefile
File metadata and controls
82 lines (66 loc) · 2.05 KB
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
DEBUG=true
ASM:=nasm
CC:=gcc
LD:=ld
CFLAGS:= -g -fno-builtin -Wall -ggdb
INCLUDE:=-I include/ -I include/linux/ -I include/asm-i386/
ASMINCLUDE:= -I boot/include/
ifdef DEBUG
BOOT:=boot/boot.com
else
BOOT:=boot/boot.bin
endif
LOADER:=boot/loader.bin
KERNEL:=kernel/kernel.bin
INITOBJS:=init/main.o
KERNELOBJS:=kernel/core.o kernel/start.o kernel/i8259.o kernel/global.o kernel/traps.o kernel/clock.o \
kernel/syscall.o kernel/console.o kernel/keyboard.o kernel/sched.o kernel/sys.o kernel/tty.o \
kernel/printf.o kernel/vsprintf.o kernel/proc.o kernel/panic.o kernel/signal.o kernel/hd.o kernel/fork.o \
kernel/exit.o kernel/bitops.o kernel/wait.o
FSOBJS:=fs/bitmap.o fs/super.o fs/inode.o fs/stat.o fs/fcntl.o fs/fs.o fs/namei.o fs/open.o fs/file_dev.o \
fs/read_write.o fs/buffer.o fs/link.o
MMOBJS:=mm/memory.o mm/swap.o mm/pgtable.o mm/mmap.o mm/kmalloc.o
NETOBJS:=net/net.o
#NETLIB:=net/net.a
LIBOBJS:=lib/misc.o lib/kliba.o lib/string.o lib/klibc.o lib/errno.o
#OBJS:=$(KERNELOBJS) $(INITOBJS) $(FSOBJS) $(MMOBJS) $(LIBOBJS) $(NETLIB)
OBJS:=$(KERNELOBJS) $(INITOBJS) $(FSOBJS) $(MMOBJS) $(LIBOBJS)
.PHONY:clean subdir
all:everything
everything:$(BOOT) $(LOADER) $(KERNEL)
$(BOOT):boot/boot.asm
$(ASM) $(ASMINCLUDE) $< -o $@
# @sz -e $(BOOT)
$(LOADER):boot/loader.asm
$(ASM) $(ASMINCLUDE) $< -o $@
# @sz -e $(LOADER)
#$(KERNEL):$(OBJS) subdir
$(KERNEL):$(OBJS)
$(LD) -s -Ttext 0x10400 -o $@ $(OBJS) $(INCLUDE)
# @sz -e $(KERNEL)
init/%.o:init/%.c
$(CC) -c $(CFLAGS) $< -o $@ $(INCLUDE)
kernel/%.o:kernel/%.asm
$(ASM) -f elf $< -o $@ $(INCLUDE)
kernel/%.o:kernel/%.c
$(CC) -c $(CFLAGS) $< -o $@ $(INCLUDE)
fs/%.o:fs/%.c
$(CC) -c $(CFLAGS) $< -o $@ $(INCLUDE)
mm/%.o:mm/%.c
$(CC) -c $(CFLAGS) $< -o $@ $(INCLUDE)
lib/%.o:lib/%.asm
$(ASM) -f elf $< -o $@ $(INCLUDE)
lib/%.o:lib/%.c
$(CC) -c $(CFLAGS) $< -o $@ $(INCLUDE)
subdir:
# cd net;$(MAKE)
#net/%.o:net/%.c
# $(CC) -c $(CFLAGS) $< -o $@ $(INCLUDE)
clean:
cd init;rm -f *.o
cd kernel;rm -f *.o
cd fs;rm -f *.o
cd mm; rm -f *.o
# cd net;rm -f *.o
cd lib;rm -f *.o
rm -f $(BOOT) $(LOADER) $(KERNEL)