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.
A list of flags, joined by comma. (See Shipwright::Manual::UsingFlags for more information.)
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
cleanwork instead of the
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:
%%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:
If executed with
--skip-test, this command won't be executed. If executed with
--force, even if this command fails the build will continue.
If executed with
--clean, all commands will be skipped except this one.
LICENCE AND COPYRIGHT
Shipwright is Copyright 2007-2015 Best Practical Solutions, LLC.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.