3 HOSTTYPE := $(shell uname -m)
6 OSTYPE := $(shell uname -s | awk -F_ '{print $$1}' | tr A-Z a-z)
8 ifeq ($(HOSTTYPE),i586)
11 ifeq ($(HOSTTYPE),i686)
17 ifeq ($(findstring Macintosh,$(HOSTTYPE)),Macintosh)
20 ifeq ($(HOSTTYPE),macintosh)
21 ifeq ($(MACHTYPE),powerpc)
38 HOST_OBJCOPY := objcopy
42 # setup some local commands
45 ifeq ($(OSTYPE),SunOS)
49 ifeq ($(findstring solaris,$(OSTYPE)),solaris)
58 OBJCOPY = $(HOST_OBJCOPY)
63 ifneq ($(HOSTTYPE),i386)
68 OBJCOPY = i386-elf-objcopy
69 STRIP = i386-elf-strip
71 ifeq ($(OSTYPE),cygwin)
76 OBJCOPY = i386-elf-objcopy
77 STRIP = i386-elf-strip
80 KERNEL_CFLAGS = -fno-pic
91 OBJCOPY = sh-elf-objcopy
93 GLOBAL_CFLAGS = -ml -m4-single-only -mhitachi -O1
94 KERNEL_CFLAGS = -fno-pic
100 ifeq ($(ARCH),sparc64)
105 OBJCOPY = sparc64-elf-objcopy
106 STRIP = sparc64-elf-strip
109 TOOLCHAIN_ARCH = sparc64
113 ifneq ($(HOSTTYPE),sparc)
118 OBJCOPY = sparc-elf-objcopy
119 STRIP = sparc-elf-strip
123 TOOLCHAIN_ARCH = sparc
127 ifneq ($(HOSTTYPE),m68k)
132 OBJCOPY = m68k-elf-objcopy
133 STRIP = m68k-elf-strip
136 GLOBAL_CFLAGS = -O0 -g
137 KERNEL_CFLAGS = -fno-pic
140 TOOLCHAIN_ARCH = m68k
144 ifneq ($(HOSTTYPE),alpha)
149 OBJCOPY = alpha-elf-objcopy
153 TOOLCHAIN_ARCH = alpha
157 ifneq ($(HOSTTYPE),mips)
162 OBJCOPY = mips-elf-objcopy
164 GLOBAL_CFLAGS = -fno-pic -mips4 -meb -G 0
166 TOOLCHAIN_ARCH = mips
170 ifneq ($(HOSTTYPE),ppc)
175 OBJCOPY = ppc-elf-objcopy
176 STRIP = ppc-elf-strip
178 GLOBAL_CFLAGS = -fno-pic -O -D__PPC__
183 # try to detect if the user has ARCH-newos-gcc installed
186 # the "| cat" below looks unnecesary, this is
187 # to avoid a bug in liberty in certain versions
189 FOO := $(shell $(TOOLCHAIN_ARCH)-newos-gcc --version | cat)
191 $(warning found newos toolchain!)
192 CC = $(TOOLCHAIN_ARCH)-newos-gcc
193 LD = $(TOOLCHAIN_ARCH)-newos-ld
194 AS = $(TOOLCHAIN_ARCH)-newos-as
195 AR = $(TOOLCHAIN_ARCH)-newos-ar
196 OBJCOPY = $(TOOLCHAIN_ARCH)-newos-objcopy
197 STRIP = $(TOOLCHAIN_ARCH)-newos-strip
198 SIZE = $(TOOLCHAIN_ARCH)-newos-size
201 GLOBAL_CFLAGS += -Wall -W -Wno-multichar -Wno-unused-parameter -Wmissing-prototypes -finline -nostdinc -fno-builtin -DARCH_$(ARCH) -DNEWOS=1
202 GLOBAL_CPPFLAGS = $(GLOBAL_CFLAGS) -fno-rtti
206 LIBGCC_PATH := $(dir $(shell $(CC) $(GLOBAL_CFLAGS) -print-libgcc-file-name))
207 $(warning LIBGCC_PATH = $(LIBGCC_PATH))
210 $(warning ARCH = $(ARCH))
212 # figure out where the build dir will be
213 BUILD_DIR = build/$(ARCH)
214 $(warning build dir will be $(BUILD_DIR))
215 $(shell mkdir -p $(BUILD_DIR))