2003-01-31  Bruno Haible  <bruno@clisp.org>

	* PACKAGING: Add gettext-po.h and libgettextpo*.

2003-01-03  Albert Chin  <libtool@thewrittenword.com>

	* ltmain.sh: Don't pass -R flags found in a .la's dependency_libs
	variable directly down to the linker.
	Reported by Tim Mooney <mooney@dogbert.cc.ndsu.nodak.edu>.

2003-01-14  Bruno Haible  <bruno@clisp.org>

	* configure.in (gt_cv_prog_cxx_namespaces): Reject C++ compilers that
	have namespaces but for which std::ostream is undefined, like cxx on
	Tru64.
	Reported by Martin Mokrejš <mmokrejs@natur.cuni.cz>.

2003-01-12  Bruno Haible  <bruno@clisp.org>

	* configure.in: Invoke gl_FUNC_ALLOCA instead of AC_FUNC_ALLOCA.

2003-01-12  Bruno Haible  <bruno@clisp.org>

	* Makefile.am: Make use of += for variables.

2002-12-16  Bruno Haible  <bruno@clisp.org>

	* configure.in: Add test for <utime.h>. Needed for mingw32.

2002-12-07  Bruno Haible  <bruno@clisp.org>

	Switch to autoconf-2.57 and automake-1.7.2.
	* configure.in: Use AC_CONFIG_FILES, because the AC_OUTPUT commands
	and not run any more when config.status is called to create a single
	file.
	* elisp-comp: New file, from automake-1.7.2.

2002-11-19  Bruno Haible  <bruno@clisp.org>

	Switch to autoconf-2.56.
	* configure.in (LTLIBOBJS): Remove variable.

2002-11-14  Bruno Haible  <bruno@clisp.org>

	* Makefile.am ($(srcdir)/tests/rpathx/aclocal.m4,
	$(srcdir)/tests/rpathy/aclocal.m4,
	$(srcdir)/tests/rpathz/aclocal.m4): Depend on m4/libtool.m4.

2002-11-13  Bruno Haible  <bruno@clisp.org>

	Assume ANSI C.
	* configure.in: Remove AC_C_BACKSLASH_A call.
	* os2/configure.awk: Remove HAVE_C_BACKSLASH_A setting.

2002-11-07  Bruno Haible  <bruno@clisp.org>

	* ltmain.sh: Upgrade to libtool-1.4.3.
	* config.rpath: Upgrade to libtool-1.4.3.

2002-10-28  Bruno Haible  <haible@clisp.cons.org>

	* config.guess, config.sub: Update to GNU version 2002-10-21.

2002-10-27  Bruno Haible  <bruno@clisp.org>

	* libasprintf: New subdirectory.
	* configure.in (CXX): Adjust to match the result in and the
	requirements of the libasprintf subdirectory.
	(SUBDIR_libasprintf): New AC_SUBST.
	(AC_CONFIG_SUBDIRS): Recurse into libasprintf.
	* Makefile.am (SUBDIRS): Add libasprintf conditionally.
	(DIST_SUBDIRS): New variable.
	* PACKAGING: Add libasprintf.*, autosprintf.h, and its documentation
	autosprintf.html, autosprintf.info.

2002-10-27  Bruno Haible  <bruno@clisp.org>

	* PACKAGING: Update list of installed .m4 files.

2002-09-27  Bruno Haible  <bruno@clisp.org>

	* mkinstalldirs: Update from automake-1.7+.

2002-09-16  Bruno Haible  <bruno@clisp.org>

	* ltmain.sh (install): Use "ln -s -f" instead of "rm -f && ln -s"
	to make a symlink for a shared library.
	Reported by Nelson H. F. Beebe <beebe@math.utah.edu>.

2002-08-06  Bruno Haible  <bruno@clisp.org>

	* gettext-0.11.5 released.

2002-07-25  Bruno Haible  <bruno@clisp.org>

	* gettext-0.11.4 released.

2002-07-17  Bruno Haible  <bruno@clisp.org>

	* gettext-0.11.3 released.

2002-07-16  Bruno Haible  <bruno@clisp.org>

	* configure.in: Bump version number to 0.11.3.
	(RELEASE_DATE): Bump.

2002-07-16  Bruno Haible  <bruno@clisp.org>

	* configure.in: Call gt_GCJ and set BUILDJAVAEXE.

2002-07-16  Bruno Haible  <haible@clisp.cons.org>

	* config.guess, config.sub: Update to GNU version 2002-07-09.

2002-07-14  Bruno Haible  <bruno@clisp.org>

	* configure.in: Switch to autoconf-2.52. Split AC_INIT into AC_INIT
	and AC_CONFIG_SRCDIR. Replace AM_TYPE_PTRDIFF_T with AC_CHECK_TYPES.
	Call AH_TOP and AH_BOTTOM with earlier contents of acconfig.h. Use
	AC_LANG_PUSH/AC_LANG_POP instead of AC_LANG_CPLUSPLUS/AC_LANG_RESTORE.
	Use AC_TRY_EVAL instead of AC_TRY_COMPILER.
	* acconfig.h: Remove file.

2002-06-15  Bruno Haible  <bruno@clisp.org>

	* configure.in: Call AC_LIBTOOL_WIN32_DLL.

2002-05-19  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (CONFIGURES_RPATHZ, CONFIGURES_RPATHLZ,
	CONFIGURES_RPATHLZYX): New variables.
	(SUBCONFIGURES): Add them.
	($(srcdir)/tests/rpath*z*/Makefile.in): New rules.
	($(srcdir)/tests/rpath*z*/aclocal.m4): New rules.
	($(srcdir)/tests/rpath*z*/configure): New rules.

2002-05-18  Bruno Haible  <bruno@clisp.org>

	* PACKAGING: Remove note about libgettextlib.a and libgettextsrc.a.

2002-05-03  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (SUBDIRS): Move man and m4 after projects and misc.
	'man' must be after 'misc' because 'misc' contains some programs.

2002-05-01  Bruno Haible  <bruno@clisp.org>

	* configure.in (AC_OUTPUT): Add misc/autopoint. Make misc/autopoint
	executable.

2002-05-01  Bruno Haible  <bruno@clisp.org>

	* INSTALL: Remove the recommendation to set CPPFLAGS and LDFLAGS.
	The lib-link.m4 macros make this unnecessary.

2002-04-28  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (gettextsrc_SCRIPTS): Add mkinstalldirs.

2002-04-24  Bruno Haible  <bruno@clisp.org>

	* gettext-0.11.2 released.

2002-04-24  Bruno Haible  <bruno@clisp.org>

	* configure.in: Bump version number to 0.11.2.
	(RELEASE_DATE): Bump.

2002-03-15  Andrew Zabolotny  <zap@cobra.ru>

	* os2/README.OS2: Update.
	* os2/Makefile: Likewise.

2002-03-12  Bruno Haible  <bruno@clisp.org>

	* gettext-0.11.1 released.

