kern

annotate Makefile @ 23:5454cee245a3

- fixed tragic mistake in the initial kernel image mapping - page table modifications by disabling paging first - page allocation completed
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 04 Apr 2011 23:34:06 +0300
parents b11a86695493
children e6f75f91e606
rev   line source
nuclear@0 1 # collect all of our C and assembly source files
nuclear@10 2 csrc = $(wildcard src/boot/*.c) $(wildcard src/*.c) $(wildcard src/klibc/*.c)
nuclear@10 3 asmsrc = $(wildcard src/boot/*.S) $(wildcard src/*.S) $(wildcard src/klibc/*.S)
nuclear@7 4 dep = $(asmsrc:.S=.d) $(csrc:.c=.d)
nuclear@0 5
nuclear@0 6 # each source file will generate one object file
nuclear@2 7 obj = $(asmsrc:.S=.o) $(csrc:.c=.o)
nuclear@0 8
nuclear@0 9 CC = gcc
nuclear@0 10
nuclear@16 11 inc = -Isrc -Isrc/klibc -Isrc/boot
nuclear@16 12
nuclear@0 13 # -nostdinc instructs the compiler to ignore standard include directories
nuclear@0 14 # -m32 instructs the compiler to produce 32bit code (in case we have a 64bit compiler)
nuclear@16 15 CFLAGS = -m32 -Wall -g -nostdinc -fno-builtin $(inc)
nuclear@16 16 ASFLAGS = -m32 -g -nostdinc -fno-builtin $(inc)
nuclear@0 17
nuclear@0 18 bin = kernel.elf
nuclear@0 19
nuclear@0 20 # default target: make an ELF binary by linking the object files
nuclear@1 21 # we need to specify where to assume the text section (code) is going
nuclear@1 22 # in memory, as well as the kernel entry point (kentry).
nuclear@0 23 $(bin): $(obj)
nuclear@10 24 ld -melf_i386 -o $@ -Ttext 0x100000 -e kentry $(obj) -Map link.map
nuclear@0 25
nuclear@7 26 -include $(dep)
nuclear@7 27
nuclear@7 28 %.d: %.c
nuclear@7 29 @$(CPP) $(CFLAGS) -MM -MT $(@:.d=.o) $< >$@
nuclear@7 30
nuclear@7 31 %.d: %.S
nuclear@7 32 @$(CPP) $(ASFLAGS) -MM -MT $(@:.d=.o) $< >$@
nuclear@7 33
nuclear@0 34 .PHONY: clean
nuclear@0 35 clean:
nuclear@0 36 rm -f $(obj) $(bin)
nuclear@7 37
nuclear@7 38 .PHONY: cleandep
nuclear@7 39 cleandep:
nuclear@7 40 rm -f $(dep)