source: atk1_sh2/trunk/tools/sh2-gnu/cq7144a/makedep@ 4

Last change on this file since 4 was 4, checked in by msugi, 14 years ago

Interface誌2006年8月号添付のTOPPERS/OSEK用SH2をTOPPERS/ATK1に対応させました.多少のバグフィックスも行っています.

File size: 3.8 KB
Line 
1#! /usr/bin/perl
2#
3# TOPPERS/OSEK Kernel
4# Toyohashi Open Platform for Embedded Real-Time Systems/
5# OSEK Kernel
6#
7# Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
8# Toyohashi Univ. of Technology, JAPAN
9# Copyright (C) 2004-2006 by Witz Corporation, JAPAN
10#
11# ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚©CFree Software Foundation
12# ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é GNU General Public License ‚Ì Version 2 ‚É‹L
13# q‚³‚ê‚Ä‚¢‚éðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒFƒA
14# ‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
15# —˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
16# (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
17# Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
18# ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
19# (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
20# —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ…
21ƒƒ“ƒgi—˜—p
22# ŽÒƒ}ƒjƒ…
23ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
24# ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
25# (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
26# —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
27# ‚ƁD
28# (a) Ä”z•z‚É”º‚¤ƒhƒLƒ…
29ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ…
30ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
31# ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
32# (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
33# •ñ‚·‚邱‚ƁD
34# (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
35# ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
36#
37# –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
38# ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC‚»‚Ì“K—p‰Â”\«‚à
39# ŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼
40# Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
41#
42#
43
44require "getopt.pl";
45
46# ƒIƒvƒVƒ‡ƒ“‚Ì’è‹`
47#
48# -C <cc_path> CƒRƒ“ƒpƒCƒ‰‚̃Rƒ}ƒ“ƒh–¼
49# -O <cc_opts> CƒRƒ“ƒpƒCƒ‰/CPP‚É“n‚·ƒIƒvƒVƒ‡ƒ“
50#
51# -X ƒ\[ƒXƒtƒ@ƒCƒ‹‚ð‹­§“I‚ÉCƒwƒbƒ_ƒtƒ@ƒCƒ‹‚ÆŒ©‚È‚·
52#
53# -T <target> ƒ^[ƒQƒbƒg‚̃tƒ@ƒCƒ‹–¼
54# -D <t_dir> ƒ^[ƒQƒbƒg‚̃fƒBƒŒƒNƒgƒŠ–¼‚ðŽw’è‚·‚é
55# -d ƒ^[ƒQƒbƒg‚̃fƒBƒŒƒNƒgƒŠ•”‚ð•ÛŽ‚·‚é
56# -s ƒ^[ƒQƒbƒg‚̃TƒtƒBƒbƒNƒX‚ð ".s" ‚É‚·‚éiƒfƒtƒHƒ‹ƒg‚Í ".o"j
57
58#
59# ƒIƒvƒVƒ‡ƒ“‚̏ˆ—
60#
61do Getopt("COTD");
62
63$cc_path = $opt_C;
64$cc_opts = $opt_O;
65
66$suffix = $opt_s ? "s" : "o";
67if ($opt_T) {
68 $target_file = $opt_T;
69}
70elsif ($opt_D) {
71 $target_dir = $opt_D;
72}
73elsif (!$opt_d) {
74 $target_dir = "";
75}
76
77#
78# %dependlist ‚ɍì‚ç‚ꂽˆË‘¶ŠÖŒW‚ðo—Í‚·‚é
79#
80sub output_dependlist {
81 local($file) = @_;
82 local($target, $column, $len);
83
84 if ($target_file) {
85 $target = $target_file;
86 }
87 else {
88 $target = $file;
89 $target =~ s/(.*)\.(.)/$1.$suffix/;
90 }
91 if (defined($target_dir)) {
92 $target =~ s/^.*\/([^\/]+)$/$1/;
93 if ($target_dir) {
94 $target = $target_dir."/".$target;
95 }
96 }
97 print $target, ": ";
98 $column = length($target) + 2;
99
100 foreach $file (keys(%dependlist)) {
101 $len = length($file) + 1;
102 if ($column > 8 && $column + $len >= 70) {
103 print "\\\n\t";
104 $column = 8;
105 }
106 $column += $len;
107 print "$file ";
108 }
109 print "\n";
110}
111
112#
113# $file ‚̈ˑ¶ŠÖŒW‚ð %dependlist ‚ɍì‚é
114#
115sub makedepend_one {
116 local($file) = @_;
117 local($command, $input, $dir, $filename);
118
119 $command = "$cc_path -E $cc_opts";
120 if ($opt_X) {
121 $command .= " -x c-header";
122 }
123 unless (open(INPUT, "$command $file |")) {
124 print STDERR "makedep: can't open $file\n";
125 exit(1);
126 }
127 while ($line = <INPUT>) {
128 if ($line =~ /^\#\s*([0-9]+)\s*\"([^\"]+)\"/) {
129 $filename = $2;
130 $filename =~ s/ /\\ /;
131 if ($filename !~ /^\<.*\>$/ && $filename !~ /\/$/) {
132 $dependlist{$filename} = 1;
133 }
134 }
135 }
136 unless (close(INPUT)) {
137 print STDERR "makedep: can't execute $command\n";
138 exit(1);
139 }
140}
141
142#
143# ƒƒCƒ“ƒ‹[ƒ`ƒ“
144#
145foreach $file (@ARGV) {
146 %dependlist = ();
147 do makedepend_one($file);
148 do output_dependlist($file) if (%dependlist);
149}
Note: See TracBrowser for help on using the repository browser.