source: anotherchoice/tags/jsp-1.4.4-full-UTF8/sample/Makefile.m32c-oaks32@ 26

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

initial

File size: 15.2 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, 2010 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.m32c-oaks32,v 1.2 2005/12/06 03:06:03 honda Exp $
53#
54
55#
56# ターゲットの指定(Makefile.config で上書きされるのを防ぐため)
57#
58all:
59
60#
61# ターゲット名の定義
62#
63CPU = m32c
64SYS = oaks32
65TOOL = renesas
66
67#
68# ターゲットシステム依存の定義
69#
70
71#
72# アドレス設定(末尾の"h"は付けなくて良い)
73#
74# ISPの初期値
75RAMEND = 07800
76# RAMのå…
77ˆé ­ç•ªåœ°(SFRは含まない)
78RAM_START_ADR = 00400
79# ROMのå…
80ˆé ­ç•ªåœ°
81ROM_START_ADR = 0f80000
82
83#
84# ツールのインストールå…
85ˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª
86#
87TOOLDIR = C:\Hew\Tools\Renesas\nc308wa\v542r00
88
89# タスクモニタを使用するか(しない場合は0に、使用する場合は1に)
90MON = 0
91
92# KD3083を使用するか(しない場合は0に、使用する場合は1にする)
93USE_KD3083 = 1
94
95# LB308を使うかどうか(使用しない場合はコメントアウトする)
96#USE_LB308 = 1
97
98#
99# ソースファイルのディレクトリの定義
100#
101SRCDIR = @(SRCDIR)
102CONFIGDIR ?= $(SRCDIR)\config
103
104#
105# カーネルライブラリ(libkernel.lib)のディレクトリ名
106# (カーネルライブラリも make 対象にする時は,空に定義する)
107# configure でMakefile生成時に -L オプション指定でも設定できる
108#
109KERNEL_LIB = @(KERNEL_LIB)
110
111#
112# å…
113±é€šã‚³ãƒ³ãƒ‘イルオプションの定義
114#
115COPTS = -dir . -silent -g # -O2 ## -O2はエントリー版では未サポート
116ifndef USE_LB308
117 CDEFS = -DNEED_API
118endif
119INCLUDES = -I. -I$(SRCDIR)\include -I$(CONFIGDIR)\$(CPU)-$(TOOL) \
120 -I$(CONFIGDIR)\$(CPU)-$(TOOL)\$(SYS)
121CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
122LDFLAGS = -. -MSL -M82 -G
123LIBS = nc382lib
124ASMFLAGS = -O. -. -I. -M82
125
126#
127# アプリケーションプログラムに関する定義
128#
129UNAME = @(UNAME)
130UTASK_CFG = $(UNAME).cfg
131
132UTASK_DIR = $(SRCDIR)\library
133UTASK_ASMOBJS =
134UTASK_COBJS = $(UNAME).r30 @(UTASK)
135UTASK_CFLAGS =
136UTASK_LIBS =
137
138#
139# システムサービスに関する定義
140#
141STASK_DIR = $(SRCDIR)\systask:$(SRCDIR)\library
142STASK_ASMOBJS =
143STASK_COBJS = timer.r30 serial.r30 logtask.r30 \
144 log_output.r30 vasyslog.r30 t_perror.r30 strerror.r30 sfruart.r30
145STASK_CFLAGS = -I$(SRCDIR)\systask
146STASK_LIBS =
147
148#
149# カーネルに関する定義
150#
151# KERNEL_ASMOBJS: カーネルライブラリに含める,ソースがアセンブリ言語の
152# オブジェクトファイル.
153# KERNEL_COBJS: カーネルのライブラリに含める,ソースがC言語で,ソース
154# ファイルと1対1に対応するオブジェクトファイル.
155# KERNEL_LCSRCS: カーネルのライブラリに含めるC言語のソースファイルで,
156# 1つのソースファイルから複数のオブジェクトファイルを生
157# 成するもの(Makefile.kernel で定義).
158# KERNEL_LCOBJS: 上のソースファイルから生成されるオブジェクトファイル
159# (Makefile.kernel で定義).
160# KERNEL_AUX_COBJS: ロードモジュールに含めないが,カーネルのソースファ
161# イルと同じオプションを適用してコンパイルすべきファ
162# イル.
163#
164KERNEL = $(SRCDIR)\kernel
165KERNEL_DIR = $(KERNEL):$(CONFIGDIR)\$(CPU)-$(TOOL):$(CONFIGDIR)\$(CPU)-$(TOOL)\$(SYS)
166
167KERNEL_ASMOBJS = cpu_support.r30
168KERNEL_COBJS = startup.r30 banner.r30 cpu_config.r30 sys_config.r30
169KERNEL_AUX_COBJS = kernel_chk.r30
170
171KERNEL_ASMFLAGS = -DRAMEND=$(RAMEND)h:MON=$(MON):USE_KD3083=$(USE_KD3083)
172KERNEL_CFLAGS = -I$(KERNEL)
173
174#
175# オブジェクトファイル名の定義
176#
177OBJNAME = jsp
178OBJFILE = $(OBJNAME).x30
179
180#
181# ターゲットファイル(複数を同時に選択してはならない)
182#
183#all: $(OBJFILE)
184all: $(OBJNAME).mot
185
186#
187# カーネルのコンフィギュレーションファイルの生成
188#
189kernel_cfg.c kernel_id.h kernel_chk.c: $(UTASK_CFG)
190 $(CPP) $(INCLUDES) $(CDEFS) $(UTASK_CFG) > tmpfile1
191 $(SRCDIR)\cfg\cfg -s tmpfile1 -c -obj -cpu $(CPU) -system $(SYS)
192 @-del tmpfile1
193
194##### 以下は編集しないこと #####
195
196#
197# スタートアップモジュール関連
198#
199START_OBJS = start.r30
200
201# 依存関係作成ルール(何もしない)
202$(START_OBJS:.r30=.d): %.d: %.a30
203
204# スタートアップモジュールのコンパイルルール
205$(START_OBJS): %.r30: %.a30 m16cvec.inc
206 $(AS) $(ASMFLAGS) -DRAMEND=$(RAMEND)h:MON=$(MON) $(<D)\$(<F)
207
208#
209# ベクタテーブル定義ファイルの生成
210#
211m16cvec.inc: kernel_cfg.c
212 $(CC) -E $(INCLUDES) $(<D)\$(<F) > kernel_cfg.i
213 $(SRCDIR)\utils\m16c-renesas\m16cvec.exe -M0 -F0ffffdch
214
215#
216# カーネルライブラリに関連する定義
217#
218
219# 既存のカーネルライブラリファイルがある場合
220ifdef KERNEL_LIB
221 MAKE_KERNEL =
222 LIBKERNEL = $(KERNEL_LIB)\libkernel.lib
223else
224ifdef USE_LB308 # 既存のカーネルライブラリがなく、ライブラリを作る場合
225 MAKE_KERNEL = libkernel.lib
226 LIBKERNEL = $(MAKE_KERNEL)
227else # 既存のカーネルライブラリがなく、ライブラリを作らない場合
228 MAKE_KERNEL = $(KERNEL_LIB_OBJS)
229 LIBKERNEL =
230endif
231endif
232
233#
234# カーネルのファイル構成の定義
235#
236include $(CONFIGDIR)\$(CPU)-$(TOOL)\$(SYS)\Makefile.kernel
237
238#
239# ソースファイルのあるディレクトリに関する定義
240#
241vpath %.c $(KERNEL_DIR):$(STASK_DIR):$(UTASK_DIR)
242vpath %.a30 $(KERNEL_DIR):$(STASK_DIR):$(UTASK_DIR)
243vpath %.inc $(KERNEL_DIR):$(STASK_DIR):$(UTASK_DIR)
244
245#
246# コンパイルのための変数の定義
247#
248
249#
250# カーネルライブラリに含めるオブジェクトファイル
251#
252KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
253
254# オブジェクトファイルの定義
255STASK_OBJS = $(STASK_ASMOBJS) $(STASK_COBJS)
256UTASK_OBJS = $(UTASK_ASMOBJS) $(UTASK_COBJS)
257TASK_OBJS = $(UTASK_OBJS) $(STASK_OBJS) kernel_cfg.r30
258
259# リンクする(ライブラリでない)オブジェクトファイル
260ALL_OBJS = $(START_OBJS) $(TASK_OBJS) $(END_OBJS)
261# 使用するライブラリ
262ALL_LIBS := $(UTASK_LIBS) $(STASK_LIBS) $(LIBKERNEL) $(LIBS)
263
264#
265# カーネルライブラリファイルの生成
266#
267libkernel.lib: $(KERNEL_LIB_OBJS)
268 @-del libkernel.lib
269 $(AR) -. -c $@ $(KERNEL_LIB_OBJS)
270
271#
272# å…
273¨ä½“のリンク
274#
275$(OBJFILE): Makefile.depend $(ALL_OBJS) $(MAKE_KERNEL) # $(OBJNAME).chk
276 @echo $(LDFLAGS) > $(OBJNAME).cmd
277 @echo -O $(OBJFILE) >> $(OBJNAME).cmd
278 @echo -NOSTOP >> $(OBJNAME).cmd
279 @echo -ORDER data_NE=$(RAM_START_ADR) >> $(OBJNAME).cmd
280 @echo -ORDER data_NO >> $(OBJNAME).cmd
281 @echo -ORDER bss_NE >> $(OBJNAME).cmd
282 @echo -ORDER bss_NO >> $(OBJNAME).cmd
283 @echo -ORDER program=$(ROM_START_ADR) >> $(OBJNAME).cmd
284 @echo -ORDER rom_FE >> $(OBJNAME).cmd
285 @echo -ORDER rom_FO >> $(OBJNAME).cmd
286 @echo -ORDER data_NEI >> $(OBJNAME).cmd
287 @echo -ORDER data_NOI >> $(OBJNAME).cmd
288 @echo -ORDER vvector >> $(OBJNAME).cmd
289 @echo -ORDER fvector >> $(OBJNAME).cmd
290 @echo $(ALL_OBJS) >> $(OBJNAME).cmd
291ifndef USE_LB308
292 @echo $(wordlist 1,5,$(KERNEL_LIB_OBJS)) >> $(OBJNAME).cmd
293 @echo $(wordlist 6,10,$(KERNEL_LIB_OBJS)) >> $(OBJNAME).cmd
294 @echo $(wordlist 11,15,$(KERNEL_LIB_OBJS)) >> $(OBJNAME).cmd
295 @echo $(wordlist 16,20,$(KERNEL_LIB_OBJS)) >> $(OBJNAME).cmd
296 @echo $(wordlist 21,25,$(KERNEL_LIB_OBJS)) >> $(OBJNAME).cmd
297endif
298 @echo -L $(subst $(space),$(comma),$(strip $(ALL_LIBS))) >> $(OBJNAME).cmd
299 $(LD) @$(OBJNAME).cmd
300
301#
302# Sレコードファイルの生成
303#
304$(OBJNAME).mot: $(OBJFILE)
305 $(OBJCOPY) -. -ID#00000000000000 $<
306
307#
308# コンパイル結果の消去
309#
310clean:
311 @-del \#* *~ *.r30 tmpfile?
312 @-del $(MAKE_KERNEL) $(OBJNAME)
313 @-del $(OBJNAME).syms $(OBJNAME).mot $(OBJNAME).chk
314 @-del $(OBJNAME).exe $(OBJNAME).bin $(OBJNAME).out
315 @-del $(OBJNAME).map $(OBJFILE) $(OBJNAME).id $(OBJNAME).cmd
316 @-del kernel_cfg.c kernel_chk.c kernel_chk.a30 kernel_id.h kernel_obj.dat
317 @-del m16cvec.inc
318cleankernel:
319 @-del $(KERNEL_LIB_OBJS)
320 @-del $(KERNEL_LCOBJS:.r30=.a30)
321 @-del m16cvec.inc
322
323cleandep:
324 @-del Makefile.depend
325
326realclean: cleandep clean
327
328#
329# kernel_cfg.c のコンパイルルールと依存関係作成ルールの定義
330#
331# kernel_cfg.c は,アプリケーションプログラム用,システムサービス用,
332# カーネル用のすべてのオプションを付けてコンパイルする.
333#
334KERNEL_CFG_CFLAGS = $(UTASK_CFLAGS) $(STASK_CFLAGS) $(KERNEL_CFLAGS)
335
336kernel_cfg.r30: kernel_cfg.c
337 $(CC) -c $(CFLAGS) $(KERNEL_CFG_CFLAGS) $(<D)\$(<F)
338
339kernel_cfg.a30: kernel_cfg.c
340 $(CC) -S $(CFLAGS) $(KERNEL_CFG_CFLAGS) $(<D)\$(<F)
341
342kernel_cfg.d: kernel_cfg.c
343 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) \
344 -O "$(INCLUDES) -I$(SRCDIR)\kernel -I$(SRCDIR)\systask" \
345 $(<D)\$(<F) >> Makefile.depend
346
347#
348# 特別な依存関係の定義
349#
350banner.r30: $(filter-out banner.r30,$(KERNEL_LIB_OBJS))
351
352#
353# 特殊な依存関係作成ルールの定義
354#
355kernel_id.d: $(UTASK_CFG)
356 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) \
357 -T "kernel_cfg.c kernel_id.h kernel_chk.c" \
358 -O "$(INCLUDES)" $(<D)\$(<F) >> Makefile.depend
359
360kernel_chk.d: kernel_chk.c
361 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -s -C $(CPP) \
362 -O "$(INCLUDES) -I$(KERNEL)" $(<D)\$(<F) >> Makefile.depend
363
364#
365# 依存関係ファイルの生成
366#
367gendepend:
368 @echo "Generating Makefile.depend."
369
370ifdef KERNEL_LIB
371depend: cleandep kernel_cfg.c gendepend kernel_id.d \
372 kernel_chk.d $(ALL_OBJS:.r30=.d)
373else
374depend: cleandep kernel_cfg.c gendepend kernel_id.d \
375 $(KERNEL_AUX_COBJS:.r30=.d) $(KERNEL_ASMOBJS:.r30=.d) \
376 $(KERNEL_COBJS:.r30=.d) $(KERNEL_LCSRCS:.c=.d) $(ALL_OBJS:.r30=.d)
377endif
378
379#
380# 依存関係ファイルをインクルード
381#
382-include Makefile.depend
383
384#
385# 開発ツールのコマンド名の定義
386#
387CC = $(TOOLDIR)\bin\nc308
388AS = $(TOOLDIR)\bin\as308
389AR = $(TOOLDIR)\bin\lb308
390LD = $(TOOLDIR)\bin\ln308
391CPP = $(TOOLDIR)\lib308\cpp308
392OBJCOPY = $(TOOLDIR)\bin\lmc308
393
394PERL = @(PERL)
395
396#
397# コンパイルルールの定義
398#
399KERNEL_ALL_COBJS = $(KERNEL_COBJS) $(KERNEL_AUX_COBJS)
400
401$(KERNEL_ALL_COBJS): %.r30: %.c
402 $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $(<D)\$(<F)
403
404$(KERNEL_ALL_COBJS:.r30=.a30): %.a30: %.c
405 $(CC) -S $(CFLAGS) $(KERNEL_CFLAGS) $(<D)\$(<F)
406
407ifdef USE_LB308
408
409$(KERNEL_LCOBJS): %.r30: %.a30
410 $(CC) -D__$(*F) -o $@ -c $(CFLAGS) $(KERNEL_CFLAGS) $(<D)\$(<F)
411
412$(KERNEL_LCOBJS:.r30=.a30): %.a30:
413 $(CC) -D__$(*F) -o $@ -S $(CFLAGS) $(KERNEL_CFLAGS) $(<D)\$(<F)
414 ren $(<F:.c=.a30) $@
415
416else
417
418$(KERNEL_LCOBJS): %.r30: %.c
419 $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $(<D)\$(<F)
420
421$(KERNEL_LCOBJS:.r30=.a30): %.c
422 $(CC) -S $(CFLAGS) $(KERNEL_CFLAGS) $(<D)\$(<F)
423
424endif
425
426$(KERNEL_ASMOBJS): %.r30: %.a30
427 $(AS) $(ASMFLAGS) $(KERNEL_ASMFLAGS) $(<D)\$(<F)
428
429$(STASK_COBJS): %.r30: %.c
430 $(CC) -c $(CFLAGS) $(STASK_CFLAGS) $(<D)\$(<F)
431
432$(STASK_COBJS:.r30=.a30): %.a30: %.c
433 $(CC) -S $(CFLAGS) $(STASK_CFLAGS) $(<D)\$(<F)
434
435$(STASK_ASMOBJS): %.r30: %.a30
436 $(AS) $(ASMFLAGS) $(STASK_ASMFLAGS) $(<D)\$(<F)
437
438$(UTASK_COBJS): %.r30: %.c
439 $(CC) -c $(CFLAGS) $(UTASK_CFLAGS) $(<D)\$(<F)
440
441$(UTASK_COBJS:.r30=.a30): %.a30: %.c
442 $(CC) -S $(CFLAGS) $(UTASK_CFLAGS) $(<D)\$(<F)
443
444$(UTASK_ASMOBJS): %.r30: %.a30
445 $(AS) $(ASMFLAGS) $(UTASK_ASMFLAGS) $(<D)\$(<F)
446
447#
448# 依存関係作成ルールの定義
449#
450# アセンブリ言語ファイルが依存するファイルは
451# それぞれのコンパイルルールで明示することにし、ここでは何もしない.
452#
453$(KERNEL_COBJS:.r30=.d): %.d: %.c
454 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) \
455 -O "$(INCLUDES) -I$(KERNEL)" $(<D)\$(<F) >> Makefile.depend
456
457ifdef USE_LB308
458
459$(KERNEL_LCSRCS:.c=.d): %.d: %.c
460 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) -T "$($*)" \
461 -O "$(foreach sym,$($*),-D__$(sym:.r30=)) \
462 $(INCLUDES) -I$(KERNEL)" $(<D)\$(<F) >> Makefile.depend
463
464$(KERNEL_LCOBJS:.r30=.d): %.d:
465 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) -T $*.r30 \
466 -O "-D__$(*F) $(INCLUDES) -I$(KERNEL)" $(<D)\$(<F) >> Makefile.depend
467
468else
469
470$(KERNEL_LCOBJS:.r30=.d): %.d: %.c
471 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) \
472 -O "$(INCLUDES) -I$(KERNEL)" $(<D)\$(<F) >> Makefile.depend
473
474endif
475
476
477$(KERNEL_ASMOBJS:.r30=.d): %.d: %.a30
478
479
480$(STASK_COBJS:.r30=.d): %.d: %.c
481 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) \
482 -O "$(INCLUDES) -I$(SRCDIR)\systask" $(<D)\$(<F) >> Makefile.depend
483
484$(STASK_ASMOBJS:.r30=.d): %.d: %.a30
485
486
487$(UTASK_COBJS:.r30=.d): %.d: %.c
488 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) \
489 -O "$(INCLUDES)" $(<D)\$(<F) >> Makefile.depend
490
491$(UTASK_ASMOBJS:.r30=.d): %.d: %.a30
492
493
494#
495# デフォルトコンパイルルールを上書き
496#
497%.r30: %.c
498 @echo "*** Default compile rules should not be used."
499 $(CC) -c $(CFLAGS) $(<D)\$(<F)
500
501%.a30: %.c
502 @echo "*** Default compile rules should not be used."
503 $(CC) -S $(CFLAGS) $(<D)\$(<F)
504
505%.r30: %.a30
506 @echo "*** Default compile rules should not be used."
507 $(AS) $(ASMFLAGS) $(<D)\$(<F)
508
509#
510# 空白で区切られた文字列の空白をカンマに変えるための定義
511#
512comma= ,
513empty=
514space= $(empty) $(empty)
515
Note: See TracBrowser for help on using the repository browser.