updated makefile to be more flexible
This commit is contained in:
parent
b2f820660f
commit
5436a330c4
44
makefile
44
makefile
@ -1,27 +1,22 @@
|
||||
ASM=nasm
|
||||
CC=gcc
|
||||
ASM=nasm
|
||||
LINK=ld
|
||||
ISO=genisoimage
|
||||
EMU=bochs
|
||||
emuconfig='bochsrc.conf'
|
||||
|
||||
all: loader link iso
|
||||
echo 'yeeting'
|
||||
# build our loader
|
||||
loader: loader.asm
|
||||
# loading the kernel form loader.asm
|
||||
# creates loader.o
|
||||
$(ASM) -f elf32 loader.asm
|
||||
OBJECTS=loader.o kernel.o
|
||||
AFLAGS=-f elf32
|
||||
CFLAGS=-m32 -nostdlib -nostdinc -fno-builtin -fno-stack-protector -nostartfiles \
|
||||
-nodefaultlibs -Wall -Wextra -Werror -c
|
||||
|
||||
# link the kernel to our loader
|
||||
link: loader.o
|
||||
$(LINK) -T link.ld -melf_i386 loader.o -o kernel.elf
|
||||
all: kernel.elf
|
||||
|
||||
run:
|
||||
$(EMU) -f $(emuconfig) -q
|
||||
# Link objects together to produce the kernel object
|
||||
kernel.elf: $(OBJECTS)
|
||||
$(LINK) -T link.ld -melf_i386 $(OBJECTS) -o kernel.elf
|
||||
|
||||
# build the iso file into our target directory
|
||||
iso:
|
||||
# Builds image of our os
|
||||
os.iso: kernel.elf
|
||||
cp kernel.elf iso/boot/kernel.elf
|
||||
$(ISO) -R \
|
||||
-b boot/grub/stage2_eltorito \
|
||||
-no-emul-boot \
|
||||
@ -32,3 +27,18 @@ iso:
|
||||
-boot-info-table \
|
||||
-o os.iso \
|
||||
iso
|
||||
|
||||
# Building C objecets
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) $< -o $@
|
||||
|
||||
# Builind asm objects
|
||||
%.o: %.asm
|
||||
$(ASM) $(AFLAGS) $< -o $@
|
||||
|
||||
# Running (no recipes called)
|
||||
run: os.iso
|
||||
bochs -f bochsrc.conf -q
|
||||
|
||||
clean:
|
||||
rm -rf *.o kernel.elf os.iso bochslog.txt
|
||||
|
Loading…
Reference in New Issue
Block a user