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

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@gnu.org>
      Jonathan Grant <jg@jguk.org>
      Andreas Beuning <andreas.buening@nexgo.de>
      Earnie Boyd <earnie@uses.sf.net>
      Troy Runkel <Troy.Runkel@mathworks.com>

-----------------------------------
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>
  David Boyce <dsb@boyski.com>
  Frank Heckenbach <f.heckenbach@fh-soft.de>

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

-------------------------------------------------------------------------------
Copyright (C) 1997-2016 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/>.
