diff options
Diffstat (limited to 'contrib/scripts/astxs')
-rwxr-xr-x | contrib/scripts/astxs | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/contrib/scripts/astxs b/contrib/scripts/astxs index 36cdad350..42c143ee9 100755 --- a/contrib/scripts/astxs +++ b/contrib/scripts/astxs @@ -117,19 +117,31 @@ if($cfile =~ /http:\/\/.*?\/([^\/]+)$/) { if($cfile) { - ($base,$ext) = $cfile =~ /^([^\.]+)\.(.)/; + ($base,$ext) = $cfile =~ /^([^\.]+)\.(.+)/; } -if($ext ne "c") { +if($ext eq "so") { + unless($args{linkonly}) { + $args{installonly}++; + } +} elsif($ext ne "c") { usage "Bad Input File"; } + my $bad=0; -$bad = esystem("$vars{CC} $vars{CFLAGS} -c ${base}.c -o ${base}.o"); -$bad = esystem("$vars{CC} $vars{SOLINK} -o $vars{LDFLAGS} ${base}.so $base.o $vars{EXTOBJ}") if(!$bad); +$bad = esystem("$vars{CC} $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 $vars{LDFLAGS} ${base}.so $vars{MAINOBJ} $vars{EXTOBJ}") if(!$bad and !$args{installonly}); +exit -1 if($bad); -if($args{install} and $vars{MODULES_DIR}) { +if(($args{install} or $args{installonly}) and $vars{MODULES_DIR}) { my $file = "${base}.so"; my ($mod) = $file =~ /([^\/]*)$/; |