-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile
More file actions
53 lines (41 loc) · 1.55 KB
/
Copy pathmakefile
File metadata and controls
53 lines (41 loc) · 1.55 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
MAKEDIR := $(shell pwd)
SUBDIRSKERNEL := $(MAKEDIR)/kernel $(MAKEDIR)/drivers $(MAKEDIR)/cpu $(MAKEDIR)/libc
SUBDIRBOOTLOADER := bootloader-mbr
SUBDIRINCLUDE := $(shell find $(SUBDIRSKERNEL) -type d )
C_SOURCES := $(shell find $(SUBDIRSKERNEL) -name '*.c')
C_OBJECTS := $(C_SOURCES:.c=.o)
AS_SOURCES :=$(shell find $(SUBDIRSKERNEL) -name '*.s')
AS_OBJETCS := $(AS_SOURCES:.s=.o)
IMGDIR = IMG
LD = ld
LDFLAGS = --oformat binary -T linker.ld -m elf_i386
export SUBDIRINCLUDE
all: $(SUBDIRBOOTLOADER) $(SUBDIRSKERNEL) KERNEL.BIN
$(SUBDIRSKERNEL):
@$(MAKE) -C $@
$(SUBDIRBOOTLOADER):
@$(MAKE) -C $@
KERNEL.BIN: $(C_OBJECTS) $(AS_OBJETCS)
$(LD) $(LDFLAGS) -o $@ $(C_OBJECTS) $(AS_OBJETCS)
image:
mkdir -p $(IMGDIR)
dd if=/dev/zero of=$(IMGDIR)/hdd.img bs=516096c count=20
(echo o;echo n; echo p; echo 1; echo; echo; echo t; echo 6; echo a; echo p; echo w) | fdisk -u -C1000 -S63 -H16 $(IMGDIR)/hdd.img
dd if=bootloader-mbr/mbr/mbr of=$(IMGDIR)/hdd.img bs=446 count=1 conv=notrunc
sudo losetup -o 1048576 /dev/loop0 $(IMGDIR)/hdd.img
sudo mkfs.fat -F16 -v /dev/loop0 -h 0x800
sudo dd if=bootloader-mbr/vbr/vbr-bootloader of=/dev/loop0 bs=1 count=3 conv=notrunc
sudo dd if=bootloader-mbr/vbr/vbr-bootloader of=/dev/loop0 bs=1 skip=62 seek=62 conv=notrunc
sudo mount /dev/loop0 /mnt
cp KERNEL.BIN /mnt/
sudo umount /mnt
sudo losetup -d /dev/loop0
.PHONY: all $(SUBDIRBOOTLOADER) $(SUBDIRSKERNEL)
clean:
@$(MAKE) -C bootloader-mbr clean
@$(MAKE) -C kernel clean
@$(MAKE) -C drivers clean
@$(MAKE) -C cpu clean
@$(MAKE) -C libc clean
rm -rf KERNEL.BIN
rm -rf IMG/*