1999-04-08  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Add support for MCore target.
	* configure: Regenerate.

1999-03-14  Stan Shebs  <shebs@andros.cygnus.com>

	* Makefile.in (FLAGS_TO_PASS, TARGET_FLAGS_TO_PASS): Remove
 	RUNTEST instead of commenting out, fixes portability problem.

1999-02-08  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Add support for StrongARM target.
	* configure: Regenerate.

1999-01-04  Jason Molenda  (jsm@bugshack.cygnus.com)

	* configure.in: Require autoconf 2.12.1 or higher.

1998-12-08  James E Wilson  <wilson@wilson-pc.cygnus.com>

	* configure.in (i960-*-*): Add.
	* configure: Rebuild.

Wed Nov  4 19:11:43 1998  Dave Brolley  <brolley@cygnus.com>

	* configure.in: Added case for fr30-*-*.
	* configure: Regenerated.

Fri Sep 25 10:12:19 1998  Christopher Faylor <cgf@cygnus.com>

	* ppc/Makefile.in: Add EXEEXT to installed powerpc-eabi-run program
	to allow successful operation on Windows.

Thu May 28 14:59:46 1998 Jillian Ye <jillian@cygnus.com>

        * Makefile.in: Take RUNTEST out of FLAGS_TO_PASS so that make
 	check can be invoked recursively.

Wed Apr 29 12:38:53 1998  Mark Alexander  <marka@cygnus.com>

	* configure.in: Build simulator on sparclite and sparc86x targets.
	* configure: Regenerate.

Sun Apr 26 15:21:01 1998  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in (autoconf-common autoheader-common): Don't pass -l
	to autoconf and autoheader.

