NAME

PDL::Core::Dev - PDL development module

DESCRIPTION

This module encapsulates most of the stuff useful for PDL development and is often used from within Makefile.PL's.

SYNOPSIS

use PDL::Core::Dev;

FUNCTIONS

isbigendian

Is the machine big or little endian?

print "Your machins is big endian.\n" if isbigendian();

returns 1 if the machine is big endian, 0 if little endian, or dies if neither. It uses the byteorder element of perl's %Config array.

my $retval = isbigendian();

a perl configure clone

if (trylink 'libGL', '', 'char glBegin(); glBegin();', '-lGL') {
  $libs = '-lGLU -lGL';
  $have_GL = 1;
} else {
  $have_GL = 0;
}
$maybe =
  trylink 'libwhatever', $inc, $body, $libs, $cflags,
      {MakeMaker=>1, Hide=>0, Clean=>1};

Try to link some C-code making up the body of a function with a given set of library specifiers

return 1 if successful, 0 otherwise

trylink $infomsg, $include, $progbody, $libs [,$cflags,{OPTIONS}];

Takes 4 + 2 optional arguments.

generate_core_flags

prints on STDOUT XS text with core flags, for Core.xs.

got_complex_version

PDL::Core::Dev::got_complex_version($func_name, $num_params)

For a given function appearing in C99's complex.h, will return a boolean of whether the system being compiled on has the complex version of that. E.g. for sin, will test whether csinl exists (before 2.069, would only check for csin, causing build failures on non-C99 compliant libc which mandates long-double versions).