The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use 5.006;
use strict;
use warnings;
use ExtUtils::MakeMaker;


my $includes = '/usr/include';
my @define;
my @c = ('parse_keyword.c', 'compute_crc32.c', <*.c>);
my %exclude;
if ($^O eq 'MSWin32') {
    ++$exclude{'socket_posix.c'};
} else {
    ++$exclude{'socket_win32.c'};
    ++$exclude{'addrinfo_hostent.c'};

    if (-f "$includes/poll.h") {
        push @define, '-DHAVE_POLL_H';
        ++$exclude{'poll_select.c'};
    } elsif (-f "$includes/sys/poll.h") {
        push @define, '-DHAVE_SYS_POLL_H';
        ++$exclude{'poll_select.c'};
    }
}

my @object = grep { not exists $exclude{$_} } @c;
map { s/\.c$/\$(OBJ_EXT)/ } @object;


# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
WriteMakefile(
    NAME              => 'Cache::Memcached::Fast::libclient',
    VERSION_FROM      => '../lib/Cache/Memcached/Fast.pm',
    AUTHOR            => 'Tomash Brechko <tomash.brechko@gmail.com>',
    LIBS              => [''], # e.g., '-lm'
    DEFINE            => "@define", # e.g., '-DHAVE_SOMETHING'
    INC               => '-I.', # e.g., '-I. -I/usr/include/other'
    OBJECT            => "@object",
    # The following line prevents installation of libclient.a.
    SKIP              => [qw(all static static_lib dynamic dynamic_lib)],
    clean             => { FILES => 'compute_crc32.c compute_crc32.h'
                               . ' parse_keyword.c parse_keyword.h' },
);

sub MY::top_targets {
'
all :: static

pure_all :: static

static :: libclient$(LIB_EXT)

libclient$(LIB_EXT): $(OBJECT)
	$(AR) cr libclient$(LIB_EXT) $(OBJECT)
	$(RANLIB) libclient$(LIB_EXT)

parse_keyword.c parse_keyword.h :: genparser.pl reply.kw
	$(PERL) genparser.pl reply.kw parse_keyword.c parse_keyword.h

compute_crc32.c compute_crc32.h :: gencrc32.pl
	$(PERL) gencrc32.pl compute_crc32.c compute_crc32.h
'
}