PDL::Core::Dev - PDL development module

- NAME
- DESCRIPTION
- SYNOPSIS
- FUNCTIONS

- isbigendian
- trylink

# 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;
       if ($^O =~ /win32/i) {
        warn "Win32 systems not yet supported. Will not build PDL::IO::Browser";
        write_dummy_make(unsupported('PDL::XXX','win32'));
        return;
       }

# 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();

## trylink

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, {MakeMaker=>1, Hide=>0};

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 [,{OPTIONS}];

Takes 4 + 1 optional argument.

- an informational message to print (can be empty)

- any commands to be included at the top of the generated C program (typically something like `#include "mylib.h"`)

- the body of the program (in function main)

- library flags to use for linking. Preprocessing by MakeMaker should be performed as needed (see options and example).

  OPTIONS
  MakeMaker
    Preprocess library in the way MakeMaker does things. This is advisable to ensure that your code will actually work after the link specs have been processed by MakeMaker.

  Hide
    Controls of linking output etc is hidden from the user or not. On by default.