source: anotherchoice/tags/jsp-1.4.4-full-UTF8/utils/genrename@ 26

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

initial

File size: 5.0 KB
Line 
1#! /usr/bin/perl
2#
3# TOPPERS/JSP Kernel
4# Toyohashi Open Platform for Embedded Real-Time Systems/
5# Just Standard Profile Kernel
6#
7# Copyright (C) 2003 by Embedded and Real-Time Systems Laboratory
8# Toyohashi Univ. of Technology, JAPAN
9# Copyright (C) 2005 by Embedded and Real-Time Systems Laboratory
10# Graduate School of Information Science, Nagoya Univ., JAPAN
11#
12# 上記著作権者
13は,以下の (1)〜(4) の条件か,Free Software Foundation
14# によってå…
15¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
16# 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
17# を改変したものを含む.以下同じ)を使用・複製・改変・再é…
18å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
19# 利用と呼ぶ)することを無償で許諾する.
20# (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
21# 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
22# スコード中に含まれていること.
23# (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
24# 用できる形で再é…
25å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
26å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
27# 者
28マニュアルなど)に,上記の著作権表示,この利用条件および下記
29# の無保証規定を掲載すること.
30# (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
31# 用できない形で再é…
32å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
33# と.
34# (a) 再é…
35å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
36マニュアルなど)に,上記の著
37# 作権表示,この利用条件および下記の無保証規定を掲載すること.
38# (b) 再é…
39å¸ƒã®å½¢æ…
40‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
41# 報告すること.
42# (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
43# 害からも,上記著作権者
44およびTOPPERSプロジェクトをå…
45è²¬ã™ã‚‹ã“と.
46#
47# 本ソフトウェアは,無保証で提供されているものである.上記著作権者
48お
49# よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
50# 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
51# 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
52#
53# @(#) $Id: genrename,v 1.4 2005/06/08 05:33:46 hiro Exp $
54#
55
56#
57# リネーム定義を生成する
58#
59sub generate_define
60{
61 local($sym, $prefix) = @_;
62
63 print FILE "#define ",$prefix,$sym;
64 print FILE "\t" if (length($prefix.$sym) < 8);
65 print FILE "\t" if (length($prefix.$sym) < 16);
66 print FILE "\t",$prefix,"_kernel_",$sym,"\n";
67}
68
69#
70# リネーム解除を生成する
71#
72sub generate_undef
73{
74 local($sym, $prefix) = @_;
75
76 print FILE "#undef ",$prefix,$sym,"\n";
77}
78
79#
80# エラーチェック
81#
82if ($#ARGV != 0) {
83 die "Usage: genrename <prefix>\n";
84}
85
86#
87# 初期化
88#
89@syms = ();
90$name = $ARGV[0];
91$NAME = $name; $NAME =~ y/a-z/A-Z/;
92
93$infile = $name."_rename.def";
94$defsym_rename = "_".$NAME."_RENAME_H_";
95$defsym_unrename = "_".$NAME."_UNRENAME_H_";
96
97#
98# シンボルリストを読み込む
99#
100open(INFILE, $infile) || die "Cannot open $infile";
101while ($line = <INFILE>) {
102 chomp $line;
103# $line =~ s/\s+//g;
104 @syms = (@syms, $line);
105}
106close(INFILE);
107
108#
109# ???_rename.h を生成する
110#
111$file = $name."_rename.h";
112open(FILE, "> ".$file);
113
114print FILE <<END;
115/* This file is generated from $infile by genrename. */
116
117#ifndef $defsym_rename
118#define $defsym_rename
119
120END
121
122foreach $sym (@syms) {
123 if ($sym =~ /^#(.*)$/) {
124 print FILE "/*\n";
125 print FILE " * ",$1,"\n";
126 print FILE " */\n";
127 }
128 elsif ($sym ne "") {
129 do generate_define($sym, "");
130 }
131 else {
132 print FILE "\n";
133 }
134}
135
136print FILE <<END;
137
138#ifdef LABEL_ASM
139
140END
141
142foreach $sym (@syms) {
143 if ($sym =~ /^#(.*)$/) {
144 print FILE "/*\n";
145 print FILE " * ",$1,"\n";
146 print FILE " */\n";
147 }
148 elsif ($sym ne "") {
149 do generate_define($sym, "_");
150 }
151 else {
152 print FILE "\n";
153 }
154}
155
156print FILE <<END;
157
158#endif /* LABEL_ASM */
159#endif /* $defsym_rename */
160END
161
162#
163# ???_unrename.h を生成する
164#
165$file = $name."_unrename.h";
166open(FILE, "> ".$file);
167
168print FILE <<END;
169/* This file is generated from $infile by genrename. */
170
171#ifdef $defsym_unrename
172#undef $defsym_unrename
173
174END
175
176foreach $sym (@syms) {
177 if ($sym =~ /^#(.*)$/) {
178 print FILE "/*\n";
179 print FILE " * ",$1,"\n";
180 print FILE " */\n";
181 }
182 elsif ($sym ne "") {
183 do generate_undef($sym, "");
184 }
185 else {
186 print FILE "\n";
187 }
188}
189
190print FILE <<END;
191
192#ifdef LABEL_ASM
193
194END
195
196foreach $sym (@syms) {
197 if ($sym =~ /^#(.*)$/) {
198 print FILE "/*\n";
199 print FILE " * ",$1,"\n";
200 print FILE " */\n";
201 }
202 elsif ($sym ne "") {
203 do generate_undef($sym, "_");
204 }
205 else {
206 print FILE "\n";
207 }
208}
209
210print FILE <<END;
211
212#endif /* LABEL_ASM */
213#endif /* $defsym_unrename */
214END
215
216close(FILE);
Note: See TracBrowser for help on using the repository browser.