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

Last change on this file since 26 was 26, checked in by ykominami, 10 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,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 serial.r30 logtask.r30 \
134 log_output.r30 vasyslog.r30 t_perror.r30 strerror.r30
135STASK_CFLAGS := $(STASK_CFLAGS) -I$(SRCDIR)\systask
136STASK_LIBS := $(STASK_LIBS)
137
138#
139# カーネルに関する定義
140#
141# KERNEL_ASMOBJS: カーネルライブラリに含める,ソースがアセンブリ言語の
142# オブジェクトファイル.
143# KERNEL_COBJS: カーネルのライブラリに含める,ソースがC言語で,ソース
144# ファイルと1対1に対応するオブジェクトファイル.
145# KERNEL_LCSRCS: カーネルのライブラリに含めるC言語のソースファイルで,
146# 1つのソースファイルから複数のオブジェクトファイルを生
147# 成するもの(Makefile.kernel で定義).
148# KERNEL_LCOBJS: 上のソースファイルから生成されるオブジェクトファイル
149# (Makefile.kernel で定義).
150# KERNEL_AUX_COBJS: ロードモジュールに含めないが,カーネルのソースファ
151# イルと同じオプションを適用してコンパイルすべきファ
152# イル.
153#
154KERNEL = $(SRCDIR)\kernel
155KERNEL_DIR := $(KERNEL_DIR):$(KERNEL)
156KERNEL_ASMOBJS := $(KERNEL_ASMOBJS)
157KERNEL_COBJS := startup.r30 banner.r30 $(KERNEL_COBJS)
158KERNEL_CFLAGS := $(KERNEL_CFLAGS) -I$(KERNEL)
159ifdef OMIT_MAKEOFFSET
160 OFFSET_H =
161 KERNEL_AUX_COBJS = kernel_chk.r30
162else
163 OFFSET_H = offset.inc
164 KERNEL_AUX_COBJS = makeoffset.r30 kernel_chk.r30
165endif
166
167#
168# オブジェクトファイル名の定義
169#
170OBJNAME = jsp
171ifdef OBJEXT
172 OBJFILE = $(OBJNAME).$(OBJEXT)
173else
174 OBJFILE = $(OBJNAME)
175endif
176
177#
178# ターゲットファイル(複数を同時に選択してはならない)
179#
180#all: $(OBJFILE)
181all: $(OBJNAME).mot
182
183#
184# カーネルのコンフィギュレーションファイルの生成
185#
186kernel_cfg.c kernel_id.h kernel_chk.c: $(UTASK_CFG)
187 $(CPP) $(INCLUDES) $(CDEFS) $(UTASK_CFG) > tmpfile1
188 $(SRCDIR)\cfg\cfg -s tmpfile1 -c -obj -cpu $(CPU) -system $(SYS)
189 @-del tmpfile1
190
191##### 以下は編集しないこと #####
192
193#
194# 環境に依存するコンパイルオプションの定義
195#
196ifdef DBGENV
197 CDEFS := $(CDEFS) -D$(DBGENV)
198endif
199
200#
201# カーネルライブラリに関連する定義
202#
203ifdef KERNEL_LIB
204 MAKE_KERNEL =
205 LIBKERNEL = $(KERNEL_LIB)\libkernel.lib
206else
207 MAKE_KERNEL = libkernel.lib
208 LIBKERNEL = $(MAKE_KERNEL)
209endif
210
211#
212# カーネルのファイル構成の定義
213#
214ifdef TOOL
215 include $(SRCDIR)\config\$(CPU)-$(TOOL)\$(SYS)\Makefile.kernel
216else
217 include $(SRCDIR)\config\$(CPU)\$(SYS)\Makefile.kernel
218endif
219
220#
221# $(OBJNAME).chk の生成規則(静的APIのパラメータチェック)
222#
223$(OBJNAME).chk: kernel_chk.a30 $(SRCDIR)\utils\gencheck.m16c
224 $(PERL) $(SRCDIR)\utils\m16c-renesas\gencheck.m16c kernel_chk.a30 > $(OBJNAME).chk
225
226#
227# offset.inc の生成規則(構造体内
228のオフセット値の算出)
229#
230offset.inc: makeoffset.a30
231 $(SRCDIR)\utils\m16c-renesas\m16coffset.exe
232
233#
234# ソースファイルのあるディレクトリに関する定義
235#
236vpath %.c $(KERNEL_DIR):$(STASK_DIR):$(UTASK_DIR)
237vpath %.a30 $(KERNEL_DIR):$(STASK_DIR):$(UTASK_DIR)
238
239#
240# コンパイルのための変数の定義
241#
242KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
243STASK_OBJS = $(STASK_ASMOBJS) $(STASK_COBJS)
244UTASK_OBJS = $(UTASK_ASMOBJS) $(UTASK_COBJS) $(UTASK_CXXOBJS)
245TASK_OBJS = $(UTASK_OBJS) $(STASK_OBJS) kernel_cfg.r30
246ALL_OBJS = $(START_OBJS) $(TASK_OBJS) $(END_OBJS)
247ALL_LIBS = $(LIBKERNEL)
248ifdef LIBS
249 ALL_LIBS := $(ALL_LIBS),$(LIBS)
250endif
251ifdef STASK_LIBS
252 ALL_LIBS := $(STASK_LIBS),$(ALL_LIBS)
253endif
254ifdef UTASK_LIBS
255 ALL_LIBS := $(UTASK_LIBS),$(ALL_LIBS)
256endif
257
258#
259# カーネルライブラリファイルの生成
260#
261libkernel.lib: $(OFFSET_H) $(KERNEL_LIB_OBJS)
262 @-del libkernel.lib
263 $(AR) -. -c $@ $(KERNEL_LIB_OBJS)
264
265#
266# å…
267¨ä½“のリンク
268#
269$(OBJFILE): Makefile.depend $(ALL_OBJS) $(MAKE_KERNEL) # $(OBJNAME).chk
270 @echo $(LDFLAGS) > $(OBJNAME).cmd
271 @echo -O $(OBJFILE) >> $(OBJNAME).cmd
272 @echo -NOSTOP >> $(OBJNAME).cmd
273 @echo -ORDER data_NE=$(RAM_START_ADR) >> $(OBJNAME).cmd
274 @echo -ORDER data_NO >> $(OBJNAME).cmd
275 @echo -ORDER bss_NE >> $(OBJNAME).cmd
276 @echo -ORDER bss_NO >> $(OBJNAME).cmd
277 @echo -ORDER program=$(ROM_START_ADR) >> $(OBJNAME).cmd
278 @echo -ORDER rom_FE >> $(OBJNAME).cmd
279 @echo -ORDER rom_FO >> $(OBJNAME).cmd
280 @echo -ORDER data_NEI >> $(OBJNAME).cmd
281 @echo -ORDER data_NOI >> $(OBJNAME).cmd
282 @echo -ORDER vvector >> $(OBJNAME).cmd
283 @echo -ORDER fvector >> $(OBJNAME).cmd
284 @echo $(ALL_OBJS) >> $(OBJNAME).cmd
285 @echo -L $(ALL_LIBS) >> $(OBJNAME).cmd
286 $(LD) @$(OBJNAME).cmd
287
288#
289# Sレコードファイルの生成
290#
291$(OBJNAME).mot: $(OBJFILE)
292 $(OBJCOPY) -. -ID#00000000000000 $<
293
294#
295# コンパイル結果の消去
296#
297clean:
298 @-del \#* *~ *.r30 tmpfile?
299 @-del $(MAKE_KERNEL) $(OBJNAME)
300 @-del $(OBJNAME).syms $(OBJNAME).mot $(OBJNAME).chk
301 @-del $(OBJNAME).exe $(OBJNAME).bin $(OBJNAME).out
302 @-del $(OBJNAME).map $(OBJFILE) $(OBJNAME).id $(OBJNAME).cmd
303 @-del kernel_cfg.c kernel_chk.c kernel_chk.a30 kernel_id.h kernel_obj.dat
304 @-del makeoffset.a30 offset.inc m16cvec.inc
305 @-del $(KERNEL_LCOBJS:.r30=.a30)
306cleankernel:
307 @-del $(KERNEL_LIB_OBJS)
308 @-del makeoffset.a30 offset.inc m16cvec.inc
309
310cleandep:
311 @-del Makefile.depend
312
313realclean: cleandep clean
314
315#
316# kernel_cfg.c のコンパイルルールと依存関係作成ルールの定義
317#
318# kernel_cfg.c は,アプリケーションプログラム用,システムサービス用,
319# カーネル用のすべてのオプションを付けてコンパイルする.
320#
321KERNEL_CFG_CFLAGS = $(UTASK_CFLAGS) $(STASK_CFLAGS) $(KERNEL_CFLAGS)
322
323kernel_cfg.r30: kernel_cfg.c
324 $(CC) -c $(CFLAGS) $(KERNEL_CFG_CFLAGS) $(<D)\$(<F)
325
326kernel_cfg.a30: kernel_cfg.c
327 $(CC) -S $(CFLAGS) $(KERNEL_CFG_CFLAGS) $(<D)\$(<F)
328
329kernel_cfg.d: kernel_cfg.c
330 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) \
331 -O "$(INCLUDES) -I$(SRCDIR)\kernel -I$(SRCDIR)\systask" \
332 $(<D)\$(<F) >> Makefile.depend
333
334#
335# 特別な依存関係の定義
336#
337banner.r30: $(filter-out banner.r30,$(KERNEL_LIB_OBJS))
338
339#
340# 特殊な依存関係作成ルールの定義
341#
342kernel_id.d: $(UTASK_CFG)
343 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) \
344 -T "kernel_cfg.c kernel_id.h kernel_chk.c" \
345 -O "$(INCLUDES)" $(<D)\$(<F) >> Makefile.depend
346
347makeoffset.d: makeoffset.c
348 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -s -C $(CPP) \
349 -O "$(INCLUDES) -I$(KERNEL)" $(<D)\$(<F) >> Makefile.depend
350
351kernel_chk.d: kernel_chk.c
352 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -s -C $(CPP) \
353 -O "$(INCLUDES) -I$(KERNEL)" $(<D)\$(<F) >> Makefile.depend
354
355#
356# 依存関係ファイルの生成
357#
358gendepend:
359 @echo "Generating Makefile.depend."
360
361ifdef KERNEL_LIB
362depend: cleandep kernel_cfg.c gendepend kernel_id.d \
363 kernel_chk.d $(ALL_OBJS:.r30=.d)
364else
365depend: cleandep $(OFFSET_H) kernel_cfg.c gendepend kernel_id.d \
366 $(KERNEL_AUX_COBJS:.r30=.d) $(KERNEL_ASMOBJS:.r30=.d) \
367 $(KERNEL_COBJS:.r30=.d) $(KERNEL_LCSRCS:.c=.d) $(ALL_OBJS:.r30=.d)
368endif
369
370#
371# 依存関係ファイルをインクルード
372#
373-include Makefile.depend
374
375PERL = @(PERL)
376
377#
378# コンパイルルールの定義
379#
380KERNEL_ALL_COBJS = $(KERNEL_COBJS) $(KERNEL_AUX_COBJS)
381
382$(KERNEL_ALL_COBJS): %.r30: %.c
383 $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $(<D)\$(<F)
384
385$(KERNEL_ALL_COBJS:.r30=.a30): %.a30: %.c
386 $(CC) -S $(CFLAGS) $(KERNEL_CFLAGS) $(<D)\$(<F)
387
388$(KERNEL_LCOBJS): %.r30: %.a30
389 $(CC) -D__$(*F) -o $@ -c $(CFLAGS) $(KERNEL_CFLAGS) $(<D)\$(<F)
390
391$(KERNEL_LCOBJS:.r30=.a30): %.a30:
392 $(CC) -D__$(*F) -o $@ -S $(CFLAGS) $(KERNEL_CFLAGS) $(<D)\$(<F)
393 ren $(<F:.c=.a30) $@
394
395$(KERNEL_ASMOBJS): %.r30: %.a30
396 $(AS) $(ASMFLAGS) $(KERNEL_ASMFLAGS) $(<D)\$(<F)
397
398$(STASK_COBJS): %.r30: %.c
399 $(CC) -c $(CFLAGS) $(STASK_CFLAGS) $(<D)\$(<F)
400
401$(STASK_COBJS:.r30=.a30): %.a30: %.c
402 $(CC) -S $(CFLAGS) $(STASK_CFLAGS) $(<D)\$(<F)
403
404$(STASK_ASMOBJS): %.r30: %.a30
405 $(AS) $(ASMFLAGS) $(STASK_ASMFLAGS) $(<D)\$(<F)
406
407$(UTASK_COBJS): %.r30: %.c
408 $(CC) -c $(CFLAGS) $(UTASK_CFLAGS) $(<D)\$(<F)
409
410$(UTASK_COBJS:.r30=.a30): %.a30: %.c
411 $(CC) -S $(CFLAGS) $(UTASK_CFLAGS) $(<D)\$(<F)
412
413$(UTASK_ASMOBJS): %.r30: %.a30
414 $(AS) $(ASMFLAGS) $(UTASK_ASMFLAGS) $(<D)\$(<F)
415
416#
417# 依存関係作成ルールの定義
418#
419# アセンブリ言語ファイルが依存するファイルは
420# それぞれのコンパイルルールで明示することにし、ここでは何もしない.
421#
422$(KERNEL_COBJS:.r30=.d): %.d: %.c
423 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) \
424 -O "$(INCLUDES) -I$(KERNEL)" $(<D)\$(<F) >> Makefile.depend
425
426$(KERNEL_LCSRCS:.c=.d): %.d: %.c
427 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) -T "$($*)" \
428 -O "$(foreach sym,$($*),-D__$(sym:.r30=)) \
429 $(INCLUDES) -I$(KERNEL)" $(<D)\$(<F) >> Makefile.depend
430
431$(KERNEL_LCOBJS:.r30=.d): %.d:
432 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) -T $*.r30 \
433 -O "-D__$(*F) $(INCLUDES) -I$(KERNEL)" $(<D)\$(<F) >> Makefile.depend
434
435$(KERNEL_ASMOBJS:.r30=.d): %.d: %.a30
436
437
438$(STASK_COBJS:.r30=.d): %.d: %.c
439 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) \
440 -O "$(INCLUDES) -I$(SRCDIR)\systask" $(<D)\$(<F) >> Makefile.depend
441
442$(STASK_ASMOBJS:.r30=.d): %.d: %.a30
443
444
445$(UTASK_COBJS:.r30=.d): %.d: %.c
446 @$(PERL) $(SRCDIR)\utils\m16c-renesas\makedep.m16c -C $(CPP) \
447 -O "$(INCLUDES)" $(<D)\$(<F) >> Makefile.depend
448
449$(UTASK_ASMOBJS:.r30=.d): %.d: %.a30
450
451
452#
453# デフォルトコンパイルルールを上書き
454#
455%.r30: %.c
456 @echo "*** Default compile rules should not be used."
457 $(CC) -c $(CFLAGS) $(<D)\$(<F)
458
459%.a30: %.c
460 @echo "*** Default compile rules should not be used."
461 $(CC) -S $(CFLAGS) $(<D)\$(<F)
462
463%.r30: %.a30
464 @echo "*** Default compile rules should not be used."
465 $(AS) $(ASMFLAGS) $(<D)\$(<F)
Note: See TracBrowser for help on using the repository browser.