#!/usr/bin/env perl
-
#
# InspIRCd -- Internet Relay Chat Daemon
#
+# Copyright (C) 2019 iwalkalone <iwalkalone69@gmail.com>
+# Copyright (C) 2014 Attila Molnar <attilamolnar@hush.com>
+# Copyright (C) 2013, 2015-2016, 2018 Sadie Powell <sadie@witchery.services>
+# Copyright (C) 2012 Robby <robby@chatbelgie.be>
# Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
#
# This file is part of InspIRCd. InspIRCd is free software: you can
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);
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 = <F>;
- 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;
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;
}