Home | History | Annotate | Download | only in make-3.81
      1                                                             -*-indented-text-*-
      2 
      3 GNU make can utilize the Customs library, distributed with Pmake, to
      4 provide builds distributed across multiple hosts.
      5 
      6 In order to utilize this capability, you must first download and build
      7 the Customs library.  It is contained in the Pmake distribution, which
      8 can be obtained at:
      9 
     10   ftp://ftp.icsi.berkeley.edu/pub/ai/stolcke/software/
     11 
     12 This integration was tested (superficially) with Pmake 2.1.33.
     13 
     14 
     15 BUILDING CUSTOMS
     16 ----------------
     17 
     18 First, build pmake and Customs.  You need to build pmake first, because
     19 Customs require pmake to build.  Unfortunately, this is not trivial;
     20 please see the pmake and Customs documentation for details.  The best
     21 place to look for instructions is in the pmake-2.1.33/INSTALL file.
     22 
     23 Note that the 2.1.33 Pmake distribution comes with a set of patches to
     24 GNU make, distributed in the pmake-2.1.33/etc/gnumake/ directory.  These
     25 patches are based on GNU make 3.75 (there are patches for earlier
     26 versions of GNU make, also).  The parts of this patchfile which relate
     27 directly to Customs support have already been incorporated into this
     28 version of GNU make, so you should _NOT_ apply the patch file.
     29 
     30 However, there are a few non-Customs specific (as far as I could tell)
     31 changes here which are not incorporated (for example, the modification
     32 to try expanding -lfoo to libfoo.so).  If you rely on these changes
     33 you'll need to re-apply them by hand.
     34 
     35 Install the Customs library and header files according to the
     36 documentation.  You should also install the man pages (contrary to
     37 comments in the documentation, they weren't installed automatically for
     38 me; I had to cd to the ``pmake-2.1.33/doc'' directory and run ``pmake
     39 install'' there directly).
     40 
     41 
     42 BUILDING GNU MAKE
     43 -----------------
     44 
     45 Once you've installed Customs, you can build GNU make to use it.  When
     46 configuring GNU make, merely use the ``--with-customs=DIR'' option.
     47 Provide the directory containing the ``lib'' and ``include/customs''
     48 subdirectories as DIR.  For example, if you installed the customs
     49 library in /usr/local/lib and the headers in /usr/local/include/customs,
     50 then you'd pass ``--with-customs=/usr/local'' as an option to configure.
     51 
     52 Run make (or use build.sh) normally to build GNU make as described in
     53 the INSTALL file.
     54 
     55 See the documentation for Customs for information on starting and
     56 configuring Customs.
     57 
     58 
     59 INVOKING CUSTOMS-IZED GNU MAKE
     60 -----------------------------
     61 
     62 One thing you should be aware of is that the default build environment
     63 for Customs requires root permissions.  Practically, this means that GNU
     64 make must be installed setuid root to use Customs.
     65 
     66 If you don't want to do this, you can build Customs such that root
     67 permissions are not necessary.  Andreas Stolcke <stolcke (a] speech.sri.com>
     68 writes:
     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 
     81 PROBLEMS
     82 --------
     83 
     84 SunOS 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.
     96 
     97 
     99 -------------------------------------------------------------------------------
    100 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
    101 Free Software Foundation, Inc.
    102 This file is part of GNU Make.
    103 
    104 GNU Make is free software; you can redistribute it and/or modify it under the
    105 terms of the GNU General Public License as published by the Free Software
    106 Foundation; either version 2, or (at your option) any later version.
    107 
    108 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    109 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    110 A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    111 
    112 You should have received a copy of the GNU General Public License along with
    113 GNU Make; see the file COPYING.  If not, write to the Free Software
    114 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    115