NAME
Shipwright::Manual::CustomizeBuild - Customize the build method for a source
DESCRIPTION
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.
build.pl
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):
- --install-base=s
-
The base directory where the vessel is to be built to.
e.g.
--install-base '/tmp/test-xxxxxx/test'
- --flags=s
-
A list of flags, joined by comma. (See Shipwright::Manual::UsingFlags for more information.)
e.g.
--flags default,mysql
- --skip-test
-
Whether to skip running tests or not.
- --force
-
If any test fails, whether to go on or just die.
- --clean
-
If run with this argument, the script should do the
clean
work instead of theinstall
work.
build
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.
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.
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. - clean
-
If executed with
--clean
, all commands will be skipped except this one.
SEE ALSO
Shipwright, Shipwright::Manual
AUTHORS
sunnavy <sunnavy@bestpractical.com>
LICENCE AND COPYRIGHT
Shipwright is Copyright 2007-2011 Best Practical Solutions, LLC.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.