X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=make%2Funit-cc.pl;h=489b46ff93eada94a75d5d28159dc62db0a52444;hb=490446040d80d144e64ddf8e52515df1f40f1fd7;hp=5110037ace2ce851c59980fb1b749aa05d1e3d8a;hpb=990e04bab51bf1c3771938b8f598272c1b31cdca;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/make/unit-cc.pl b/make/unit-cc.pl index 5110037ac..489b46ff9 100755 --- a/make/unit-cc.pl +++ b/make/unit-cc.pl @@ -1,21 +1,32 @@ #!/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; @@ -29,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; +}