📄 makedep
字号:
#! /usr/bin/perl## TOPPERS/JSP Kernel# Toyohashi Open Platform for Embedded Real-Time Systems/# Just Standard Profile Kernel# # Copyright (C) 2000 by Embedded and Real-Time Systems Laboratory# Toyohashi Univ. of Technology, JAPAN# # 惧淡螟侯涪荚は·Free Software Foundation によって给山されている # GNU General Public License の Version 2 に淡揭されている掘凤か·笆# 布の(1)×(4)の掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェ# アを猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布·# 网脱と钙ぶ∷することを痰浸で钓满するˉ# (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯# 涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖# スコ〖ド面に崔まれていることˉ# (2) 塑ソフトウェアを浩网脱材墙なバイナリコ〖ド∈リロケ〖タブルオブ# ジェクトファイルやライブラリなど∷の妨で网脱する眷圭には·网脱# に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯涪山绩·# この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ# (3) 塑ソフトウェアを浩网脱稍材墙なバイナリコ〖ドの妨または怠达に寥# み哈んだ妨で网脱する眷圭には·肌のいずれかの掘凤を塔たすことˉ# (a) 网脱に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯# 涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ# (b) 网脱の妨轮を·侍に年める数恕によって·惧淡螟侯涪荚に鼠桂する# ことˉ# (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄# 巢からも·惧淡螟侯涪荚を倘勒することˉ# # 塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚は·# 塑ソフトウェアに簇して·その努脱材墙拉も崔めて·いかなる瘦沮も乖わ# ないˉまた·塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じたい# かなる禄巢に簇しても·その勒扦を砷わないˉ# # @(#) $Id: makedep,v 1.4 2002/04/08 05:28:34 hiro Exp $# require "getopt.pl";# オプションの年盗## -C <cc_path> Cコンパイラのコマンド叹# -O <cc_opts> Cコンパイラ/CPPに畔すオプション# -S <paths> ソ〖スファイルをサ〖チするパス∈":" で惰磊る∷## -P <cpp_path> CPPのコマンド叹# -T <target> タ〖ゲットのファイル叹# -s タ〖ゲットのサフィックスを ".s" にする∈デフォルトは ".o"∷## オプションの借妄#do Getopt("PCOST");$cc_path = $opt_C;$cc_opts = $opt_O;@src_paths = split(/:/, $opt_S);$suffix = $opt_s ? "s" : "o";$cpp_path = $opt_P;$target_file = $opt_T;## $dependlist に侯られた巴赂簇犯を叫蜗する#sub output_dependlist { local($file) = @_; local($column, $len); if ($target_file) { print $target_file; $column = length($target_file); } else { $file =~ s/(.*)\.(.)/$1.$suffix/; print $file; $column = length($file); } print ": "; $column += 2; foreach $file (keys(%dependlist)) { $len = length($file) + 1; if ($column + $len >= 70) { print "\\\n\t"; $column = 8; } $column += $len; print "$file "; } print "\n";}## $file の巴赂簇犯を %dependlist に侯る#sub makedepend_one { local($file) = @_; local($command, $input, $dir, $fullpath); foreach $dir (".", @src_paths) { if (-e $dir."/".$file) { $fullpath = $dir."/".$file; last; } } unless ($fullpath) { print STDERR "makedep: can't find $file\n"; exit(1); } if ($cpp_path) { $command = "$cpp_path $cc_opts"; } else { $command = "$cc_path -E $cc_opts"; } unless (open(INPUT, "$command $fullpath |")) { print STDERR "makedep: can't open $fullpath\n"; exit(1); } while ($line = <INPUT>) { if ($line =~ /^\#\s*([0-9]+)\s*\"([^\"]+)\"/) { $dependlist{$2} = 1; } } unless (close(INPUT)) { print STDERR "makedep: can't execute $command\n"; exit(1); }}## メインル〖チン#foreach $file (@ARGV) { %dependlist = (); do makedepend_one($file); do output_dependlist($file) if (%dependlist);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -