-----------------------------------

GNU make development up to version 3.75 by:
    Roland McGrath <roland@gnu.org>


Development starting with GNU make 3.76 by:
    Paul D. Smith <psmith@gnu.org>

    Additional development starting with GNU make 3.81 by:
        Boris Kolpackov <boris@kolpackov.net>


GNU Make User's Manual
  Written by:
    Richard M. Stallman <rms@gnu.org>

  Edited by:
    Roland McGrath <roland@gnu.org>
    Bob Chassell <bob@gnu.org>
    Melissa Weisshaus <melissa@gnu.org>
    Paul D. Smith <psmith@gnu.org>

-----------------------------------
GNU make porting efforts:

  Port to VMS by:
      Klaus Kaempf <kkaempf@progis.de>
      Hartmut Becker <Hartmut.Becker@hp.com>
      Archive support/Bug fixes by:
        John W. Eaton <jwe@bevo.che.wisc.edu>
        Martin Zinser <zinser@decus.decus.de>

  Port to Amiga by:
      Aaron Digulla <digulla@fh-konstanz.de>

  Port to MS-DOS (DJGPP), OS/2, and MS-Windows (native/MinGW) by:
      DJ Delorie <dj@delorie.com>
      Rob Tulloh <rob_tulloh@tivoli.com>
      Eli Zaretskii <eliz@is.elta.co.il>
      Jonathan Grant <jg@jguk.org>
      Andreas Beuning <andreas.buening@nexgo.de>
      Earnie Boyd <earnie@uses.sf.net>

-----------------------------------
Other contributors:

  Janet Carson <janet_carson@tivoli.com>
  Howard Chu <hyc@highlandsun.com>
  Ludovic Courtès <ludo@gnu.org>
  Paul Eggert <eggert@twinsun.com>
  Ramon Garcia Fernandez <ramon.garcia.f@gmail.com>
  Klaus Heinz <kamar@ease.rhein-main.de>
  Michael Joosten
  Jim Kelton <jim_kelton@tivoli.com>
  David Lubbren <uhay@rz.uni-karlsruhe.de>
  Tim Magill <tim.magill@telops.gte.com>
  Markus Mauhart <qwe123@chello.at>
  Greg McGary <greg@mcgary.org>
  Thien-Thi Nguyen <ttn@gnuvola.org>
  Thomas Riedl <thomas.riedl@siemens.com>
  Han-Wen Nienhuys <hanwen@cs.uu.nl>
  Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
  Carl Staelin (Princeton University)
  Ian Stewartson (Data Logic Limited)
  David A. Wheeler <dwheeler@dwheeler.com>

With suggestions/comments/bug reports from a cast of ... well ...
hundreds, anyway :)

-------------------------------------------------------------------------------
Copyright (C) 1997-2012 Free Software Foundation, Inc.
This file is part of GNU Make.

GNU Make is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation; either version 3 of the License, or (at your option) any later
version.

GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program.  If not, see <http://www.gnu.org/licenses/>.
