view cos/Makefile @ 25:d3c4bf3720a3

Beginning of multitasking
author windel
date Tue, 27 Dec 2011 13:31:38 +0100
parents d8627924d40d
children dcce92b1efbc
line wrap: on
line source

# vim: set noexpandtab:

all: bootdisk.img Makefile

bootdisk.img: lcfosc.bin grub/menu.lst Makefile
	cp grub/emptybootdisk.img bootdisk.img
	mcopy -D o -i bootdisk.img lcfosc.bin ::
	mcopy -D o -i bootdisk.img grub/menu.lst ::/grub

CRT0 = kernel/goto64.o

CFLAGS = -m64 \
			-nostdinc \
			-nostdlib \
			-nostartfiles \
			-mno-red-zone \
			-fno-builtin \
			-mcmodel=large

OBJECTS = \
	kernel/video.o \
	kernel/snprintf.o \
	kernel/kernel.o \
	kernel/asmcode.o \
	kernel/handlers.o \
	kernel/keyboard.o \
	kernel/klib.o \
	kernel/malloc.o \
	kernel/task.o \
	kernel/timer.o

lcfosc.bin: $(CRT0) $(OBJECTS) linker.ld
	ld -T linker.ld -s -o lcfosc.bin $(CRT0) $(OBJECTS)

%.o : %.asm Makefile
	nasm -f elf64 -o $@ $<

%.o : %.c Makefile
	gcc $(CFLAGS) -o $@ -c $< -Wall -Wextra -Werror

clean:
	rm $(OBJECTS) $(CRT0) lcfosc.bin