亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mkdepends

?? CCSM Research Tools: Community Atmosphere Model (CAM)
??
字號:
#!/usr/bin/env perl# Generate dependencies in a form suitable for inclusion into a Makefile.# The source filenames are provided in a file, one per line.  Directories# to be searched for the source files and for their dependencies are provided# in another file, one per line.  Output is written to STDOUT.## For CPP type dependencies (lines beginning with #include) the dependency# search is recursive.  Only dependencies that are found in the specified# directories are included.  So, for example, the standard include file# stdio.h would not be included as a dependency unless /usr/include were# one of the specified directories to be searched.## For Fortran module USE dependencies (lines beginning with a case# insensitive "USE", possibly preceded by whitespace) the Fortran compiler# must be able to access the .mod file associated with the .o file that# contains the module.  In order to correctly generate these dependencies# two restrictions must be observed.# 1) All modules must be contained in files that have the same base name as#    the module, in a case insensitive sense.  This restriction implies that#    there can only be one module per file.# 2) All modules that are to be contained in the dependency list must be#    contained in one of the source files in the list provided on the command#    line.# The reason for the second restriction is that since the makefile doesn't# contain rules to build .mod files the dependency takes the form of the .o# file that contains the module.  If a module is being used for which the# source code is not available (e.g., a module from a library), then adding# a .o dependency for that module is a mistake because make will attempt to# build that .o file, and will fail if the source code is not available.## Author: B. Eaton#         Climate Modelling Section, NCAR#         Feb 2001use Getopt::Std;use File::Basename;# Check for usage request.@ARGV >= 2                          or usage();# Process command line.my %opt = ();getopts( "t:w", \%opt )           or usage();my $filepath_arg = shift()        or usage();my $srcfile_arg = shift()         or usage();@ARGV == 0                        or usage();  # Check that all args were processed.my $obj_dir;if ( defined $opt{'t'} ) { $obj_dir = $opt{'t'}; }open(FILEPATH, $filepath_arg) or die "Can't open $filepath_arg: $!\n";open(SRCFILES, $srcfile_arg) or die "Can't open $srcfile_arg: $!\n";# Make list of paths to use when looking for files.# Prepend "." so search starts in current directory.  This default is for# consistency with the way GNU Make searches for dependencies.my @file_paths = <FILEPATH>;close(FILEPATH);chomp @file_paths;unshift(@file_paths,'.');foreach $dir (@file_paths) {  # (could check that directories exist here)    $dir =~ s!/?\s*$!!;  # remove / and any whitespace at end of directory name    ($dir) = glob $dir;  # Expand tildes in path names.}# Make list of files containing source code.my @src = <SRCFILES>;close(SRCFILES);chomp @src;# For each file that may contain a Fortran module (*.[fF]90 *.[fF]) convert the# file's basename to uppercase and use it as a hash key whose value is the file's# basename.  This allows fast identification of the files that contain modules.# The only restriction is that the file's basename and the module name must match# in a case insensitive way.my %module_files = ();my ($f, $name, $path, $suffix, $mod);my @suffixes = ('\.[fF]90', '\.[fF]' );foreach $f (@src) {    ($name, $path, $suffix) = fileparse($f, @suffixes);    ($mod = $name) =~ tr/a-z/A-Z/;    $module_files{$mod} = $name;}#print STDERR "\%module_files\n";#while ( ($k,$v) = each %module_files ) {#    print STDERR "$k => $v\n";#}# Find module and include dependencies of the source files.my ($file_path, $rmods, $rincs);my %file_modules = ();my %file_includes = ();my @check_includes = ();foreach $f ( @src ) {    # Find the file in the seach path (@file_paths).    unless ($file_path = find_file($f)) {	if (defined $opt{'w'}) {print STDERR "$f not found\n";}	next;    }    # Find the module and include dependencies.    ($rmods, $rincs) = find_dependencies( $file_path );    # Remove redundancies (a file can contain multiple procedures that have    # the same dependencies).    $file_modules{$f} = rm_duplicates($rmods);    $file_includes{$f} = rm_duplicates($rincs);    # Make a list of all include files.    push @check_includes, @{$file_includes{$f}};}#print STDERR "\%file_modules\n";#while ( ($k,$v) = each %file_modules ) {#    print STDERR "$k => @$v\n";#}#print STDERR "\%file_includes\n";#while ( ($k,$v) = each %file_includes ) {#    print STDERR "$k => @$v\n";#}#print STDERR "\@check_includes\n";#print STDERR "@check_includes\n";# Find include file dependencies.my %include_depends = ();while (@check_includes) {    $f = shift @check_includes;    if (defined($include_depends{$f})) { next; }    # Mark files not in path so they can be removed from the dependency list.    unless ($file_path = find_file($f)) {	$include_depends{$f} = -1;	next;    }    # Find include file dependencies.    ($rmods, $include_depends{$f}) = find_dependencies($file_path);    # Add included include files to the back of the check_includes list so    # that their dependencies can be found.    push @check_includes, @{$include_depends{$f}};    # Add included modules to the include_depends list.    if ( @$rmods ) { push @{$include_depends{$f}}, @$rmods;  }}#print STDERR "\%include_depends\n";#while ( ($k,$v) = each %include_depends ) {#    print STDERR (ref $v ? "$k => @$v\n" : "$k => $v\n");#}# Remove include file dependencies that are not in the Filepath.my $i, $ii;foreach $f (keys %include_depends) {    unless (ref $include_depends{$f}) { next; }    $rincs = $include_depends{$f};    unless (@$rincs) { next; }    $ii = 0;    $num_incs = @$rincs;    for ($i = 0; $i < $num_incs; ++$i) {    	if ($include_depends{$$rincs[$ii]} == -1) {	    splice @$rincs, $ii, 1;	    next;	}    ++$ii;    }}# Substitute the include file dependencies into the %file_includes lists.foreach $f (keys %file_includes) {    my @expand_incs = ();    # Initialize the expanded %file_includes list.    my $i;    unless (@{$file_includes{$f}}) { next; }    foreach $i (@{$file_includes{$f}}) {	push @expand_incs, $i  unless ($include_depends{$i} == -1);    }    unless (@expand_incs) {	$file_includes{$f} = [];	next;    }    # Expand    for ($i = 0; $i <= $#expand_incs; ++$i) {	push @expand_incs, @{ $include_depends{$expand_incs[$i]} };    }    $file_includes{$f} = rm_duplicates(\@expand_incs);}#print STDERR "expanded \%file_includes\n";#while ( ($k,$v) = each %file_includes ) {#    print STDERR "$k => @$v\n";#}# Print dependencies to STDOUT.foreach $f (sort keys %file_modules) {    $f =~ /(.+)\./;    $target = "$1.o";    if ( defined $opt{'t'} ) { $target = "$opt{'t'}/$1.o"; }    print "$target : $f @{$file_modules{$f}} @{$file_includes{$f}}\n";}#--------------------------------------------------------------------------------------sub find_dependencies {    # Find dependencies of input file.    # Use'd Fortran 90 modules are returned in \@mods.    # Files that are "#include"d by the cpp preprocessor are returned in \@incs.    my( $file ) = @_;    my( @mods, @incs );    open(FH, $file)  or die "Can't open $file: $!\n";    while ( <FH> ) {	# Search for "#include" and strip filename when found.	if ( /^#include\s+[<"](.*)[>"]/ ) {	     push @incs, $1;	 } 	# Search for module dependencies.	elsif ( /^\s*USE\s+(\w+)/i ) {	    # Return dependency in the form of a .o version of the file that contains	    # the module.	    ($module = $1) =~ tr/a-z/A-Z/;	    if ( defined $module_files{$module} ) { 	        if ( defined $obj_dir ) {		    push @mods, "$obj_dir/$module_files{$module}.o";	        } else {	            push @mods, "$module_files{$module}.o";	        }	    }	}    }    close( FH );    return (\@mods, \@incs);}#--------------------------------------------------------------------------------------sub find_file {# Search for the specified file in the list of directories in the global# array @file_paths.  Return the first occurance found, or the null string if# the file is not found.    my($file) = @_;    my($dir, $fname);    foreach $dir (@file_paths) {	$fname = "$dir/$file";	if ( -f  $fname ) { return $fname; }    }    return '';  # file not found}#--------------------------------------------------------------------------------------sub rm_duplicates {# Return a list with duplicates removed.    my ($in) = @_;       # input arrary reference    my @out = ();    my $i;    my %h = ();    foreach $i (@$in) {	$h{$i} = '';    }    @out = keys %h;    return \@out;}#--------------------------------------------------------------------------------------sub usage {    ($ProgName = $0) =~ s!.*/!!;            # name of program    die <<EOFSYNOPSIS     $ProgName [-t dir] [-w] Filepath SrcfilesOPTIONS     -t dir          Target directory.  If this option is set the .o files that are          targets in the dependency rules have the form dir/file.o.     -w   Print warnings to STDERR about files or dependencies not found.ARGUMENTS     Filepath is the name of a file containing the directories (one per      line) to be searched for dependencies.  Srcfiles is the name of a     file containing the names of files (one per line) for which     dependencies will be generated.EOF}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
jlzzjlzz亚洲女人18| 国产精品夜夜嗨| 欧美日韩精品欧美日韩精品一| 欧美videofree性高清杂交| 亚洲伦在线观看| 国产综合久久久久影院| 欧美日韩黄视频| 自拍偷拍欧美精品| 丁香婷婷深情五月亚洲| 欧美成人高清电影在线| 亚洲成年人影院| 色狠狠色噜噜噜综合网| 中文字幕欧美三区| 国产一区二区在线免费观看| 538在线一区二区精品国产| 亚洲欧美偷拍三级| www.日韩精品| 欧美国产一区在线| 国产一本一道久久香蕉| 日韩欧美电影在线| 日韩国产欧美视频| 欧美区视频在线观看| 一级精品视频在线观看宜春院| 成人av免费在线观看| 国产人妖乱国产精品人妖| 国产一区三区三区| 欧美va日韩va| 国精产品一区一区三区mba桃花 | 欧美日韩高清一区二区三区| 亚洲情趣在线观看| 99国产精品久久久久久久久久 | 精品国产91久久久久久久妲己 | 日韩激情在线观看| 欧美久久久久久蜜桃| 亚洲成人动漫av| 欧美日韩国产美| 首页亚洲欧美制服丝腿| 在线播放日韩导航| 美洲天堂一区二卡三卡四卡视频| 7777女厕盗摄久久久| 免费观看成人av| 精品国产髙清在线看国产毛片| 久久99蜜桃精品| 久久色中文字幕| 国产精品主播直播| 欧美激情综合在线| 成人av网站在线观看| 国产精品二三区| 在线免费视频一区二区| 无码av免费一区二区三区试看| 在线不卡的av| 久久国产三级精品| 国产日韩欧美精品综合| 成人动漫av在线| 亚洲卡通动漫在线| 欧美日韩在线直播| 久久精品国产一区二区三区免费看 | 经典三级在线一区| 国产日韩欧美a| 91亚洲国产成人精品一区二三 | 肉色丝袜一区二区| 精品日产卡一卡二卡麻豆| 国产麻豆精品久久一二三| 日本一区二区久久| 欧洲精品一区二区| 日韩国产高清在线| 久久久美女毛片| 91在线观看污| 日产精品久久久久久久性色| 精品成人a区在线观看| 成人影视亚洲图片在线| 亚洲欧美偷拍另类a∨色屁股| 欧美另类变人与禽xxxxx| 麻豆成人在线观看| 国产精品视频第一区| 91精彩视频在线观看| 日韩av一级电影| 中文字幕的久久| 欧美日韩高清一区| 国产99久久久久久免费看农村| 亚洲精品国产高清久久伦理二区| 日韩一区二区麻豆国产| 懂色av一区二区三区免费看| 一区二区成人在线| 久久久三级国产网站| 91高清视频在线| 精品亚洲porn| 亚洲日本一区二区| 欧美成人精品3d动漫h| 成+人+亚洲+综合天堂| 日韩国产在线观看一区| 久久久精品国产99久久精品芒果 | 国产在线播放一区| 亚洲一区二区三区精品在线| 精品欧美一区二区久久 | 国产69精品一区二区亚洲孕妇| 亚洲一区二区成人在线观看| 久久久蜜桃精品| 欧美日韩国产欧美日美国产精品| 国产高清亚洲一区| 日本亚洲一区二区| 亚洲男人天堂一区| 国产视频一区不卡| 91精品国产一区二区人妖| 不卡视频在线观看| 激情文学综合网| 亚洲国产精品久久久久秋霞影院| 国产亚洲成av人在线观看导航| 欧美浪妇xxxx高跟鞋交| 不卡的av网站| 国产一区二区免费视频| 午夜电影网一区| 成人免费在线观看入口| www成人在线观看| 欧美日韩极品在线观看一区| 欧美一级夜夜爽| 欧美性猛交xxxxxxxx| 丰满放荡岳乱妇91ww| 久久不见久久见免费视频7| 亚洲线精品一区二区三区八戒| 国产精品三级在线观看| 精品国产一区二区三区不卡| 欧美日韩日日摸| 色狠狠一区二区| av在线免费不卡| 福利电影一区二区三区| 久久电影网站中文字幕| 日韩主播视频在线| 亚洲国产日产av| 亚洲精品v日韩精品| 中文字幕在线不卡视频| 久久亚洲一区二区三区明星换脸| 4hu四虎永久在线影院成人| 欧美日韩一区三区| 91九色最新地址| 色先锋久久av资源部| 99精品视频免费在线观看| 成人综合日日夜夜| 高潮精品一区videoshd| 国产乱子轮精品视频| 精品一区二区三区在线观看国产| 日韩中文字幕一区二区三区| 亚洲一区二区三区精品在线| 亚洲人成网站色在线观看| 综合欧美亚洲日本| 综合亚洲深深色噜噜狠狠网站| 中文字幕av一区二区三区| 国产亚洲制服色| 久久久午夜精品理论片中文字幕| 精品国产乱码久久久久久浪潮 | 色综合久久六月婷婷中文字幕| av高清不卡在线| 91啦中文在线观看| 色婷婷综合久久久中文一区二区| 91蝌蚪porny九色| 色婷婷av一区二区三区软件 | 蜜桃av噜噜一区| 奇米色777欧美一区二区| 日韩高清中文字幕一区| 蜜臀精品一区二区三区在线观看| 青青草97国产精品免费观看 | 亚洲午夜免费福利视频| 亚洲第一福利一区| 青青草伊人久久| 韩日av一区二区| 国产98色在线|日韩| 风间由美一区二区三区在线观看 | 91污片在线观看| 在线中文字幕一区二区| 欧美日韩亚洲丝袜制服| 制服丝袜日韩国产| 日韩精品在线看片z| 久久久国产精品不卡| 国产精品久久看| 一区二区高清免费观看影视大全 | 亚洲柠檬福利资源导航| 亚洲一线二线三线久久久| 日韩二区在线观看| 激情综合色综合久久综合| 国产91对白在线观看九色| 91视频国产资源| 欧美精品一级二级三级| 精品少妇一区二区三区在线播放| 国产日韩三级在线| 亚洲免费在线视频一区 二区| 香蕉影视欧美成人| 韩国毛片一区二区三区| 成人av影视在线观看| 91国模大尺度私拍在线视频| 欧美一区二区三区日韩| 国产午夜亚洲精品羞羞网站| 亚洲视频精选在线| 日韩综合在线视频| 国产精品一品二品| 日本久久电影网| 日韩欧美国产精品一区| 国产精品丝袜黑色高跟| 亚洲成av人在线观看| 国产成人一级电影| 欧美午夜电影网|