Inline-FAQ man page on Peanut

Man page or keyword search:  
man Server   7435 pages
apropos Keyword Search (all sections)
Output format
Peanut logo
[printable version]

Inline-FAQ(3)	      User Contributed Perl Documentation	 Inline-FAQ(3)

NAME
       Inline-FAQ - The Inline FAQ

DESCRIPTION
       Welcome to the official Inline FAQ. In this case, FAQ means:

	   Formerly Answered Questions

       This is a collection of old, long-winded emails that myself and others
       have sent to the Inline mailing list. (inline@perl.org) They have been
       reviewed and edited for general Inline edification. Some of them may be
       related to a specific language. They are presented here in a
       traditional FAQ layout.

General Inline
       Since there is only a handful of content so far, all FAQs are currently
       under this heading.

       How disposable is a .Inline or _Inline directory?

       I probably need to be more emphatic about the roll of _Inline/ cache
       directories. Since they are created automatically, they are completely
       disposable. I delete them all the time. And it is fine to have a
       different one for each project. In fact as long as you don't have
       ~/.Inline/ defined, Inline will create a new ./_Inline directory. You
       can move that to ./.Inline and it will continue to work if you want to
       give it more longevity and hide it from view. There is a long
       complicated list of rules about how [_.]Inline/ directories are
       used/created. But it was designed to give you the most
       flexibility/ease-of-use. Never be afraid to nuke 'em. They'll just pop
       right back next time. :)

       Whatever happened to the SITE_INSTALL option?

       SITE_INSTALL is gone. I was going to leave it in and change the
       semantics, but thought it better to remove it, so people wouldn't try
       to use it the old way. There is now _INSTALL_ (but you're not supposed
       to know that :). It works magically through the use of
       Inline::MakeMaker. I explained this earlier but it's worth going
       through again because it's the biggest change for 0.40. Here's how to
       'permanently' install an Inline extension (Inline based module) with
       0.40:

	   1) Create a module with Inline.
	   2) Test it using the normal/local _Inline/ cache.
	   3) Create a Makefile.PL (like the one produced by h2xs)
	   4) Change 'use ExtUtils::MakeMaker' to 'use Inline::MakeMaker'
	   5) Change your 'use Inline C => DATA' to 'use Inline C => DATA => NAME
	      => Foo => VERSION => 1.23'
	   6) Make sure NAME matches your package name ('Foo'), or begins with
	      'Foo::'.
	   7) Make sure VERSION matches $Foo::VERSION. This must be a string (not a
	      number) matching /^\d\.\d\d$/
	   8) Do the perl/make/test/install dance (thanks binkley :)

       With Inline 0.41 (or thereabouts) you can skip steps 3 & 4, and just
       say 'perl -MInline=INSTALL ./Foo.pm'. This will work for non-Inline
       modules too. It will become the defacto standard (since there is no
       easy standard) way of installing a Perl module. It will allow
       Makefile.PL parameters 'perl -MInline=INSTALL ./Foo.pm -
       PREFIX=/home/ingy/perl' and things like that. It will also make use of
       a MANIFEST if you provide one.

       How do I create a binary distribution using Inline?

       I've figured out how to create and install a PPM binary distribution;
       with or without distributing the C code! And I've decided to share it
       with all of you :)

       NOTE: Future versions of Inline will make this process a one line
       command. But for now just use this simple recipe.

       ---

       The Inline 0.40 distribution comes with a sample extension module
       called Math::Simple. Theoretically you could distribute this module on
       CPAN. It has all the necessary support for installation. You can find
       it in Inline-0.40/modules/Math/Simple/. Here are the steps for
       converting this into a binary distribution *without* C source code.

       NOTE: The recipient of this binary distribution will need to have the
       PPM.pm module installed. This module requires a lot of other CPAN
       modules. ActivePerl (available for Win32, Linux, and Solaris) has all
       of these bundled. While ActivePerl isn't required, it makes things (a
       lot) easier.

       1) cd Inline-0.40/Math/Simple/

       2) Divide Simple.pm into two files:

	   ---8<--- (Simple.pm)
	   package Math::Simple;
	   use strict;
	   require Exporter;
	   @Math::Simple::ISA = qw(Exporter);
	   @Math::Simple::EXPORT = qw(add subtract);
	   $Math::Simple::VERSION = '1.23';

	   use Inline (C => 'src/Simple.c' =>
		       NAME => 'Math::Simple',
		       VERSION => '1.23',
		      );
	   1;
	   ---8<---
	   ---8<--- (src/Simple.c)
	   int add (int x, int y) {
	       return x + y;
	   }

	   int subtract (int x, int y) {
	       return x - y;
	   }
	   ---8<---

       So now you have the Perl in one file and the C in the other. The C code
       must be in a subdirectory.

       3) Note that I also changed the term 'DATA' to the name of the C file.
       This will work just as if the C were still inline.

       4) Run 'perl Makefile.PL'

       5) Run 'make test'

       6) Get the MD5 key from 'blib/arch/auto/Math/Simple/Simple.inl'

       7) Edit 'blib/lib/Math/Simple.pm'. Change 'src/Simple.c' to
       '02c61710cab5b659efc343a9a830aa73' (the MD5 key)

       8) Run 'make ppd'

       9) Edit 'Math-Simple.ppd'. Fill in AUTHOR and ABSTRACT if you wish.
       Then change:

	   <CODEBASE HREF="" />

       to

	   <CODEBASE HREF="Math-Simple.tar.gz" />

       10) Run:

	   tar cvf Math-Simple.tar blib
	   gzip --best Math-Simple.tar

       11) Run:

	   tar cvf Math-Simple-1.23.tar Math-Simple.ppd Math-Simple.tar.gz
	   gzip --best Math-Simple-1.23.tar

       12) Distribute Math-Simple-1.23.tar.gz with the following instructions:

       A) Run:

	   gzip -d Math-Simple-1.23.tar.gz
	   tar xvzf Math-Simple-1.23.tar

       B) Run 'ppm install Math-Simple.ppd'

       C) Delete Math-Simple.tar and Math-Simple.ppd.

       D) Test with:

	   perl -MMath::Simple -le 'print add(37, 42)'

       ---

       That's it. The process should also work with zip instead of tar, but I
       haven't tried it.

       The recipient of the binary must have Perl built with a matching
       architecture. Luckily, ppm will catch this.

       For a binary dist *with* C source code, simply omit steps 2, 3, 6, and
       7.

       If this seems too hard, then in a future version you should be able to
       just type:

	   make ppm

perl v5.10.0			  2002-10-25			 Inline-FAQ(3)
[top]

List of man pages available for Peanut

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net