2002-03-12  Bruno Haible  <bruno@clisp.org>

	* configure.in: Bump version number to 0.11.1.
	(RELEASE_DATE): Bump.

	* Makefile.am (EXTRA_DIST): Add some more djgpp/* files.

2002-03-09  Bruno Haible  <bruno@clisp.org>

	* configure.in: Don't check for stpncpy; AIX 4.3.3 has an incompatible
	implementation of it.
	* acconfig.h (HAVE_STPNCPY): Define on glibc systems only.

2002-03-07  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (MAKEINFO): New variable.
	* missing (makeinfo): Don't call touch without arguments if the source
	texinfo file doesn't contain a @setfilename command.
	Reported by Miroslaw Dobrzanski-Neumann <mne@mosaic-ag.com>.

2002-02-15  Bruno Haible  <bruno@clisp.org>

	* djgpp/*: Update DJGPP support.
	From Juan Manuel Guerrero <st001906@hrz1.hrz.tu-darmstadt.de>.
	* configure.in (CXX): Recognize 'gpp' as an alternative name for 'g++'.

2002-02-14  Andrew Zabolotny  <zap@cobra.ru>

	* os2/README.OS2: Update.
	* os2/Makefile: Update.

2002-02-10  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (EXTRA_DIST): Remove os2/iconv/README.

2002-01-14  Bruno Haible  <bruno@clisp.org>

	* configure.in: Add check for libexpat.

2002-02-02  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (SUBDIRS): Add libuniname.
	* configure.in (AC_OUTPUT): Add libuniname/Makefile.

2002-02-06  Bruno Haible  <bruno@clisp.org>

	* ltmain.sh: Upgrade from libtool-1.4 to libtool-1.4.2.
	* config.rpath: Likewise.

2002-02-02  Bruno Haible  <bruno@clisp.org>

	* ltmain.sh: Add DESTDIR support on ELF systems.

2002-01-31  Bruno Haible  <bruno@clisp.org>

	* gettext-0.11 released.

2002-01-31  Bruno Haible  <bruno@clisp.org>

	* configure.in: Bump version number to 0.11.
	(RELEASE_DATE): Bump.
	* Makefile.am (EXTRA_DIST): Remove README-alpha.

2002-01-31  Bruno Haible  <bruno@clisp.org>

	* INSTALL: Remove instructions for using Intel icc. It's getting to
	be fixed in icc.

2002-01-30  Bruno Haible  <bruno@clisp.org>

	* configure.in:
	Check for strtoul through AC_CHECK_FUNCS, not AC_REPLACE_FUNCS.
	Call gt_FUNC_ERROR_AT_LINE instead of AM_FUNC_ERROR_AT_LINE.
	* PACKAGING: New file.
	* Makefile.am (EXTRA_DIST): Add it.

2002-01-24  Bruno Haible  <bruno@clisp.org>

	* Makefile.am ($(srcdir)/tests/rpathy/aclocal.m4): Fix dependencies.

2002-01-21  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (EXTRA_DIST): Add os2/configure.awk.
	Remove os2/iconv/iconv.h, os2/iconv/iconv.c.

2002-01-20  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (CONFIGURES_RPATH*): New variables.
	($(srcdir)/tests/rpath*/Makefile.in): New rules.
	($(srcdir)/tests/rpath*/aclocal.m4): New rules.
	($(srcdir)/tests/rpath*/configure): New rules.
	(SUBCONFIGURES): New variable.
	(subconfigures): New target.
	(distdir): Depend on subconfigures.
	* configure.in: Propagate GCC, LD, with_gnu_ld to Makefiles.
	Postprocess Makefile because of distdir dependency.

2002-01-12  Bruno Haible  <bruno@clisp.org>

	* INSTALL: Add instructions for using Intel icc.

2002-01-11  Bruno Haible  <bruno@clisp.org>

	* configure.in: Change version number to 0.11-pre5.

2002-01-11  Bruno Haible  <bruno@clisp.org>

	* configure.in: Postprocess doc/Makefile a second time.

2002-01-10  Bruno Haible  <bruno@clisp.org>

	* acconfig.h [OS/2]: Include intl/os2compat.h, not os2/os2compat.h.
	* Makefile.am (EXTRA_DIST): Remove os2/os2compat.h.

2002-01-10  Andrew Zabolotny  <zap@cobra.ru>

	* os2/README.OS2: Update.
	* os2/Makefile: Heavily reworked.
	* os2/iconv/iconv.c: Bug fixes.

2002-01-07  Bruno Haible  <bruno@clisp.org>

	* config.rpath [IRIX]: Fix typo.

2002-01-05  Bruno Haible  <bruno@clisp.org>

	* configure.in: Postprocess doc/Makefile.

2002-01-04  Bruno Haible  <haible@clisp.cons.org>

	* config.guess, config.sub: Update to GNU version 2002-01-02.

2001-12-17  Bruno Haible  <bruno@clisp.org>

	* configure.in: Call gt_FUNC_FNMATCH.

2001-12-17  Bruno Haible  <bruno@clisp.org>

	* configure.in: Change version number to 0.11-pre4.

