X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=make%2Funit-cc.pl;h=f4fa5a650a6fddfc513fe8348d6c679062d5da45;hb=c05f81cac83e80c7727594e3929e0709eccca689;hp=1cf6cf86601f2cd0d1b34001d4f7f07148c7d94a;hpb=c6a508a3da977041909f18f77d6e8fea942512cf;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/make/unit-cc.pl b/make/unit-cc.pl index 1cf6cf866..f4fa5a650 100755 --- a/make/unit-cc.pl +++ b/make/unit-cc.pl @@ -1,8 +1,11 @@ #!/usr/bin/env perl - # # InspIRCd -- Internet Relay Chat Daemon # +# Copyright (C) 2019 iwalkalone +# Copyright (C) 2014 Attila Molnar +# Copyright (C) 2013, 2015-2016, 2018, 2021 Sadie Powell +# Copyright (C) 2012 Robby # Copyright (C) 2009-2010 Daniel De Graaf # # This file is part of InspIRCd. InspIRCd is free software: you can @@ -19,16 +22,15 @@ # -BEGIN { - push @INC, $ENV{SOURCEPATH}; - require 5.10.0; -} - +use v5.10.0; use strict; use warnings FATAL => qw(all); +use File::Basename qw(dirname); use File::Spec::Functions qw(abs2rel); +use FindBin qw($RealDir); +use lib dirname $RealDir; use make::console; use make::directive; @@ -37,11 +39,7 @@ chdir $ENV{BUILDPATH}; my $type = shift; my $out = shift; -if ($type eq 'gen-ld') { - do_static_find(@ARGV); -} elsif ($type eq 'static-ld') { - do_static_link(@ARGV); -} elsif ($type eq 'core-ld') { +if ($type eq 'core-ld') { do_core_link(@ARGV); } elsif ($type eq 'link-dir') { do_link_dir(@ARGV); @@ -59,9 +57,9 @@ exit 1; sub message($$$) { my ($type, $file, $command) = @_; if ($ENV{INSPIRCD_VERBOSE}) { - print "$command\n"; + say $command; } else { - print_format "\t<|GREEN $type:|>\t\t$file\n"; + say console_format "\t<|GREEN $type:|>\t\t$file"; } } @@ -71,36 +69,6 @@ sub rpath($) { return $message; } -sub do_static_find { - my @flags; - for my $file (@ARGV) { - push @flags, rpath(get_directive($file, 'LinkerFlags', '')); - } - open F, '>', $out; - print F join ' ', @flags; - close F; - exit 0; -} - -sub do_static_link { - my $execstr = "$ENV{CXX} -o $out $ENV{CORELDFLAGS}"; - my $link_flags = ''; - for (@ARGV) { - if (/\.cmd$/) { - open F, '<', $_; - my $libs = ; - chomp $libs; - $link_flags .= ' '.$libs; - close F; - } else { - $execstr .= ' '.$_; - } - } - $execstr .= ' '.$ENV{LDLIBS}.' '.$link_flags; - message 'LINK', $out, $execstr; - exec $execstr; -} - sub do_core_link { my $execstr = "$ENV{CXX} -o $out $ENV{CORELDFLAGS} @_ $ENV{LDLIBS}"; message 'LINK', $out, $execstr; @@ -112,7 +80,7 @@ sub do_link_dir { for my $file (<$dir/*.cpp>) { $link_flags .= rpath(get_directive($file, 'LinkerFlags', '')) . ' '; } - my $execstr = "$ENV{CXX} -o $out $ENV{PICLDFLAGS} $link_flags @_"; + my $execstr = "$ENV{CXX} -o $out $ENV{PICLDFLAGS} @_ $link_flags"; message 'LINK', $out, $execstr; exec $execstr; }