#!/usr/bin/perl
use strict;
use warnings;
-BEGIN { push @INC, '..'; }
+BEGIN { push @INC, $ENV{SOURCEPATH}; }
use make::configure;
-my $file = shift;
+chdir $ENV{BUILDPATH};
+
+my $out = shift;
my $verbose;
-if ($file =~ /^-/) {
- $_ = $file;
- $file = shift;
+if ($out =~ /^-/) {
+ $_ = $out;
+ $out = shift;
$verbose = /v/;
+ if (/f/) {
+ do_static_find(@ARGV);
+ exit;
+ }
+ if (/l/) {
+ do_static_link(@ARGV);
+ exit;
+ }
}
-my $out = shift;
+my $file = shift;
-my $cflags = nopedantic($file) ? $ENV{NICEFLAGS} : $ENV{FLAGS};
+my $cflags = $ENV{CXXFLAGS};
+$cflags =~ s/ -pedantic// if nopedantic($file);
$cflags .= ' ' . getcompilerflags($file);
my $flags;
print "$execstr\n" if $verbose;
exec $execstr;
exit 1;
+
+sub do_static_find {
+ my @flags;
+ for my $file (@ARGV) {
+ push @flags, getlinkerflags($file);
+ }
+ open F, '>', $out;
+ print F join ' ', @flags;
+ close F;
+}
+
+sub do_static_link {
+ my $execstr = "$ENV{RUNCC} -o $out $ENV{CORELDFLAGS} $ENV{LDLIBS}";
+ for (@ARGV) {
+ if (/\.cmd$/) {
+ open F, '<', $_;
+ my $libs = <F>;
+ chomp $libs;
+ $execstr .= ' '.$libs;
+ close F;
+ } else {
+ $execstr .= ' '.$_;
+ }
+ }
+ print "$execstr\n" if $verbose;
+ exec $execstr;
+ exit 1;
+}