Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

module::install::makefile(3pm) [debian man page]

Module::Install::Makefile(3pm)				User Contributed Perl Documentation			    Module::Install::Makefile(3pm)

NAME
Module::Install::MakeMaker - Extension Rules for ExtUtils::MakeMaker SYNOPSIS
In your Makefile.PL: use inc::Module::Install; WriteMakefile(); DESCRIPTION
This module is a wrapper around ExtUtils::MakeMaker. It exports two functions: "prompt" (an alias for "ExtUtils::MakeMaker::prompt") and "WriteMakefile". The "WriteMakefile" function will pass on keyword/value pair functions to "ExtUtils::MakeMaker::WriteMakefile". The required parameters "NAME" and "VERSION" (or "VERSION_FROM") are not necessary if it can find them unambiguously in your code. CONFIGURATION OPTIONS
This module also adds some Configuration parameters of its own: NAME The NAME parameter is required by ExtUtils::MakeMaker. If you have a single module in your distribution, or if the module name indicated by the current directory exists under lib/, this module will use the guessed package name as the default. If this module can't find a default for "NAME" it will ask you to specify it manually. VERSION ExtUtils::MakeMaker requires either the "VERSION" or "VERSION_FROM" parameter. If this module can guess the package's "NAME", it will attempt to parse the "VERSION" from it. If this module can't find a default for "VERSION" it will ask you to specify it manually. MAKE TARGETS
ExtUtils::MakeMaker provides you with many useful "make" targets. A "make" target is the word you specify after "make", like "test" for "make test". Some of the more useful targets are: o all This is the default target. When you type "make" it is the same as entering "make all". This target builds all of your code and stages it in the "blib" directory. o test Run your distribution's test suite. o install Copy the contents of the "blib" directory into the appropriate directories in your Perl installation. o dist Create a distribution tarball, ready for uploading to CPAN or sharing with a friend. o clean distclean purge Remove the files created by "perl Makefile.PL" and "make". o help Same as typing "perldoc ExtUtils::MakeMaker". This module modifies the behaviour of some of these targets, depending on your requirements, and also adds the following targets to your Makefile: o cpurge Just like purge, except that it also deletes the files originally added by this module itself. o chelp Short cut for typing "perldoc Module::Install". o distsign Short cut for typing "cpansign -s", for Module::Signature users to sign the distribution before release. SEE ALSO
Module::Install, CPAN::MakeMaker, CPAN::MakeMaker::Philosophy AUTHORS
Adam Kennedy <adamk@cpan.org> Audrey Tang <autrijus@autrijus.org> Brian Ingerson <INGY@cpan.org> COPYRIGHT
Some parts copyright 2008 - 2012 Adam Kennedy. Copyright 2002, 2003, 2004 Audrey Tang and Brian Ingerson. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.14.2 2012-03-01 Module::Install::Makefile(3pm)

Check Out this Related Man Page

ExtUtils::MakeMaker::Tutorial(3pm)			 Perl Programmers Reference Guide			ExtUtils::MakeMaker::Tutorial(3pm)

NAME
ExtUtils::MakeMaker::Tutorial - Writing a module with MakeMaker SYNOPSIS
use ExtUtils::MakeMaker; WriteMakefile( NAME => 'Your::Module', VERSION_FROM => 'lib/Your/Module.pm' ); DESCRIPTION
This is a short tutorial on writing a simple module with MakeMaker. Its really not that hard. The Mantra MakeMaker modules are installed using this simple mantra perl Makefile.PL make make test make install There are lots more commands and options, but the above will do it. The Layout The basic files in a module look something like this. Makefile.PL MANIFEST lib/Your/Module.pm That's all that's strictly necessary. There's additional files you might want: lib/Your/Other/Module.pm t/some_test.t t/some_other_test.t Changes README INSTALL MANIFEST.SKIP bin/some_program Makefile.PL When you run Makefile.PL, it makes a Makefile. That's the whole point of MakeMaker. The Makefile.PL is a simple program which loads ExtUtils::MakeMaker and runs the WriteMakefile() function to generate a Makefile. Here's an example of what you need for a simple module: use ExtUtils::MakeMaker; WriteMakefile( NAME => 'Your::Module', VERSION_FROM => 'lib/Your/Module.pm' ); NAME is the top-level namespace of your module. VERSION_FROM is the file which contains the $VERSION variable for the entire distribution. Typically this is the same as your top-level module. MANIFEST A simple listing of all the files in your distribution. Makefile.PL MANIFEST lib/Your/Module.pm File paths in a MANIFEST always use Unix conventions (ie. /) even if you're not on Unix. You can write this by hand or generate it with 'make manifest'. See ExtUtils::Manifest for more details. lib/ This is the directory where your .pm and .pod files you wish to have installed go. They are layed out according to namespace. So Foo::Bar is lib/Foo/Bar.pm. t/ Tests for your modules go here. Each test filename ends with a .t. So t/foo.t/ 'make test' will run these tests. The directory is flat, you cannot, for example, have t/foo/bar.t run by 'make test'. Tests are run from the top level of your distribution. So inside a test you would refer to ./lib to enter the lib directory, for example. Changes A log of changes you've made to this module. The layout is free-form. Here's an example: 1.01 Fri Apr 11 00:21:25 PDT 2003 - thing() does some stuff now - fixed the wiggy bug in withit() 1.00 Mon Apr 7 00:57:15 PDT 2003 - "Rain of Frogs" now supported README A short description of your module, what it does, why someone would use it and its limitations. CPAN automatically pulls your README file out of the archive and makes it available to CPAN users, it is the first thing they will read to decide if your module is right for them. INSTALL Instructions on how to install your module along with any dependencies. Suggested information to include here: any extra modules required for use the minimum version of Perl required if only works on certain operating systems MANIFEST.SKIP A file full of regular expressions to exclude when using 'make manifest' to generate the MANIFEST. These regular expressions are checked against each file path found in the distribution (so you're matching against "t/foo.t" not "foo.t"). Here's a sample: ~$ # ignore emacs and vim backup files .bak$ # ignore manual backups # # ignore CVS old revision files and emacs temp files Since # can be used for comments, # must be escaped. MakeMaker comes with a default MANIFEST.SKIP to avoid things like version control directories and backup files. Specifying your own will override this default. bin/ SEE ALSO
perlmodstyle gives stylistic help writing a module. perlnewmod gives more information about how to write a module. There are modules to help you through the process of writing a module: ExtUtils::ModuleMaker, Module::Install, PAR perl v5.16.2 2012-10-11 ExtUtils::MakeMaker::Tutorial(3pm)
Man Page