2005-05-28  Hans-Peter Nilsson  <hp@axis.com>

	* cris/Makefile.in (stamp-v32fmloop): Depend on stamp-v10fmloop.

2005-05-26  Chris Demetriou  <cgd@netbsd.org>

	* MAINTAINERS: Update my mail address, move myself to the
	"Past maintainers" section.

2005-05-17  Corinna Vinschen  <vinschen@redhat.com>

	* configure.ac: Add igen to v850 build.
	* configure: Regenerate.

2005-04-29  Paul Brook  <paul@codesourcery.com>

	* common/callback.c (PIPE_BUF): Provide default definition.
	(os_lstat): Use stat if lstat is not available on the host.
	(os_ftruncate): Return EINVAL if not available on the host.
	(os_truncate): Ditto.
	* common/configure.ac: Check for lstat, truncate and ftruncate.
	* common/configure: Regenerate.
	* common/config.in: Regenerate.

2005-04-27  Paul Brook  <paul@codesourcery.com>

	* common/Make-common.in: Add $(EXEEXT) to "run".

2005-04-18  Hans-Peter Nilsson  <hp@axis.com>

	* cris/traps.c (cris_break_13_handler) <case TARGET_SYS_mmap2>:
	For ((len & 8191) != 0 && fd == (USI) -1), don't say this isn't
	implemented.  In call to create_map, pad length argument to 8k. 

2005-04-15  Corinna Vinschen  <vinschen@redhat.com>

	* configure.ac: Add explicit sh64 case.
	* configure: Regenerate.

2005-03-30  Paul Brook  <paul@codesourcery.com>

	* arm/wrapper.c: Provide SIGTRAP and SIGBUS.

2005-03-24  Hans-Peter Nilsson  <hp@axis.com>

	* cris/Makefile.in (stamp-v10fcpu, stamp-v32fcpu): Add kludge to
	include cgen-ops.h in decodev10.c and decodev32.c.
	* cris/sim-main.h: Don't include cgen-ops.h here.
	* cris/arch.c, cris/arch.h, cris/cpuall.h, cris/cpuv10.c,
	cris/cpuv10.h, cris/cpuv32.c, cris/cpuv32.h, cris/cris-desc.c,
	cris/cris-desc.h, cris/cris-opc.h, cris/decodev10.c,
	cris/decodev10.h, cris/decodev32.c, cris/decodev32.h,
	cris/modelv10.c, cris/modelv32.c, cris/semcrisv10f-switch.c,
	cris/semcrisv32f-switch.c: Regenerate.

	* cris/traps.c (cris_break_13_handler) <case
	TARGET_SYS_rt_sigaction>: Rename sa_handler, sa_flags,
	sa_restorer, sa_mask_low, sa_mask_high to target_sa_handler etc.

2005-03-23  Mark Kettenis  <kettenis@gnu.org>

	* cris/configure: Regenerate.

2005-02-28  Jim Blandy  <jimb@redhat.com>

	* d10v/configure.ac, igen/configure.ac, m68hc11/configure.ac,
	mips/configure.ac, mn10300/configure.ac, v850/configure.ac:
	Regenerated, after change to common/aclocal.m4.

2005-02-18  Corinna Vinschen  <vinschen@redhat.com>

	* iq2000: New target subdirectory.
	* configure.ac: Add iq2000 target.
	* configure: Regenerate.

2005-01-29  Hans-Peter Nilsson  <hp@axis.com>

	* Makefile.in (all, clean mostlyclean, distclean maintainer-clean)
	(realclean, install): Fail if subdir make failed.

2005-01-28  Hans-Peter Nilsson  <hp@axis.com>

	* cris: New directory, simulator for Axis Communications CRIS
	including CRIS v32, CGEN-based.
	* configure.ac: Add corresponding configury.
	* configure: Regenerate.

2005-01-17  Andrew Cagney  <cagney@gnu.org>

	* configure.ac: For mips*-*-* and mn10300*-*-* configure the
	common directory.  Remove sparc*-*-* from list.
	
2005-01-11  Andrew Cagney  <cagney@gnu.org>

	* Makefile.in (autoconf-common autoheader-common): Add --force to
	autoconf and autoheader.
	(autoconf-common autoheader-common)
	(autoconf-install autoheader-install): Check for configure.ac, not
	configure.in.
	* configure.ac: Delete AC_CONFIG_AUX_DIR.
	* configure: Re-generate.

2005-01-07  Andrew Cagney  <cagney@gnu.org>

	* configure.ac: Replace configure.in.  Requires autoconf 2.59 and
	correctly calls AC_CONFIG_SUBDIRS.
	* configure: Re-generate.

2004-12-01  Andrew Cagney  <cagney@gnu.org>

	* i960, h8500: Delete directory.

2004-11-12  Andrew Cagney  <cagney@gnu.org>

	* d30v, fr30, mn10200, z8k: Delete directory.

2004-03-10  Ben Elliston  <bje@gnu.org>

	* MAINTAINERS: Update my mail address.

