This repository was archived by the owner on Nov 3, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
87 lines (63 loc) · 2.04 KB
/
Makefile
File metadata and controls
87 lines (63 loc) · 2.04 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
83
84
85
86
87
ENTRYPOINT = 0x30400
TOOLS = ./tools
ASM = $(TOOLS)/nasm/nasm.exe
CC = $(TOOLS)/i686-elf-tools-windows/bin/i686-elf-gcc.exe
LD = $(TOOLS)/i686-elf-tools-windows/bin/i686-elf-ld.exe
EDIMG = $(TOOLS)/edimg.exe
QEMU = $(TOOLS)/qemu/qemu-system-i386.exe
QEMU_IMG = $(TOOLS)/qemu/qemu-img.exe
DD = $(TOOLS)/dd-0.6beta3/dd.exe
ASMBFLAGS = -I boot/include/
ASMKFLAGS = -I include/ -f elf
CFLAGS = -I include/ -c -fno-builtin -nostdlib -nostdinc
LDFLAGS = -s -Ttext $(ENTRYPOINT)
XJ380BOOT = out/boot.bin out/loader.bin
XJ380KERN = out/kernel.bin
OBJS = out/kernel.o out/start.o out/main.o out/string.o out/global.o out/rect.o out/text.o out/font.o out/kliba.o \
out/klib.o out/intr.o out/i8259.o out/gdt.o out/clock.o out/syscall.o out/syscall_impl.o out/proc.o out/keyboard.o \
out/keymap.o out/fifo.o out/printf.o out/mouse_pointer.o out/mouse.o out/sheet.o out/vram.o out/window.o \
out/console.o out/system_api.o out/memory.o
default : clear run
everything : $(XJ380BOOT) $(XJ380KERN)
image : everything clean
$(QEMU_IMG) create XJ380.img 1474560
$(DD) if=out/boot.bin of=XJ380.img bs=512 count=1
$(EDIMG) \
imgin:.\XJ380.img \
copy from:out/loader.bin to:@: \
copy from:out/kernel.bin to:@: \
imgout:XJ380.img
clean :
del out\*.o
clear :
del out\*.bin
run : image
$(QEMU) -fda XJ380.img -serial stdio -m 256
out/boot.bin : boot/boot.asm
$(ASM) $(ASMBFLAGS) -o $@ $<
out/loader.bin : boot/loader.asm
$(ASM) $(ASMBFLAGS) -o $@ $<
$(XJ380KERN) : $(OBJS)
$(LD) $(LDFLAGS) -o $(XJ380KERN) $(OBJS)
out/%.o : kernel/%.asm
$(ASM) $(ASMKFLAGS) -o $@ $<
out/%.o : kernel/%.c
$(CC) $(CFLAGS) -o $@ $<
out/%.o : lib/%.asm
$(ASM) $(ASMKFLAGS) -o $@ $<
out/%.o : lib/%.c
$(CC) $(CFLAGS) -o $@ $<
out/%.o : graphics/%.asm
$(ASM) $(ASMKFLAGS) -o $@ $<
out/%.o : graphics/%.c
$(CC) $(CFLAGS) -o $@ $<
out/%.o : drivers/%.asm
$(ASM) $(ASMKFLAGS) -o $@ $<
out/%.o : drivers/%.c
$(CC) $(CFLAGS) -o $@ $<
out/%.o : gui/%.asm
$(ASM) $(ASMKFLAGS) -o $@ $<
out/%.o : gui/%.c
$(CC) $(CFLAGS) -o $@ $<
out/%.o : api/%.c
$(CC) $(CFLAGS) -o $@ $<