The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package builder::MyBuilder;
use strict;
use warnings FATAL => 'all';
use 5.008005;
use base 'Module::Build::XSUtil';
use Config;
use File::Which qw(which);

sub new {
    my ( $class, %args ) = @_;
    my $self = $class->SUPER::new(
        %args,
        generate_ppport_h    => 'src/ppport.h',
        c_source             => 'src',
        xs_files             => { './src/Redis__Fast.xs' => './lib/Redis/Fast.xs', },
        include_dirs         => ['src', 'deps/hiredis'],
        extra_linker_flags => ["deps/hiredis/libhiredis$Config{lib_ext}"],
    );

    my $make;
    if ($^O =~ m/bsd$/ && $^O !~ m/gnukfreebsd$/) {
        my $gmake = which('gmake');
        unless (defined $gmake) {
            print "'gmake' is necessary for BSD platform.\n";
            exit 0;
        }
        $make = $gmake;
    } else {
        $make = $Config{make};
    }

    $self->do_system($make, '-C', 'deps/hiredis', 'static');
    return $self;
}

1;