|
|
1.1 root 1:
2: export SOURCE=$(shell /bin/pwd)
3:
4: #
5: # gnumake 3.77 support
6: #
7: export USE_APPLE_PB_SUPPORT = all
8:
9: #
10: # Incremental Build option
11: #
12: ifndef INCR_EXPORTHDRS
13: ifeq ($(shell test -d $$OBJROOT/EXPORT_HDRS;echo $$?),0)
14: export INCR_EXPORTHDRS = TRUE
15: else
16: export INCR_EXPORTHDRS = FALSE
17: endif
18: endif
19:
20: ifndef INCR_INSTALLHDRS
21: ifeq ($(shell test -d $$DSTROOT/$INCDIR;echo $$?),0)
22: export INCR_INSTALLHDRS = TRUE
23: else
24: export INCR_INSTALLHDRS = FALSE
25: endif
26: endif
27:
28: #
29: # Component List
30: #
31: export COMPONENT_LIST = osfmk bsd iokit pexpert libkern
32: export COMPONENT = $(firstword $(subst /, ,$(shell $(RELPATH) $(SRCROOT) $(SOURCE))))
33: export COMPONENT_IMPORT_LIST = $(filter-out $(COMPONENT),$(COMPONENT_LIST))
34:
35: # Architecture options
36: #
37: # supported configurations : PPC I386
38: #
39: ifdef RC_ARCHS
40: export ARCH_CONFIGS = $(shell echo -n $(RC_ARCHS) | tr a-z A-Z)
41: else
42: ifndef ARCH_CONFIGS
43: export ARCH_CONFIGS = $(shell arch | tr a-z A-Z)
44: endif
45: endif
46: export ARCH_CONFIG = $(firstword $(ARCH_CONFIGS))
47: export arch_config = $(shell echo -n $(ARCH_CONFIG) | tr A-Z a-z)
48:
49:
50: # Kernel Configuration options
51: #
52: # supported configurations : RELEASE DEBUG PROFILE
53: #
54: ifndef KERNEL_CONFIGS
55: export KERNEL_CONFIGS = RELEASE
56: endif
57: export KERNEL_CONFIG = $(firstword $(KERNEL_CONFIGS))
58:
59: #
60: # Kernel Configuration to install
61: #
62: # supported install architecture : PPC I386
63: #
64: export INSTALL_TYPE = RELEASE
65: ifdef RC_ARCHS
66: export INSTALL_ARCHS = $(ARCH_CONFIGS)
67: else
68: export INSTALL_ARCHS = $(ARCH_CONFIGS)
69: endif
70: export INSTALL_ARCH = $(ARCH_CONFIG)
71:
72: export INSTALL_ARCH_DEFAULT = PPC
73:
74: #
75: # Standard defines list
76: #
77: export DEFINES = -DAPPLE -DNeXT -DKERNEL_PRIVATE -D__MACHO__=1 -D_ANSI_C_SOURCE -Dvolatile=__volatile $(IDENT)
78:
79: #
80: # Compiler command
81: #
82: CC = /usr/bin/cc
83: KCC = /usr/bin/cc
84:
85: #
86: # Default CFLAGS
87: #
88: ifdef RC_CFLAGS
89: export OTHER_CFLAGS = $(subst $(addprefix -arch ,$(RC_ARCHS)),,$(RC_CFLAGS))
90: endif
91:
92: export CFLAGS_GEN = -static -g -nostdinc -nostdlib -traditional-cpp -fno-builtin -finline -fno-keep-inline-functions -msoft-float -fsigned-bitfields -force_cpusubtype_ALL -Wpointer-arith $(OTHER_CFLAGS)
93:
94: export CFLAGS_RELEASE = -O2
95: export CFLAGS_DEBUG = -O1 -fno-omit-frame-pointer
96: export CFLAGS_PROFILE =
97:
98: export CFLAGS_PPC = -arch ppc -Dppc -DPPC -D__PPC__ -mcpu=604 -D_BIG_ENDIAN=__BIG_ENDIAN__
99: export CFLAGS_I386 = -arch i386 -Di386 -DI386 -D__I386__ -D_BIG_ENDIAN=__LITTLE_ENDIAN__
100:
101: export CFLAGS = $(CFLAGS_GEN) \
102: $($(addsuffix $(ARCH_CONFIG),CFLAGS_)) \
103: $($(addsuffix $(KERNEL_CONFIG),CFLAGS_)) \
104: $(DEFINES)
105:
106: #
107: # Assembler command
108: #
109: AS = /usr/bin/cc
110: S_KCC = /usr/bin/cc
111:
112: #
113: # Default SFLAGS
114: #
115: export SFLAGS_GEN = -static -D__ASSEMBLER__ -force_cpusubtype_ALL $(OTHER_CFLAGS)
116:
117: export SFLAGS_RELEASE =
118: export SFLAGS_DEBUG =
119: export SFLAGS_PROFILE =
120:
121: export SFLAGS_PPC = $(CFLAGS_PPC)
122: export SFLAGS_I386 = $(CFLAGS_I386)
123:
124: export SFLAGS = $(SFLAGS_GEN) \
125: $($(addsuffix $(ARCH_CONFIG),SFLAGS_)) \
126: $($(addsuffix $(KERNEL_CONFIG),SFLAGS_)) \
127: $(DEFINES)
128:
129: #
130: # Linker command
131: #
132: LD = /usr/bin/ld
133:
134: #
135: # Default LDFLAGS
136: #
137: export LDFLAGS_COMPONENT_GEN = -static -r
138:
139: export LDFLAGS_COMPONENT_RELEASE =
140: export LDFLAGS_COMPONENT_DEBUG =
141: export LDFLAGS_COMPONENT_PROFILE =
142:
143: export LDFLAGS_COMPONENT_PPC = -arch ppc
144: export LDFLAGS_COMPONENT_I386 = -arch i386
145:
146: export LDFLAGS_COMPONENT = $(LDFLAGS_COMPONENT_GEN) \
147: $($(addsuffix $(ARCH_CONFIG),LDFLAGS_COMPONENT_)) \
148: $($(addsuffix $(KERNEL_CONFIG),LDFLAGS_COMPONENT_))
149:
150: export LDFLAGS_KERNEL_GEN = -static -force_cpusubtype_ALL -segalign 0x1000
151:
152: export LDFLAGS_KERNEL_RELEASE = -noseglinkedit
153: export LDFLAGS_KERNEL_DEBUG =
154: export LDFLAGS_KERNEL_PROFILE =
155:
156: export LDFLAGS_KERNEL_PPC = -arch ppc -segaddr __VECTORS 0x0 -segaddr __TEXT 0x11000 -e __start -sectalign __DATA __common 0x1000 -sectalign __DATA __bss 0x1000
157: export LDFLAGS_KERNEL_I386 = -arch i386 -segaddr __TEXT 0x100000 -segaddr __LINKEDIT 0x780000 -e _pstart
158:
159: export LDFLAGS_KERNEL = $(LDFLAGS_KERNEL_GEN) \
160: $($(addsuffix $(ARCH_CONFIG),LDFLAGS_KERNEL_)) \
161: $($(addsuffix $(KERNEL_CONFIG),LDFLAGS_KERNEL_))
162:
163:
164: #
165: # Default runtime libraries to be linked with the kernel
166: #
167: export LD_KERNEL_LIBS = -lcc
168:
169: #
170: # Default INCFLAGS
171: #
172: export INCFLAGS_IMPORT = $(patsubst %, -I$(OBJROOT)/EXPORT_HDRS/%, $(COMPONENT_IMPORT_LIST))
173: export INCFLAGS_EXTERN = -I$(OBJROOT)/EXTERN_HDRS -I$(SRCROOT)/EXTERNAL_HEADERS -I$(SRCROOT)/EXTERNAL_HEADERS/bsd
174: export INCFLAGS_GEN = -I$(SRCROOT)/$(COMPONENT)
175: export INCFLAGS_POSIX = -I$(OBJROOT)/EXPORT_HDRS/bsd
176: export INCFLAGS_LOCAL = -I.
177:
178: export INCFLAGS = -nostdinc $(INCFLAGS_LOCAL) $(INCFLAGS_GEN) $(INCFLAGS_IMPORT) $(INCFLAGS_EXTERN) $(INCFLAGS_MAKEFILE)
179:
180: #
181: # Default MIGFLAGS
182: #
183: export MIGFLAGS = $(DEFINES) $(INCFLAGS) $($(addsuffix $(ARCH_CONFIG),CFLAGS_))
184:
185: #
186: # Default VPATH
187: #
188: empty:=
189: space:= $(empty) $(empty)
190: export VPATH_IMPORT = $(subst $(space),:,$(patsubst %,$(OBJROOT)/EXPORT_HDRS/%,$(strip $(COMPONENT_IMPORT_LIST)))):
191: export VPATH_EXTERN = $(OBJROOT)/EXTERN_HDRS:
192: export VPATH_GEN = .:$(SOURCE):
193:
194: export VPATH = $(VPATH_GEN)$(VPATH_IMPORT)$(VPATH_EXTERN)$(VPATH_MAKEFILE)
195:
196: #
197: # Macros that control installation of kernel and it's header files
198: #
199: # install flags for header files
200: #
201: INSTALL_FLAGS = -c -m 0444
202:
203: #
204: # Header file destinations
205: #
206: FRAMEDIR = System/Library/Frameworks
207: ifndef INCDIR
208: INCDIR = $(FRAMEDIR)/System.framework/Versions/B/Headers
209: endif
210: ifndef LCLDIR
211: LCLDIR = $(FRAMEDIR)/System.framework/Versions/B/PrivateHeaders
212: endif
213:
214: KINCVERS = A
215: KINCFRAME = $(FRAMEDIR)/Kernel.framework
216: KINCDIR = $(KINCFRAME)/Versions/$(KINCVERS)/Headers
217:
218: #
219: # Compononent Header file destinations
220: #
221: EXPDIR = EXPORT_HDRS/$(COMPONENT)
222:
223: #
224: # Strip Flags
225: #
226: export STRIP_FLAGS_RELEASE = -S
227: export STRIP_FLAGS_DEBUG = -S
228: export STRIP_FLAGS_PROFILE = -S
229:
230: export STRIP_FLAGS = $($(addsuffix $(KERNEL_CONFIG),STRIP_FLAGS_))
231:
232: #
233: # This must be here before any rules are possibly defined by the
234: # machine dependent makefile fragment so that a plain "make" command
235: # always works. The config program will emit an appropriate rule to
236: # cause "all" to depend on every kernel configuration it generates.
237: #
238:
239: default: all
240:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.