]>
git.dujemihanovic.xyz Git - nameless-os.git/blob - Makefile
0e56c23ed6081d925a3a0299a6f32c6a6c0a7e92
2 export CC
= i686-elf-gcc
3 QEMU
= qemu-system-i386
-monitor stdio
5 export GIT_REV
= $(shell git describe
--long HEAD
)
7 CFLAGS
= -g
-fgnu89-inline
-Iinclude
/arch
/x86
-ffreestanding
-DGIT_COMMIT
=\"$(GIT_REV
)\"
9 KERNEL_OBJ
= kernel
/entry.o kernel
/arch
/x86
/tty
/tty.o kernel
/drivers
/irq
/i8259a.o kernel
/arch
/x86
/irq
/idt.o kernel
/arch
/x86
/irq
/sample_handler.o kernel
/kernel.o
11 BOOTLOADER_OBJ
= boot
/x86
/mbr boot
/x86
/vbr-fat32 boot
/x86
/stage3
/LOADER.BIN boot
/x86
/stage3
/loader.elf
13 default
: kernel
/kernel.elf bootloader
15 all: default boot
/x86
/disk.img
17 bootloader
: $(BOOTLOADER_OBJ
)
20 $(QEMU
) boot
/x86
/disk.img
23 $(QEMU
) -s
-S boot
/x86
/disk.img
25 boot
/x86
/mbr
: boot
/x86
/mbr.s
26 boot
/x86
/vbr-fat32
: boot
/x86
/vbr-fat32.s boot
/x86
/fat32
/*.s
27 boot
/x86
/stage3
/LOADER.BIN
: boot
/x86
/stage3
/*.s boot
/x86
/stage3
/*.c boot
/x86
/fat32
/*.s
28 boot
/x86
/stage3
/loader.elf
: boot
/x86
/stage3
/*.s boot
/x86
/stage3
/*.c boot
/x86
/fat32
/*.s
32 boot
/x86
/disk.img
: boot
/x86
/mbr boot
/x86
/vbr-fat32 boot
/x86
/stage3
/LOADER.BIN boot
/x86
/disk.dump kernel
/kernel.bin
33 truncate
-s1G boot
/x86
/disk.img
34 sfdisk boot
/x86
/disk.img
< boot
/x86
/disk.dump
35 mkfs.fat
-F
32 --offset
2048 boot
/x86
/disk.img
36 dd if
=boot
/x86
/mbr of
=boot
/x86
/disk.img bs
=440 count
=1 conv
=notrunc
37 dd if
=boot
/x86
/vbr-fat32 of
=boot
/x86
/disk.img bs
=1 skip
=90 seek
=1048666 conv
=notrunc
38 mcopy
-i boot
/x86
/disk.img@@
1M boot
/x86
/stage3
/LOADER.BIN
::.
39 mcopy
-i boot
/x86
/disk.img@@
1M kernel
/kernel.bin
::.
/KERNEL.BIN
41 kernel
/kernel.bin
: ${KERNEL_OBJ} kernel
/linker.
ld
42 $(CC
) -ffreestanding
-nostdlib
-o
$@
-T kernel
/linker.
ld ${KERNEL_OBJ}
44 kernel
/entry.o
: kernel
/entry.s
47 kernel
/arch
/x86
/irq
/sample_handler.o
: kernel
/arch
/x86
/irq
/sample_handler.c
48 $(CC
) $(CFLAGS
) -mgeneral-regs-only
-c
$< -o
$@
50 kernel
/kernel.elf
: kernel
/kernel.bin
51 $(CC
) -ffreestanding
-nostdlib
-o
$@
-T kernel
/linker.
ld ${KERNEL_OBJ} -Wl
,--oformat
=elf32-i386
52 i686-elf-objcopy
--only-keep-debug kernel
/kernel.elf kernel
/kernel.dbg
53 i686-elf-objcopy
--add-gnu-debuglink
=kernel
/kernel.dbg kernel
/kernel.elf
54 i686-elf-strip
--strip-unneeded kernel
/kernel.elf
57 -rm kernel
/kernel.
{bin
,dbg
,elf
} ${KERNEL_OBJ}
58 cd boot
/x86
&& $(MAKE
) clean
60 .PHONY
: default
all clean run debug bootloader