summaryrefslogtreecommitdiff
path: root/src/stem/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/stem/Makefile')
-rw-r--r--src/stem/Makefile35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/stem/Makefile b/src/stem/Makefile
new file mode 100644
index 0000000..94e2000
--- /dev/null
+++ b/src/stem/Makefile
@@ -0,0 +1,35 @@
+
+CC = gcc
+CFLAGS = -nostdlib -nostartfiles -nodefaultlibs -fno-builtin -fno-stack-protector -Wall -Wextra
+
+LD = ld
+LDFLAGS = -T link.ld
+
+ASM = nasm
+AFLAGS = -f elf
+
+OBJECTS = loader_.o kmain.o sys.o \
+ monitor.o timer.o \
+ idt.o idt_.o task.o task_.o\
+ lib/stdlib.o lib/bitset.o \
+ mem.o paging.o gdt.o heap.o
+OUT = stem.elf
+
+all: $(OBJECTS)
+ echo "* Linking $(OUT)..."
+ $(LD) $(LDFLAGS) $(OBJECTS) -o $(OUT) -Map stem.map
+
+clean:
+ rm *.o || exit 0
+ rm $(OBJECTS) || exit 0
+
+mrproper: clean
+ rm $(OUT)
+
+%.o: %.asm
+ echo "* Compiling $<..."
+ $(ASM) $(AFLAGS) -o $@ $<
+
+%.o: %.c
+ echo "* Compiling $<..."
+ $(CC) -c $< -o $@ $(CFLAGS)