Shipwright::Manual::CustomizeBuild - Customize the build method for a source
There are currently two ways to build a source: through a perl script (scripts/foo/build.pl) which allows for heavy customization, or using a list of tagged commands (scripts/foo/build), which is simpler but less customizable.
scripts/foo/build.pl has higher precedence, so if both scripts/foo/build.pl and scripts/foo/build exist, the former will be used.
When executing build.pl for the source foo, the current working directory will be dists/foo
The script will be run with a list of arguments (the format is designed to be easily extracted with Getopt::Long):
The base directory where the vessel is to be built to.
e.g. --install-base '/tmp/test-xxxxxx/test'
--install-base '/tmp/test-xxxxxx/test'
A list of flags, joined by comma. (See Shipwright::Manual::UsingFlags for more information.)
e.g. --flags default,mysql
--flags default,mysql
Whether to skip running tests or not.
If any test fails, whether to go on or just die.
If run with this argument, the script should do the clean work instead of the install work.
clean
install
This is a text file; each line should be either blank or use the format type: command. The command will be executed line by line, and the current working directory for building the source foo will be dists/foo.
type: command
In a normal build script, the following types of commands are specified: configure, make, install, clean, and sometimes test. Their functions should be self-explanatory for anyone familiar with building perl modules.
Four template substitutions are available for use in the command: %%PERL%%, %%PERL_ARCHNAME%%, %%INSTALL_BASE%% and %%MAKE%%. These can be used in cases where the path to perl, the perl archname (e.g. 'i486-linux-gnu-thread-multi'), the base install path or make command are needed, since they are not known beforehand or need to choose one later.
%%PERL%%
%%PERL_ARCHNAME%%
%%INSTALL_BASE%%
%%MAKE%%
There are two special types: test and clean.
test
If executed with --skip-test, this command won't be executed. If executed with --force, even if this command fails the build will continue.
--skip-test
--force
If executed with --clean, all commands will be skipped except this one.
--clean
Shipwright, Shipwright::Manual
sunnavy <sunnavy@bestpractical.com>
<sunnavy@bestpractical.com>
Shipwright is Copyright 2007-2012 Best Practical Solutions, LLC.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Shipwright, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Shipwright
CPAN shell
perl -MCPAN -e shell install Shipwright
For more information on module installation, please visit the detailed CPAN module installation guide.