]>
git.dujemihanovic.xyz Git - nameless-os.git/blob - Makefile
5 GIT_REV
= $(shell git rev-parse
--short HEAD
)
7 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
9 all: boot.img kernel
/kernel.elf
11 boot.img
: boot
/x86
/boot kernel
/kernel.bin
12 cat boot
/x86
/boot kernel
/kernel.bin
> $@
15 boot
/x86
/boot
: boot
/x86
/boot.s boot
/x86
/a20.s boot
/x86
/protected.s boot
/x86
/print.s
16 $(AS
) -f bin boot
/x86
/boot.s
-o
$@
18 kernel
/kernel.bin
: ${KERNEL_OBJ}
19 $(LD
) -o
$@
-T kernel
/linker.
ld ${KERNEL_OBJ}
21 kernel
/entry.o
: kernel
/entry.s
22 $(AS
) -f elf kernel
/entry.s
-o
$@
24 kernel
/arch
/x86
/tty
/tty.o
: kernel
/arch
/x86
/tty
/tty.c
25 $(CC
) -std
=gnu89
-g
-o
$@
-Iinclude
/arch
/x86
-ffreestanding
-c kernel
/arch
/x86
/tty
/tty.c
27 kernel
/drivers
/irq
/i8259a.o
: kernel
/drivers
/irq
/i8259a.c
28 $(CC
) -std
=gnu89
-g
-o
$@
-Iinclude
/arch
/x86
-ffreestanding
-c kernel
/drivers
/irq
/i8259a.c
30 kernel
/arch
/x86
/irq
/idt.o
: kernel
/arch
/x86
/irq
/idt.c
31 $(CC
) -std
=gnu89
-g
-o
$@
-Iinclude
/arch
/x86
-ffreestanding
-c kernel
/arch
/x86
/irq
/idt.c
33 kernel
/arch
/x86
/irq
/sample_handler.o
: kernel
/arch
/x86
/irq
/sample_handler.c
34 $(CC
) -std
=gnu89
-g
-o
$@
-Iinclude
/arch
/x86
-ffreestanding
-mgeneral-regs-only
-c kernel
/arch
/x86
/irq
/sample_handler.c
36 kernel
/kernel.o
: kernel
/kernel.c
37 $(CC
) -std
=gnu89
-g
-o
$@
-Iinclude
/arch
/x86
-ffreestanding
-DGIT_COMMIT
=\"$(GIT_REV
)\" -c kernel
/kernel.c
39 kernel
/kernel.elf
: kernel
/kernel.bin
40 $(LD
) -o
$@
-T kernel
/linker.
ld ${KERNEL_OBJ} --oformat
=elf32-i386
43 rm boot
/x86
/boot kernel
/kernel.bin kernel
/kernel.elf
${KERNEL_OBJ} boot.img