Fri Apr 24 11:14:13 1998  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in (autoconf-common autoheader-common): Pass `-l
	../common' to autoconf and autoheader.  Unconditionally run
	autoconf in every subdir.
	(autoconf-changelog autoheader-changelog): Unconditionally run
	commands in every subdir.
	(autoconf-install autoheader-install): Likewise.

Tue Mar 24 17:12:43 1998  Stu Grossman  <grossman@bhuna.cygnus.co.uk>

	* Makefile.in:  Get SHELL from configure.
	* (FLAGS_TO_PASS):  Pass down SHELL.
	* configure:  Regenerate with autoconf 2.12.1 to fix shell issues for
	NT native builds.

Tue Mar 24 11::18:00 1998  Joyce Janczyn  <janczyn@cygnus.com>

	* configure.in (extra_subdirs): Enable igen for mn10300.
	* configure: Re-generate.

Tue Dec  2 10:10:42 1997  Nick Clifton  <nickc@cygnus.com>

	* configure.in (extra_subdirs): Add support for thumb target.

	* configure (extra_subdirs): Add support for thumb target.

Wed Oct  8 12:38:48 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure.in (extra_subdirs): Add IGEN directory when MIPS
 	target.
	* configure: Regenerate.
	
Fri Sep 12 13:10:31 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure.in (extra_subdirs): v850ea needs igen.
	* configure: Re-generate.
	
Mon Sep  1 16:48:23 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure.in (testdir): When a testsuite directory, add that to
 	the list of confdirs.

Tue Aug 19 11:17:46 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure.in (extra_subdirs): Enable igen ready for V850.

Tue Aug 26 15:14:48 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure.in (w65-*-*, only_if_enabled): Set.
	* configure: Re-generate.
	
Mon Aug 25 16:26:53 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure.in (sparc*-*-*, only_if_enabled): Set
 	only_if_enabled=yes.  Check only_if_enabled before enabling a
 	simulator.
	* configure: Regenerate.
	
Mon Aug 18 10:56:59 1997  Nick Clifton  <nickc@cygnus.com>

	* configure.in (extra_subdirs): Add v850e target.

Mon Aug 18 10:56:59 1997  Nick Clifton  <nickc@cygnus.com>

	* configure.in (extra_subdirs): Add v850ea target.

Fri Jul 25 11:40:47 1997  Doug Evans  <dje@canuck.cygnus.com>

	* configure.in (sparc*-*-*): Don't build erc32.
	* configure: Regenerate.

Thu Apr 24 00:47:20 1997  Doug Evans  <dje@canuck.cygnus.com>

	* configure.in (m32r-*-*): New target.
	* configure: Regenerate.

	* Makefile.in (autoconf-common, autoconf-changelog): Change $* to $@.

Mon Apr 21 22:57:55 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (.NOEXPORT, MAKEOVERRIDES): Moved to end, BSD make
 	thought that .NOEXPORT was the default target.

Fri Apr 11 17:18:07 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (clean mostlyclean): Restore targets accidentally
	deleted in earlier change.

Thu Apr  3 12:20:32 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* Makefile.in (autoheader-common, autoheader-changelog,
 	autoheader-install): Perform autoheader in addition to autoconf.

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

	* Makefile.in (autoconf-install): New target.
	(autoconf-changelog): Try different way to obtain user name.

Wed Apr  2 14:25:52 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* Makefile.in (autoconf-changelog): New target, update
 	ChangeLog for all subdirectories - normally used after
 	autoconf-common target.

Wed Mar 19 14:26:21 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* configure.in (extra_subdirs): Include testsuite for d30v.
	* configure: Regenerate.
	
	* Makefile.in (RUNTEST, RUNTESTFLAGS): Borrow test rules from
 	../gdb/Makefile.in
	(check): New rules - drive the testsuite.

Mon Mar  3 13:01:00 1997  Jeffrey A Law  (law@cygnus.com)

	* configure.in: Add mn10200 configure lines accidentally
	removed.
	* configure: Regenerated.

Wed Feb 19 10:34:20 1997  Andrew Cagney  <cagney@critters.cygnus.com>

	* configure.in (extra_subdirs): Generalize common sub directory
 	into a list.
	(extra_subdirs): For d30v add igen to the list to be built.

Sun Feb 16 16:37:47 1997  Andrew Cagney  <cagney@critters.cygnus.com>

	* configure.in (d30v): New target.
	* configure: Regenerated.
	
Wed Feb 19 23:17:13 1997  Jeffrey A Law  (law@cygnus.com)

	* configure.in: Don't require GCC to build the mn10200
	simulator anymore.
	* configure: Rebuilt.

Wed Feb  5 13:28:13 1997  Doug Evans  <dje@canuck.cygnus.com>

	* configure.in: Don't configure any subdirs if no simulator
	is being built.  Don't use erc32 for sparc64.
	* configure: Regenerated.

Tue Feb  4 13:19:39 1997  Doug Evans  <dje@canuck.cygnus.com>

	* Makefile.in (autoconf-common): New target.
	* configure.in: Do configure common.
	* configure: Regenerated.

Thu Jan 23 13:59:52 1997  Stu Grossman  (grossman@critters.cygnus.com)

	* configure configure.in:  Don't configure common anymore.  Files
	from common are now built in the individual simualtor directories.
	This fixes problems with the WinGDB build procedure.

Mon Jan 13 13:16:42 1997  Jeffrey A Law  (law@cygnus.com)

	* configure: Enable the mn10200 simulator.

Wed Nov 20 01:00:36 1996  Doug Evans  <dje@canuck.cygnus.com>

	* configure.in (configdirs): Add common.
	* configure: Regenerated.

Fri Nov  1 08:03:30 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* configure.in (powerpc*-*-linux*): Treat like the other powerpc
	system V based targets.
	* configure: Regenerate.

Thu Oct 17 12:50:08 1996  Doug Evans  <dje@canuck.cygnus.com>

	* configure.in (--enable-sim-powerpc): Delete.
	(--enable-sim): Add.
	* configure: Regenerated.

Fri Oct 11 21:13:43 1996  Jeffrey A Law  (law@cygnus.com)

	* configure.in: Only build the V850 simulator if
	we are using gcc.
	* configure: Rebuild.

Sun Sep  8 17:22:50 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Do build erc32 for DOS and Windows hosts.
	* configure: Rebuild.

Wed Sep  4 18:11:27 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* Makefile.in erc32/Makefile.in:  Don't set srcroot.  This should
	be inherited from the parent.  Remove INSTALL_XFORM and
	INSTALL_XFORM1.  Make INSTALL be set from configure.

Wed Sep  4 15:49:16 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Only build the MIPS simulator if we are using
	gcc.
	* configure: Rebuild.

Wed Aug 28 19:05:23 1996  Jeffrey A Law  (law@cygnus.com)

	* configure.in (v850-*-*): Added V850 simulator.

Thu Aug  1 17:08:41 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>

	* configure.in (d10v-*-*): Added D10V simulator.

Wed Jun 26 12:33:57 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.

Mon Jun 24 14:18:26 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Only configure erc32 if using gcc.
	* configure: Rebuild.

Tue Jun  4 09:24:21 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* configure.in (sim_target): Build PowerPC simulator for powerpc
	System V.4, Solaris, and Elf targets.
	* configure: Regenerate with autoconf 2.10.

Wed May 22 12:10:49 1996  Rob Savoye  <rob@chinadoll>

	* configure.in: Only built erc32 simulator on Unix hosts as it
	uses pseudo ttys.
	* configure: Regenerated with autoconf 2.8.

Sun May 19 20:20:40 1996  Rob Savoye  <rob@chinadoll.cygnus.com>

	* erc32: Sparc simulator from the ESA.

Sun Apr  7 21:00:09 1996  Fred Fish  <fnf@cygnus.com>

	From: Miles Bader  <miles@gnu.ai.mit.edu>
	* configure.in: Use AC_CHECK_TOOL to find AR & RANLIB.
	* configure: Regenerate using autoconf.

Thu Feb 22 11:31:50 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* Makefile.in (install): Fix typo.

Wed Feb 21 11:59:57 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Regenerate with autoconf 2.7.

	* Makefile.in (all): Simplify.
	(clean, mostlyclean): SUBDIRS may contain whitespace; fix the loop
	as in the all target.
	(distclean, maintainer-clean, realclean): Likewise.
	(install): Likewise.

Thu Feb 15 18:37:00 1996  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (all): Remove extra '\' char from shell script.

Wed Feb 14 16:43:59 1996  Mike Meissner  <meissner@tiktok.cygnus.com>

	* Makefile.in (all): Avoid a for loop with zero elements, even if
	the loop will not be executed because of an if statement.

Wed Jan 31 21:48:34 1996  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (install): Add missing semicolon in "fi \".

Thu Nov  9 16:10:56 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* Makefile.in (AR, CC, CFLAGS, CC_FOR_BUILD, RANLIB): Pick up
	defaults from configure.

	* configure.in: Pick up AR, CC, CFLAGS, CC_FOR_BUILD, RANLIB using
	configure defaults.
	(powerpc*-*-eabi*): Build simulator for all powerpc eabi targets
	if either --enable-sim-powerpc is used, or the host compiler is
	GCC.

Wed Nov  8 15:46:49 1995  James G. Smith  <jsmith@pasanda.cygnus.co.uk>

	* configure.in (mips*-*-*): Added "mips" simulator target.
	* configure: Re-generated.

Tue Oct 10 11:08:20 1995  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (BISON): Remove macro.
	(FLAGS_TO_PASS): Remove BISON.

Sun Oct  8 04:26:27 1995  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* configure.in:  Explicitly `exit 0' for broken shells.
	* configure:  Rebuilt.

