aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile27
1 files changed, 27 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..dee9099
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,27 @@
+CC = i686-elf-gcc
+AS = nasm
+CFLAGS = -std=gnu99 -ffreestanding -O2 -Wall -Wextra
+
+SRCS = src/kernel.c
+OBJS = src/boot.o src/kernel.o
+
+all: FrenchToastOS.iso
+
+src/boot.o: src/boot.asm
+ $(AS) -f elf32 src/boot.asm -o src/boot.o
+
+src/kernel.o: src/kernel.c
+ $(CC) $(CFLAGS) -c src/kernel.c -o src/kernel.o
+
+FrenchToastOS.bin: $(OBJS)
+ $(CC) -T linker.ld -o FrenchToastOS.bin -ffreestanding -O2 -nostdlib $(OBJS) -lgcc
+
+FrenchToastOS.iso: FrenchToastOS.bin
+ mkdir -p isodir/boot/grub
+ cp FrenchToastOS.bin isodir/boot/
+ cp boot/grub.cfg isodir/boot/grub/
+ grub-mkrescue -o FrenchToastOS.iso isodir
+
+clean:
+ rm -f $(OBJS) FrenchToastOS.bin FrenchToastOS.iso
+ rm -rf isodir