kern
view 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 |
line source
1 ifneq ($(shell uname -m), i386)
2 # -m32 instructs the compiler to produce 32bit code
3 ccemu = -m32
5 ifeq ($(shell uname -s), FreeBSD)
6 ldemu = -m elf_i386_fbsd
7 else
8 ldemu = -m elf_i386
9 endif
10 endif
12 # collect all of our C and assembly source files
13 csrc = $(wildcard src/boot/*.c) $(wildcard src/*.c) $(wildcard src/klibc/*.c)
14 asmsrc = $(wildcard src/boot/*.S) $(wildcard src/*.S) $(wildcard src/klibc/*.S)
15 dep = $(asmsrc:.S=.d) $(csrc:.c=.d)
17 # each source file will generate one object file
18 obj = $(asmsrc:.S=.o) $(csrc:.c=.o)
20 CC = gcc
22 inc = -Isrc -Isrc/klibc -Isrc/boot -Iinclude
24 # -nostdinc instructs the compiler to ignore standard include directories
25 CFLAGS = $(ccemu) -Wall -g -nostdinc -fno-builtin $(inc) -DKERNEL
26 ASFLAGS = $(ccemu) -g -nostdinc -fno-builtin $(inc)
28 bin = kernel.elf
30 # default target: make an ELF binary by linking the object files
31 # we need to specify where to assume the text section (code) is going
32 # in memory, as well as the kernel entry point (kentry).
33 $(bin): $(obj)
34 ld $(ldemu) -o $@ -Ttext 0x100000 -e kentry $(obj) -Map link.map
36 %.s: %.c
37 $(CC) $(CFLAGS) -S -o $@ $<
39 -include $(dep)
41 %.d: %.c
42 @$(CPP) $(CFLAGS) -MM -MT $(@:.d=.o) $< >$@
44 %.d: %.S
45 @$(CPP) $(ASFLAGS) -MM -MT $(@:.d=.o) $< >$@
47 .PHONY: clean
48 clean:
49 rm -f $(obj) $(bin)
51 .PHONY: cleandep
52 cleandep:
53 rm -f $(dep)