2 # Copyright (C) 2006 Martin Decky
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
9 # - Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer.
11 # - Redistributions in binary form must reproduce the above copyright
12 # notice, this list of conditions and the following disclaimer in the
13 # documentation and/or other materials provided with the distribution.
14 # - The name of the author may not be used to endorse or promote products
15 # derived from this software without specific prior written permission.
17 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 ## Toolchain configuration
35 TARGET = i686-pc-linux-gnu
36 TOOLCHAIN_DIR = /usr/local/i686/bin
38 DEFS += -DMACHINE=$(MACHINE) -D__32_BITS__
43 ifeq ($(MACHINE),athlon-xp)
44 CFLAGS += -march=athlon-xp -mmmx -msse -m3dnow
45 DEFS += -DCONFIG_FENCES_P3
49 ifeq ($(MACHINE),athlon-mp)
50 CFLAGS += -march=athlon-mp -mmmx -msse -m3dnow
51 DEFS += -DCONFIG_FENCES_P3
54 ifeq ($(MACHINE),pentium3)
55 CFLAGS += -march=pentium3 -mmmx -msse
56 DEFS += -DCONFIG_FENCES_P3
59 ifeq ($(MACHINE),prescott)
60 CFLAGS += -march=pentium4 -mfpmath=sse -mmmx -msse -msse2 -msse3
61 DEFS += -DCONFIG_FENCES_P4
63 ifeq ($(MACHINE),pentium4)
64 CFLAGS += -march=pentium4 -mfpmath=sse -mmmx -msse -msse2
65 DEFS += -DCONFIG_FENCES_P4
68 ## Own configuration directives
73 ## Compile with hierarchical page tables support.
77 DEFS += -DCONFIG_PAGE_PT
79 ## Accepted configuration directives
82 ifeq ($(CONFIG_SMP),y)
89 ## Compile with support for software integer division.
95 arch/$(ARCH)/src/context.s \
96 arch/$(ARCH)/src/debug/panic.s \
97 arch/$(ARCH)/src/delay.s \
98 arch/$(ARCH)/src/asm.S \
99 arch/$(ARCH)/src/proc/scheduler.c \
100 arch/$(ARCH)/src/proc/task.c \
101 arch/$(ARCH)/src/proc/thread.c \
102 arch/$(ARCH)/src/bios/bios.c \
103 arch/$(ARCH)/src/smp/apic.c \
104 arch/$(ARCH)/src/smp/mps.c \
105 arch/$(ARCH)/src/smp/smp.c \
106 arch/$(ARCH)/src/atomic.S \
107 arch/$(ARCH)/src/smp/ipi.c \
108 arch/$(ARCH)/src/xen32.c \
109 arch/$(ARCH)/src/interrupt.c \
110 arch/$(ARCH)/src/pm.c \
111 arch/$(ARCH)/src/userspace.c \
112 arch/$(ARCH)/src/cpu/cpu.c \
113 arch/$(ARCH)/src/mm/as.c \
114 arch/$(ARCH)/src/mm/frame.c \
115 arch/$(ARCH)/src/mm/memory_init.c \
116 arch/$(ARCH)/src/mm/page.c \
117 arch/$(ARCH)/src/mm/tlb.c \
118 arch/$(ARCH)/src/ddi/ddi.c \
119 arch/$(ARCH)/src/drivers/xconsole.c \
120 arch/$(ARCH)/src/boot/boot.S \
121 arch/$(ARCH)/src/fpu_context.c \
122 arch/$(ARCH)/src/debugger.c