Thu Jul 16 00:58:52 1998  Jeffrey A Law  (law@cygnus.com)

        * libU77/Makefile.in: Missed one config.h.in -> config.hin change.

	* g2c.hin: Renamed from g2c.h.in.
	* Makefile.in, configure.in: Changed as needed.
	* configure: Rebuilt.

	* libU77/config.hin: Renamed from libU77/config.h.in.
	* Makefile.in, configure.in: Changed as needed.
	* configure: Rebuilt.

Tue Jul 14 21:35:30 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* Makefile.in (all): Invoke $(MAKE) instead of just make.

Tue Jul 14 02:16:34 1998  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in: stamp-lib* -> s-lib*.
	* libU77/Makefile.in: Likewise.
	* libF77/Makefile.in: Likewise.
	* libI77/Makefile.in: Likewise.

	* libU77/Makefile.in (ALL_CFLAGS): Add -I$(F2C_H_DIR).

1998-07-06  Mike Stump  <mrs@wrs.com>

	* Makefile.in (clean): Don't remove Makefiles, that is done in
	distclean.

Sat Jun 27 23:04:49 1998  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (FLAGS_TO_PASS, case G2C_H_DIR): Use $(TARGET_SUBDIR)
	instead of hardcoding "libraries".

1998-06-26  Manfred Hollstein  <manfred@s-direktnet.de>

	* Makefile.in (gcc_version_trigger): Add new macro.
	(config.status): Add dependency upon $(gcc_version_trigger).

	* configure.in (gcc_version_trigger): New variable; initialize
	using value from toplevel configure; add AC_SUBST for it.
	(gcc_version): Change initialization to use this new variable.
	* configure: Regenerate.

1998-06-24  Manfred Hollstein  <manfred@s-direktnet.de>

	* Makefile.in (version): Rename to gcc_version.
	* configure.in (version): Likewise.
	(gcc_version): Add code to use an option passed from parent configure.
	* configure: Regenerate.

1998-06-21  Dave Love  <d.love@dl.ac.uk>

	* configure.in (version, target_alias): Define.

	* Makefile.in (version, target_alias, libsubdir): Define.
	(install): Remove check for libsubdir.

Mon Apr 27 22:52:31 1998  Richard Henderson  <rth@cygnus.com>

	* libU77/ltime_.c: Bounce the ftnint argument through a local time_t.
	* libU77/gmtime_.c: Likewise.

Sun Apr 26 18:07:56 1998  Richard Henderson  <rth@cygnus.com>

	* configure.in: Adjust include paths in F2C_INTEGER and F2C_LONGINT
	tests to work out of the build directory.

1998-02-17  Dave Love  <d.love@dl.ac.uk>

	* libU77/u77-test.f: Tweak some o/p.

	* libU77/Makefile.in (check): Use -L for new directory structure.

	* Makefile.in (check): Run the u77 check.
	(config.status,	Makefile): New targets.

Wed Feb 11 01:46:20 1998  Manfred Hollstein <manfred@s-direktnet.de>

	* Makefile.in ($(lib)): Call $(AR) repeatedly to avoid overflowing
	argument size limit on ancious System V.

Sun Feb  8 00:32:17 1998  Manfred Hollstein  <manfred@s-direktnet.de>

	* Makefile.in: Add `info install-info clean-info check dvi' targets.

Mon Feb  2 11:08:49 1998  Richard Henderson  <rth@cygnus.com>

	* configure.in: Update F2C_INTEGER and F2C_LONGINT tests
	for the new placement in the hierarchy.

Sun Feb  1 02:36:33 1998  Richard Henderson  <rth@cygnus.com>

	* Previous contents of gcc/f/runtime moved into toplevel
	"libf2c" directory.

Sun Feb  1 01:42:47 1998  Mumit Khan <khan@xraylith.wisc.edu> 

	* libU77/configure.in (getlogin,getgid,getuid, kill,link,ttyname): 
	Check.
	* libU77/config.h.in (HAVE_GETLOGIN, HAVE_GETGID, HAVE_GETUID,
	HAVE_KILL, HAVE_LINK, HAVE_TTYNAME): New defs.
	* libU77/getlog_.c: Conditionalize for target platform. Set errno
	to ENOSYS if target libc doesn't have the function.
	* libU77/getgid_.c: Likewise.
	* libU77/getuid_.c: Likewise.
	* libU77/kill_.c: Likewise.
	* libU77/link_.c: Likewise.
	* libU77/ttynam_.c: Likewise.

Sun Jan 18 20:01:37 1998  Toon Moene  <toon@moene.indiv.nluug.nl>

	* libI77/backspace.c: (f_back): Use type `uiolen' to determine size
	of record length specifier.

