aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Barnett <noreply@jamesbarnett.xyz>2018-08-29 19:11:20 +0100
committerJames Barnett <noreply@jamesbarnett.xyz>2018-08-29 19:11:20 +0100
commitda686609820298b1e245b53ca86ec946e79684cb (patch)
tree318791296254ad4765c0ef66092ff8c9136976de
parent05295faee701148e2b4fcb6ebde09826d32bab05 (diff)
downloadtinyOS-da686609820298b1e245b53ca86ec946e79684cb.tar.xz
tinyOS-da686609820298b1e245b53ca86ec946e79684cb.zip
Add Makefile
-rw-r--r--Makefile22
-rwxr-xr-xbuild.sh11
2 files changed, 22 insertions, 11 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..919334d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,22 @@
+
+CC = gcc
+CFLAGS = -m32 -std=c99
+
+default: build
+
+setup:
+ mkdir -p bin
+
+build: setup kernel/kernel.c kernel/io/vga/text_mode_display.c kernel/kernel-bootstrap.asm
+ nasm -f elf32 kernel/kernel-bootstrap.asm -o bin/kernel-bootstrap.o
+ $(CC) $(CFLAGS) -c kernel/kernel.c -o bin/kernel.o
+ $(CC) $(CFLAGS) -c kernel/io/vga/text_mode_display.c -o bin/text_mode_display.o
+ ld -m elf_i386 -T link.ld -o bin/kernel bin/*.o
+
+clean:
+ rm -f bin/*
+
+run:
+ qemu-system-i386 -kernel bin/kernel
+
+build-and-run: build run \ No newline at end of file
diff --git a/build.sh b/build.sh
deleted file mode 100755
index 6de1500..0000000
--- a/build.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-
-# TODO - proper makefile
-
-rm -rf bin/kernel/*
-mkdir -p bin/kernel/io/vga
-nasm -f elf32 kernel/kernel-bootstrap.asm -o bin/kernel-bootstrap.o
-gcc -m32 -std=c99 -c kernel/kernel.c -o bin/kernel/kernel.o
-gcc -m32 -std=c99 -c kernel/io/vga/text_mode_display.c -o bin/kernel/io/vga/text_mode_display.o
-ld -m elf_i386 -T link.ld -o bin/kern bin/kernel-bootstrap.o bin/kernel/kernel.o bin/kernel/io/vga/text_mode_display.o
-#ld -m elf_i386 -T link.ld -o bin/kern bin/kernel-bootstrap.o bin/**/*.o \ No newline at end of file