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

NAME

make_ppm - make a PPM distribution

SYNOPSIS

   make_ppm [options] [Module | Distribution]

Options:

 [-z | --zip_archive]      : make a zip distribution
 [-f | --force]            : force remaking a distribution
 [-i | --ignore]           : ignore any failing test results
 [ --skip]                 : skip running the tests
 [-b | --binary] location  : specify the binary location
 [-n | --arch_sub]         : use \$Config{archname} as a subdirectory
 [-s | --script] script    : specify a script in the <INSTALL> field
 [-e | --exec] exec        : specify the executable to run the <INSTALL> script
 [-x | --add] file         : add file to the archive
 [-o | --os] os            : use os for the <OS> field
 [-a | --arch] arch        : use arch for the <ARCHITECTURE> field
 [-v | --version]          : print version information and exit
 [-h | --help]             : print this help screen
 [-r | --remove]           : remove the build directory after installation
 [-p | --program]  b=a     : specify "a" to be used for the "b" program
 [-A | --as]               : add Perl version number to ARCHITECTURE (>= 5.8)
 [-V | --ppmv]             : add version string to ppd and archive filenames
 [ --ppd ]  location       : copy the ppd to the specified location
 [ --ar ]   location       : copy the archive file to the specified location
 [ --zip ]   location      : copy the zipped file to the specified location
 [ --host]  host           : use the specified host for copying the ppm files
 [ --user]  user           : username to use when transferring ppm files
 [ --passwd] password      : password associated with user
 [ --cpan ]                : make a CPAN distribution
 [ --no_case ]             : for module searches, ignore case
 [ --no-case ]             : for module searches, ignore case
 [ --no_cfg ]              : do not read a .ppmcfg configuration file
 [ --no-remote-lookup]     : don't use external data sources for meta information
 [ --vsr]                  : add version string to the archive filename
 [ --vsp]                  : add version string to the ppd filename
 [ --zipdist]              : create a zip file of the .ppd and .tar.gz files
 [ --no-ppm4]              : don't add ppm4 extensions to the ppd file
 [ --no-html]              : don't generate html documentation

Additional Arguments:

   Module       : specify a module to fetch (requires CPAN.pm)
   Distribution : specify a distribution to fetch

With no arguments, make_ppm will build a distribution inside the current directory.

DESCRIPTION

make_ppm is an interface to the PPM::Make module, and is used to build a PPM (Perl Package Manager) distribution from a CPAN source distribution. See PPM::Make for a discussion.

