5 use ExtUtils::MakeMaker;
8 eval { require Config };
9 die 'OS unsupported' if $@;
10 Config->import(qw/%Config/);
11 eval { require File::Spec };
12 die 'OS unsupported' if $@;
15 # Inspired from Module::Install::Can
16 print "Checking for a valid C compiler in the PATH... ";
17 my @ccs = ($Config{cc});
18 unshift @ccs, $ENV{CC} if $ENV{CC};
22 for my $dir (split /$Config{path_sep}/, $ENV{PATH}) {
23 my $abs = File::Spec->catfile($dir, $c);
24 if (-x $abs or MM->maybe_command($abs)) {
38 my $arch = $Config{archname} || '';
39 my ($cpu) = $arch =~ /^([^-]+)/;
43 if (unpack("h*", pack("s", 0x1234)) != 4321) {
44 print "Forcing unit size of 8 on non-little-endian systems.\n";
46 my $align = int($Config{alignbytes} || 0);
47 print "Checking unit size in bits... ";
49 push @s, 64 unless $^O eq 'MSWin32';
51 my $size = int($Config{'u' . $_ . 'size'} || 0);
52 $unit = $_ if $size && $size <= $align;
56 push @DEFINES, DEFINE => '-DBV_UNIT="'
57 . ($unit == 64 ? 'uint64_t' : 'U' . $unit)
59 . ' -DSVU_SIZE=' . $unit;
61 my $BUILD_REQUIRES = {
63 'ExtUtils::MakeMaker' => 0,
69 my $tometa = ' >> $(DISTVNAME)/META.yml;';
70 my $build_req = 'echo "build_requires:" ' . $tometa;
71 foreach my $mod ( sort { lc $a cmp lc $b } keys %$BUILD_REQUIRES ) {
72 my $ver = $BUILD_REQUIRES->{$mod};
73 $build_req .= sprintf 'echo " %-30s %s" %s', "$mod:", $ver, $tometa;
79 NAME => 'Scalar::Vec::Util',
80 AUTHOR => 'Vincent Pit <perl@profvince.com>',
82 VERSION_FROM => 'lib/Scalar/Vec/Util.pm',
83 ABSTRACT_FROM => 'lib/Scalar/Vec/Util.pm',
93 PREOP => 'pod2text lib/Scalar/Vec/Util.pm > $(DISTVNAME)/README; '
95 COMPRESS => 'gzip -9f', SUFFIX => 'gz'
97 clean => { FILES => 'Scalar-Vec-Util-* *.gcov *.gcda *.gcno cover_db' },
105 my $cv = join ' -coverage ', 'cover',
106 qw/statement branch condition path subroutine time/;