Here we have it folks! Step right up, new make system!
[newos.git] / make.syscfg
blob45318c94d71e88f3fdfa56b66dcca08615aa0d46
2 ifeq ($(HOSTTYPE),)
3         HOSTTYPE := $(shell uname -m)
4 endif
5 ifeq ($(OSTYPE),)
6         OSTYPE := $(shell uname -s | awk -F_ '{print $$1}' | tr A-Z a-z)
7 endif
8 ifeq ($(HOSTTYPE),i586)
9         HOSTTYPE = i386
10 endif
11 ifeq ($(HOSTTYPE),i686)
12         HOSTTYPE = i386
13 endif
14 ifeq ($(HOSTTYPE), )
15         HOSTTYPE = i386
16 endif
17 ifeq ($(HOSTTYPE),macintosh)
18         ifeq ($(MACHTYPE),powerpc)
19                 HOSTTYPE := ppc
20         endif
21 endif
22 ifeq ($(ARCH), )
23 #ARCH = $(HOSTTYPE)
24 ARCH = i386
25 #ARCH = sparc
26 #ARCH = sh4
27 #ARCH = alpha
28 #ARCH = sparc64
29 endif
31 HOST_CC := gcc
32 HOST_LD := $(LD)
33 HOST_AS := $(AS)
34 HOST_AR := $(AR)
35 HOST_OBJCOPY := objcopy
36 HOST_STRIP := strip
37 HOST_SIZE := size
39 # setup some local commands
40 ECHO := echo
41 AWK := awk
42 ifeq ($(OSTYPE),SunOS)
43         ECHO := /usr/ucb/echo
44         AWK := gawk
45 endif
46 ifeq ($(findstring solaris,$(OSTYPE)),solaris)
47         ECHO := /usr/ucb/echo
48         AWK := gawk
49 endif
51 CC = $(HOST_CC)
52 LD = $(HOST_LD)
53 AS = $(HOST_AS)
54 AR = $(HOST_AR)
55 OBJCOPY = $(HOST_OBJCOPY)
56 STRIP = $(HOST_STRIP)
57 SIZE = $(HOST_SIZE)
59 ifeq ($(ARCH),i386)
60         ifneq ($(HOSTTYPE),i386)
61                 CC = i386-elf-gcc
62                 LD = i386-elf-ld
63                 AS = i386-elf-as
64                 AR = i386-elf-ar
65                 OBJCOPY = i386-elf-objcopy
66                 STRIP = i386-elf-strip
67         endif
68         ifeq ($(OSTYPE),cygwin)
69                 CC = i386-linux-gcc
70                 LD = i386-linux-ld
71                 AS = i386-linux-as
72                 AR = i386-linux-ar
73                 OBJCOPY = i386-linux-objcopy
74                 STRIP = i386-linux-strip
75         endif
76         GLOBAL_CFLAGS = -O2
77         KERNEL_CFLAGS = -fno-pic
78         USER_CFLAGS = -fpic
79         GLOBAL_LDFLAGS =
80         LIBGCC = -lgcc
81         LIBGCC_PATH = lib/libgcc/$(ARCH)
82 endif
84 ifeq ($(ARCH),sh4)
85         CC = sh-elf-gcc
86         LD = sh-elf-ld
87         AS = sh-elf-as
88         AR = sh-elf-ar
89         OBJCOPY = sh-elf-objcopy
90         STRIP = sh-elf-strip
91         GLOBAL_CFLAGS = -ml -m4 -mhitachi -O2
92         KERNEL_CFLAGS = -fno-pic
93         USER_CFLAGS = -fpic
94         GLOBAL_LDFLAGS = -EL
95         LIBGCC = -lgcc
96         LIBGCC_PATH = lib/libgcc/$(ARCH)/ml/m4-single-only
97 endif
99 ifeq ($(ARCH),sparc64)
100         CC = sparc64-elf-gcc
101         LD = sparc64-elf-ld
102         AS = sparc64-elf-as
103         AR = sparc64-elf-ar
104         OBJCOPY = sparc64-elf-objcopy
105         STRIP = sparc64-elf-strip
106         GLOBAL_CFLAGS =
107         GLOBAL_LDFLAGS =
108         LIBGCC = -lgcc
109         LIBGCC_PATH = lib/libgcc/$(ARCH)
110 endif
112 ifeq ($(ARCH),sparc)
113         ifneq ($(HOSTTYPE),sparc)
114                 CC = sparc-elf-gcc
115                 LD = sparc-elf-ld
116                 AS = sparc-elf-as
117                 AR = sparc-elf-ar
118                 OBJCOPY = sparc-elf-objcopy
119                 STRIP = sparc-elf-strip
120         endif
121         GLOBAL_CFLAGS =
122         GLOBAL_LDFLAGS =
123         LIBGCC = -lgcc
124         LIBGCC_PATH = lib/libgcc/$(ARCH)
125 endif
127 ifeq ($(ARCH),m68k)
128         ifneq ($(HOSTTYPE),m68k)
129                 CC = m68k-elf-gcc
130                 LD = m68k-elf-ld
131                 AS = m68k-elf-as
132                 AR = m68k-elf-ar
133                 OBJCOPY = m68k-elf-objcopy
134                 STRIP = m68k-elf-strip
135                 SIZE = m68k-elf-size
136         endif
137         GLOBAL_CFLAGS = -O0 -g
138         KERNEL_CFLAGS = -fno-pic
139         USER_CFLAGS = -fpic
140         GLOBAL_LDFLAGS = -g
141         LIBGCC = -lgcc
142         LIBGCC_PATH = lib/libgcc/$(ARCH)
143 endif
145 ifeq ($(ARCH),alpha)
146         ifneq ($(HOSTTYPE),alpha)
147                 CC = alpha-elf-gcc
148                 LD = alpha-elf-ld
149                 AS = alpha-elf-as
150                 AR = alpha-elf-ar
151                 OBJCOPY = alpha-elf-objcopy
152         endif
153         GLOBAL_CFLAGS =
154         GLOBAL_LDFLAGS =
155         LIBGCC = -lgcc
156         LIBGCC_PATH = lib/libgcc/$(ARCH)
157 endif
159 ifeq ($(ARCH),mips)
160         ifneq ($(HOSTTYPE),mips)
161                 CC = mips-elf-gcc
162                 LD = mips-elf-ld
163                 AS = mips-elf-as
164                 AR = mips-elf-ar
165                 OBJCOPY = mips-elf-objcopy
166         endif
167         GLOBAL_CFLAGS = -fno-pic -mips4 -meb -G 0
168         GLOBAL_LDFLAGS =
169         LIBGCC = -lgcc
170         LIBGCC_PATH = lib/libgcc/$(ARCH)
171 endif
173 ifeq ($(ARCH),ppc)
174         ifneq ($(HOSTTYPE),ppc)
175                 CC = ppc-elf-gcc
176                 LD = ppc-elf-ld
177                 AS = ppc-elf-as
178                 AR = ppc-elf-ar
179                 OBJCOPY = ppc-elf-objcopy
180                 STRIP = ppc-elf-strip
181         endif
182         GLOBAL_CFLAGS = -fno-pic -O
183         GLOBAL_LDFLAGS =
184         LIBGCC = -lgcc
185         LIBGCC_PATH = lib/libgcc/$(ARCH)
186 endif
188 GLOBAL_CFLAGS += -Wall -W -Wno-multichar -Wno-unused -Wmissing-prototypes -finline -nostdinc -fno-builtin -DARCH_$(ARCH) -DNEWOS=1
190 # print some info
191 $(warning ARCH = $(ARCH))
193 # figure out where the build dir will be
194 BUILD_DIR = build/$(ARCH)
195 $(warning buid dir will be $(BUILD_DIR))
196 $(shell mkdir -p $(BUILD_DIR))