source: anotherchoice/tags/jsp-1.4.4-full-UTF8/sample/Makefile.m16c-oaks16_mini@ 26

Last change on this file since 26 was 26, checked in by ykominami, 12 years ago

initial

File size: 13.7 KB
Line 
1#
2# TOPPERS/JSP Kernel
3# Toyohashi Open Platform for Embedded Real-Time Systems/
4# Just Standard Profile Kernel
5#
6# Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7# Toyohashi Univ. of Technology, JAPAN
8# Copyright (C) 2003-2004 by Naoki Saito
9# Nagoya Municipal Industrial Research Institute, JAPAN
10#
11# 上記著作権者
12は,以下の (1)〜(4) の条件か,Free Software Foundation
13# によってå…
14¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
15# 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
16# を改変したものを含む.以下同じ)を使用・複製・改変・再é…
17å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
18# 利用と呼ぶ)することを無償で許諾する.
19# (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
20# 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
21# スコード中に含まれていること.
22# (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
23# 用できる形で再é…
24å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
25å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
26# 者
27マニュアルなど)に,上記の著作権表示,この利用条件および下記
28# の無保証規定を掲載すること.
29# (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
30# 用できない形で再é…
31å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
32# と.
33# (a) 再é…
34å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
35マニュアルなど)に,上記の著
36# 作権表示,この利用条件および下記の無保証規定を掲載すること.
37# (b) 再é…
38å¸ƒã®å½¢æ…
39‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
40# 報告すること.
41# (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
42# 害からも,上記著作権者
43およびTOPPERSプロジェクトをå…
44è²¬ã™ã‚‹ã“と.
45#
46# 本ソフトウェアは,無保証で提供されているものである.上記著作権者
47お
48# よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
49# 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
50# 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
51#
52# @(#) $Id: Makefile.m16c-oaks16_mini,v 1.2 2005/12/06 03:06:03 honda Exp $
53#
54
55#
56# ターゲットの指定(Makefile.config で上書きされるのを防ぐため)
57#
58all:
59
60#
61# ターゲット名の定義
62#
63CPU = @(CPU)
64SYS = @(SYS)
65TOOL = @(TOOL)
66
67#
68# ソースファイルのディレクトリの定義
69#
70SRCDIR = @(SRCDIR)
71CONFIGDIR ?= $(SRCDIR)/config
72
73#
74# オブジェクトファイル名の拡張子の設定
75#
76OBJEXT = x30
77
78#
79# 実行環境の定義
80# (ターゲット依存に上書きされる場合がある)
81#
82MON = 0
83
84#
85# カーネルライブラリ(libkernel.lib)のディレクトリ名
86# (カーネルライブラリも make 対象にする時は,空に定義する)
87#
88KERNEL_LIB = @(KERNEL_LIB)
89
90#
91# ターゲット依存の定義のインクルード
92#
93ifdef TOOL
94 ifdef SYS
95 include $(SRCDIR)\config\$(CPU)-$(TOOL)\$(SYS)\Makefile.config
96 endif
97 include $(SRCDIR)\config\$(CPU)-$(TOOL)\Makefile.config
98else
99 ifdef SYS
100 include $(SRCDIR)\config\$(CPU)\$(SYS)\Makefile.config
101 endif
102 include $(SRCDIR)\config\$(CPU)\Makefile.config
103endif
104
105#
106# å…
107±é€šã‚³ãƒ³ãƒ‘イルオプションの定義
108#
109COPTS := $(COPTS)
110CDEFS := $(CDEFS)
111INCLUDES := -I. -I$(SRCDIR)\include -I$(SRCDIR)\sample $(INCLUDES)
112LDFLAGS := $(LDFLAGS)
113LIBS := $(LIBS)
114CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
115
116#
117# アプリケーションプログラムに関する定義
118#
119UNAME = @(UNAME)
120UTASK_CFG = $(UNAME).cfg
121
122UTASK_DIR = $(SRCDIR)\library
123UTASK_ASMOBJS =
124UTASK_COBJS = $(UNAME).r30 @(UTASK)
125UTASK_CFLAGS =
126UTASK_LIBS =
127
128#
129# システムサービスに関する定義
130#
131STASK_DIR := $(STASK_DIR):$(SRCDIR)\systask:$(SRCDIR)\library
132STASK_ASMOBJS := $(STASK_ASMOBJS)
133STASK_COBJS := $(STASK_COBJS) timer.r30 vasyslog.r30 t_perror.r30 strerror.r30
134STASK_CFLAGS := $(STASK_CFLAGS) -I$(SRCDIR)\systask
135STASK_LIBS := $(STASK_LIBS)
136
137#
138# カーネルに関する定義
139#
140# KERNEL_ASMOBJS: カーネルライブラリに含める,ソースがアセンブリ言語の
141# オブジェクトファイル.
142# KERNEL_COBJS: カーネルのライブラリに含める,ソースがC言語で,ソース
143# ファイルと1対1に対応するオブジェクトファイル.
144# KERNEL_LCSRCS: カーネルのライブラリに含めるC言語のソースファイルで,
145# 1つのソースファイルから複数のオブジェクトファイルを生
146# 成するもの(Makefile.kernel で定義).
147# KERNEL_LCOBJS: 上のソースファイルから生成されるオブジェクトファイル
148# (Makefile.kernel で定義).
149# KERNEL_AUX_COBJS: ロードモジュールに含めないが,カーネルのソースファ
150# イルと同じオプションを適用してコンパイルすべきファ
151# イル.
152#
153KERNEL = $(SRCDIR)\kernel
154KERNEL_DIR := $(KERNEL_DIR):$(KERNEL)
155KERNEL_ASMOBJS := $(KERNEL_ASMOBJS)
156KERNEL_COBJS := startup.r30 banner.r30 $(KERNEL_COBJS)
157KERNEL_CFLAGS := $(KERNEL_CFLAGS) -I$(KERNEL)
158ifdef OMIT_MAKEOFFSET
159 OFFSET_H =
160 KERNEL_AUX_COBJS = kernel_chk.r30
161else
162 OFFSET_H = offset.inc
163 KERNEL_AUX_COBJS = makeoffset.r30 kernel_chk.r30
164endif
165
166#
167# オブジェクトファイル名の定義
168#
169OBJNAME = jsp
170ifdef OBJEXT
171 OBJFILE = $(OBJNAME).$(OBJEXT)
172else
173 OBJFILE = $(OBJNAME)
174endif
175
176#
177# ターゲットファイル(複数を同時に選択してはならない)
178#
179#all: $(OBJFILE)
180all: $(OBJNAME).mot
181
182#
183# カーネルのコンフィギュレーションファイルの生成
184#
185kernel_cfg.c kernel_id.h kernel_chk.c: $(UTASK_CFG)
186 $(CPP) $(INCLUDES) $(CDEFS) $(UTASK_CFG) > tmpfile1
187 $(SRCDIR)\cfg\cfg -s tmpfile1 -c -obj -cpu $(CPU) -system $(SYS)
188 @-del tmpfile1
189
190##### 以下は編集しないこと #####
191
192#
193# 環境に依存するコンパイルオプションの定義
194#
195ifdef DBGENV
196 CDEFS := $(CDEFS) -D$(DBGENV)
197endif
198
199#
200# カーネルライブラリに関連する定義
201#
202ifdef KERNEL_LIB
203 MAKE_KERNEL =
204 LIBKERNEL = $(KERNEL_LIB)\libkernel.lib
205else
206 MAKE_KERNEL = libkernel.lib
207 LIBKERNEL = $(MAKE_KERNEL)
208endif
209
210#
211# カーネルのファイル構成の定義
212#
213ifdef TOOL
214 include $(SRCDIR)\config\$(CPU)-$(TOOL)\$(SYS)\Makefile.kernel
215else
216 include $(SRCDIR)\config\$(CPU)\$(SYS)\Makefile.kernel
217endif
218
219#
220# $(OBJNAME).chk の生成規則(静的APIのパラメータチェック)
221#
222$(OBJNAME).chk: kernel_chk.a30 $(SRCDIR)\utils\gencheck.m16c
223 $(PERL) $(SRCDIR)\utils\m16c-renesas\gencheck.m16c kernel_chk.a30 > $(OBJNAME).chk
224
225#
226# offset.inc の生成規則(構造体内
227のオフセット値の算出)
228#
229offset.inc: makeoffset.a30
230 $(SRCDIR)\utils\m16c-renesas\m16coffset.exe
231
232#
233# ソースファイルのあるディレクトリに関する定義
234#
235vpath %.c $(KERNEL_DIR):$(STASK_DIR):$(UTASK_DIR)
236vpath %.a30 $(KERNEL_DIR):$(STASK_DIR):$(UTASK_DIR)
237
238#
239# コンパイルのための変数の定義
240#
241KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
242STASK_OBJS = $(STASK_ASMOBJS) $(STASK_COBJS)
243UTASK_OBJS = $(UTASK_ASMOBJS) $(UTASK_COBJS) $(UTASK_CXXOBJS)
244TASK_OBJS = $(UTASK_OBJS) $(STASK_OBJS) kernel_cfg.r30
245ALL_OBJS = $(START_OBJS) $(TASK_OBJS) $(END_OBJS)
246ALL_LIBS = $(LIBKERNEL)
247ifdef LIBS
248 ALL_LIBS := $(ALL_LIBS),$(LIBS)
249endif
250ifdef STASK_LIBS
251 ALL_LIBS := $(STASK_LIBS),$(ALL_LIBS)
252endif
253ifdef UTASK_LIBS
254 ALL_LIBS := $(UTASK_LIBS),$(ALL_LIBS)
255endif
256
257#
258# カーネルライブラリファイルの生成
259#
260libkernel.lib: $(OFFSET_H) $(KERNEL_LIB_OBJS)
261 @-del libkernel.lib
262 $(AR) -. -c $@ $(KERNEL_LIB_OBJS)
263
264#
265# å…
266¨ä½“のリンク
267#
268$(OBJFILE): Makefile.depend $(ALL_OBJS) $(MAKE_KERNEL) # $(OBJNAME).chk
269 @echo $(LDFLAGS) > $(OBJNAME).cmd
270 @echo -O $(OBJFILE) >> $(OBJNAME).cmd
271 @echo -NOSTOP >> $(OBJNAME).cmd
272 @echo -ORDER data_NE=$(RAM_START_ADR) >> $(OBJNAME).cmd
273 @echo -ORDER data_NO >> $(OBJNAME).cmd
274 @echo -ORDER bss_NE >> $(OBJNAME).cmd
275 @echo -ORDER bss_NO >> $(OBJNAME).cmd
276 @echo -ORDER program=$(ROM_START_ADR) >> $(OBJNAME).cmd
277 @echo -ORDER rom_FE >> $(OBJNAME).cmd
278 @echo -ORDER rom_FO >> $(OBJNAME).cmd
279 @echo -ORDER data_NEI >> $(OBJNAME).cmd
280 @echo -ORDER data_NOI >> $(OBJNAME).cmd
281 @echo -ORDER vector >> $(OBJNAME).cmd
282 @echo -ORDER fvector >> $(OBJNAME).cmd
283 @echo $(ALL_OBJS) >> $(OBJNAME).cmd
284 @echo -L $(ALL_LIBS) >> $(OBJNAME).cmd
285 $(LD) @$(OBJNAME).cmd
286
287#
288# Sレコードファイルの生成
289#
290$(OBJNAME).mot: $(OBJFILE)
291 $(OBJCOPY) -. -ID#00000000000000 $<
292
293#
294# コンパイル結果の消去
295#
296clean:
297 @-del \#* *~ *.r30 tmpfile?
298 @-del $(MAKE_KERNEL) $(OBJNAME)
299 @-del $(OBJNAME).syms $(OBJNAME).mot $(OBJNAME).chk
300 @-del $(OBJNAME).exe $(OBJNAME).bin $(OBJNAME).out
301 @-del $(OBJNAME).map $(OBJFILE) $(OBJNAME).id $(OBJNAME).cmd
302 @-del kernel_cfg.c kernel_chk.c kernel_chk.a30 kernel_id.h kernel_obj.dat
303 @-del makeoffset.a30 offset.inc m16cvec.inc
304 @-del $(KERNEL_LCOBJS:.r30=.a30)
305cleankernel:
306 @-del $(KERNEL_LIB_OBJS)
307 @-del makeoffset.a30 offset.inc m16cvec.inc
308
309cleandep:
310 @-del Makefile.depend
311
312realclean: cleandep clean
313
314#
315# kernel_cfg.c のコンパイルルールと依存関係作成ルールの定義
316#
317# kernel_cfg.c は,アプリケーションプログラム用,システムサービス用,
318# カーネル用のすべてのオプションを付けてコンパイルする.
319#
320KERNEL_CFG_CFLAGS = $(UTASK_CFLAGS) $(STASK_CFLAGS) $(KERNEL_CFLAGS)
321
322kernel_cfg.r30: kernel_cfg.c
323 $(CC) -c $(CFLAGS) $(KERNEL_CFG_CFLAGS) $(<D)\$(<F)
324
325kernel_cfg.a30: kernel_cfg.c
326 $(CC) -S $(CFLAGS) $(KERNEL_CFG_CFLAGS) $(<D)\$(<F)
327
328kernel_cfg.d: kernel_cfg.c
329 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) \
330 -O "$(INCLUDES) -I$(SRCDIR)\kernel -I$(SRCDIR)\systask" \
331 $(<D)\$(<F) >> Makefile.depend
332
333#
334# 特別な依存関係の定義
335#
336banner.r30: $(filter-out banner.r30,$(KERNEL_LIB_OBJS))
337
338#
339# 特殊な依存関係作成ルールの定義
340#
341kernel_id.d: $(UTASK_CFG)
342 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) \
343 -T "kernel_cfg.c kernel_id.h kernel_chk.c" \
344 -O "$(INCLUDES)" $(<D)\$(<F) >> Makefile.depend
345
346makeoffset.d: makeoffset.c
347 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -s -C $(CPP) \
348 -O "$(INCLUDES) -I$(KERNEL)" $(<D)\$(<F) >> Makefile.depend
349
350kernel_chk.d: kernel_chk.c
351 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -s -C $(CPP) \
352 -O "$(INCLUDES) -I$(KERNEL)" $(<D)\$(<F) >> Makefile.depend
353
354#
355# 依存関係ファイルの生成
356#
357gendepend:
358 @echo "Generating Makefile.depend."
359
360ifdef KERNEL_LIB
361depend: cleandep kernel_cfg.c gendepend kernel_id.d \
362 kernel_chk.d $(ALL_OBJS:.r30=.d)
363else
364depend: cleandep $(OFFSET_H) kernel_cfg.c gendepend kernel_id.d \
365 $(KERNEL_AUX_COBJS:.r30=.d) $(KERNEL_ASMOBJS:.r30=.d) \
366 $(KERNEL_COBJS:.r30=.d) $(KERNEL_LCSRCS:.c=.d) $(ALL_OBJS:.r30=.d)
367endif
368
369#
370# 依存関係ファイルをインクルード
371#
372-include Makefile.depend
373
374PERL = @(PERL)
375
376#
377# コンパイルルールの定義
378#
379KERNEL_ALL_COBJS = $(KERNEL_COBJS) $(KERNEL_AUX_COBJS)
380
381$(KERNEL_ALL_COBJS): %.r30: %.c
382 $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $(<D)\$(<F)
383
384$(KERNEL_ALL_COBJS:.r30=.a30): %.a30: %.c
385 $(CC) -S $(CFLAGS) $(KERNEL_CFLAGS) $(<D)\$(<F)
386
387$(KERNEL_LCOBJS): %.r30: %.a30
388 $(CC) -D__$(*F) -o $@ -c $(CFLAGS) $(KERNEL_CFLAGS) $(<D)\$(<F)
389
390$(KERNEL_LCOBJS:.r30=.a30): %.a30:
391 $(CC) -D__$(*F) -o $@ -S $(CFLAGS) $(KERNEL_CFLAGS) $(<D)\$(<F)
392 ren $(<F:.c=.a30) $@
393
394$(KERNEL_ASMOBJS): %.r30: %.a30
395 $(AS) $(ASMFLAGS) $(KERNEL_ASMFLAGS) $(<D)\$(<F)
396
397$(STASK_COBJS): %.r30: %.c
398 $(CC) -c $(CFLAGS) $(STASK_CFLAGS) $(<D)\$(<F)
399
400$(STASK_COBJS:.r30=.a30): %.a30: %.c
401 $(CC) -S $(CFLAGS) $(STASK_CFLAGS) $(<D)\$(<F)
402
403$(STASK_ASMOBJS): %.r30: %.a30
404 $(AS) $(ASMFLAGS) $(STASK_ASMFLAGS) $(<D)\$(<F)
405
406$(UTASK_COBJS): %.r30: %.c
407 $(CC) -c $(CFLAGS) $(UTASK_CFLAGS) $(<D)\$(<F)
408
409$(UTASK_COBJS:.r30=.a30): %.a30: %.c
410 $(CC) -S $(CFLAGS) $(UTASK_CFLAGS) $(<D)\$(<F)
411
412$(UTASK_ASMOBJS): %.r30: %.a30
413 $(AS) $(ASMFLAGS) $(UTASK_ASMFLAGS) $(<D)\$(<F)
414
415#
416# 依存関係作成ルールの定義
417#
418# アセンブリ言語ファイルが依存するファイルは
419# それぞれのコンパイルルールで明示することにし、ここでは何もしない.
420#
421$(KERNEL_COBJS:.r30=.d): %.d: %.c
422 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) \
423 -O "$(INCLUDES) -I$(KERNEL)" $(<D)\$(<F) >> Makefile.depend
424
425$(KERNEL_LCSRCS:.c=.d): %.d: %.c
426 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) -T "$($*)" \
427 -O "$(foreach sym,$($*),-D__$(sym:.r30=)) \
428 $(INCLUDES) -I$(KERNEL)" $(<D)\$(<F) >> Makefile.depend
429
430$(KERNEL_LCOBJS:.r30=.d): %.d:
431 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) -T $*.r30 \
432 -O "-D__$(*F) $(INCLUDES) -I$(KERNEL)" $(<D)\$(<F) >> Makefile.depend
433
434$(KERNEL_ASMOBJS:.r30=.d): %.d: %.a30
435
436
437$(STASK_COBJS:.r30=.d): %.d: %.c
438 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) \
439 -O "$(INCLUDES) -I$(SRCDIR)\systask" $(<D)\$(<F) >> Makefile.depend
440
441$(STASK_ASMOBJS:.r30=.d): %.d: %.a30
442
443
444$(UTASK_COBJS:.r30=.d): %.d: %.c
445 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) \
446 -O "$(INCLUDES)" $(<D)\$(<F) >> Makefile.depend
447
448$(UTASK_ASMOBJS:.r30=.d): %.d: %.a30
449
450
451#
452# デフォルトコンパイルルールを上書き
453#
454%.r30: %.c
455 @echo "*** Default compile rules should not be used."
456 $(CC) -c $(CFLAGS) $(<D)\$(<F)
457
458%.a30: %.c
459 @echo "*** Default compile rules should not be used."
460 $(CC) -S $(CFLAGS) $(<D)\$(<F)
461
462%.r30: %.a30
463 @echo "*** Default compile rules should not be used."
464 $(AS) $(ASMFLAGS) $(<D)\$(<F)
Note: See TracBrowser for help on using the repository browser.