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.

datatypes_switch

prints on STDOUT XS text for Core.xs.

generate_core_flags

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

generate_badval_init

prints on STDOUT XS text with badval initialisation, 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 csin exists.