]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - make/unit-cc.pl
Merge pull request #998 from SaberUK/master+fix-clang-builds
[user/henk/code/inspircd.git] / make / unit-cc.pl
index fbe36c4d2926674d5f57917bab1490d3f330dfc8..66e9b15dcc2356b4c035fc42042f1c5d039198eb 100755 (executable)
@@ -1,4 +1,24 @@
 #!/usr/bin/env perl
+
+#
+# InspIRCd -- Internet Relay Chat Daemon
+#
+#   Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
+#
+# This file is part of InspIRCd.  InspIRCd is free software: you can
+# redistribute it and/or modify it under the terms of the GNU General Public
+# License as published by the Free Software Foundation, version 2.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+
+
 use strict;
 use warnings;
 BEGIN { push @INC, $ENV{SOURCEPATH}; }
@@ -10,6 +30,22 @@ my $type = shift;
 my $out = shift;
 my $verbose = ($type =~ s/-v$//);
 
+## BEGIN HACK: REMOVE IN 2.2!
+sub read_config_cache {
+       my %cfg = ();
+       open(CACHE, '../.config.cache') or return %cfg;
+       while (my $line = <CACHE>) {
+               next if $line =~ /^\s*($|\#)/;
+               my ($key, $value) = ($line =~ /^(\S+)="(.*)"$/);
+               $cfg{$key} = $value;
+       }
+       close(CACHE);
+       return %cfg;
+}
+
+our %config = read_config_cache();
+## END HACK
+
 if ($type eq 'gen-ld') {
        do_static_find(@ARGV);
 } elsif ($type eq 'static-ld') {
@@ -32,7 +68,7 @@ exit 1;
 sub do_static_find {
        my @flags;
        for my $file (@ARGV) {
-               push @flags, getlinkerflags($file);
+               push @flags, get_property($file, 'LinkerFlags');
        }
        open F, '>', $out;
        print F join ' ', @flags;
@@ -77,12 +113,10 @@ sub do_compile {
        my $libs = '';
        my $binary = $ENV{RUNCC};
        if ($do_compile) {
-               $flags = $ENV{CXXFLAGS};
-               $flags =~ s/ -pedantic// if nopedantic($file);
-               $flags .= ' ' . getcompilerflags($file);
+               $flags = $ENV{CORECXXFLAGS} . ' ' . get_property($file, 'CompileFlags');
 
-               if ($file =~ m#(?:^|/)((?:m|cmd)_[^/. ]+)(?:\.cpp|/.*\.cpp)$#) {
-                       $flags .= ' -DMODNAME='.$1.'.so';
+               if ($file =~ m#(?:^|/)((?:m|core)_[^/. ]+)(?:\.cpp|/.*\.cpp)$#) {
+                       $flags .= ' -DMODNAME=\\"'.$1.'\\"';
                }
        } else {
                $binary = $ENV{RUNLD};
@@ -90,7 +124,7 @@ sub do_compile {
 
        if ($do_link) {
                $flags = join ' ', $flags, $ENV{PICLDFLAGS};
-               $libs = join ' ', getlinkerflags($file);
+               $libs = get_property($file, 'LinkerFlags');
        } else {
                $flags .= ' -c';
        }