Tue May 23 21:39:23 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Thu Sep  2 18:15:53 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

1999-05-08  Felix Lee  <flee@cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	
Sun Apr 26 15:31:55 1998  Tom Tromey  <tromey@creche>

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	* config.in: Ditto.

Sun Apr 26 15:19:08 1998  Tom Tromey  <tromey@cygnus.com>

	* acconfig.h: New file.
	* configure.in: Reverted change of Apr 24; use sinclude again.
	Don't call AC_C_CROSS.

Fri Apr 24 14:16:40 1998  Tom Tromey  <tromey@creche>

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	* config.in: Ditto.

Fri Apr 24 11:17:46 1998  Tom Tromey  <tromey@cygnus.com>

	* acconfig.h: Removed.
	* configure.in: Call CY_GNU_GETTEXT.
	* Makefile.in (INTLLIBS): New macro.
	(INTLDEPS): Likewise.
	($(RUN_PROG)): Depend on INTLDEPS; link against INTLLIBS.
	(top_builddir): New macro.

Wed Apr 22 14:29:50 1998  Michael Meissner  <meissner@cygnus.com>

	* configure: Regenerate with autoconf 2.12.1.

Tue Feb 17 12:52:24 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* run.c (main): Pass length into sim_fetch_register.

	* interp.c (sim_store_register, sim_fetch_register): Pass in
 	length parameter. Return -1.

Tue Aug 26 10:43:11 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* interp.c (sim_kill): Delete.
	(sim_create_inferior): Add ABFD argument.  Set PC from same.

Mon Aug 25 16:34:33 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* interp.c (sim_open): Add ABFD argument. Change ARGV to PARGV.

Tue May 20 10:24:54 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* interp.c (sim_open): Add callback argument.

Tue Apr 15 14:55:10 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (INSTALL): Set to @INSTALL@.
	(INSTALL_XFORM, INSTALL_XFORM1): Remove.
	(install): Depend upon installdirs.  Use $(program_transform_name)
	directly, rather than using $(INSTALL_XFORM) and
	$(INSTALL_XFORM1).
	(installdirs): New target.

Mon Apr 14 16:30:02 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (INSTALL): Change install.sh to install-sh.

Wed Apr  2 15:40:30 1997  Doug Evans  <dje@canuck.cygnus.com>

	* interp.c (sim_open): New arg `kind'.  `name is now `argv'.

Thu Oct  3 16:17:59 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)

	* Makefile.in (mostlyclean): Move config.log to distclean.

Wed Jun 26 12:30:45 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)

        * Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir,
        INSTALL_PROGRAM, INSTALL_DATA): Use autoconf-set values.
        (docdir): Removed.
        * configure.in (AC_PREREQ): autoconf 2.5 or higher.
        (AC_PROG_INSTALL): Added.
        * configure: Rebuilt.

Wed Feb 21 12:17:04 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Regenerate with autoconf 2.7.

Thu Oct 19 21:44:14 1995  Fred Fish  <fnf@cygnus.com>

	* Makefile.in:  Remove tabs from otherwise empty line.
	Confuses many older non-GNU versions of "make".

Tue Oct 10 11:13:01 1995  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (BISONFLAGS): Remove macro.

Wed Sep 20 13:35:43 1995  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (maintainer-clean): New synonym for realclean.

Fri Sep  8 14:03:32 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Convert to use autoconf.
	* configure: New file, built by autoconf.
	* acconfig.h: New file.
	* config.in: New file, built by autoheader.
	* Makefile.in: Various changes for new configure script.  Also:
	(INSTALL): Go up two levels, not one.
	(ALLOCA, MALLOC, OPCODES): Remove.
	(gencode): Use $(CC_FOR_BUILD).
	(case.o): Remove.
	(run.o, interp.o): Depend upon config.h.
	* interp.c: Include "config.h".  Don't include "sysdep.h".
	Include <stdlib.h>, <time.h>, and <unistd.h> if they exist.
	* run.c: Include "config.h".  Don't include "sysdep.h".  Include
	<stdlib.h> if it exists.  Include "getopt.h".  Declare printf if
	necessary.

Thu Aug  3 10:45:37 1995  Fred Fish  <fnf@cygnus.com>

	* Update all FSF addresses except those in COPYING* files.

Wed Jul  5 16:12:53 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* w65.mt: Removed.

Wed May 24 16:31:38 1995  Jim Wilson  <wilson@chestnut.cygnus.com>

	* configure.in: Fix typo in last change.

Mon Mar 27 10:32:34 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* run.c: parse arguments with getopt().

Tue Feb 28 17:31:36 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Use ../../bfd/hosts/std-host.h if specific
	host unavailable.

	* Started ChangeLog.
