Algorithm-CP-IZ

 view release on metacpan or  search on metacpan

Makefile.PL  view on Meta::CPAN

  # files to replace their "fallback" counterparts before distributing your
  # changes.
  my @names = (
      qw(
CS_ERR_NONE
CS_ERR_GETVALUE
CS_ERR_OVERFLOW
CS_ERR_NO_MEMORY
CS_VALUE_SELECTOR_MIN_TO_MAX
CS_VALUE_SELECTOR_MAX_TO_MIN
CS_VALUE_SELECTOR_LOWER_AND_UPPER
CS_VALUE_SELECTOR_UPPER_AND_LOWER
CS_VALUE_SELECTOR_MEDIAN_AND_REST
CS_VALUE_SELECTION_EQ
CS_VALUE_SELECTION_NEQ
CS_VALUE_SELECTION_LE
CS_VALUE_SELECTION_LT
CS_VALUE_SELECTION_GE
CS_VALUE_SELECTION_GT
IZ_VERSION_MAJOR
IZ_VERSION_MINOR
IZ_VERSION_PATCH
      ));

  ExtUtils::Constant::WriteConstants(
                                     NAME         => 'Algorithm::CP::IZ',
                                     NAMES        => \@names,
                                     DEFAULT_TYPE => 'IV',
                                     C_FILE       => 'const-c.inc',
                                     XS_FILE      => 'const-xs.inc',
                                  );

}
else {
  use File::Copy;
  use File::Spec;
  foreach my $file ('const-c.inc', 'const-xs.inc') {
    my $fallback = File::Spec->catfile('fallback', $file);
    copy ($fallback, $file) or die "Can't copy $fallback to $file: $!";
  }
}

# VAdd
unless (-f "cs_vadd.inc") {
    open (my $fh, ">", "cs_vadd.inc") or die "cs_vadd.inc: cannot create: $!";

    for my $i (3..10) {
	print $fh "void*\n";
	print $fh "cs_VAdd$i(";

	print $fh join(", ", map { "vint$_" } (1..$i));

	print $fh ")\n";

	print $fh map { "    void* vint$_\n" } (1..$i);

	print $fh "CODE:\n";
	print $fh "    RETVAL = cs_VAdd($i, ";
	print $fh join(", ", map { "vint$_" } (1..$i));
	print $fh ");\n";
	print $fh "OUTPUT:\n";
	print $fh "    RETVAL\n\n";
    }
    close($fh);
}

# VMul
unless (-f "cs_vmul.inc") {
    open (my $fh, ">", "cs_vmul.inc") or die "cs_vmul.inc: cannot create: $!";

    for my $i (3..10) {
	print $fh "void*\n";
	print $fh "cs_VMul$i(";

	print $fh join(", ", map { "vint$_" } (1..$i));

	print $fh ")\n";

	print $fh map { "    void* vint$_\n" } (1..$i);

	print $fh "CODE:\n";
	print $fh "    RETVAL = cs_VMul($i, ";
	print $fh join(", ", map { "vint$_" } (1..$i));
	print $fh ");\n";
	print $fh "OUTPUT:\n";
	print $fh "    RETVAL\n\n";
    }
    close($fh);
}

# VSub
unless (-f "cs_vsub.inc") {
    open (my $fh, ">", "cs_vsub.inc") or die "cs_vsub.inc: cannot create: $!";

    for my $i (3..10) {
	print $fh "void*\n";
	print $fh "cs_VSub$i(";

	print $fh join(", ", map { "vint$_" } (1..$i));

	print $fh ")\n";

	print $fh map { "    void* vint$_\n" } (1..$i);

	print $fh "CODE:\n";
	print $fh "    RETVAL = cs_VSub($i, ";
	print $fh join(", ", map { "vint$_" } (1..$i));
	print $fh ");\n";
	print $fh "OUTPUT:\n";
	print $fh "    RETVAL\n\n";
    }
    close($fh);
}

# Reif*
unless (-f "cs_reif2.inc") {
    open (my $fh, ">", "cs_reif2.inc") or die "cs_reif2.inc: cannot create: $!";

    my @names = qw(Eq Neq Lt Le Gt Ge);

    for my $name (@names) {
	print $fh "void*\n";
	print $fh "cs_Reif$name(vint1, vint2)\n";
	print $fh "    void* vint1\n";
	print $fh "    void* vint2\n";
	print $fh "CODE:\n";
	print $fh "    RETVAL = cs_Reif$name(vint1, vint2);\n";
	print $fh "OUTPUT:\n";
	print $fh "    RETVAL\n\n";
    }

    my @names2 = map { uc $_ } @names;

    for my $name (@names2) {
	print $fh "void*\n";
	print $fh "cs_Reif$name(vint, val)\n";
	print $fh "    void* vint\n";
	print $fh "    int val\n";
	print $fh "CODE:\n";
	print $fh "    RETVAL = cs_Reif$name(vint, val);\n";
	print $fh "OUTPUT:\n";
	print $fh "    RETVAL\n\n";
    }

    close($fh);
}



( run in 1.002 second using v1.01-cache-2.11-cpan-39bf76dae61 )