⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 astxs

📁 Asterisk-1.4.4最新内核源代码
💻
字号:
#!/usr/bin/perlmy $astdir = $ENV{ASTSRC} || "/usr/src/asterisk";sub esystem($) {  my $cmd = shift;  print "$cmd\n";  system($cmd);}sub usage($) {  my $str = shift;  print "\n$str\n\n";  print "Usage $0 [ <module.c> [-set=<varname>:<value>] [-append=<varname>:<value>] [-install] ] | [-help]  \n\n";  print "varnames of interest:==============================================================================='INCLUDES' 'ASTLIBDIR' 'AGI_DIR' 'ASTVARRUNDIR' 'CC' 'ASTETCDIR' 'EXTOBJ''ASTSPOOLDIR' 'ASTLOGDIR' 'MODULES_DIR' 'ASTSBINDIR' 'ASTHEADERDIR' 'LDFLAGS''ASTVARLIBDIR' 'ASTBINDIR' 'INSTALL_PREFIX' 'ASTCONFPATH' 'ASTSRC' 'CFLAGS'===============================================================================";  exit;}my %avars = ();my %svars = ();my %vars = ();my %args = ();foreach(@ARGV) {  if(/^\-set=([^\:]+):(.*)/) {    $svars{$1} = $2;  }  elsif(/^\-append=([^\:]+):(.*)/) {    $avars{$1} .= " $2";  }  elsif(/^\-([^\=]+)=(.*)/) {    $args{$1} = $2;  }  elsif(/^\-([^\=]+)$/) {    $args{$1}++;  }  else {    push(@{$args{plain}},$_);  }}if($args{help} or $args{h}) {  usage "Help";}my $pwd = `/bin/pwd`;chomp($pwd);$vars{astdir} ||= $astdir;chdir($vars{astdir});my $type = $args{type} || "apps";my $env = `make ${type}_env`;chdir($pwd);foreach(split("\n",$env)) {    my($var,$val) = /([^\=]+)\=(.*)/;    $vars{$var} = $val;}foreach(keys %svars) {    $vars{$_} = $svars{$_};}foreach(keys %avars) {    $vars{$_} .= $avars{$_};}if($args{print}) {    print "$vars{$args{print}}";    exit;}my($base,$ext);my $cfile = $args{plain}->[0];if($cfile =~ /http:\/\/.*?\/([^\/]+)$/) {  my $f = $1;  if(! -d "/tmp/astbld") {    mkdir("/tmp/astbld");  }  my $pwd = `pwd`;  chomp $pwd;  chdir("/tmp/astbld");  system("/bin/rm $f");  system("wget $cfile");  chdir($pwd);  $cfile = "/tmp/astbld/$f";}if($cfile) {  ($base,$ext) = $cfile =~ /^([^\.]+)\.(.+)/;}if($ext eq "so") {  unless($args{linkonly}) {    $args{installonly}++;  }} elsif($ext ne "c") {  usage "Bad Input File";}my $bad=0;$bad = esystem("$vars{CC} -I${astdir} -I${astdir}/include $vars{CFLAGS} -c ${base}.c -o ${base}.o") unless($args{linkonly} or $args{installonly});exit -1 if($bad);exit if($args{nolink});$vars{MAINOBJ} ||= "$base.o";$bad = esystem("$vars{CC} $vars{SOLINK} -o ${base}.so $vars{LDFLAGS} $vars{MAINOBJ} $vars{EXTOBJ}") if(!$bad and !$args{installonly});exit -1 if($bad);if(($args{install} or $args{installonly}) and $vars{MODULES_DIR}) {  my $file = "${base}.so";  my ($mod) = $file =~ /([^\/]*)$/;  if($args{autoload}) {    $bad = esystem("/usr/sbin/asterisk -rx 'unload $mod'");  }  $bad = esystem("/bin/cp -p ${base}.so $vars{MODULES_DIR}") if(!$bad);    if($args{autoload}) {    $bad = esystem("/usr/sbin/asterisk -rx 'load $mod'");  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -