-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
67 lines (55 loc) · 1.97 KB
/
Makefile
File metadata and controls
67 lines (55 loc) · 1.97 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
AS=nasm
ASFLAGS=
CC=i386-elf-gcc
CFLAGS=-mpreferred-stack-boundary=2 -ffreestanding -g3
LD=i386-elf-ld
LDFLAGS=-N
all: Floppy.img program_list_0 help.com ls.com time.com date.com reboot.com syscall_demo.com
dd if=program_list_0 of=Floppy.img seek=64 conv=notrunc
printf '\x40' | dd bs=1 of=Floppy.img seek=446 count=1 conv=notrunc
dd if=help.com of=Floppy.img seek=65 conv=notrunc
dd if=ls.com of=Floppy.img seek=68 conv=notrunc
dd if=time.com of=Floppy.img seek=71 conv=notrunc
dd if=date.com of=Floppy.img seek=74 conv=notrunc
dd if=reboot.com of=Floppy.img seek=77 conv=notrunc
dd if=syscall_demo.com of=Floppy.img seek=78 conv=notrunc
Floppy.img: Inori.bin bootloader.bin
dd if=/dev/zero of=Floppy.img count=2880
dd if=bootloader.bin of=Floppy.img conv=notrunc
dd if=Inori.bin of=Floppy.img seek=1 conv=notrunc
printf '\x55\xaa' | dd of=Floppy.img bs=1 seek=510 count=2 conv=notrunc
bootloader.bin: bootloader.o utils.o
$(LD) $(LDFLAGS) -Ttext 0x7c00 --oformat binary -o $@ $^
Inori.bin: Inori.o utils_32cc.o int_handler.o syscall.o
$(LD) $(LDFLAGS) -Ttext 0x0500 --oformat binary -o $@ $^
user_program: help.com ls.com time.com date.com reboot.com syscall_demo.com
#dependencies
Inori.o: Inori.c Inori.h utils_32cc.h int_handler.h
syscall.o: syscall.c syscall.h utils_32cc.h Inori.h
help.com: help.o utils_32cc.o
help.o: help.c utils_32cc.h user_program.h
ls.com: ls.o utils_32cc.o
ls.o: ls.c utils_32cc.h user_program.h
time.com: time.o utils_32cc.o
time.o: time.c utils_32cc.h user_program.h
date.com: date.o utils_32cc.o
date.o: date.c utils_32cc.h user_program.h
syscall_demo.com: syscall_demo.o
syscall_demo.o: syscall_demo.c user_program.h
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
%.o: %.asm
$(AS) $(ASFLAGS) -f elf32 -o $@ $^
%.com: %.o
$(LD) $(LDFLAGS) -Ttext 0x0100 --oformat binary -o $@ $^
reboot.com: reboot.asm
$(AS) $(ASFLAGS) -o $@ $^
.PHONY:qemu
qemu:
qemu-system-i386 -fda Floppy.img
.PHONY:clean
clean:
-rm -f *.img
-rm -f *.o
-rm -f *.com
-rm -f *.bin