1pump(1) General Commands Manual pump(1)
2
3
4
6 pump - accelerate remote compilation with distcc
7
9 pump BUILD-COMMAND [ARGS] ...
10
11 eval ` pump --startup `; BUILD-COMMAND [ARGS] ... ; pump --shutdown
12
14 pump is part of distcc. It is used for distcc's pump mode. Distcc's
15 pump mode accelerates remote compilation with distcc by also distribut‐
16 ing preprocessing to the servers.
17
18 For a detailed description of pump mode, including most notably some
19 important restrictions, see the distcc(1) man page, in particular the
20 HOW PUMP-MODE WORKS section and the RESTRICTIONS ON PUMP MODE section.
21
22 The simplest usage is the form
23 pump COMMAND [ARG] ...
24 This will start an include server for distcc's "pump" mode; optionally
25 run lsdistcc to compute the distcc host list; set some auxiliary envi‐
26 ronment variables; change PATH to use the distcc client in the same
27 directory as the "pump" script; execute COMMAND with the specified
28 ARG(s) ; and then shut down the include server. The COMMAND is typi‐
29 cally a parallel build command, such as "make -j80", that will do many
30 concurrent invocations of distcc.
31
32 An alternative way of invoking pump is to explicitly invoke "pump
33 --startup" to start the include server and "pump --shutdown" to stop
34 the include server. The "pump --startup" command will start up the
35 include server, and will print out some environment variable settings.
36 These environment variables are used to communicate between the pump-
37 mode "distcc" client and the include server, and to communicate between
38 "pump --startup" and "pump --shutdown". The caller of "pump --startup"
39 is responsible for setting those environment variables before invoking
40 "distcc" or "pump --shutdown".
41
42 For example:
43 eval `pump --startup`
44 make -j80
45 pump --shutdown
46
47 Note that distcc's pump-mode assumes that sources files will not be
48 modified during the lifetime of the include server, so modifying
49 source files during a build may cause inconsistent results.
50
52 When invoked in either the simple " pump COMMAND [ARG] ... " form, or
53 as " pump --startup ", the pump script will invoke lsdistcc whenever
54 DISTCC_POTENTIAL_HOSTS is set and DISTCC_HOSTS isn't. It will pass the
55 value of DISTCC_POTENTIAL_HOSTS to lsdistcc and use the output of
56 lsdistcc to set DISTCC_HOSTS.
57
59 --help Displays summary instructions.
60
61 --startup
62 Starts an include server, and outputs the environment variable
63 settings needed for distcc(1) or pump --shutdown to access it.
64
65 --shutdown
66 Shuts down an include server started up by pump --startup.
67
69 The following environment variables are all optional.
70
71 DISTCC_LOCATION
72 The location of the distcc bin directory, which is normally
73 inferred from the link-resolved dirname of argv[0]. If this
74 location is in fact the bin directory inside an installation (as
75 will be the case when the pump script in the installation exe‐
76 cutes), then Python executables and distcc itself will be
77 retrieved from the parent directory of the location.
78
79 DISTCC_MAX_DISCREPANCY
80 see the distcc(1) man page.
81
82 DISTCC_POTENTIAL_HOSTS
83 The distcc servers that will be queried by lsdistcc in order to
84 produce a value for DISTCC_HOSTS. This value may be unset or
85 null. In such cases, lsdistcc will not be invoked, and distcc
86 will use DISTCC_HOSTS or the distcc hosts configuration file, as
87 described in the "Host Specifications" section of distcc(1).
88
89 DISTCC_HOSTS
90 This variable is passed through to distcc but only if
91 DISTCC_POTENTIAL_HOSTS is not set.
92
93 LSDISTCC_ARGS
94 Extra arguments to pass to lsdistcc. See lsdistcc --help for
95 more details.
96
97 INCLUDE_SERVER_ARGS
98 Extra arguments to pass to the include server.
99
100 PYTHONOPTIMIZE
101 If set to "", then Python optimization is disabled.
102
104 pump make -j20
105
107 If you think you have found a distcc bug, please see the file report‐
108 ing-bugs.txt in the documentation directory for information on how to
109 report it.
110
112 The pump script and distcc's pump mode were written by Nils Klarlund,
113 Manos Renieris, Fergus Henderson, and Craig Silverstein. Please report
114 bugs to <distcc@lists.samba.org>.
115
117 pump is part of distcc. You are free to use distcc. distcc (including
118 this manual) may be copied, modified or distributed only under the
119 terms of the GNU General Public Licence version 2 or later. distcc
120 comes with absolutely no warranty. A copy of the GPL is included in
121 the file COPYING.
122
124 distcc(1), distccd(1), include_server(1), gcc(1), and make(1)
125
126
127
128 9 June 2008 pump(1)