Apart from the options described below, without any arguments make_ppm will assume it is inside an unpacked source distribution and make the corresponding PPM distribution. If it is given an argument of what looks like a module name (eg, Net::FTP), it will use CPAN.pm to look up the corresponding distribution and fetch and build it. Otherwise, additional arguments (eg, package.tar.gz, or http://someplace.org/package.tar.gz) will be interpreted as distributions to fetch and build.

Options can be read from a configuration file (see PPM::Make) and/or given as options to make_ppm, unless the no_cfg option is given. An example .ppmcfg file is

 [default]
 
 host = me.wherever.ca
 user = me
 passwd = whatever
 
 [ MSWin32-x86-multi-thread-5.8 ]
 
 binary = http://me.wherever.ca/ppms/x86/
 ppd = /usr/local/httpd/htdocs/ppms/
 ar = /usr/local/httpd/htdocs/ppms/x86/
 zip = /usr/local/httpd/htdocs/ppms/zips
 zipdist = 1
 reps = <<END
 http://theoryx5.uwinnipeg.ca/ppms/
 http://www.bribes.org/perl/ppm/
 http://ppm.activestate.com/PPMPackages/5.8-windows/
 END
 bundle = /usr/local/httpd/htdocs/ppms/bundles
 
 [ MSWin32-x86-multi-thread ]
 
 binary = http://me.wherever.ca/ppmpackages/x86/
 ppd = /usr/local/httpd/htdocs/ppmpackages/
 ar = /usr/local/httpd/htdocs/ppmpackages/x86/
 zip = /usr/local/httpd/htdocs/ppmpackages/zips
 zipdist = 1
 no_ppm4 = 1
 reps = <<END
 http://ppm.activestate.com/PPMPackages/5.6/
 http://theoryx5.uwinnipeg.ca/ppmpackages/
 http://www.bribes.org/perl/ppm/
 END
 bundle = /usr/local/httpd/htdocs/ppmpackages/bundles

In case of duplicates, the options to make_ppm take precedence. Available options include:

[-z | --zip]

By default, make_ppm will build a .tar.gz distribution if possible. This option forces a .zip distribution to be made.

[-f | --force]

By default, if make_ppm detects a blib/ directory, it will assume the distribution has already been made, and will not remake it. This option forces remaking the distribution.

[-i | --ignore]

By default, make_ppm, if it is building the distribution, will die if all tests do not pass. Turning on this option instructs make_ppm to ignore any test failures.

[ --skip ]

Setting this option will skip running any tests supplied with the package.

[-b | --binary] location

location is used as the value for the BINARY_LOCATION attribute passed to perl Makefile.PL, and is used in setting the HREF attribute of the CODEBASE field in the ppd file.

[-n | --arch_sub]

This option will insert the value of $Config{archname} (or the value of the -a option, if given) as a relative subdirectory in the HREF attribute of the CODEBASE field in the ppd file.

[-o | --os] os

If this option is specified, the value, if present, will be used instead of the default for the NAME attribute of the OS field of the ppd file. If no value is supplied, the OS field will not be included in the ppd file.

[-a | --arch] arch

If this option is specified, the value, if present, will be used instead of the default for the NAME attribute of the ARCHITECTURE field of the ppd file. If no value is specified, the ARCHITECTURE field will not be included in the ppd file.

[-s | --script] script

This will be used in the PPM_INSTALL_SCRIPT attribute passed to perl Makefile.PL, and arises in setting the value of the INSTALL field in the ppd file. If this begins with http:// or ftp://, so that the script is assumed external, this will be used as the HREF attribute for INSTALL.

[-e | --exec] exec

This will be used in the PPM_INSTALL_EXEC attribute passed to perl Makefile.PL, and arises in setting the EXEC attribute of the INSTALL field in the ppd file.

[-x | --add] file

This option, which can be specified multiple times, can be used to add additional files outside of the the blib directory to the archive.

[-r | --remove]

If specified, the directory used to build the ppm distribution given on the command line will be removed after a successful install.

[-p | --prog] program=/path/to/program

This option specifies that /path/to/program should be used for program, rather than the one PPM::Make finds. This option can be specified multiple times, with program being one of tar, gzip, zip, unzip, or make.

[--ppd] $path_to_ppd_files

If given, this will copy the ppd file to the location specified, and must be given as an absolute pathname. If host is specified, this copy will be done via ftp, otherwise a local copy is made.

[--ar] $path_to_archive_file

This is the location where the archive file should be placed. This may either be an absolute pathname or a relative one, in which case it is interpreted to be relative to that specified by ppd. If this is not given, but ppd is specified, this will default to the value of ppd.

[--zip] $path_to_zip_file

This is the location where the zipped file created with the --zipdist options should be placed. This may either be an absolute pathname or a relative one, in which case it is interpreted to be relative to that specified by ppd. If this is not given, but ppd is specified, this will default to the value of ppd.

[--host] $hostname

If specified, an ftp transfer to the specified host is done, with ppd and ar as described above.

[--user] $username

This specifies the user name to login as when transferring via ftp.

[--passwd] $passwd

This is the associated password to use for user

[-A | --as]

Beginning with Perl-5.8, Activestate adds the Perl version number to the NAME of the ARCHITECTURE tag in the ppd file. This option, which is enabled by default, will make a ppd file compatible with this practice. Specify --noas to disable this option.

[-V | --vs]

This option will add a version string (based on the VERSION reported in the ppd file) to the ppd and archive filenames.

[--vsr]

This option, if enabled, will add a version string (based on the VERSION reported in the ppd file) to the archive filename.

[--vsp]

This option, if enabled, will add a version string (based on the VERSION reported in the ppd file) to the ppd filename.

[--zipdist]

If enabled, this option will create a zip file archive.zip consisting of the archive.ppd ppd file and the archive.tar.gz archive file, suitable for local installations. A short README file giving the command for installation is also included.

[--cpan]

If specified, a distribution will be made using make dist which will include the ppd and archive file.

[--no_case]

If specified, module searches will be performed in a case-insensitive manner.

[--no_cfg]

If specified, do not attempt to read a .ppmcfg configuration file.

[--no-cfg]

If specified, do not attempt to read a .ppmcfg configuration file.

[--no-ppm4]

If specified, do not add ppm4 extensions (such as the PROVIDE element) to the ppd file.

[--no-html]

If specified, do not build html documentation.

[--no-remote-lookup]

If specified, do not query remote data sources for meta information.

[--help]

This prints out a short help screen and exits.

[--version]

This prints out some version information and exits.

COPYRIGHT

This program is copyright, 2002, by Randy Kobes <r.kobes@uwinnipeg.ca>. It is distributed under the same terms as Perl itself.

SEE ALSO

PPM::Make, and PPM.