-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
50 lines (40 loc) · 1.16 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
OBJS=src/bootloader/kernel_loader.o \
src/kernel/kernel.o \
src/kernel/IO.o \
src/kernel/interrupts.o \
src/kernel/pci.o \
src/kernel/memory.o \
src/kernel/filesystem.o \
src/kernel/multitasking.o \
src/kernel/syscalls.o \
src/kernel/time.o \
src/kernel/lzw.o \
src/drivers/pcspk.o \
src/drivers/graphics.o \
src/drivers/rtc.o \
src/drivers/mouse.o \
src/drivers/keyboard.o \
src/drivers/pit.o \
src/programs/terminal.o \
src/programs/desktop.o \
src/programs/editor.o \
src/lib/string.o
CXX:=x86_64-elf-g++
LD:=x86_64-elf-ld
CXXFLAGS += -I include -I include/lib -ffreestanding -fpermissive -fno-rtti -fno-exceptions -mno-red-zone -m64
.PHONY: all clean
.SUFFIXES: .cpp .asm .o
all: raidou.img
.cpp.o:
$(CXX) $(CXXFLAGS) -c -o $@ $<
.asm.o:
nasm -f elf64 $< -o $@
# boot.asm needs to be bin format
boot.bin: src/bootloader/boot.asm
nasm -f bin $< -o $@
raidou_no_boot.bin: $(OBJS)
$(LD) $(LDFLAGS) -T linker.ld -o $@ $(OBJS)
raidou.img: boot.bin raidou_no_boot.bin
cat boot.bin raidou_no_boot.bin > raidou.img
clean:
rm -f $(OBJS) boot.bin raidou_no_boot.bin raidou.img