kern
annotate Makefile @ 80:4db99a52863e
fixed the "endianess" of the text messages in the ATA identify info block. this
is the first time I've seen wrong byteorder in ascii text, the ATA committee
should be commended.
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Tue, 06 Dec 2011 13:35:39 +0200 |
parents | 637efe95d0d1 |
children |
rev | line source |
---|---|
nuclear@65 | 1 ifneq ($(shell uname -m), i386) |
nuclear@72 | 2 # -m32 instructs the compiler to produce 32bit code |
nuclear@65 | 3 ccemu = -m32 |
nuclear@65 | 4 |
nuclear@65 | 5 ifeq ($(shell uname -s), FreeBSD) |
nuclear@66 | 6 ldemu = -m elf_i386_fbsd |
nuclear@65 | 7 else |
nuclear@66 | 8 ldemu = -m elf_i386 |
nuclear@65 | 9 endif |
nuclear@65 | 10 endif |
nuclear@65 | 11 |
nuclear@0 | 12 # collect all of our C and assembly source files |
nuclear@10 | 13 csrc = $(wildcard src/boot/*.c) $(wildcard src/*.c) $(wildcard src/klibc/*.c) |
nuclear@10 | 14 asmsrc = $(wildcard src/boot/*.S) $(wildcard src/*.S) $(wildcard src/klibc/*.S) |
nuclear@7 | 15 dep = $(asmsrc:.S=.d) $(csrc:.c=.d) |
nuclear@0 | 16 |
nuclear@0 | 17 # each source file will generate one object file |
nuclear@2 | 18 obj = $(asmsrc:.S=.o) $(csrc:.c=.o) |
nuclear@0 | 19 |
nuclear@0 | 20 CC = gcc |
nuclear@0 | 21 |
nuclear@72 | 22 inc = -Isrc -Isrc/klibc -Isrc/boot -Iinclude |
nuclear@16 | 23 |
nuclear@0 | 24 # -nostdinc instructs the compiler to ignore standard include directories |
nuclear@72 | 25 CFLAGS = $(ccemu) -Wall -g -nostdinc -fno-builtin $(inc) -DKERNEL |
nuclear@65 | 26 ASFLAGS = $(ccemu) -g -nostdinc -fno-builtin $(inc) |
nuclear@0 | 27 |
nuclear@0 | 28 bin = kernel.elf |
nuclear@0 | 29 |
nuclear@0 | 30 # default target: make an ELF binary by linking the object files |
nuclear@1 | 31 # we need to specify where to assume the text section (code) is going |
nuclear@1 | 32 # in memory, as well as the kernel entry point (kentry). |
nuclear@0 | 33 $(bin): $(obj) |
nuclear@65 | 34 ld $(ldemu) -o $@ -Ttext 0x100000 -e kentry $(obj) -Map link.map |
nuclear@0 | 35 |
nuclear@38 | 36 %.s: %.c |
nuclear@38 | 37 $(CC) $(CFLAGS) -S -o $@ $< |
nuclear@38 | 38 |
nuclear@7 | 39 -include $(dep) |
nuclear@7 | 40 |
nuclear@7 | 41 %.d: %.c |
nuclear@7 | 42 @$(CPP) $(CFLAGS) -MM -MT $(@:.d=.o) $< >$@ |
nuclear@7 | 43 |
nuclear@7 | 44 %.d: %.S |
nuclear@7 | 45 @$(CPP) $(ASFLAGS) -MM -MT $(@:.d=.o) $< >$@ |
nuclear@7 | 46 |
nuclear@0 | 47 .PHONY: clean |
nuclear@0 | 48 clean: |
nuclear@0 | 49 rm -f $(obj) $(bin) |
nuclear@7 | 50 |
nuclear@7 | 51 .PHONY: cleandep |
nuclear@7 | 52 cleandep: |
nuclear@7 | 53 rm -f $(dep) |