X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=make%2Funit-cc.pl;h=489b46ff93eada94a75d5d28159dc62db0a52444;hb=490446040d80d144e64ddf8e52515df1f40f1fd7;hp=d4786b8fee330213e4d0d087ded9c9f038f5f0fc;hpb=d5e36aa2b2ca26fe689ae9e29c74b3565dd018c7;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/make/unit-cc.pl b/make/unit-cc.pl index d4786b8fe..489b46ff9 100755 --- a/make/unit-cc.pl +++ b/make/unit-cc.pl @@ -4,6 +4,8 @@ use warnings; BEGIN { push @INC, $ENV{SOURCEPATH}; } use make::configure; +chdir $ENV{BUILDPATH}; + my $out = shift; my $verbose; @@ -11,6 +13,14 @@ if ($out =~ /^-/) { $_ = $out; $out = shift; $verbose = /v/; + if (/f/) { + do_static_find(@ARGV); + exit; + } + if (/l/) { + do_static_link(@ARGV); + exit; + } } my $file = shift; @@ -30,3 +40,31 @@ my $execstr = "$ENV{RUNCC} $flags -o $out $file"; 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 = ; + chomp $libs; + $execstr .= ' '.$libs; + close F; + } else { + $execstr .= ' '.$_; + } + } + print "$execstr\n" if $verbose; + exec $execstr; + exit 1; +}