Sat Jan 17 22:40:31 1998  Mumit Khan <khan@xraylith.wisc.edu>

	* libU77/configure.in (sys/param.h,sys/times.h): Check.
	(times,alarm): Likewise.
	* libU77/config.h.in (HAVE_SYS_PARAM_H, HAVE_SYS_TIMES_H,
	HAVE_ALARM, HAVE_TIMES): New defs.
	* libU77/alarm_.c: Conditionalize for target platform. Set errno
	to ENOSYS if target libc doesn't have the function.
	* libU77/dtime_.c: Likewise.
	* libU77/etime_.c: Likewise.
	* libU77/sys_clock_.c: Likewise.
       
	* configure.in (NON_UNIX_STDIO): Define if MINGW32.
	(NON_ANSI_RW_MODE): Do not define for CYGWIN32 or MINGW32.

	* libI77/rawio.h: Don't providing conflicting declarations for
	read() and write(). MINGW32 header files use "const" quals.

	* libF77/s_paus.c: _WIN32 does not have pause().

Tue Nov 18 09:49:04 1997  Mumit Khan   (khan@xraylith.wisc.edu)

	* libI77/close.c (f_exit): Reset f__init so that f_clos does not
	(incorrectly) think there is an I/O recursion when program is
	interrupted.

Sat Nov  1 18:03:42 1997  Jeffrey A Law  (law@cygnus.com)

	* libF77/signal_.c: Undo last change until we can fix it right.

Wed Oct 15 10:06:29 1997  Richard Henderson  <rth@cygnus.com>

	* libF77/signal_.c (G77_signal_0): Make return type sig_pf as well.
	* libI77/fio.h: Include <string.h> if STDC_HEADERS.
	* libU77/chmod_.c: Likewise.

Tue Oct  7 18:22:10 1997  Richard Henderson  <rth@cygnus.com>

	* Makefile.in (CGFLAGS): Don't force -g0.
	* libF77/Makefile.in, libI77/Makefile.in, libU77/Makefile.in: Likewise.

Mon Oct  6 14:16:46 1997  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (distclean): Do a better job at cleaning up.

Wed Oct  1 01:46:16 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>

	* libU77/sys_clock_.c: File renamed from system_clock_.c.
	* libU77/Makefile.in, Makefile.in : Reference sys_clock_.*, not
	system_clock_.*.
	* libU77/dtime_.c (clk_tck): Try also HZ macro.
	* libU77/access.c (G77_access_0): Check malloc return value against 0,
	not NULL.
	* libU77/getlog_.c, libU77/ttynam_.c, libU77/chdir_.c: Ditto.
	* libU77/chmod_.c, libU77/rename_.c: Ditto.

1997-09-19  Dave Love  <d.love@dl.ac.uk>

	* libU77/dtime_.c (G77_dtime_0): Fix types in HAVE_GETRUSAGE case
 	so as not to truncate results to integer values.
	* libU77/Version.c: Bump.

Thu Sep 18 16:58:46 1997  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (stamp-lib): Don't use '$?', explicitly
	list the variables containing the object files to include
	in libf2c.a

Fri Sep  5 00:18:17 1997  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (clean): Don't remove config.cache.
	(distclean): Do it here instead.

Tue Aug 26 20:14:08 1997  Robert Lipe  (robertl@dgii.com)

	* hostnm_.c: Include errno.h

Mon Aug 25 23:26:05 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)

	* Makefile.in (mostlyclean, clean): Check if Makefile exists
	before using it. Remove stamp-*.
	(stamp-libi77, stamp-libf77, stamp-libu77): New.
	(stamp-lib): Only depend on stamp-libi77 stamp-libf77
	stamp-libu77
