* GNU Libtool was conceived, designed and implemented by:

    Gordon Matzigkeit		gord@gnu.org

* GNU Libtool's Dynamic Loader library (libltdl) was conceived,
  designed and implemented by:

    Thomas Tanner		tanner@ffii.org

* GNU Libtool and libltdl have previously been maintained, enhanced,
  ported and otherwise advanced by:

    Alexandre Oliva		oliva@dcc.unicamp.br
    Ossama Othman		ossama@debian.org
    Robert Boehne		rboehne@ricardo-us.com
    Scott James Remnant		scott@netsplit.com

* GNU Libtool and libltdl are currently being cajoled, bullied,
  rewritten and otherwise dragged into the future by:

    Gary V. Vaughan		gary@gnu.org
    Bob Friesenhahn		bfriesen@simple.dallas.tx.us
    Peter O'Gorman		peter@pogma.com
    Ralf Wildenhues		Ralf.Wildenhues@gmx.de

* The following people also enjoy write access under the given rules:

    Peter Rosin			peda@lysator.liu.se
    Noah Misch			noah@cs.caltech.edu
    Charles Wilson		libtool@cwilson.fastmail.fm
-- 
  Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
  2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.

  This file is part of GNU Libtool.

GNU Libtool 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 2 of
the License, or (at your option) any later version.

GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
can be downloaded from  http://www.gnu.org/licenses/gpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