2001-12-15  Andrew Zabolotny  <zap@cobra.ru>
	    Bruno Haible  <bruno@clisp.org>

	* os2/*: New EMX support.
	* Makefile.am (EXTRA_DIST): Remove old os2/ contents, add new os2/
	contents.
	* acconfig.h: Add conditional include of os2/os2compat.h.

2001-12-11  Bruno Haible  <bruno@clisp.org>

	* configure.in: Use a variant of AC_PROG_CXX_WORKS that doesn't abort
	upon failure.

2001-12-11  Bruno Haible  <bruno@clisp.org>

	* configure.in: Change version number to 0.11-pre3.

2001-12-02  Bruno Haible  <bruno@clisp.org>

	* config.rpath: New file.
	* Makefile.am (EXTRA_DIST): Add it.
	(gettextsrc_SCRIPTS): New variable.

2001-11-30  Bruno Haible  <bruno@clisp.org>

	* configure.in: Change version number to 0.11-pre2.

2001-11-25  Bruno Haible  <bruno@clisp.org>

	* configure.in: Check for C++ compiler.

2001-11-18  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Make misc/gettextize executable.

2001-11-10  Bruno Haible  <haible@clisp.cons.org>

	* acconfig.h (PARAMS): Also test for __GNUC__, __SUNPRO_C, __cplusplus
	and __PROTOTYPES because on 64-bit Solaris, we need prototypes
	although __STDC__ is often defined to 0. __GNUC__ covers GCC,
	__SUNPRO_C covers Sun cc, regardless of compilation flags.
	__PROTOTYPES, __cplusplus are just for consistency with libgnuintl.h.

2001-11-03  Bruno Haible  <haible@clisp.cons.org>

	* ltmain.sh: chmod 777 the .libs directory, so that "make install"
	succeeds.

2001-10-30  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Change version number to 0.11-pre1.
	* Makefile.am (EXTRA_DIST): Add README-alpha.

2001-10-21  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Define LTLIBOBJS and LTALLOCA based on LIBOBJS, ALLOCA.

2001-10-19  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Remove check for texi2html.

2001-10-09  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Also check for putc_unlocked.

2001-10-21  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am (SUBDIRS): Add projects.
	* configure.in (AC_OUTPUT): Add projects/Makefile.

2001-09-29  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Also create src/user-email.

2001-09-29  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Call gt_PREREQ_HOSTNAME.

2001-09-25  Bruno Haible  <haible@clisp.cons.org>

	Upgrade to automake-1.5.
	* aclocal.sh: Remove file.
	* Makefile.am (AUTOMAKE_OPTIONS): Add 'no-dependencies'.
	(EXTRA_DIST): Remove aclocal.sh.
	* configure.in: Add some postprocessing to lib/Makefile, src/Makefile,
	tests/Makefile.
	* missing: Upgrade to automake-1.5.
	* ylwrap: New file, from automake-1.5.

2001-09-23  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Call gt_SIGINFO.

2001-10-20  Bruno Haible  <haible@clisp.cons.org>

	* DISCLAIM: Update from
	http://www.iro.umontreal.ca/contrib/po/doc/DISCLAIM.

2001-10-20  Bruno Haible  <haible@clisp.cons.org>

	Assume strchr() exists.
	* configure.in: Remove check for strchr.

2001-09-17  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Call gt_PREREQ_BACKUPFILE.

2001-09-17  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Check for utime and utimes.

2001-09-08  Bruno Haible  <haible@clisp.cons.org>

	* configure.in (AC_OUTPUT): Add intl-java/Makefile.
	* Makefile.am (SUBDIRS): Add intl-java.

2001-09-16  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Don't check for memmove (unneeded).

2001-09-02  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Add check for 'raise'. Call gt_SIGNALBLOCKING.

2001-09-08  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Call gt_JAVACOMP and check for 'jar'. Define BUILDJAVA.
	Call gt_JAVAEXEC. Define TESTJAVA.
	(AC_OUTPUT): Also create lib/javacomp.sh and lib/javaexec.sh.

2001-09-06  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Add AC_REPLACE_FUNCS of strpbrk.

2001-09-06  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Call gt_FUNC_SETENV.

2001-09-02  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Call gt_TMPDIR and gt_FUNC_MKDTEMP.

2001-09-03  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Call gt_PROG_LEX.

2001-08-26  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Remove parse_printf_format check.

2001-07-28  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Don't call AC_REVISION. It modifies configure.in
	during "cvs commit" after "make dist".

2001-07-28  Bruno Haible  <haible@clisp.cons.org>

	* configure.in (AC_OUTPUT): Add man/x-to-1.

2001-07-26  Bruno Haible  <haible@clisp.cons.org>

	* configure.in (configure.in): Remove automake bug workarounds, not
	needed anymore with automake-1.4-p5.

2001-07-22  Bruno Haible  <haible@clisp.cons.org>

	* configure.in (ALL_LINGUAS): Remove assignment.

2001-08-02  Bruno Haible  <haible@clisp.cons.org>

	* README: Change bug report address to <bug-gnu-gettext@gnu.org>.
	* configure.in: Likewise.

2001-06-30  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Call gt_STDBOOL_H.

2001-06-25  Bruno Haible  <haible@clisp.cons.org>

	* configure.in (ACLOCAL_VERSION): Remove.

2001-06-25  Bruno Haible  <haible@clisp.cons.org>

	* aclocal.sh: Tweak last patch for automake-1.4f.

2001-06-23  Bruno Haible  <haible@clisp.cons.org>

	* aclocal.sh: Don't fail if aclocal isn't available.

2001-06-15  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Remove post-processing of tests/Makefile.

2001-06-10  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Add test for cross compilation and for PERL.

2001-06-10  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Bump version number to 0.11.

2001-06-10  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Check for ssize_t, pid_t, posix_spawn, select.
	Call AC_FUNC_VFORK, gt_UNION_WAIT.

2001-09-13  Bruno Haible  <haible@clisp.cons.org>

	* gettext-0.10.40 released.

2001-09-13  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Bump version number to 0.10.40.
	(RELEASE_DATE): Bump.

	* config.guess, config.sub: Update to GNU version 2001-09-13.

2001-07-31  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am (AUTOMAKE_OPTIONS): Bump to 1.4. Use option 'gnu', not
	'gnits', to avoid distributing README-alpha.

2001-07-24  Bruno Haible  <haible@clisp.cons.org>

	* gettext-0.10.39 released.

2001-06-08  Bruno Haible  <haible@clisp.cons.org>

	* ltmain.sh: Upgrade to libtool-1.4.
	* ltconfig: Remove file.

2001-05-23  Bruno Haible  <haible@clisp.cons.org>

	* gettext-0.10.38 released.

2001-05-23  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Bump version number to 0.10.38.
	(RELEASE_DATE): Bump.

	* INSTALL (Optional Features): Document --with-libiconv-prefix.
	(Particular Systems): Generalize section about /usr/local to "most
	systems".
	* config.guess, config.sub: Update to GNU version 2001-05-11.

2001-05-20  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am (SUBDIRS): Add man.
	* configure.in (AC_OUTPUT): Add man/Makefile.

2001-05-17  Bruno Haible  <haible@clisp.cons.org>

	* configure.in (ALL_LINGUAS): Add cs, gl, id, it, ru. zh.

2001-04-30  Bruno Haible  <haible@clisp.cons.org>

	* configure.in (ALL_LINGUAS): Add et.

2001-04-19  Bruno Haible  <haible@clisp.cons.org>

	* gettext-0.10.37 released.

2001-04-17  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Check for dvips, texi2pdf, texi2html.

2001-04-17  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Bump version number to 0.10.37.
	(RELEASE_DATE): Bump.

2001-04-04  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Call jm_PREREQ_MBSWIDTH.

2001-04-04  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am (ps, pdf, html): New targets.

2001-04-02  Bruno Haible  <haible@clisp.cons.org>

	* configure.in (ALL_LINGUAS): Add pt_BR.

2001-03-29  Bruno Haible  <haible@clisp.cons.org>

	* gettext-0.10.36 released.

2001-03-28  Bruno Haible  <haible@clisp.cons.org>

	* config.guess, config.sub: Update to GNU version 2001-03-19.

2001-03-25  Bruno Haible  <haible@clisp.cons.org>

	* acconfig.h (WARN_ID_LEN): Remove macro.

2001-03-21  Bruno Haible  <haible@clisp.cons.org>

	* INSTALL (Particular Systems): Add recommendations for AIX 3.

2001-03-20  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am (MAINTAINERCLEANFILES): Remove variable.
	(EXTRA_DIST): Incorporate its contents.

2001-03-16  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Postprocess tests/Makefile to work around an
	inconsistency in automake-1.4: EXTRA_PROGRAMS is not treated like
	bin_PROGRAMS.

2001-03-11  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Add AC_REPLACE_FUNCS(strcasecmp). Needed for EMX.

2001-03-11  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Use AM_FUNC_GETLINE instead of
	AC_REPLACE_FUNCS(getline). Needed for HP-UX 10.

2001-03-11  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Pass 'need-ngettext' to AM_GNU_GETTEXT.

2001-03-11  Bruno Haible  <haible@clisp.cons.org>

	* configure.in (ALL_LINGUAS): Add en@quot and en@boldquot.

2001-03-10  Bruno Haible  <haible@clisp.cons.org>

	* INSTALL: New section "Particular Systems".

	* configure.in: Postprocess Makefile to work around another
	automake-1.4 bug: on FreeBSD, shell commands are run with "set -e".

	* configure.in: Postprocess misc/Makefile to work around another
	automake-1.4 bug: if @EMACS@ = no, $(lispdir) is empty.

2001-03-09  Bruno Haible  <haible@clisp.cons.org>

	* os2/*: EMX support.
	From Jun Sawataishi <jsawa@attglobal.net>.
	* Makefile.am (EXTRA_DIST): Add these files.

2001-03-09  Bruno Haible  <haible@clisp.cons.org>

	* config.guess, config.sub: Update to GNU version 2001-03-06.

2001-03-09  Bruno Haible  <haible@clisp.cons.org>

	* djgpp/*: DJGPP support.
	From Juan Manuel Guerrero <st001906@hrz1.hrz.tu-darmstadt.de>.
	* Makefile.am (EXTRA_DIST): Add these files.
	(MAINTAINERCLEANFILES): New variable.

2001-03-09  Bruno Haible  <haible@clisp.cons.org>

	* configure.in (RELEASE_DATE): New variable.
	Create intl/ChangeLog.inst.

2001-03-03  Bruno Haible  <haible@clisp.cons.org>

	* ltconfig:
	sed -e 's/reload object files/produce relocatable object files/'.

	Better support for DOS/Windows platforms.
	* configure.in: Call AC_OBJEXT and AC_EXEEXT.

2001-03-06  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Call bh_C_SIGNED.

2001-02-27  Bruno Haible  <haible@clisp.cons.org>

	* configure.in (ALL_LINGUAS): Replace no@nynorsk with nn.

2001-02-10  Bruno Haible  <haible@clisp.cons.org>

	* configure.in (ALL_LINGUAS): Add ja.

2001-02-04  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am (SUBDIRS): Move intl before lib, because lib needs
	libintl.h if the included libintl is used.

2001-01-21  Bruno Haible  <haible@clisp.cons.org>

	Use libtool.
	* configure.in: Add argument 'use-libtool' to AM_GNU_GETTEXT call.

2001-01-20  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Add a third argument to AC_DEFINE.
	Require autoconf-2.13.
	* acconfig.h (_GNU_SOURCE): Remove, now done in configure.in.
	(HAVE_PARSE_PRINTF_FORMAT): Likewise.
	(ENABLE_NLS): Remove, now done in m4/gettext.m4.
	(HAVE_GETTEXT): Likewise.
	(HAVE_STPCPY): Likewise.
	(HAVE_LC_MESSAGES): Remove, now done in m4/lcmessage.m4.
	(HAVE_PTRDIFF_T): Remove, now done in automake-1.4's ptrdiff.m4.
	(HAVE_OBSTACK): Remove, not set by configure.
	(HAVE_CATGETS): Likewise.

2001-01-07  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am (DISTCLEANFILES): Remove. Now done in intl/Makefile.in.
	* configure.in: Stop creating intl/intlh.inst from intl/intlh.inst.in.
	Now done through a simple file copy.

2001-01-06  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Use AC_CHECK_HEADERS instead of AC_HAVE_HEADERS.
	Call gt_SETLOCALE.

2000-12-30  Bruno Haible  <haible@clisp.cons.org>

	* ltconfig, ltmain.sh: Update from libtool-1.3.5.
	* config.guess, config.sub: Update to GNU version 2000-11-10.
	* missing: Update from gmp-3.1.1.
	* install-sh: Update from fileutils-4.0.32.

2000-12-30  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Call jm_AC_TYPE_UNSIGNED_LONG_LONG and
	jm_AC_TYPE_UINTMAX_T.

2000-11-09  Bruno Haible  <haible@clisp.cons.org>

	* configure.in (ALL_LINGUAS): Add tr.

2000-08-23  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Invoke AC_C_BACKSLASH_A.

2000-07-29  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am (EXTRA_DIST): Add aclocal.sh.

2000-07-28  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Postprocess misc/Makefile to workaround an automake
	bug.

2000-06-16  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am: Put back the ACLOCAL_AMFLAGS definition, but define
	ACLOCAL as a wrapper around aclocal.
	* aclocal.sh: New file.

	* config.guess, config.sub: Update to GNU version 2000-06-13.
	* misc/locale.alias: Update to glibc CVS version 2000-06-13.

2000-05-06  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am: Comment out ACLOCAL_AMFLAGS definition.  The files
	come with automake and therefore the -I will cause redefinitions.

	* acconfig.h: Define HAVE_BASENAME if glibc is used.
			
1998-05-01 08:47  Ulrich Drepper  <drepper@cygnus.com>

	* gettext-0.10.35 released.

1998-04-30 23:20  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Remove commands in AC_OUTPUT.  Moved into
	AM_GNU_GETTEXT macro in m4/gettext.m4.

	* configure.in: Bump version number to 0.10.35.

1998-04-28 16:07  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Bump version number to 0.10.34.
	Don't test for basename function.

1998-04-27 20:36  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am (AUTOMAKE_OPTIONS): Require version 1.3.
	(ACLOCAL_AMFLAGS): New variable, set to -I m4.
	(aclocaldir): Definition removed.
	(gettextsrc_DATA): New variable, set to ABOUT_NLS.

	* configure.in: Bump version number to 0.10.33.
	Define INCLUDE_LOCALE_H in gettext.m4.  Remove AC_LINK_FILES line,
	can now be in gettext.m4.  Rewrite also m4/Makefile.

1997-09-06 01:11  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Bump version number to 0.10.32.

1997-09-05 05:44  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (ALL_LINGUAS): Add da.

1997-08-21 15:02  Ulrich Drepper  <drepper@cygnus.com>

	* progtest.m4: Change copyright.
	* lcmessage.m4: Change copyright.
	* gettext.m4: Change copyright.

1997-08-19 03:20  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Bump version number to 0.10.31.

1997-08-18 13:47  Philippe De Muyter  <phdm@info.ucl.ac.be>

	* configure.in (ACLOCAL_VERSION): Do not use nested \(..\) with sed.

1997-08-15 03:04  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (VERSION): Bump version number to 0.10.30.

	* acconfig.h: Change DEFAULT_ALIGNMENT to DEFAULT_OUTPUT_ALIGNMENT
	to avoid clash with macro with same name in obstack.c.
	Reported by Akim Demaille <demaille@inf.enst.fr>.

1997-08-15 12:40  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (VERSION): Bump to 0.10.29.

1997-08-01 15:47  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Remove obstack test.
	Don't always rewrite po/Makefile.in, only if in CONFIG_FILES.

	* Makefile.am (EXTRA_DIST): Add README.gemtext.

	* Makefile.am (AUTOMAKE_OPTIONS): Require version 1.2.

1997-05-29 12:44  Ulrich Drepper  <drepper@cygnus.com>

	* gettext.m4: Don't use INTLDEPS="../intl/libintl.a" which forces
	a to use only one level of subdirs.  Use $(top_builddir)/intl
	instead.
	Patch by Akim Demaille <demaille@inf.enst.fr>.

1997-05-01 02:26  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (VERSION): Bump to 0.10.28.

	* gettext.m4: Check for sys/param.h header.
	Patch by Bruno Haible <haible@ilog.fr>.

	* gettext.m4: Be safe and call test with quoted arguments and
	explicit -n option.
	Patch by Bruno Haible <haible@ilog.fr>.

	* gettext.m4: Require AC_PROG_RANLIB.
	Reported by Tom Tromey <tromey@cygnus.com>.

	* gettext.m4: Remove POTFILES before generating it.
	Patch by Jim Meyering <meyering@eng.ascend.com>.

Wed Dec  4 00:36:11 1996  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am (EXTRA_DIST): Remove @DIST-ALPHA@.

Tue Dec  3 23:55:43 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Make sure aclocaldir gets substituted.

Tue Dec  3 19:38:41 1996  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am (aclocal_DATA): Install aclocal macros for gettext.

	* configure.in: Bump version number to 0.10.26.

Fri Nov 22 22:57:48 1996  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am (EXTRA_DIST): Add gettext.m4, lcmessage.m4, and
	progtest.m4.
	Reported by Tom Tromey.

Thu Nov 21 23:07:20 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Use AM_INIT_AUTOMAKE.  Rename various tests to
	official AM_*.  Write tests/Makefile.

	* aclocal.m4: Removed.  The test are now in separate files.
	* gettext.m4, progtext.m4, lcmessage.m4: New files.

	* Makefile.am (AUTOMAKE_OPTIONS): Require 1.1.
	(MAINT_CHARSET): Latin 1 is used here.
	(gettextdemodir): Removed.
	(gettextdemo_DATA): Removed.

Fri Sep 20 12:41:23 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (ALL_LINGUAS): Add pt.

Wed Sep 18 17:55:23 1996  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am (SUBDIRS): Change checks to tests.

Sat Aug 31 14:19:04 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (VERSION): Bump to 0.10.25.

Sat Aug 31 04:50:13 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Add test for error which is part of GNU libc.

	* aclocal.m4: Check for gettext in libc.  Necessary for GNU libc.

Tue Aug 27 04:05:19 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (ALL_LINGUAS): Add es.

Sun Aug 18 18:49:34 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Use AM_PROG_INSTALL instead of fp_PROG_INSTALL.

	* aclocal.m4 (fp_PROG_INSTALL): Rename to AM_PROG_INSTALL.

Fri Jul 19 12:18:55 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Don't use NULL in check for obstack.

Tue Jul 16 01:51:47 1996  Ulrich Drepper  <drepper@cygnus.com>

	* aclocal.m4: Correct text for --with-included-gettext option.
	Patch by François Pinard.

Sun Jul 14 01:16:19 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (VERSION): Bump to 0.10.24.

Sat Jul  6 01:49:26 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (VERSION): Bump to 0.10.23.

Tue Jul  2 16:42:20 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (ALL_LINGUAS): Add nl.
	Add AC_PROG_MKINSTALLDIRS test.
	Set AC_PREREQ to 2.99 since no official autoconf has the
	bugs fixed.

	* aclocal.m4: Fix check for obsolete xgettext implementation.
	Patch by Marcus Daniels.

Sat Jun 22 04:25:23 1996  Ulrich Drepper  <drepper@cygnus.com>

	* aclocal.m4: Define MKINSTALLDIRS.

 	* configure.in (VERSION): Bump to 0.10.22.

Wed Jun 19 01:26:09 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (AC_REPLACE_FUNCS): Add stpncpy.

	* configure.in (VERSION): Bump to 0.10.21.

	* configure.in (AC_REPLACE_FUNCS): Add strncasecmp.

Tue Jun 18 15:11:01 1996  Ulrich Drepper  <drepper@cygnus.com>

	* acconfig.h (PAGE_WIDTH): Define to 79.  This allows even in
        Emacs nice looking lines.

	* aclocal.m4 (md_PATH_PROG): remove macro.
	(ud_PATH_PROG_WITH_TEST): New macro.  Similar to AC_PATH_PROG, only
	that an additional, user-given test is performed before a program
	is accepted.

	Rewrite all tests for msgfmt and xgettext to use
	ud_PATH_PROG_WITH_TEST to make sure no XView versions are used.

	* configure.in (ACLOCAL_VERSION): Determine version number in
	aclocal.m4 file which is used in misc/gettextize.
	(VERSION): Bump to 0.10.20.

Fri Jun 14 04:07:10 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (VERSION): Bump to 0.10.19.

Thu Jun 13 15:19:45 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (VERSION): Bump to 0.10.18.

Tue Jun 11 15:02:49 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (ALL_LINGUAS): Add `sl' for Slowenian.

	* Makefile.am (EXTRA_DIST): Add DISCLAIM.
	Reported by François Pinard.

Sun Jun  9 12:46:31 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (ALL_LINGUAS): Do not write intlh.inst.in, but
	intlh.inst.  Reported by Marcus Daniels.

Fri Jun  7 01:51:57 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (VERSION): Bump to 0.10.17.

Thu Jun  6 01:55:47 1996  Ulrich Drepper  <drepper@cygnus.com>

	* aclocal.m4: Define USE_INCLUDED_LIBINTL in case we need the code
        from the intl/ subdir.

	* configure.in: Undo patch from Wed Jun 5 00:10:36 1996.  We do
        need intlh.inst.

	* aclocal.m4: Remove definition of INTLSUB.  Add definition of
	GT_NO and GT_YES (needed in intl/Makefile.in).

Wed Jun  5 00:10:36 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (VERSION): Bump to 0.10.16.

	* configure.in: Don't write intlh.inst.

	* configure.in (VERSION): Bump to 0.10.15.

Tue Jun  4 00:10:25 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Rewrite intl/intlh.inst.in depending on whether
	<locale.h> is available or not.
	Reported by Peter Miller.

	* aclocal.m4 (ud_WITH_NLS): Using `AC_CHECK_LIB(intl, main)' is
	not useful.  Use `AC_CHECK_LIB(intl, bindtextdomain)' instead.
	Patch by Uwe Ohse.

	* configure.in (AC_REPLACE_GNU_GETOPT): Removed.  We don't need
	this because the getopt source itself knows when it can be
	omitted.

Mon Jun  3 00:04:55 1996  Ulrich Drepper  <drepper@cygnus.com>

	* aclocal.m4 (AC_REPLACE_GNU_GETOPT): Don't need this anymore.
	The getopt sources should recognize when the getopt is available
	in the library.

	* configure.in (VERSION): Bump to 0.10.14.

	* Makefile.am (AUTOMAKE_OPTIONS): Add variable to control Automake
        behaviour.  Thanks, Tom.

	* configure.in: Check for __argz_count, __argz_stringify, and
        __argz_next in aclocal.m4.
	* aclocal.m4: Add above checks.

	* aclocal.m4: Fix typo in --with-included-gettext handling.

Sun Jun  2 01:50:03 1996  Ulrich Drepper  <drepper@cygnus.com>

	* aclocal.m4 (ud_WITH_NLS): If used in gettext always define
        USE_NLS to yes.

	* configure.in: Add AC_ARG_PROGRAM.  Don't write tupdate because
	it does not exist anymore.

Sat Jun  1 03:18:15 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (VERSION): Bump to 0.10.13.  Remove check for Perl.

	* configure.in: Add the test for __argz_next.

	* configure.in: We don't want to replace the __argz_* function,
        just check.

	* configure.in: Add __argz_count and __argz_stringify to
        AC_CHECK_FUNC list.

	* aclocal.m4 (ud_WITH_NLS): Change command line option
	`--with-gnu-gettext' to `--with-included-gettext'.  The former was
	misleading because this option really means to ignore a possibly
	installed GNU libintl.

Sun May 26 03:09:43 1996  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.in (ABOUT-NLS): Don't cd to doc/ dir.  Use -I option of
	makeinfo instead.  Patch by Tran Huu Da <tranhu@IRO.UMontreal.CA>.

Sat May 11 11:40:17 1996  Ulrich Drepper  <drepper@myware>

	* aclocal.m4: Move INSTOBJECT initialization out of recently
	introduced AC_TRY_LINK macro.  Reported by Jim Meyering.

Sat May 11 00:31:40 1996  Ulrich Drepper  <drepper@myware>

	* aclocal.m4: Check whether locally available libintl is GNU
	gettext library.  In this case we use .gmo files and share/ as
	datadir.

Wed Apr 24 23:49:29 1996  Ulrich Drepper  <drepper@myware>

	* aclocal.m4 (AC_REPLACE_GNU_GETOPT): New macro by Jim Meyering.
	Test for GNU's getopt implementation.

	* configure.in: Use AC_REPLACE_GNU_GETOPT.

Thu Apr  4 23:35:56 1996  Ulrich Drepper  <drepper@myware>

	* Makefile.in (ABOUT-NLS): Adapt rule for using matrix.texi.

Thu Apr  4 01:58:14 1996  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.10.12.

Tue Apr  2 18:55:50 1996  Ulrich Drepper  <drepper@myware>

	* aclocal.m4: Test whether found xgettext program is really GNU
	xgettext.  Else ignore it.

	* Makefile.in (all): Do all-gettext-recursive instead of
	all-recursive.  We need a special all goal in intl/ because we
	always have to build libintl.a.

Tue Apr  2 17:34:55 1996  Ulrich Drepper  <drepper@myware>

	* aclocal.m4: Major change!!!  By default the catgets emulation is
	*not* selected anymore.  The installer explicitely has to select
	--with-catgets.  Looking at all the nice features GNU gettext and
	which cannot be emulated portably using the catgets interface, it
	became unreasonable to stay with the old default.

Tue Apr  2 03:20:19 1996  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.10.11.

Mon Apr  1 03:37:08 1996  Ulrich Drepper  <drepper@myware>

	* aclocal.m4 (md_PATH_PROG): Correct quotation in message.
        Reported by Tom Tromey.

Thu Mar 28 23:03:01 1996  Karl Eichwalder  <ke@ke.central.de>

	* Makefile.in (datadir): Define from @datadir@.
	(gettextsrcdir): Define using $(datadir).

Thu Mar 28 13:52:14 1996  Marcus Daniels  <marcus@sysc.pdx.edu>

	* aclocal.m4: Initialize CATOBJEXT.

Wed Mar 27 03:21:24 1996  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.10.10.

Mon Mar 25 11:20:09 1996  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.10.9.

	* acconfig.h (PAGE_WIDTH): Set to reasonable value 78.

Mon Mar 25 01:24:12 1996  Ulrich Drepper  <drepper@myware>

	* configure.in: Check for strstr() functions and add to @LIBOBJS@
        if necessary.

Sun Mar 24 17:37:29 1996  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.10.8.

Sat Mar 23 02:49:04 1996  Ulrich Drepper  <drepper@myware>

	* aclocal.m4: Remove trailing empty lines.
	(md_PATH_PROG): Move near to other definitions necessary for
	internationalized packages.

Fri Mar  1 15:04:38 1996  Ulrich Drepper  <drepper@myware>

	* aclocal.m4: Reorganized tests a bit: - don't look for libi.a
	when test for gettext() functions - before looking for libintl.a
	look for libintl.h

	* configure.in (VERSION): Bump to 0.10.7.

Thu Feb 29 23:43:55 1996  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.10.6.

Thu Feb 15 04:40:53 1996  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.10.5.

	* aclocal.m4 (nls_cv_use_nls): Rename to `USE_NLS' and substitute
        in Makefiles.

	* Makefile.in (SUBDIRS): Always run through `po'.

Wed Feb 14 01:56:43 1996  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): BUMP to 0.10.4.

Mon Feb 12 02:21:18 1996  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.10.3.

Sat Feb 10 18:21:24 1996  Ulrich Drepper  <drepper@myware>

	* configure.in (ALL_LINGUAS): Add pl.

Thu Jan  4 12:05:01 1996  Ulrich Drepper  <drepper@myware>

	* aclocal.m4 (ud_GNU_GETTEXT): Require AC_ISC_POSIX.

Thu Jan  4 11:38:31 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* aclocal.m4 (ud_WITH_NLS): Fix typo.

Wed Jan  3 20:53:53 1996  G\vran Uddeborg  <gvran@uddeborg.pp.se>

	* configure.in: Add AC_ISC_POSIX test.

Sat Dec 30 15:27:54 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4 (INTLSUB): We don't have to process it always.

Fri Dec 29 21:14:14 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (stamp-h): Remove file before touching.

Fri Dec 29 16:38:32 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump version to 0.10.2.

Sun Dec 24 14:27:15 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (ALL_LINGUAS): Add ko.

Tue Dec 19 22:05:22 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (stamp-h, Makefile, config.status): Explicitly use
	$(SHELL) for running shell scripts.

Fri Dec 15 17:25:46 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4: Clear nls_cv_header_intl and nls_cv_header_libgt to
	prevent using wrong values from cache.  Reported by Andreas
	Schwab.

Sat Dec  9 18:36:42 1995  Ulrich Drepper  <drepper@myware>

	* acconfig.h: Use PARAMS instead of __P.  Suggested by Roland
        McGrath.

Sat Dec  9 12:22:38 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (distclean-local): Add `intl/VERSION' and remove
        `tupdate.perl'.

Fri Dec  8 01:20:28 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.10.1.

Wed Dec  6 16:03:58 1995  ghazi@caip.rutgers.edu  <Kaveh R. Ghazi>

	* aclocal.m4 (md_TYPE_PTRDIFF_T): Fix check.

Mon Dec  4 01:01:16 1995  Ulrich Drepper  <drepper@myware>

	* acconfig.h (PAGE__WIDTH): Because tupdate does not know about
	breaking lines after PAGE_WIDTH characters it is turned off for
	now.  When msgmerge will be used it will be enabled again.

	* configure.in (VERSION): Bump to 0.10.

Sun Dec  3 02:22:00 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (DISTFILES): New file BUGS.

Sat Dec  2 03:17:10 1995  Ulrich Drepper  <drepper@myware>

	* configure.in: Add handling of README-alpha file.  If current
	version is a test release we ship this file.  Inspired by Jim
	Meyering configure.in.

	* Makefile.in (DISTFILES): Add @DIST_ALPHA@.

Tue Nov 21 02:27:48 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in: Make recursion loop aware of Make's -k option.
	Kudos to Jim Meyering.

	* Makefile.in (DISTFILES): Add AUTHORS.

Mon Nov 20 20:15:12 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.9.14.

Sat Nov 18 16:38:11 1995  Ulrich Drepper  <drepper@myware>

	* configure.in, aclocal.m4: Fix typo.

	* aclocal.m4, configure.in:
	Now requires autoconf-2.5.  Use new macro AC_CACHE_CHECK.

Thu Nov 16 21:16:44 1995  Ulrich Drepper  <drepper@myware>

	* acconfig.h (PAGE_WIDTH): Add definition.

Sat Nov 11 17:52:03 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.9.13.

Thu Nov  9 00:29:28 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (AC_CHECK_FUNCS): Add getcwd.

Tue Nov  7 13:45:47 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4: Don't prepend $INTLDEPS to $LIBS.

	* configure.in (VERSION): Bump to 0.9.12.

	* aclocal.m4 (ud_WITH_NLS):
	Set LIBS to correct value and filter out -intl if necessary.

	* Makefile.in (ABOUT-NLS): Forgot to continue line.

	* aclocal.m4: Move ud_PATH_LISPDIR out of NLS region.

	* Makefile.in (uninstall-local):
	Remove root-ABOUT-NLS instead of root-NLS.

Mon Nov  6 17:27:52 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in: Be consistent with rm and &&.

	* Makefile.in (ABOUT-NLS): Place file in $(srcdir).

	* Makefile.in: Eliminate duplicate all-recursive rule.

	* Makefile.in:
	Renamed README.NLS to ABOUT-NLS.  Never again MS-DOG names!

	* Makefile.in: Some more cleanups by François Pinard.

	* configure.in (VERSION): Bump to 0.9.11.

	* aclocal.m4 (ud_GNU_GETTEXT):
	Always create intl/ dir if it does not exist.

	* aclocal.m4 (ud_PATH_LISP):
	Prefer share/ directory to lib/ directory if both exist.

	* Makefile.in (all):
	Now a local call.  Depends on all-local and all-recursive.
	(all-local): Depend on README.NLS.

	* Makefile.in (install-src-local):
	Add README.NLS as dependency.  Patch by François Pinard.

Mon Nov  6 00:46:48 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4 (md_TYPE_PTRDIFF_T): Cache result.

	* configure.in (VERSION): Bump to 0.9.10.

Sun Nov  5 21:58:34 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.9.9.

Sun Nov  5 21:52:22 1995  Ulrich Drepper  <drepper@myware>

	* README: Move advise for using GNU getetxt to intl/nls.texi.

	* aclocal.m4:
	François reported that po2tbl.sed is not always generated.

	* README: Some typos fixed by François Pinard.

Sun Nov  5 19:39:05 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (dist-gettext):
	Make synonym for dist.  Recursive goal is now named
	dist-gettext.

	* configure.in (VERSION): Bump to 0.9.8.

	* Makefile.in: Rename NLS to README.NLS.
	Add rule for automatical generation of README.NLS.

Sun Nov  5 11:36:53 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (dist): Suppress error message when ln failed.
	Get files from $(srcdir) explicitly.

Sat Nov  4 23:37:38 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4:
	Fix typo: "Do not you" -> "Do not use".  Reported by Tom Tromey.

Fri Nov  3 00:03:34 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (DISTFILES): Add TODO.

Wed Nov  1 11:38:30 1995  Ulrich Drepper  <drepper@myware>

	* configure.in:
	Remove AC_FUNC_MMAP.  This is tested in the intl/ specific part.

	* configure.in (VERSION): Bump to 0.9.7.

Sun Oct 29 12:02:01 1995  Ulrich Drepper  <drepper@myware>

	* configure.in: Replace AC_INSTALL_PROG with fp_INSTALL_PROG.

	* aclocal.m4 (fp_PROG_INSTALL): Replace shell comments (#) by m4
	comments (dnl).  This is necessary because autoconf would else
	find the AC_PROG_INSTALL word in the comment and report a missing
	definition.

	* aclocal.m4: Use François' fp_PROG_INSTALL macro.

Sat Oct 28 23:28:11 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4:
	Test for dcgettext function when gettext is found in C library.  This
	works around the missing function in Solaris 2.3.

	* configure.in (VERSION): Bump to 0.9.6.

Sat Oct 28 14:02:28 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.9.5.

Fri Oct 27 02:26:10 1995  Ulrich Drepper  <drepper@myware>

	* THANKS: Fix typo.

	* configure.in (ALL_LINGUAS): Add sv.

	* aclocal.m4:
	Use single quote where possible.  Reported by Christian von Roques.

	* Makefile.in (DISTFILES): Add DISCLAIM.

Tue Sep 26 00:53:48 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (md_TYPE_PTRDIFF_T):
	Add this macro for type in obstack.h.

	* aclocal.m4: Handling of AC_FD_MSG is now correct in md_PATH_PROG.

	* aclocal.m4: Correct last changes.  Some newline were missing.

Mon Sep 25 22:17:09 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4 (md_PATH_PROG):
	Use this new macro instead of AC_PATH_PROG for msgfmt and
	xgettext program.  This warns about uses of OpenWin versions (Wrgg).
	(md_TYPE_PTRDIFF_T): New test.  Sun's compiler does not like the
	definition in obstack.h.
	All provided by Marcus Daniels.

	* acconfig.h (HAVE_PTRDIFF_T):
	Add symbol because Sun's compiler cannot live with
	the definition in obstack.h.  Reported by Marcus Daniels.

Sat Sep 23 21:17:53 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4 (stpcpy): One argument in test can be empty.
	Reported by Nelson Beebe.

Thu Sep 21 18:05:41 1995  Ulrich Drepper  <drepper@myware>

	* acconfig.h (HAVE_STPCPY): Define for autoconf work around.

	* aclocal.m4: Some strange things with autoconf-2.4.2: If a
 	function is tested once in AC_REPLACE_FUNCS and later with
 	AC_CHECK_FUNCS the second definition does not define the symbol in
 	the header.  Work around this.

Wed Sep 20 22:36:04 1995  Ulrich Drepper  <drepper@myware>

	* acconfig.h, configure.in: Remove unneeded STD_INC_PATH definition.

Tue Sep 19 00:09:23 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.9.4.

Sun Sep 17 17:37:45 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (AC_PROG_YACC):
	Add check.  Is now needed for msgfmt program.

Thu Sep  7 00:19:11 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (dist): Don't use long --gzip option for tar.

Tue Aug 29 23:37:44 1995  Ulrich Drepper  <drepper@myware>

	* acconfig.h: Remove comment followinf #endif.  We now use
 	indentation.  Reported by François Pinard.

Sat Aug 19 23:21:19 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in: Correct install vs install-src goals.

	* README: Add comment about alias data base.

	* Makefile.in: Remove Emacs mode selection.

	* configure.in:
	Generate intl/VERSION file in configure run.  config.status will *not*
	create the file.
	(AC_OUTPUT): Remove intl/VERSION.

	* Makefile.in: Make install call install-src-recursive and install-src.

	* Makefile.in:
	Make install-local depend on install-src.  I.e. the sources and
	gettextize will always be installed.

	* Makefile.in: Make goal more appropriate for parallel build.
	Inspired by François Pinard.

Fri Aug 18 23:44:56 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (ALL_LINGUAS):
	Add no@nynorsk for nynorsk dialect of norwegian language.
	Provided by norwegian translation team.

	* aclocal.m4, configure.in: Use AC_CHECK_FUNC instead of
 	AC_FUNC_CHECK.

	* configure.in (VERSION): Bump to 0.9.3.

	* aclocal.m4 (ud_GNU_GETTEXT): Add stpcpy to AC_REPLACE_FUNCS.

Tue Aug 15 13:15:17 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (AC_OUTPUT):
	Generation of intl/VERSION in extra shell code failed.  Now
	make it a autoconf'ed file.

	* configure.in (AC_OUTPUT): Generate intl/VERSION file.

Tue Aug 15 05:52:53 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (AC_CHECK_FUNCS): Remove getcwd, putenv, and setenv.

	* Makefile.in (install-src):
	Install NLS as root-NLS.  Now also install aclocal.m4.

Mon Aug 14 23:51:36 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (AC_OUTPUT):
	Rewrite misc/gettextize instead of misc/makelinks.

	* Makefile.in (prefix, gettextsrcdir):
	Directory values needed for installation.
	(INSTALL, INSTALL_DATA): Programs now needed for installing NLS file.
	(install-src, install-src-recursive): New rules for installing gettext
	sources for use in gettextize shell script.

Sun Aug 13 14:38:19 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4 (AC_CHECK_FUNCS):
	Unless the AC_FUNC_MMAP function does not check for the
	existence of the munmap function (which does not exist on NeXT)
 	we do it ourself.  Report by Marcus Daniels.

	* aclocal.m4:
	Generate po/POTFILES correct even if srcdir is an absolute path.
	Report by Marcus Daniels.

Wed Aug  9 01:21:56 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.9.2.

	* README: Mention points for normal user to install GNU gettext.

Tue Aug  8 21:34:12 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4 (AC_REPLACE_FUNCS): New, to test for strcasecmp.

	* aclocal.m4: Fix typo: ditribution -> distribution.
	Report by François Pinard.

Mon Aug  7 22:52:43 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4 (ud_GNU_GETTEXT):
	Add AC_REQUIRE(...) for all test necessary for intl/
	subdirectory.
	(AC_CHECK_HEADERS): Add limits.h, malloc.h, string.h, unistd.h,
 	and values.h.
	(AC_CHECK_FUNCS): Add getcwd, putenv, setenv, strchr.
	Reported by François Pinard.

	* configure.in (AC_REPLACE_FUNCS):
	strcspn is now placed here instead of in AC_CHECK_FUNCS.
	(AC_HAVE_HEADERS): Don't test for stdlib.h.
  	Reported by François Pinard.

Fri Aug  4 22:16:58 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (Version): Bump to 0.9.1.

	* configure.in (AC_OUTPUT): Remove unneeded `;'.

	* Makefile.in (dist): Remove `copying instead' message.

	* Makefile.in (dist): Change mode of directories to 777.
	Add option -o to tar command.

Wed Aug  2 19:37:09 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.9.

	* configure.in (AC_OUTPUT):
	Add new file misc/makelinks and make it executable.

Tue Aug  1 22:51:27 1995  Ulrich Drepper  <drepper@myware>

	* acconfig.h: Remove unneeded definition of HAVE_ASPRINTF.

	* Makefile.in (SUBDIRS):
	make int doc/ first and unconditionally make in intl/.

	* configure.in (VERSION): Bump to 0.8.2.

Sun Jul 30 12:12:40 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4 (ud_WITH_NLS):
	Don't define INTLOBJS when using systems gettext.
	Always define DATADIRNAME.
	Don't compute catalogs to be installed when --disable-nls is
 	selected.

Sat Jul 29 23:22:39 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (ALL_LINGUAS): Add norwegian catalog.

Sat Jul 22 01:13:06 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.8.1.
	(ud_PATH_SITELISP): Replace with call to ud_PATH_LISPDIR.

	* aclocal.m4 (ud_EMACS_TRY_PREFIX): Remove rule.
	(ud_PATH_SITELISP): Rename to ud_PATH_LISPDIR and simplify it it.
	By François Pinard.

Wed Jul 19 02:22:18 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4 (ud_PATH_SITELISP):
	If no Emacs program is found define ac_cv_path_sitelisp
	to `no'.

	* configure.in (GETTEXTPRG):
	Remove variable.  Always create and install gettext.

Tue Jul 18 20:09:41 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.8.

Tue Jul 18 01:32:09 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (DISTFILES): Remove magic.add.  Now in misc/.
	(SUBDIRS): Add misc.

	* README: Fix typo: one -> once.  Reported by François Pinard.
	Mention that magic.add is now found in misc/.

	* configure.in (VERSION): Bump to 0.7.5.
	(AC_OUTPUT): Add misc/Makefile.

	* aclocal.m4 (ud_PATH_SITELISP):
	Remove command for test files was incorrectly placed.

Tue Jul 18 00:27:22 1995  Ulrich Drepper  <drepper@myware>

	* magic.add: Moved to misc/.

	* acconfig.h: Uniform test for __STDC__.

Mon Jul 17 00:23:22 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4 (ud_PATH_SITELISP):
	Try path given with configures --prefix option.

Sun Jul 16 22:36:07 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (SITELISPDIR, ELCFILES):
	Test for Emacs and generation of substition values
	is extended and now found in aclocal.m4.

	* aclocal.m4 (ud_PATH_SITELISP, ud_EMACS_TRY_PREFIX):
	New rules to test for Emacs' site-lisp directory.

Sun Jul 16 00:09:24 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (ELCFILES):
	Substitute as Make variable: $(ELCFILES) instead of $ELCFILES.
	Reported by Eric Backus.

	* configure.in (VERSION): Bump to 0.7.4.

Sat Jul 15 00:48:11 1995  Ulrich Drepper  <drepper@myware>

	* acconfig.h (INVALID_PATH_CHAR): De-ANSI-fy string.

	* configure.in (VERSION): Bump to 0.7.3.
	(AC_CHECK_FUNCS): Add mblen.
	(AC_OUTPUT): Due shorted file names now write src/tupdate.

Thu Jul 13 22:35:36 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.7.2.

Thu Jul 13 01:40:17 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4: po-to-msg.sed and po-to-tbl.sed are now called
 	po2msg.sed and po2tbl.sed resp.

	* configure.in: Check for Emacs.
	If Emacs exists, enable regeneration of *.elc files.
	(AC_OUTPUT): New file checks/Makefile.

	* Makefile.in (SUBDIRS): New subdirectory `checks'.
	New goal check: simply recurse through all subdirectories.

Wed Jul 12 00:26:12 1995  Ulrich Drepper  <drepper@myware>

	* NLS: New version by François Pinard.

Tue Jul 11 21:43:49 1995  Ulrich Drepper  <drepper@myware>

	* acconfig.h (WARN_ID_LEN):
	new constant.  Specifies length of messages from which
	on warnings are given to prevent breaking limits of compilers and
	tools.

	* configure.in (AC_OUTPUT): tupdate.perl is now found in src/

Tue Jul 11 01:30:24 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4 (ud_GNU_GETTEXT): Construct po-to-tbl.sed
	by removing comments.

	* configure.in: Don't have default path for Perl.
	strtoul can now be substituted when necessary.

Tue Jul  4 22:27:48 1995  Ulrich Drepper  <drepper@myware>

	* configure.in (VERSION): Bump to 0.7.1.

	* aclocal.m4 (ud_GNU_GETTEXT): Correct loop for determining LINGUAS.

	* configure.in (AC_REPLACE_FUNCS): Add memmove.

Tue Jul  4 00:22:30 1995  Ulrich Drepper  <drepper@myware>

	* aclocal.m4: aclocal.m4: Create intl/ before writing sed script.

Sun Jul  2 01:51:36 1995  Ulrich Drepper  <drepper@myware>

	* First official release.  This directory solely contains
	the usual configuration stuff.
