1Shipwright::Manual::CusUtsoemrizCeoBnutirlidb(u3t)ed PerSlhiDpowcruimgehntt:a:tMiaonnual::CustomizeBuild(3)
2
3
4
6 Shipwright::Manual::CustomizeBuild - Customize the build method for a
7 source
8
10 There are currently two ways to build a source: through a perl script
11 (scripts/foo/build.pl) which allows for heavy customization, or using a
12 list of tagged commands (scripts/foo/build), which is simpler but less
13 customizable.
14
15 scripts/foo/build.pl has higher precedence, so if both
16 scripts/foo/build.pl and scripts/foo/build exist, the former will be
17 used.
18
19 build.pl
20 When executing build.pl for the source foo, the current working
21 directory will be dists/foo
22
23 The script will be run with a list of arguments (the format is designed
24 to be easily extracted with Getopt::Long):
25
26 --install-base=s
27 The base directory where the vessel is to be built to.
28
29 e.g. "--install-base '/tmp/test-xxxxxx/test'"
30
31 --flags=s
32 A list of flags, joined by comma. (See
33 Shipwright::Manual::UsingFlags for more information.)
34
35 e.g. "--flags default,mysql"
36
37 --skip-test
38 Whether to skip running tests or not.
39
40 --force
41 If any test fails, whether to go on or just die.
42
43 --clean
44 If run with this argument, the script should do the "clean" work
45 instead of the "install" work.
46
47 build
48 This is a text file; each line should be either blank or use the format
49 "type: command". The command will be executed line by line, and the
50 current working directory for building the source foo will be
51 dists/foo.
52
53 In a normal build script, the following types of commands are
54 specified: configure, make, install, clean, and sometimes test. Their
55 functions should be self-explanatory for anyone familiar with building
56 perl modules.
57
58 Four template substitutions are available for use in the command:
59 "%%PERL%%", "%%PERL_ARCHNAME%%", "%%INSTALL_BASE%%" and "%%MAKE%%".
60 These can be used in cases where the path to perl, the perl archname
61 (e.g. 'i486-linux-gnu-thread-multi'), the base install path or make
62 command are needed, since they are not known beforehand or need to
63 choose one later.
64
65 There are two special types: "test" and "clean".
66
67 test
68 If executed with "--skip-test", this command won't be executed. If
69 executed with "--force", even if this command fails the build will
70 continue.
71
72 clean
73 If executed with "--clean", all commands will be skipped except
74 this one.
75
77 Shipwright, Shipwright::Manual
78
80 sunnavy "<sunnavy@bestpractical.com>"
81
83 Shipwright is Copyright 2007-2015 Best Practical Solutions, LLC.
84
85 This program is free software; you can redistribute it and/or modify it
86 under the same terms as Perl itself.
87
88
89
90perl v5.36.0 2023-01-S2h0ipwright::Manual::CustomizeBuild(3)