The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Inline::Config - Set configuration options for Inline

SYNOPSIS

 BEGIN {
     use Inline;
     $Inline::Config::BUILD_PREFIX = '/tmp/Inline';
     $Inline::Config::INSTALL_PREFIX = '/home/ingy/Inline';
     $Inline::Config::FORCE_BUILD = 1;
     $Inline::Config::MAKEFILE{INC} = '-I/usr/include/other');
 }

or

 BEGIN {
     use Inline;
     Inline::Config::Build_Prefix('/tmp/Inline');
     Inline::Config::Install_Prefix('/home/ingy/Inline');
     Inline::Config::force_build(1);
     Inline::Config::makefile(INC => '-I/usr/include/other');
 }

or

 BEGIN {
     use Inline;
     my $ic = Inline::Config->new;
     $ic->build_prefix('/tmp/Inline');
     $ic->install_prefix('/home/ingy/Inline');
     $ic->force_build(1);
     $ic->makefile(INC => '-I/usr/include/other');
 }

or

 BEGIN {
     use Inline;
     Inline::Config->new
       ->build_prefix('/tmp/Inline')
       ->install_prefix('/home/ingy/Inline')
       ->force_build(1)
       ->makefile(INC => '-I/usr/include/other');
 }

DESCRIPTION

Inline::Config is a helper module for Inline.pm. It sets and saves all of Inline's configuration options and defaults.

Currently there are two categories of settings: global and makefile. Global settings are a collection of various options. See "Global Settings" below. Makefile settings are passed directly into the Makefile.PL file. See ExtUtils::MakeMaker for an (long) list of available options.

Methods

All of the settings are stored as global variables in the Inline::Config namespace and are spelled with capital letters. You can set them in several manners depending on your personal style (as shown in "SYNOPSIS" above).

 Direct:     $Inline::Config::BUILD_PREFIX = '/tmp/Inline';
 Function:   Inline::Config::Build_Prefix('/tmp/Inline');
 OO:         $ic->build_prefix('/tmp/Inline');
 Stacked OO: $ic->build_prefix('/tmp/Inline')->force_build(1);

When using the direct method, the name must be all capitals. When using the procedural methods, any case can be used.

Roll Your Own

Another option is to create your own Inline::Config.pm module and set the base options there. Install the module higher up in the @::INC path. Then you don't have to set the same options in all of your scripts. Use the PERL5LIB environment variable, if you don't have install access to @::INC on your system.

Global Settings

This is an alphabetical list of all the global settings currentlly available for Inline. Many of them include command line shortcuts.

AUTO_INCLUDE_C

Text to automatically prepend to your Inlined C code. Normally used for header files that you always want. Default:

 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
BUILD_PREFIX

Tells what directory Inline should install the compiled code under. This is a base directory. "make install" actually creates a bunch of other directories under this. (Default is generated by examining your system for the best possible location. Program dies if none is found.)

CLEAN_AFTER_BUILD

Tells Inline to remove the build files after compiling. You can also turn this option off from the command line with the special syntax "perl -MInline=NOCLEAN ...". (Default = 1)

CLEAN_BUILD_AREA

Tells Inline to remove any build directories that may be lying around in your build area. Normally these directories get removed immediately after a successful build. Exceptions are when the build fails, or when you use the NOCLEAN or REPORTBUG options. You can also turn this option on from the command line with the special syntax "perl -MInline=CLEAN ...". (Default = 0)

FORCE_BUILD

Forces the code to be recompiled, even if everything is up to date. You can also turn this option on from the command line with the special syntax "perl -MInline=FORCE ...". (Default = 0)

This is a very useful option when you want to know what's going on under the hood. It tells Inline to print helpful information to STDERR. Among the things that get printed is a list of which Inline functions were successfully bound to Perl. You can also set this option from the command line with the special syntax "perl -MInline=INFO ...". (Default = 0)

INSTALL_LIB

Tells what directory Inline should add to @::INC to find your compiled code. This is based off of "INSTALL_PREFIX", so you shouldn't need to set this directly.

NOTE - The code to calculate the INSTALL_LIB directory path is tricky, because it depends on what version of perl you have. If you have problems with functions not being found, you may need to set this yourself. Hopefully this will all get figured out soon.

INSTALL_PREFIX

Tells what directory Inline should install the compiled code under. This is a base directory. "make install" actually creates a bunch of other directories under this. (Default is generated by examining your system for the best possible location. Program dies if none is found.)

REPORTBUG

Puts Inline into 'REPORTBUG' mode, which does special processing when you want to report a bug. REPORTBUG also automatically forces a build, and doesn't clean up afterwards. This is so that you can tar and mail the build directory to me. REPORTBUG will print exact instructions on what to do. You can also set this option from the command line with the special syntax "perl -MInline=REPORTBUG ...". (Default = 0)

SITE_INSTALL

Says that compiled code should be installed in the Perl installation's "site_perl" directory. Use this to permanently install an Inlined module. You can also set this option from the command line with the special syntax "perl -MInline=SITE_INSTALL ...". (Default = 0)

TEMP_DIR

The temporary directory that "BUILD_PREFIX" and "INSTALL_PREFIX" are based off of. Setting this one, in effect, sets the other two. This directory must exist and be writable or Inline will croak.

If you do not set this, then Inline will attempt to set a reasonable default for you.

AUTHOR

Brian Ingerson <INGY@cpan.org>

COPYRIGHT

Copyright (c) 2000, Brian Ingerson. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the terms of the Perl Artistic License (see http://www.perl.com/perl/misc/Artistic.html)