]>
git.dujemihanovic.xyz Git - nameless-os.git/blob - Makefile
d3f2ee4be49cbe23808b4d7813da6965cb51ed2e
2 export LD
= i686-elf-ld
3 export CC
= i686-elf-gcc
4 QEMU
= qemu-system-i386
6 GIT_REV
= $(shell git rev-parse
--short HEAD
)
8 CFLAGS
= -std
=gnu89
-g
-Iinclude
/arch
/x86
-ffreestanding
-DGIT_COMMIT
=\"$(GIT_REV
)\"
10 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
12 default
: kernel
/kernel.elf
14 all: default boot
/x86
/disk.img
16 run
: boot
/x86
/disk.img
17 $(QEMU
) boot
/x86
/disk.img
19 boot
/x86
/disk.img
: boot
/x86
/mbr.s boot
/x86
/vbr-fat32.s boot
/x86
/loader.s boot
/x86
/disk.dump boot
/x86
/fat32.s boot
/x86
/fat32-structs.s
20 cd boot
/x86
&& $(MAKE
) all
22 kernel
/kernel.bin
: ${KERNEL_OBJ}
23 $(LD
) -o
$@
-T kernel
/linker.
ld ${KERNEL_OBJ}
25 kernel
/entry.o
: kernel
/entry.s
26 $(AS
) -f elf kernel
/entry.s
-o
$@
28 kernel
/arch
/x86
/tty
/tty.o
: kernel
/arch
/x86
/tty
/tty.c
30 kernel
/drivers
/irq
/i8259a.o
: kernel
/drivers
/irq
/i8259a.c
32 kernel
/arch
/x86
/irq
/idt.o
: kernel
/arch
/x86
/irq
/idt.c
34 kernel
/arch
/x86
/irq
/sample_handler.o
: kernel
/arch
/x86
/irq
/sample_handler.c
35 $(CC
) $(CFLAGS
) -mgeneral-regs-only
-c kernel
/arch
/x86
/irq
/sample_handler.c
-o
$@
37 kernel
/kernel.o
: kernel
/kernel.c
39 kernel
/kernel.elf
: kernel
/kernel.bin
40 $(LD
) -o
$@
-T kernel
/linker.
ld ${KERNEL_OBJ} --oformat
=elf32-i386
43 -rm kernel
/kernel.bin kernel
/kernel.elf
${KERNEL_OBJ}
44 cd boot
/x86
&& $(MAKE
) clean
46 .PHONY
: default
all clean run