=head1 NAME Shipwright::Manual::CustomizeBuild - Customize the build method for a distribution =head1 DESCRIPTION There are currently two ways to build a dist: through a perl script (F) which allows for heavy customization, or using a list of tagged commands (F), which is simpler but less customizable. The script F has higher precedence, so if both F and F exist, the former will be used. =head2 build.pl When executing F for the dist I, the current working directory will be F The script will be run with a list of arguments (the format is designed to be easily extracted with L): =over 4 =item --install-base=s The base directory where the vessel is to be built to. e.g. C<--install-base '/tmp/test-xxxxxx/test'> =item --flags=s A list of flags, joined by comma. (See L for more information.) e.g. C<--flags default,mysql> =item --skip-test Whether to skip running tests or not. =item --force If any test fails, whether to go on or just die. =item --clean If run with this argument, the script should do the C work instead of the C work. =back =head2 build This is a text file; each line should be either blank or use the format C. The command will be executed line by line, and the current working directory for building the dist I will be F. 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: C<%%PERL%%>, C<%%PERL_ARCHNAME%%>, C<%%INSTALL_BASE%%> and C<%%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: C and C. =over 4 =item test If executed with C<--skip-test>, this command won't be executed. If executed with C<--force>, even if this command fails the build will continue. =item clean If executed with C<--clean>, all commands will be skipped except this one. =back =head1 SEE ALSO L =head1 AUTHORS sunnavy C<< >> =head1 LICENCE AND COPYRIGHT Shipwright is Copyright 2007-2009 Best Practical Solutions, LLC. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.