Fri Oct  6 12:03:27 1995  Jim Wilson  <wilson@chestnut.cygnus.com>

	* common/run.c (main): Initialize the callbacks.

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

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

Fri Aug 25 11:53:43 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* configure.in (powerpc*-*-eabisim*): Only build the simulator if
	the target is powerpc*-*-eabisim*, since it requires GCC to build.

Mon Aug 21 17:53:48 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* configure.in (powerpc{,le}-*-*): Add psim from Andrew Cagney
	<cagney@highland.com.au>.
	* configure: Regnerate from configure.in.

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

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

Thu Jul 20 15:17:29 1995  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (CC_FOR_BUILD):  Define default and arrange to pass
	submakes either default or passed in value.

Wed Jul  5 14:32:54 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* Makefile.in (all, clean, distclean, mostlyclean, realclean,
	  install): Changed targets so that they descend all
	  subdirectories in $(SUBDIRS).
	  (*-all, *-clean, *-install): Removed targets.

	* configure.in: Don't bother with target makefile fragments, they
	  are no longer needed.
	* configure: regenerated.

	* Makefile.in, configure.in: converted to autoconf.
	* configure: New file, generated with autconf 2.4.

Wed May 24 14:48:46 1995  Steve Chamberlain  <sac@slash.cygnus.com>

	* Makefile.in: Support ARM.
	* configure.in: Ditto.

Sun Jan 15 16:53:47 1995  Steve Chamberlain  <sac@splat>

	* Makefile.in: Support W65.
	* configure.in: Ditto.

Sun Mar 13 09:27:50 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in: Add TAGS target.

Mon Sep 13 12:47:15 1993  K. Richard Pixley  (rich@sendai.cygnus.com)

	* Makefile.in (all-z8k, install-z8k, clean-z8k, all-h8300,
	  install-h8300, clean-h8300, all-h8500, install-h8500,
	  clean-h8500, all-sh, install-sh, clean-sh): do not echo
	  recursion lines. 

Wed Jun 30 14:12:05 1993  david d `zoo' zuhn  (zoo at poseidon.cygnus.com)

	* Makefile.in: remove endian.h trace from h8500

Sun Jun 13 13:08:58 1993  Jim Kingdon  (kingdon@cygnus.com)

	* Makefile.in: Add distclean, realclean, and mostlyclean targets.

Fri May 21 11:21:16 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in: make all of the all-* target (except all-nothing)
	depend on endian.h, so that if we're not building a simulator, we
	don't built endian

Fri May 21 10:55:06 1993  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (check, installcheck): Added dummy targets.

Mon May  3 21:39:43 1993  Fred Fish  (fnf@cygnus.com)

	* Makefile.in (endian): Find endian.c in $(srcdir), and also
	explicitly make it, since some makes apparently don't work with
	VPATH and .c to executable rules (SunOS make for example).

Mon May  3 08:29:01 1993  Steve Chamberlain  (sac@thepub.cygnus.com)

	* Makefile.in (endian): Add explicit rule for broken makes.

Mon Mar 15 15:47:53 1993  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (info, install-info): New targets.
	(DO_INSTALL): Renamed from INSTALL, which is overridden by the top
	level Makefile.

Wed Feb 10 20:12:27 1993  K. Richard Pixley  (rich@ok.cygnus.com)

	* Makefile.in (endian.h): build endian.h via a temporary file so
	  that we don't leave an incomplete file lying around on
	  interrupted builds.
	  (clean): remove endian, e.h, and endian.h.

Mon Feb  8 11:46:06 1993  Steve Chamberlain  (sac@thepub.cygnus.com)

	* Makefile.in, configure.in: if target isn't supported, build a
	harmless makefile.


