4 # Toyohashi Open Platform for Embedded Real-Time Systems/
5 # Just Standard Profile Kernel
7 # Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
8 # Toyohashi Univ. of Technology, JAPAN
9 # Copyright (C) 2004-2005 by Embedded and Real-Time Systems Laboratory
10 # Graduate School of Information Science, Nagoya Univ., JAPAN
12 # 上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
13 # によって公表されている GNU General Public License の Version 2 に記
14 # 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
15 # を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
17 # (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
18 # 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
20 # (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
21 # 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
22 # 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
24 # (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
25 # 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
27 # (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
28 # 作権表示,この利用条件および下記の無保証規定を掲載すること.
29 # (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
31 # (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
32 # 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
34 # 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
35 # よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
36 # 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
37 # 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
39 # @(#) $Id: makedep,v 1.3 2012/06/17 00:24:19 suikan Exp $
46 # -C <cc_path> Cコンパイラのコマンド名
47 # -O <cc_opts> Cコンパイラ/CPPに渡すオプション
49 # -X ソースファイルを強制的にCヘッダファイルと見なす
51 # -T <target> ターゲットのファイル名
52 # -D <t_dir> ターゲットのディレクトリ名を指定する
53 # -d ターゲットのディレクトリ部を保持する
54 # -s ターゲットのサフィックスを ".s" にする(デフォルトは ".o")
64 $suffix = $opt_s ? "s" : "o";
66 $target_file = $opt_T;
76 # %dependlist に作られた依存関係を出力する
78 sub output_dependlist {
80 local($target, $column, $len);
83 $target = $target_file;
87 $target =~ s/(.*)\.(.)/$1.$suffix/;
89 if (defined($target_dir)) {
90 $target =~ s/^.*\/([^\/]+)$/$1/;
92 $target = $target_dir."/".$target;
96 $column = length($target) + 2;
98 foreach $file (keys(%dependlist)) {
99 $len = length($file) + 1;
100 if ($column > 8 && $column + $len >= 70) {
111 # $file の依存関係を %dependlist に作る
115 local($command, $input, $dir, $filename);
117 $command = "$cc_path -E $cc_opts";
119 $command .= " -x c-header";
121 unless (open(INPUT, "$command $file |")) {
122 print STDERR "makedep: can't open $file\n";
125 while ($line = <INPUT>) {
126 if ($line =~ /^\#\s*([0-9]+)\s*\"([^\"]+)\"/) {
128 # $filename =~ s/ /\\ /;
129 $filename =~ s/ /\\ /g;
130 if ($filename !~ /^\<.*\>$/ && $filename !~ /\/$/) {
131 $dependlist{$filename} = 1;
135 unless (close(INPUT)) {
136 print STDERR "makedep: can't execute $command\n";
144 foreach $file (@ARGV) {
146 makedepend_one($file);
147 output_dependlist($file) if (%dependlist);