blob: a62e003bd68ba9b4704eb134d9317bba796b5f85 [file] [log] [blame]
Paul Smithe2403321998-07-30 20:54:47 +00001 -*-indented-text-*-
2
3GNU make can utilize the Customs library, distributed with Pmake, to
4provide builds distributed across multiple hosts.
5
6In order to utilize this capability, you must first download and build
7the Customs library. It is contained in the Pmake distribution, which
8can be obtained at:
9
10 ftp://ftp.icsi.berkeley.edu/pub/ai/stolcke/software/
11
12This integration was tested (superficially) with Pmake 2.1.33.
13
14
15BUILDING CUSTOMS
16----------------
17
18First, build pmake and Customs. You need to build pmake first, because
19Customs require pmake to build. Unfortunately, this is not trivial;
20please see the pmake and Customs documentation for details. The best
21place to look for instructions is in the pmake-2.1.33/INSTALL file.
22
23Note that the 2.1.33 Pmake distribution comes with a set of patches to
24GNU make, distributed in the pmake-2.1.33/etc/gnumake/ directory. These
25patches are based on GNU make 3.75 (there are patches for earlier
26versions of GNU make, also). The parts of this patchfile which relate
27directly to Customs support have already been incorporated into this
28version of GNU make, so you should _NOT_ apply the patch file.
29
30However, there are a few non-Customs specific (as far as I could tell)
31changes here which are not incorporated (for example, the modification
32to try expanding -lfoo to libfoo.so). If you rely on these changes
33you'll need to re-apply them by hand.
34
35Install the Customs library and header files according to the
36documentation. You should also install the man pages (contrary to
37comments in the documentation, they weren't installed automatically for
Paul Smith23c2b992012-03-04 00:24:20 +000038me; I had to cd to the 'pmake-2.1.33/doc' directory and run 'pmake
39install' there directly).
Paul Smithe2403321998-07-30 20:54:47 +000040
41
42BUILDING GNU MAKE
43-----------------
44
45Once you've installed Customs, you can build GNU make to use it. When
Paul Smith23c2b992012-03-04 00:24:20 +000046configuring GNU make, merely use the '--with-customs=DIR' option.
47Provide the directory containing the 'lib' and 'include/customs'
Paul Smithe2403321998-07-30 20:54:47 +000048subdirectories as DIR. For example, if you installed the customs
49library in /usr/local/lib and the headers in /usr/local/include/customs,
Paul Smith23c2b992012-03-04 00:24:20 +000050then you'd pass '--with-customs=/usr/local' as an option to configure.
Paul Smithe2403321998-07-30 20:54:47 +000051
52Run make (or use build.sh) normally to build GNU make as described in
53the INSTALL file.
54
55See the documentation for Customs for information on starting and
56configuring Customs.
57
58
Paul Smith3e26bde1999-10-15 07:00:58 +000059INVOKING CUSTOMS-IZED GNU MAKE
60-----------------------------
61
62One thing you should be aware of is that the default build environment
63for Customs requires root permissions. Practically, this means that GNU
64make must be installed setuid root to use Customs.
65
66If you don't want to do this, you can build Customs such that root
67permissions are not necessary. Andreas Stolcke <stolcke@speech.sri.com>
68writes:
69
70 > pmake, gnumake or any other customs client program is not required to
71 > be suid root if customs was compiled WITHOUT the USE_RESERVED_PORTS
72 > option in customs/config.h. Make sure the "customs" service in
73 > /etc/services is defined accordingly (port 8231 instead of 1001).
74
75 > Not using USE_RESERVED_PORTS means that a user with programming
76 > skills could impersonate another user by writing a fake customs
77 > client that pretends to be someone other than himself. See the
78 > discussion in etc/SECURITY.
79
80
Paul Smithe2403321998-07-30 20:54:47 +000081PROBLEMS
82--------
83
84SunOS 4.1.x:
85 The customs/sprite.h header file #includes the <malloc.h> header
86 files; this conflicts with GNU make's configuration so you'll get a
87 compile error if you use GCC (or any other ANSI-capable C compiler).
88
89 I commented out the #include in sprite.h:107:
90
91 #if defined(sun) || defined(ultrix) || defined(hpux) || defined(sgi)
92 /* #include <malloc.h> */
93 #else
94
95 YMMV.
Paul Smith586daef2006-02-11 19:02:21 +000096
97
98-------------------------------------------------------------------------------
Paul Smith12b14f02020-01-03 00:13:02 -050099Copyright (C) 1998-2020 Free Software Foundation, Inc.
Paul Smith586daef2006-02-11 19:02:21 +0000100This file is part of GNU Make.
101
102GNU Make is free software; you can redistribute it and/or modify it under the
103terms of the GNU General Public License as published by the Free Software
Paul Smith891ebd42007-07-04 19:35:15 +0000104Foundation; either version 3 of the License, or (at your option) any later
105version.
Paul Smith586daef2006-02-11 19:02:21 +0000106
107GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
108WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
109A PARTICULAR PURPOSE. See the GNU General Public License for more details.
110
111You should have received a copy of the GNU General Public License along with
Paul Smith891ebd42007-07-04 19:35:15 +0000112this program. If not, see <http://www.gnu.org/licenses/>.