2004-01-26  Chris Demetriou  <cgd@broadcom.com>

	* configure.in (mips*-*-*): Configure in testsuite.
	* configure: Regenerate.

2003-10-08  Dave Brolley  <brolley@redhat.com>

	* configure.in: Move frv handling to alphabetically correct placement.

2003-09-03  Andreas Schwab  <schwab@suse.de>

	* Makefile.in (FLAGS_TO_PASS): Pass down $(bindir) and $(mandir).

2003-08-29  Dave Brolley  <brolley@redhat.com>

	* MAINTAINERS: Add myself as maintainer of the FRV port.

2003-08-20  Michael Snyder  <msnyder@redhat.com>
            Dave Brolley  <brolley@redhat.com>

	* frv/: New directory, simulator for the Fujitsu FRV.
	* configure.in: Add frv configury.
	* configure: Regenerate.

2003-08-10  Ben Elliston  <bje@wasabisystems.com>

	* MAINTAINERS: Update my mail address.

2003-08-09  Andrew Cagney  <cagney@redhat.com>

	* MAINTAINERS: Andrew Cagney (mips) and Geoff Keating (ppc) drop
	maintenance.  List igen and sh maintainers.  Mention that target
	and global maintainers pick up the slack.

2003-07-09  Michael Snyder  <msnyder@redhat.com>

	* configure.in: Add testsuite to extra_subdirs for sh.
	* configure: Regenerate.

2003-01-23  Nick Clifton  <nickc@redhat.com>

	* Add sh2e support:

2002-04-02  Alexandre Oliva  <aoliva@redhat.com>

	* sh/gencode.c: Replace sh3e with sh2e except in fsqrt.

2002-08-24  Geoffrey Keating  <geoffk@redhat.com>

	* MAINTAINERS: Update my email address.

2002-07-17  Andrew Cagney  <ac131313@redhat.com>

	* w65/: Delete directory.

2002-07-16  Andrew Cagney  <ac131313@redhat.com>

	* configure.in (extra_subdirs): Mark fr30-*-* as obsolete.
	* configure: Re-generate.

2002-07-13  Andrew Cagney  <ac131313@redhat.com>

	* configure.in (extra_subdirs): Mark d30v-*-* as obsolete.
	* configure: Re-generate.
	
2002-06-16  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (autoconf-changelog autoheader-changelog): Let name,
	id, date and host to be overriden by NAME, ID, DATE and HOST
	respectfully.  Use ISO dates.

Thu Jun  6 12:34:13 2002  Andrew Cagney  <cagney@redhat.com>

	* Makefile.in (ChangeLog): New makefile variable.
	* README-HACKING: Mention the ChangeLog makefile variable.

2002-06-01  Andrew Cagney  <ac131313@redhat.com>

	* tic80/: Delete directory.

2002-05-16  Stephane Carrez  <stcarrez@nerim.fr>

	* MAINTAINERS: Update my email address.

2002-03-06  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* MAINTAINERS: Record self as maintainer of m68hc11 simulator.

2002-03-01  Frank Ch. Eigler  <fche@redhat.com>

	* MAINTAINERS: Record self as a co-maintainer of just common/.

2002-02-07  Nick Clifton  <nickc@cambridge.redhat.com>

	* MAINTAINERS: Point to GDB files describing overall maintaince
	and check-in procedures.

2002-01-10  Nick Clifton  <nickc@cambridge.redhat.com>

	* MAINTAINERS: Add myself for ARM portions.

2001-10-19  Andrew Cagney  <ac131313@redhat.com>

	* configure.in: When Linux or NetBSD, enable PowerPC simulator.
	* configure: Re-generate.

2001-02-16  Ben Elliston  <bje@redhat.com>

	* MAINTAINERS: Add myself for common portions.

2001-01-15  Chris Demetriou  <cgd@broadcom.com>

	* MAINTAINERS: Added self and Andrew for the mips sim.

2000-10-25  Geoff Keating  <geoffk@cygnus.com>

	* MAINTAINERS: Added self and Andrew for the ppc sim.

Thu Jul 27 21:26:26 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	From Stephane Carrez <Stephane.Carrez@worldnet.fr>:
	* m68hc11: New directory.
	* configure.in: Add.
	* configure: Regenerate.

Tue Jul  4 13:43:54 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* tic80: New directory.
	* configure.in: Add configury.
	* configure: Regenerate.

2000-04-20  Nick Clifton  <nickc@cygnus.com>

	* configure.in (extra_subdirs): Add testsuite to strongarm
	directories. 
	* configure: Regenerate.

Sat Mar  4 16:48:54 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* MAINTAINERS: New file.  Blank.

1999-11-18  Ben Elliston  <bje@cygnus.com>

	* configure.in: Require autoconf 2.13 and remove obsolete
	invocation of AC_C_CROSS.
	* configure: Regenerate.

1999-09-29  Doug Evans  <devans@casey.cygnus.com>

	* configure.in: Configure the testsuite directory for thumb.
	* configure: Regenerate.

1999-07-16  Ben Elliston  <bje@cygnus.com>

	* configure.in: Configure the testsuite directory for arm.
	* configure: Regenerate.

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.


