/usr/local/CPAN/Language-SIOD/Makefile.PL


#!/usr/bin/perl

use strict;
use Config;
use IPC::Open3;
use inc::Module::Install;

name('Language-SIOD');
version_from('lib/Language/SIOD.pm');
abstract_from('lib/Language/SIOD.pm');
author('Autrijus Tang <autrijus@autrijus.org>');
license('perl');
can_cc() or die "This module requires a C compiler";

if (-e 'inc/.author') {
    my ($swig_version) = (run('swig', '-version') =~ /([\d\.]+)/g)
        or die "SWIG not found - http://www.swig.org/";

    (v($swig_version) ge v('1.3.24'))
        or die "SWIG 1.3.24+ not found - http://www.swig.org/";

    system(
        'swig',
        qw(-noproxy -module Language::SIOD -includeall -exportall -perl5 siod.i)
    );

    unlink('lib/Language/SIOD_in.pm');
    rename('SIOD.pm' => 'lib/Language/SIOD_in.pm');
}

makemaker_args(
    OBJECT => join(' ', map "$_$Config{obj_ext}", qw(siod_wrap sliba slibu)),
);

WriteAll( sign => 1 );

sub v {
    my $v = shift;
    join('', map chr, $v =~ /(\d+)/g);
}

sub run {
    my ($wtr, $rdr, $err);

    local $SIG{__WARN__} = sub { 1 };

    my $pid = open3($wtr, $rdr, $err, @_);
    my $out = join('', map $_ && readline($_), $rdr, $err);
    chomp $out;
    return $out;
}