source: anotherchoice/tags/jsp-1.4.4-full-UTF8/utils/m16c-renesas/makedep.m16c@ 26

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

initial

File size: 5.3 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) 2000-2003 by Embedded and Real-Time Systems Laboratory
8# Toyohashi Univ. of Technology, JAPAN
9# Copyright (C) 2003-2004, 2010 by Naoki Saito
10# Nagoya Municipal Industrial Research Institute, 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: makedep.m16c,v 1.3 2004/10/07 07:30:37 honda Exp $
54#
55
56# 以下の点がGNU開発環境の場合と異なるため, makedep をM16C用に修正.
57# 1. アセンブリ言語ファイル, オブジェクトモジュールの拡張子
58# 2. DOSシェルのパスの区切り文字
59# 3. Cプリプロセッサの出力行の形式
60
61require "getopt.pl";
62
63# オプションの定義
64#
65# -C <cc_path> Cコンパイラのコマンド名(実際に使用するのはCPP30を想定)
66# -O <cc_opts> Cコンパイラ/CPPに渡すオプション
67#
68# -X ソースファイルを強制的にCヘッダファイルと見なす(このオプションは無効)
69#
70# -T <target> ターゲットのファイル名
71# -D <t_dir> ターゲットのディレクトリ名を指定する
72# -d ターゲットのディレクトリ部を保持する
73# -s ターゲットのサフィックスを ".a30 にする(デフォルトは ".r30")
74
75#
76# オプションの処理
77#
78Getopt("COTD");
79
80$cc_path = $opt_C;
81$cc_opts = $opt_O;
82
83$suffix = $opt_s ? "a30" : "r30";
84if ($opt_T) {
85 $target_file = $opt_T;
86}
87elsif ($opt_D) {
88 $target_dir = $opt_D;
89}
90elsif (!$opt_d) {
91 $target_dir = "";
92}
93
94#
95# %dependlist に作られた依存関係を出力する
96#
97sub output_dependlist {
98 local($file) = @_;
99 local($target, $column, $len);
100
101 if ($target_file) {
102 $target = $target_file;
103 }
104 else {
105 $target = $file;
106 # 拡張子が1文字でない場合にも対応
107 $target =~ s/(.*)\.(.)+/$1.$suffix/;
108 }
109 if (defined($target_dir)) {
110 $target =~ s/^.*\\([^\\]+)$/$1/;
111 if ($target_dir) {
112 $target = $target_dir."\\".$target;
113 }
114 }
115 print $target, ": ";
116 $column = length($target) + 2;
117
118 foreach $file (keys(%dependlist)) {
119 $len = length($file) + 1;
120 if ($column > 8 && $column + $len >= 70) {
121 print "\\\n\t";
122 $column = 8;
123 }
124 $column += $len;
125 print "$file ";
126 }
127 print "\n";
128}
129
130#
131# $file の依存関係を %dependlist に作る
132#
133sub makedepend_one {
134 local($file) = @_;
135 local($command, $input, $dir, $filename);
136
137 $command = "$cc_path $cc_opts";
138# if ($opt_X) {
139# $command .= " -x c-header";
140# }
141 unless (open(INPUT, "$command $file |")) {
142 print STDERR "makedep: can't open $file\n";
143 exit(1);
144 }
145 while ($line = <INPUT>) {
146 # 三菱のコンパイラ付属のプリプロセッサ cpp30 が
147 # "#line" で始まる行を出力するのに対応
148 $line =~ s/\//\\/g;
149 if ($line =~ /^\#\s*line\s*([0-9]+)\s*\"([^\"]+)\"/) {
150 $filename = $2;
151 if ($filename !~ /^\<.*\>$/) {
152 $dependlist{$filename} = 1;
153 }
154 }
155 }
156 unless (close(INPUT)) {
157 print STDERR "makedep: can't execute $command\n";
158 exit(1);
159 }
160}
161
162#
163# メインルーチン
164#
165foreach $file (@ARGV) {
166 %dependlist = ();
167 makedepend_one($file);
168 output_dependlist($file) if (%dependlist);
169}
Note: See TracBrowser for help on using the repository browser.