1 # ----------------------------------------------------------------------------
2 # Hyper Operating System V4 Advance
5 # $Id: gmake.mak,v 1.1 2006-08-16 16:27:03 ryuz Exp $
7 # Copyright (C) 1998-2006 by Project HOS
8 # http://sourceforge.jp/projects/hos/
9 # ----------------------------------------------------------------------------
22 TOP_DIR = ../../../../..
23 KNL_DIR = $(TOP_DIR)/kernel
24 OBJS_DIR = objs_$(TARGET)
27 INC_KNL_DIR = $(KNL_DIR)/include
28 INC_PROC_DIR = $(INC_KNL_DIR)/arch/proc/$(ARCH_PROC)
29 INC_IRC_DIR = $(INC_KNL_DIR)/arch/irc/$(ARCH_IRC)
32 SRC_KNL_DIR = $(KNL_DIR)/source
33 SRC_PROC_DIR = $(SRC_KNL_DIR)/arch/proc/$(ARCH_PROC)
34 SRC_PROC_ASM_DIR = $(SRC_KNL_DIR)/arch/proc/$(ARCH_PROC)/$(ARCH_CC)
35 SRC_IRC_DIR = $(SRC_KNL_DIR)/arch/irc/$(ARCH_IRC)
36 SRC_IRC_ASM_DIR = $(SRC_KNL_DIR)/arch/irc/$(ARCH_IRC)/$(ARCH_CC)
39 CFGRTR_DIR = $(TOP_DIR)/cfgrtr/build/gcc
44 include $(TOP_DIR)/kernel/build/common/gmake.inc
48 TARGET_LIB = $(TARGET).lib
51 ASRCS += $(SRC_PROC_ASM_DIR)/ctxctl.src \
52 $(SRC_PROC_ASM_DIR)/exchdr.src \
53 $(SRC_PROC_ASM_DIR)/inthdr.src \
54 $(SRC_PROC_ASM_DIR)/vect_dmy.src
56 ifneq ($(FAST_VECTOR),Yes)
57 ASRCS += $(SRC_PROC_ASM_DIR)/vect_004.src \
58 $(SRC_PROC_ASM_DIR)/vect_005.src \
59 $(SRC_PROC_ASM_DIR)/vect_006.src \
60 $(SRC_PROC_ASM_DIR)/vect_007.src \
61 $(SRC_PROC_ASM_DIR)/vect_008.src \
62 $(SRC_PROC_ASM_DIR)/vect_009.src \
63 $(SRC_PROC_ASM_DIR)/vect_010.src \
64 $(SRC_PROC_ASM_DIR)/vect_011.src \
65 $(SRC_PROC_ASM_DIR)/vect_012.src \
66 $(SRC_PROC_ASM_DIR)/vect_013.src \
67 $(SRC_PROC_ASM_DIR)/vect_014.src \
68 $(SRC_PROC_ASM_DIR)/vect_015.src \
69 $(SRC_PROC_ASM_DIR)/vect_016.src \
70 $(SRC_PROC_ASM_DIR)/vect_017.src \
71 $(SRC_PROC_ASM_DIR)/vect_018.src \
72 $(SRC_PROC_ASM_DIR)/vect_019.src \
73 $(SRC_PROC_ASM_DIR)/vect_020.src \
74 $(SRC_PROC_ASM_DIR)/vect_021.src \
75 $(SRC_PROC_ASM_DIR)/vect_022.src \
76 $(SRC_PROC_ASM_DIR)/vect_023.src \
77 $(SRC_PROC_ASM_DIR)/vect_024.src \
78 $(SRC_PROC_ASM_DIR)/vect_025.src \
79 $(SRC_PROC_ASM_DIR)/vect_026.src \
80 $(SRC_PROC_ASM_DIR)/vect_027.src \
81 $(SRC_PROC_ASM_DIR)/vect_028.src \
82 $(SRC_PROC_ASM_DIR)/vect_029.src \
83 $(SRC_PROC_ASM_DIR)/vect_030.src \
84 $(SRC_PROC_ASM_DIR)/vect_031.src \
85 $(SRC_PROC_ASM_DIR)/vect_032.src \
86 $(SRC_PROC_ASM_DIR)/vect_033.src \
87 $(SRC_PROC_ASM_DIR)/vect_034.src \
88 $(SRC_PROC_ASM_DIR)/vect_035.src \
89 $(SRC_PROC_ASM_DIR)/vect_036.src \
90 $(SRC_PROC_ASM_DIR)/vect_037.src \
91 $(SRC_PROC_ASM_DIR)/vect_038.src \
92 $(SRC_PROC_ASM_DIR)/vect_039.src \
93 $(SRC_PROC_ASM_DIR)/vect_040.src \
94 $(SRC_PROC_ASM_DIR)/vect_041.src \
95 $(SRC_PROC_ASM_DIR)/vect_042.src \
96 $(SRC_PROC_ASM_DIR)/vect_043.src \
97 $(SRC_PROC_ASM_DIR)/vect_044.src \
98 $(SRC_PROC_ASM_DIR)/vect_045.src \
99 $(SRC_PROC_ASM_DIR)/vect_046.src \
100 $(SRC_PROC_ASM_DIR)/vect_047.src \
101 $(SRC_PROC_ASM_DIR)/vect_048.src \
102 $(SRC_PROC_ASM_DIR)/vect_049.src \
103 $(SRC_PROC_ASM_DIR)/vect_050.src \
104 $(SRC_PROC_ASM_DIR)/vect_051.src \
105 $(SRC_PROC_ASM_DIR)/vect_052.src \
106 $(SRC_PROC_ASM_DIR)/vect_053.src \
107 $(SRC_PROC_ASM_DIR)/vect_054.src \
108 $(SRC_PROC_ASM_DIR)/vect_055.src \
109 $(SRC_PROC_ASM_DIR)/vect_056.src \
110 $(SRC_PROC_ASM_DIR)/vect_057.src \
111 $(SRC_PROC_ASM_DIR)/vect_058.src \
112 $(SRC_PROC_ASM_DIR)/vect_059.src \
113 $(SRC_PROC_ASM_DIR)/vect_060.src \
114 $(SRC_PROC_ASM_DIR)/vect_061.src \
115 $(SRC_PROC_ASM_DIR)/vect_062.src \
116 $(SRC_PROC_ASM_DIR)/vect_063.src \
117 $(SRC_PROC_ASM_DIR)/vect_064.src \
118 $(SRC_PROC_ASM_DIR)/vect_065.src \
119 $(SRC_PROC_ASM_DIR)/vect_066.src \
120 $(SRC_PROC_ASM_DIR)/vect_067.src \
121 $(SRC_PROC_ASM_DIR)/vect_068.src \
122 $(SRC_PROC_ASM_DIR)/vect_069.src \
123 $(SRC_PROC_ASM_DIR)/vect_070.src \
124 $(SRC_PROC_ASM_DIR)/vect_071.src \
125 $(SRC_PROC_ASM_DIR)/vect_072.src \
126 $(SRC_PROC_ASM_DIR)/vect_073.src \
127 $(SRC_PROC_ASM_DIR)/vect_074.src \
128 $(SRC_PROC_ASM_DIR)/vect_075.src \
129 $(SRC_PROC_ASM_DIR)/vect_076.src \
130 $(SRC_PROC_ASM_DIR)/vect_077.src \
131 $(SRC_PROC_ASM_DIR)/vect_078.src \
132 $(SRC_PROC_ASM_DIR)/vect_079.src \
133 $(SRC_PROC_ASM_DIR)/vect_080.src \
134 $(SRC_PROC_ASM_DIR)/vect_081.src \
135 $(SRC_PROC_ASM_DIR)/vect_082.src \
136 $(SRC_PROC_ASM_DIR)/vect_083.src \
137 $(SRC_PROC_ASM_DIR)/vect_084.src \
138 $(SRC_PROC_ASM_DIR)/vect_085.src \
139 $(SRC_PROC_ASM_DIR)/vect_086.src \
140 $(SRC_PROC_ASM_DIR)/vect_087.src \
141 $(SRC_PROC_ASM_DIR)/vect_088.src \
142 $(SRC_PROC_ASM_DIR)/vect_089.src \
143 $(SRC_PROC_ASM_DIR)/vect_090.src \
144 $(SRC_PROC_ASM_DIR)/vect_091.src \
145 $(SRC_PROC_ASM_DIR)/vect_092.src \
146 $(SRC_PROC_ASM_DIR)/vect_093.src \
147 $(SRC_PROC_ASM_DIR)/vect_094.src \
148 $(SRC_PROC_ASM_DIR)/vect_095.src \
149 $(SRC_PROC_ASM_DIR)/vect_096.src \
150 $(SRC_PROC_ASM_DIR)/vect_097.src \
151 $(SRC_PROC_ASM_DIR)/vect_098.src \
152 $(SRC_PROC_ASM_DIR)/vect_099.src \
153 $(SRC_PROC_ASM_DIR)/vect_100.src \
154 $(SRC_PROC_ASM_DIR)/vect_101.src \
155 $(SRC_PROC_ASM_DIR)/vect_102.src \
156 $(SRC_PROC_ASM_DIR)/vect_103.src \
157 $(SRC_PROC_ASM_DIR)/vect_104.src \
158 $(SRC_PROC_ASM_DIR)/vect_105.src \
159 $(SRC_PROC_ASM_DIR)/vect_106.src \
160 $(SRC_PROC_ASM_DIR)/vect_107.src \
161 $(SRC_PROC_ASM_DIR)/vect_108.src \
162 $(SRC_PROC_ASM_DIR)/vect_109.src \
163 $(SRC_PROC_ASM_DIR)/vect_110.src \
164 $(SRC_PROC_ASM_DIR)/vect_111.src \
165 $(SRC_PROC_ASM_DIR)/vect_112.src \
166 $(SRC_PROC_ASM_DIR)/vect_113.src \
167 $(SRC_PROC_ASM_DIR)/vect_114.src \
168 $(SRC_PROC_ASM_DIR)/vect_115.src \
169 $(SRC_PROC_ASM_DIR)/vect_116.src \
170 $(SRC_PROC_ASM_DIR)/vect_117.src \
171 $(SRC_PROC_ASM_DIR)/vect_118.src \
172 $(SRC_PROC_ASM_DIR)/vect_119.src \
173 $(SRC_PROC_ASM_DIR)/vect_120.src \
174 $(SRC_PROC_ASM_DIR)/vect_121.src \
175 $(SRC_PROC_ASM_DIR)/vect_122.src \
176 $(SRC_PROC_ASM_DIR)/vect_123.src \
177 $(SRC_PROC_ASM_DIR)/vect_124.src \
178 $(SRC_PROC_ASM_DIR)/vect_125.src \
179 $(SRC_PROC_ASM_DIR)/vect_126.src \
180 $(SRC_PROC_ASM_DIR)/vect_127.src \
181 $(SRC_PROC_ASM_DIR)/vect_128.src \
182 $(SRC_PROC_ASM_DIR)/vect_129.src \
183 $(SRC_PROC_ASM_DIR)/vect_130.src \
184 $(SRC_PROC_ASM_DIR)/vect_131.src \
185 $(SRC_PROC_ASM_DIR)/vect_132.src \
186 $(SRC_PROC_ASM_DIR)/vect_133.src \
187 $(SRC_PROC_ASM_DIR)/vect_134.src \
188 $(SRC_PROC_ASM_DIR)/vect_135.src \
189 $(SRC_PROC_ASM_DIR)/vect_136.src \
190 $(SRC_PROC_ASM_DIR)/vect_137.src \
191 $(SRC_PROC_ASM_DIR)/vect_138.src \
192 $(SRC_PROC_ASM_DIR)/vect_139.src \
193 $(SRC_PROC_ASM_DIR)/vect_140.src \
194 $(SRC_PROC_ASM_DIR)/vect_141.src \
195 $(SRC_PROC_ASM_DIR)/vect_142.src \
196 $(SRC_PROC_ASM_DIR)/vect_143.src \
197 $(SRC_PROC_ASM_DIR)/vect_144.src \
198 $(SRC_PROC_ASM_DIR)/vect_145.src \
199 $(SRC_PROC_ASM_DIR)/vect_146.src \
200 $(SRC_PROC_ASM_DIR)/vect_147.src \
201 $(SRC_PROC_ASM_DIR)/vect_148.src \
202 $(SRC_PROC_ASM_DIR)/vect_149.src \
203 $(SRC_PROC_ASM_DIR)/vect_150.src \
204 $(SRC_PROC_ASM_DIR)/vect_151.src \
205 $(SRC_PROC_ASM_DIR)/vect_152.src \
206 $(SRC_PROC_ASM_DIR)/vect_153.src \
207 $(SRC_PROC_ASM_DIR)/vect_154.src \
208 $(SRC_PROC_ASM_DIR)/vect_155.src \
209 $(SRC_PROC_ASM_DIR)/vect_156.src \
210 $(SRC_PROC_ASM_DIR)/vect_157.src \
211 $(SRC_PROC_ASM_DIR)/vect_158.src \
212 $(SRC_PROC_ASM_DIR)/vect_159.src \
213 $(SRC_PROC_ASM_DIR)/vect_160.src \
214 $(SRC_PROC_ASM_DIR)/vect_161.src \
215 $(SRC_PROC_ASM_DIR)/vect_162.src \
216 $(SRC_PROC_ASM_DIR)/vect_163.src \
217 $(SRC_PROC_ASM_DIR)/vect_164.src \
218 $(SRC_PROC_ASM_DIR)/vect_165.src \
219 $(SRC_PROC_ASM_DIR)/vect_166.src \
220 $(SRC_PROC_ASM_DIR)/vect_167.src \
221 $(SRC_PROC_ASM_DIR)/vect_168.src \
222 $(SRC_PROC_ASM_DIR)/vect_169.src \
223 $(SRC_PROC_ASM_DIR)/vect_170.src \
224 $(SRC_PROC_ASM_DIR)/vect_171.src \
225 $(SRC_PROC_ASM_DIR)/vect_172.src \
226 $(SRC_PROC_ASM_DIR)/vect_173.src \
227 $(SRC_PROC_ASM_DIR)/vect_174.src \
228 $(SRC_PROC_ASM_DIR)/vect_175.src \
229 $(SRC_PROC_ASM_DIR)/vect_176.src \
230 $(SRC_PROC_ASM_DIR)/vect_177.src \
231 $(SRC_PROC_ASM_DIR)/vect_178.src \
232 $(SRC_PROC_ASM_DIR)/vect_179.src \
233 $(SRC_PROC_ASM_DIR)/vect_180.src \
234 $(SRC_PROC_ASM_DIR)/vect_181.src \
235 $(SRC_PROC_ASM_DIR)/vect_182.src \
236 $(SRC_PROC_ASM_DIR)/vect_183.src \
237 $(SRC_PROC_ASM_DIR)/vect_184.src \
238 $(SRC_PROC_ASM_DIR)/vect_185.src \
239 $(SRC_PROC_ASM_DIR)/vect_186.src \
240 $(SRC_PROC_ASM_DIR)/vect_187.src \
241 $(SRC_PROC_ASM_DIR)/vect_188.src \
242 $(SRC_PROC_ASM_DIR)/vect_189.src \
243 $(SRC_PROC_ASM_DIR)/vect_190.src \
244 $(SRC_PROC_ASM_DIR)/vect_191.src \
245 $(SRC_PROC_ASM_DIR)/vect_192.src \
246 $(SRC_PROC_ASM_DIR)/vect_193.src \
247 $(SRC_PROC_ASM_DIR)/vect_194.src \
248 $(SRC_PROC_ASM_DIR)/vect_195.src \
249 $(SRC_PROC_ASM_DIR)/vect_196.src \
250 $(SRC_PROC_ASM_DIR)/vect_197.src \
251 $(SRC_PROC_ASM_DIR)/vect_198.src \
252 $(SRC_PROC_ASM_DIR)/vect_199.src \
253 $(SRC_PROC_ASM_DIR)/vect_200.src \
254 $(SRC_PROC_ASM_DIR)/vect_201.src \
255 $(SRC_PROC_ASM_DIR)/vect_202.src \
256 $(SRC_PROC_ASM_DIR)/vect_203.src \
257 $(SRC_PROC_ASM_DIR)/vect_204.src \
258 $(SRC_PROC_ASM_DIR)/vect_205.src \
259 $(SRC_PROC_ASM_DIR)/vect_206.src \
260 $(SRC_PROC_ASM_DIR)/vect_207.src \
261 $(SRC_PROC_ASM_DIR)/vect_208.src \
262 $(SRC_PROC_ASM_DIR)/vect_209.src \
263 $(SRC_PROC_ASM_DIR)/vect_210.src \
264 $(SRC_PROC_ASM_DIR)/vect_211.src \
265 $(SRC_PROC_ASM_DIR)/vect_212.src \
266 $(SRC_PROC_ASM_DIR)/vect_213.src \
267 $(SRC_PROC_ASM_DIR)/vect_214.src \
268 $(SRC_PROC_ASM_DIR)/vect_215.src \
269 $(SRC_PROC_ASM_DIR)/vect_216.src \
270 $(SRC_PROC_ASM_DIR)/vect_217.src \
271 $(SRC_PROC_ASM_DIR)/vect_218.src \
272 $(SRC_PROC_ASM_DIR)/vect_219.src \
273 $(SRC_PROC_ASM_DIR)/vect_220.src \
274 $(SRC_PROC_ASM_DIR)/vect_221.src \
275 $(SRC_PROC_ASM_DIR)/vect_222.src \
276 $(SRC_PROC_ASM_DIR)/vect_223.src \
277 $(SRC_PROC_ASM_DIR)/vect_224.src \
278 $(SRC_PROC_ASM_DIR)/vect_225.src \
279 $(SRC_PROC_ASM_DIR)/vect_226.src \
280 $(SRC_PROC_ASM_DIR)/vect_227.src \
281 $(SRC_PROC_ASM_DIR)/vect_228.src \
282 $(SRC_PROC_ASM_DIR)/vect_229.src \
283 $(SRC_PROC_ASM_DIR)/vect_230.src \
284 $(SRC_PROC_ASM_DIR)/vect_231.src \
285 $(SRC_PROC_ASM_DIR)/vect_232.src \
286 $(SRC_PROC_ASM_DIR)/vect_233.src \
287 $(SRC_PROC_ASM_DIR)/vect_234.src \
288 $(SRC_PROC_ASM_DIR)/vect_235.src \
289 $(SRC_PROC_ASM_DIR)/vect_236.src \
290 $(SRC_PROC_ASM_DIR)/vect_237.src \
291 $(SRC_PROC_ASM_DIR)/vect_238.src \
292 $(SRC_PROC_ASM_DIR)/vect_239.src \
293 $(SRC_PROC_ASM_DIR)/vect_240.src \
294 $(SRC_PROC_ASM_DIR)/vect_241.src \
295 $(SRC_PROC_ASM_DIR)/vect_242.src \
296 $(SRC_PROC_ASM_DIR)/vect_243.src \
297 $(SRC_PROC_ASM_DIR)/vect_244.src \
298 $(SRC_PROC_ASM_DIR)/vect_245.src \
299 $(SRC_PROC_ASM_DIR)/vect_246.src \
300 $(SRC_PROC_ASM_DIR)/vect_247.src \
301 $(SRC_PROC_ASM_DIR)/vect_248.src \
302 $(SRC_PROC_ASM_DIR)/vect_249.src \
303 $(SRC_PROC_ASM_DIR)/vect_250.src \
304 $(SRC_PROC_ASM_DIR)/vect_251.src \
305 $(SRC_PROC_ASM_DIR)/vect_252.src \
306 $(SRC_PROC_ASM_DIR)/vect_253.src \
307 $(SRC_PROC_ASM_DIR)/vect_254.src \
308 $(SRC_PROC_ASM_DIR)/vect_255.src
313 # CSRCS += $(SRC_IRC_DIR)/intc.c
317 VPATH := $(VPATH):$(SRC_PROC_DIR):$(SRC_PROC_DIR):$(SRC_PROC_ASM_DIR):$(SRC_IRC_DIR):$(SRC_IRC_ASM_DIR)
334 CFLAGS += -CPu=sh2 -I=$(INC_KNL_DIR),$(INC_PROC_DIR),$(INC_IRC_DIR)
335 LFLAGS += -FOrm=Library
336 LINTFLAGS += -weak -I$(INC_KNL_DIR) -I$(INC_PROC_DIR) -I$(INC_IRC_DIR)
339 TARGET := $(TARGET)dbg
349 OBJS = $(addprefix $(OBJS_DIR)/, $(addsuffix .obj, $(basename $(notdir $(CSRCS))))) \
350 $(addprefix $(OBJS_DIR)/, $(addsuffix .obj, $(basename $(notdir $(ASRCS)))))
353 all: mkdir_objs $(TARGET_LIB) mk_cfgrtr
356 $(TARGET_LIB): $(OBJS)
357 $(ECHO) -Input=$(OBJS) | sed "s/ /,/g" > $(OBJ_DIR)/subcmd.txt
358 $(ECHO) -OUtput=$(TARGET_LIB) >> $(OBJ_DIR)/subcmd.txt
359 $(ECHO) -FOrm=Library >> $(OBJ_DIR)/subcmd.txt
360 $(RM) -f $(TARGET_LIB)
361 $(LIBR) -SU=$(OBJ_DIR)/subcmd.txt
364 $(MKDIR) -p $(OBJS_DIR)
368 make -C $(CFGRTR_DIR) -f gmake.mak TARGET=$(CFGRTR) ARCH_PROC=$(ARCH_PROC) ARCH_IRC=$(ARCH_IRC)
371 $(RM) -f $(TARGET) $(OBJS) $(CFGRTR) $(OBJS_DIR)/*.lst
372 make -C $(CFGRTR_DIR) -f gmake.mak TARGET=$(CFGRTR) ARCH_PROC=$(ARCH_PROC) ARCH_IRC=$(ARCH_IRC) clean
375 # $(LINT) $(LINTFLAGS) $(CSRCS)
378 # $(DEPEND) $(CFLAGS) $(CSRCS) | sed 's?: ?:\t?' | sed 's?\\?\/?g' | sed 's?^?$(OBJS_DIR)\/?' | sed 's?:[\t ]+?\t?' | sed 's? ?\\ ?' > $(OBJS_DIR)/depend.inc
381 -include $(OBJS_DIR)/depend.inc
385 $(OBJS_DIR)/%.obj :: %.c
386 $(CC) $(CFLAGS) $< -OB=$@ -List=$(@:%.obj=%.lst)
388 $(OBJS_DIR)/%.obj :: %.src
389 $(ASM) $(AFLAGS) $< -OB=$@