Sun Oct 19 19:09:30 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in: Add tests for sys/stat.h, sys/time.h, and sys/types.h

Tue Jun 17 01:33:20 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs 1.11

Sat Jun 14 03:26:45 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Makefile.in (SRCROOT): Allow people to set the version.h to
		something like 1.10-PLUS.

Sat Jun  7 16:38:40 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in (rmakefile): Added (optional) private directory for
		resize2fs.

	* Makefile.in: Change recursive descent rules to check to see if a
		directory exists before trying to make it.

Thu May  8 22:23:49 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Makefile.in (source_tar_file): Fix up makefile to work in new
		CVS development environment.

Thu Apr 24 12:16:42 1997  Theodre Ts'o  <tytso@localhost.mit.edu>

	* Release of E2fsprogs version 1.10

Tue Apr 22 10:48:03 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in: Add explicit check to see if linker accepts
		-static (since even Linux systems might not work if 
		libc.a isn't installed).

Thu Apr 17 12:23:38 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.09

Fri Apr 11 18:56:26 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.08

Wed Mar 12 13:32:05 1997  Theodore Y. Ts'o  <tytso@mit.edu>

	* Release of E2fsprogs version 1.07

Wed Jan 15 11:37:36 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* config.sub (basic_machine): Added i686-* as another name for the
 		Pentium Pro.

Tue Oct  8 02:02:03 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.06

Mon Oct  7 08:22:31 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Makefile.in (all): Don't run "make check" by default.  User
 	 	should manually run "make check" if they wish to test
 	 	things out.

Thu Sep 12 15:23:07 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.05

Sat Aug 31 10:55:45 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in (AC_CHECK_FUNCS): Add fchown to list of functions
	 	that we check.

Wed Aug 28 14:42:12 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* configure.in (usr_prefix): To be slightly more conformant with
		the coding standards, always default to ${prefix}
		unless on a linux system with prefix = ''.  Allow
		--with-usr-prefix option.

Tue Aug 27 16:53:29 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* configure.in (AC_CHECK_HEADERS): Add net/if.h & netinet/in.h.
		Add `--enable-fsck' switch, to allow configuration of
		fsck wrapper building (default yes except on the hurd).
		Make '' prefix default and LDFLAG_STATIC hacks work on
		the hurd as well as linux.

Tue Aug 27 16:23:56 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in: Check to see if sys/types.h defines ino_t.  Add
		support for checking/sizing "long long".

Wed Aug 21 00:44:22 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in: Added configure flag --enable-old-bitops, which
 		forces the bitops to use the standard bitmask operations.

Fri Aug  9 08:29:00 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in: Check for existence of sys/utsname.h and
	 	strcasecmp().  Remove check for EXT2 fragment in system
	 	header file.  E2fsprogs now deals with the fragment fields
	 	by dispatching off of the OS field.

Tue Aug  6 14:34:19 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in (AC_OUPUT): Create substitutions for the uuid
	 	library.

	* MCONFIG.in (all): Add new variables for the uuid library.

Thu May 23 12:39:07 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in: Make the default prefix be '' for Linux.

Thu May 16 11:12:30 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.04

Thu May 16 09:38:40 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in: 
	  MCONFIG.in: Man pages, shell scripts and include files are now
		generated using the lib/substitute_sh script.  This is
		faster than the configure substitution, and it doesn't
		change the mod time of the file if it hasn't changed,
		which prevents needless compilation of files.

		Define new sets of Makefile variables: LIBSS, LIBCOM_ERR,
 		LIBEXT2FS, LIBE2P, and their static and profiled variants,
 		STATIC_* and PROFILED_*, which point to the actual file of
 		the shared or static library.  This way makefiles can link
 		directly with exactly the library they want.  Many ld's
		(include GNU ld) have a really broken idea of how -L
		works, and will link against an older library in /usr/lib
		even though there is a newer on in a specified -L directory.
		  
Wed May 15 21:40:22 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in: Add support for --enable-dynamic-e2fsck, for
 		people who don't want to link e2fsck statically.  This
 		saves space, at the cost of increasing the reliance of
 		e2fsck other files (3-4 shared libraries).

Wed Mar 27 00:33:40 1996    <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.03

Wed Jan 31 11:06:08 1996    <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.02

Thu Oct 26 11:59:44 1995    <tytso@rsts-11.mit.edu>

	* configure.in (LDFALG_STATIC): Add temporary kludge for
		determining how to link executables statically.  For now,
		we assume that Linux systems only can link statically.

Fri Sep 22 18:23:55 1995    <tytso@rsts-11.mit.edu>

	* depfix.sed: Remove /usr/include lines which occur at the end of
		the dependency listing.

Mon Sep  4 21:40:22 1995  Remy Card  <card@bbj>

	* configure.in: Added support for the --enable-bsd-shlibs option.

Wed Aug  9 21:33:31 1995  Theodore Y. Ts'o  <tytso@dcl>

	* MCONFIG.in (LD): Add $(PURE) to the definition to make it easier
		to link executables using programs like purify.

Sat Aug  5 11:41:03 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>

	* configure.in: Check to see if strdup() is present

	* INSTALL: Updated building and installation instructions to
		reflect the new configure system.

	* Makefile.in (install): When doing a general install, install the
		shared libraries as well by using the new target 
		install-shlibs-libs-recursive.

	* configure.in: If we are building on a Linux system, set $prefix
		to be '/' by default.

Sun Jul  9 13:38:20 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* configure.in (checking type sizes): provide some default for
	type-sizes when cross-compiling, as we can't check them then.
	(SS_DIR, ET_DIR): Make these correct even when ${srcdir} is absolute.

Thu Jun 15 23:33:37 1995  Remy Card  <card@bbj>

	* Makefile.in (distclean-local): Added config.cache and
		include/linux/types.h.

	* configure.in: Added support for the --enable-elf option.
		Added a test to check for llseek() in the C library.

	* lib/Makefile.dll-lib: Fixed incorrect RM and LN calls.

	* lib/Makefile.elf-lib: New file, to create ELF shared libraries.

Sat Jun 10 19:52:51 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>

	* configure.in: Create ET_DIR and SS_DIR, which gives the absolute
		pathname to the source directories of the lib/et and
		lib/ss.  (Can't just use $srcdir since that may be a
		relative path.)

Thu Jun  8 12:25:57 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* lib/Makefile.library ($(LIBRARY).a): Changed to work with the
	new makefiles.
	* lib/Makefile.dll-lib: Ditto.
	* lib/Makefile.profiled: Ditto.
	* lib/Makefile.checker: Ditto.

	* Add the include subdirectory to hold substitute include files
	for systems that need them.

	* Makefile.in: Rewritten to conform to GNU coding standards.
	* MCONFIG: Moved to MCONFIG.in, and totally changed to support
	GNU-style makefiles.
	* mkinstalldirs: New file, copied from /gd/gnu/lib.
	* config.guess: Ditto.
	* config.sub: Ditto.
	* install-sh: Ditto.

	* configure.in: Many new tests added.  --with-cc and --with-ccopts
	options removed as configure already supports a method to do this,
	and they were interfering with normal usage.

Sat Mar 11 18:23:45 1995  Theodore Y. Ts'o  <tytso@localhost>

	* Makefile.in (bin-tree): Add Makefile target which automatically
		generates the binary distribution for e2fsprogs.


