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

	* onceonly.m4: New file, from gnulib.
	* alloca.m4: New file, from gnulib.
	* Makefile.am (EXTRA_DIST): Add them.

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

	* wint_t.m4: New file.
	* Makefile.am (EXTRA_DIST): Add it.

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

	* gettext.m4 (AM_PO_SUBDIRS): Avoid warning when there are at least
	two PO directories.
	Reported by Alexander Turbov <AVTurbov@gwise.eltech.ru>.

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

	* inttypes_h.m4 (jm_AC_HEADER_INTTYPES_H): Whitespace change, takes
	advantage of autoconf >= 2.52.
	* stdint_h.m4 (jm_AC_HEADER_STDINT_H): Likewise.
	* uintmax_t.m4 (jm_AC_TYPE_UINTMAX_T): Define HAVE_UINTMAX_T if
	uintmax_t already exists. For consistency with HAVE_INTMAX_T, defined
	by intmax.m4, needed by printf-parse.c.

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

	Switch to autoconf-2.57 and automake-1.7.2.
	* fixautomake.m4: New file, extracted from configure.in.
	* Makefile.am (EXTRA_DIST): Add it.

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

	Switch to autoconf-2.56.
	* fnmatch.m4 (gt_FUNC_FNMATCH): Use AC_LIBOBJ instead of assigning
	LIBOBJS.
	* getline.m4 (AM_FUNC_GETLINE): Likewise.

	* lib-ld.m4 (AC_LIB_PROG_LD_GNU): Define PATH_SEPARATOR before using
	it.

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

	Assume ANSI C.
	* c-bs-a.m4: Remove file.
	* Makefile.am (EXTRA_DIST): Remove it.

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

	* progtest.m4 (AM_PATH_PROG_WITH_TEST): Portability to OS/2.
	Reported by Andreas Buening <andreas.buening@nexgo.de>.

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

	* gettext.m4 (AM_GNU_GETTEXT): Print a message containing the macro's
	main decisions.
	Reported by Andreas Buening <andreas.buening@nexgo.de>.

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

	* libtool.m4: Upgrade to libtool-1.4.3.

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

	* intmax.m4: New file.
	* longlong.m4: New file.
	* longdouble.m4: New file.
	* wchar_t.m4: New file.
	* Makefile.am (EXTRA_DIST): Add them.

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

	* gettext.m4 (AM_PO_SUBDIRS): New variable POMAKEFILEDEPS. Substitute
	it into Makefile.

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

	* gettext-0.11.5 released.

2002-07-27  Andreas Schwab  <schwab@suse.de>

	* gettext.m4: Avoid expanding ALL_LINGUAS in comment.

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

	* Makefile.am (aclocal_DATA): Add ulonglong.m4.

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

	* gettext-0.11.4 released.

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

	* javacomp.m4 (gt_JAVACOMP): Ignore all gcj versions for now.

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

	* inttypes-pri.m4: New file.
	* gettext.m4 (AM_INTL_SUBDIR): Require gt_INTTYPES_PRI.
	* Makefile.am (aclocal_DATA): Add inttypes-pri.m4.
	(EXTRA_DIST): Likewise.

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

	* stdint_h.m4 (jm_AC_HEADER_STDINT_H): Define
	HAVE_STDINT_H_WITH_UINTMAX instead of HAVE_STDINT_H.
	* inttypes_h.m4 (jm_AC_HEADER_INTTYPES_H): Define
	HAVE_INTTYPES_H_WITH_UINTMAX instead of HAVE_INTTYPES_H.
	* inttypes.m4: New file.
	* gettext.m4 (AM_GNU_GETTEXT): Accept needsymbol =
	need-formatstring-macros.
	(AM_INTL_SUBDIR): Require jm_AC_TYPE_UINTMAX_T, gt_HEADER_INTTYPES_H.
	* Makefile.am (aclocal_DATA): Add inttypes.m4, inttypes_h.m4,
	stdint_h.m4, uintmax_t.m4.
	(EXTRA_DIST): Add inttypes.m4.

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

	* gettext.m4 (AM_GNU_GETTEXT_VERSION): New macro.
	Reported by Akim Demaille <akim@epita.fr>.

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

	* gettext-0.11.3 released.

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

	* gcj.m4: New file.
	* Makefile.am (EXTRA_DIST): Add it.
	* javacomp.m4 (gt_JAVACOMP): Set HAVE_GCJ_C instead of HAVE_GCJ.

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

	* libtool.m4 (_LT_AC_LTCONFIG_HACK): Add support for GNU/FreeBSD.

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

	* javacomp.m4 (gt_JAVACOMP): Ignore gcj versions that start with
	"3.0" or "3.1". (gcj 3.0.4 compiles GetURL.java to invalid bytecode,
	that crashes with an IllegalAccessError when executed by gij 3.0.4 or
	with a VerifyError when executed by Sun Java. Likewise for gcj 3.1.)

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

	* lib-link.m4 (AC_LIB_RPATH): New option --disable-rpath.
	(AC_LIB_LINKFLAGS_BODY): Don't hardcode library paths if
	--disable-rpath was given.

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

	* lcmessage.m4 (AM_LC_MESSAGES): Don't test ac_cv_header_locale_h here.
	* gettext.m4 (AM_INTL_SUBDIR): Test it here.

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

	* intdiv0.m4: New file.
	* gettext.m4 (AM_INTL_SUBDIR): Require gt_INTDIV0.
	* Makefile.am (aclocal_DATA): Add intdiv0.m4.
	(EXTRA_DIST): Add intdiv0.m4.

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

	Make it possible to invoke AM_ICONV after AM_GNU_GETTEXT.
	* iconv.m4 (AM_ICONV_LINKFLAGS_BODY): New macro.
	(AM_ICONV_LINK): Require it.
	(AM_ICONV): Invoke AM_ICONV_LINK. Requiring it is not sufficient,
	because gettext.m4 invokes it inside an 'if'.
	* gettext.m4 (AM_GNU_GETTEXT): Require AM_ICONV_LINKFLAGS_BODY.

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

	* javacomp.m4 (gt_JAVACOMP): Ignore non-digits in the first line of
	the output of "gcj --version". Needed for gcj 3.1.

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

	* stdbool.m4 (gt_STDBOOL_H): If <stdbool.h> does not exist, check for
	_Bool as a builtin primitive type. Needed for cc on OSF/1 5.1.

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

	* gettext-0.11.2 released.

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

	* gettext.m4 (AM_GNU_GETTEXT): Don't use _nl_domain_bindings; its
	linkage name has changed between gettext 0.10.35 and 0.10.36.
	Reported by Albert Chin-A-Young <china@thewrittenword.com>.

	* lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Handle -R options that appear
	in $dependency_libs, for example on HP-UX 10.20 and OSF/1.
	Reported by Albert Chin-A-Young <china@thewrittenword.com>
	and Nelson H. F. Beebe <beebe@math.utah.edu>.

	* javacomp.m4 (gt_JAVACOMP): Test whether "gcj -C" really works, to
	protect against systems where libgcj.jar is missing or misinstalled.

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

	* gettext-0.11.1 released.

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

	* setenv.m4 (gt_FUNC_SETENV): Also check whether unsetenv is missing.

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

	* gettext.m4 (AM_GNU_GETTEXT): Set LIBINTL and LTLIBINTL to empty if
	no preinstalled GNU gettext was found.
	Reported by Paul Eggert.

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

	* gettext.m4 (AM_GNU_GETTEXT): Don't prevent installation of libintl
	on NetBSD.

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

	* libtool.m4: Upgrade from libtool-1.4 to libtool-1.4.2.

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

	* fnmatch.m4 (gt_FUNC_FNMATCH): Ensure directory lib exists.

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

	* javacomp.m4 (gt_JAVACOMP): Use changequote to protect brackets.
	Reported by Santiago Vila <sanvila@unex.es>.

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

	* gettext-0.11 released.

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

	* error.m4: New file.
	* Makefile.am (EXTRA_DIST): Add it.

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

	* lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Don't use AC_LIB_APPENDTOVAR
	for LIB variables.

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

	* lib-link.m4 (AC_LIB_LINKFLAGS): Also define LTLIB${NAME}.
	(AC_LIB_HAVE_LINKFLAGS): Likewise.
	(AC_LIB_LINKFLAGS_BODY): Also define LTLIB${NAME}.
	* iconv.m4 (AM_ICONV_LINK): Also define LTLIBICONV.
	* gettext.m4 (AM_GNU_GETTEXT): Define LIBINTL and LTLIBINTL instead
	of INTLLIBS.

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

	* lib-link.m4 (AC_LIB_LINKFLAGS): Fix quoting so that multiple
	invocations of this macro work. Also set HAVE_LIBNAME for use by
	AC_LIB_LINKFLAGS_BODY.
	(AC_LIB_HAVE_LINKFLAGS): Fix quoting here as well.
	(AC_LIB_LINKFLAGS_BODY): If a HAVE_LIBNAME macro is already set,
	use the result of the corresponding previous AC_LIB_LINKFLAGS
	invocation, don't look on the filesystem. Fix typo for /usr/lib.
	Fix hardcode_libdir_flag_spec evaluation.

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

	* libtool.m4 (_LT_AC_LTCONFIG_HACK): Remove two temporary files after
	use.

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

	* iconv.m4 (AM_ICONV_LINK): New macro, extracted from AM_ICONV.
	(AM_ICONV): Call it.
	* gettext.m4 (AM_GNU_GETTEXT): Call AM_ICONV_LINK instead of AM_ICONV.

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

	* gettext.m4 (AM_GNU_GETTEXT): Don't consider that -liconv is
	necessary for -lintl. Instead, use the $LIBICONV value determined by
	the AM_ICONV macro.

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

	* gettext.m4 (AM_GNU_GETTEXT): Remove shortcut check for <libintl.h>.

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

	* gettext.m4 (AM_PO_SUBDIRS): Split preprocessing of POTFILES.in into
	two separate sed calls, otherwise the backslash that terminates the
	last line doesn't get removed if the last line of POTFILES.in is a
	comment line or a blank line.

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

	* gettext.m4 (AM_PO_SUBDIRS): Improve "found msgfmt program" message.

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

	* *.m4: Add copyright notice.
	* hostname.m4: Quote first argument of AC_DEFUN.

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

	* lib-link.m4 (AC_LIB_LINKFLAGS): Avoid macro interaction with
	AC_LIB_LINKFLAGS_BODY. Undefine the macros after use.
	(AC_LIB_HAVE_LINKFLAGS): New macro.

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

	* lib-link.m4 (AC_LIB_LINKFLAGS): Fix mistake.

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

	* libtool.m4: Add support for Intel icc.

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

	* lib-prefix.m4 (AC_LIB_PREPARE_PREFIX): Fix shell programming mistake.
	(AC_LIB_WITH_FINAL_PREFIX): New macro.
	(AC_LIB_PREFIX): Use AC_LIB_WITH_FINAL_PREFIX. Remove
	acl_final_exec_prefix assignment already done in AC_LIB_PREPARE_PREFIX.
	* lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Use AC_LIB_WITH_FINAL_PREFIX.
	(AC_LIB_APPENDTOVAR): Likewise.

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

	* gettext.m4 (AM_PO_SUBDIRS): Exclude FreeBSD's msgfmt and xgettext
	programs. They give usage messages on stderr but then terminate with
	exit code 0.

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

	* gettext.m4 (AM_PO_SUBDIRS): Look for Rules-* files in the source dir,
	not in the build dir.

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

	* gettext.m4 (AM_GNU_GETTEXT): If no intl directory exists and GNU
	gettext was not found in libc or preinstalled libintl, don't define
	ENABLE_NLS, and set USE_NLS to 'no'.

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

	* gettext.m4 (AM_PO_SUBDIRS): Reject xgettext versions that don't
	support the --copyright-holder option.

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

	* fnmatch.m4: New file, inspired by autoconf-2.13 and autoconf-2.52.
	* Makefile.am (EXTRA_DIST): Add it.

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

	* getline.m4 (AM_FUNC_GETLINE): Include <stdlib.h>, not <sys/types.h>,
	for declaring size_t and exit().  #define getline to a different
	symbol at linkage level.

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

	* javacomp.m4 (gt_JAVACOMP): Fix typo in jikes test.

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

	* gettext.m4 (AM_PO_SUBDIRS): Don't insert obsolete Rules-* files into
	the Makefile.

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

	* gettext.m4 (AM_PO_SUBDIRS): Fix construction of Makefile if
	builddir != srcdir.

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

	* lib-ld.m4: New file, extracted from libtool-1.4 libtool.m4.
	* lib-link.m4: New file.
	* lib-prefix.m4: New file.
	* Makefile.am (aclocal_DATA): Add them.
	(EXTRA_DIST): Likewise.
	* iconv.m4 (AM_ICONV): Remove AC_ARG_WITH call. Invoke
	AC_LIB_LINKFLAGS_BODY. Use $LIBICONV instead of "-lintl". Add
	$INCICONV to CPPFLAGS if appropriate.
	* gettext.m4 (AM_WITH_LIBINTL): Remove macro.
	(AM_GNU_GETTEXT): Invoke AC_LIB_LINKFLAGS_BODY. Use $LIBINTL instead
	of "-lintl $LIBICONV". Add $INCINTL to CPPFLAGS if appropriate.

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

	* gettext.m4 (AM_GNU_GETTEXT): Avoid an error message if there is
	no Rules-* file.

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

	* javacomp.m4 (gt_JAVACOMP): Exclude at.dms.kjc.Main (KOPI) versions
	released in 2000, because they can't compile intl-java. Version 1.4F
	[May 2000] is buggy, version 1.5B [August 2001] is OK.

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

	* gettext.m4 (AM_PO_SUBDIRS): Also substitute UPDATEPOFILES and
	DUMMYPOFILES into Makefile. Also insert Makevars and Rules-* into
	Makefile.

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

	* gettext.m4: Split into submacros.
	(AM_GNU_GETTEXT): Allow the first argument to be 'external'. Verify
	the first two arguments. Add --with-libintl-prefix option.
	(AM_WITH_LIBINTL, AM_PO_SUBDIRS, AM_INTL_SUBDIR): New macros.

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

	* gettext.m4 (AM_GNU_GETTEXT): For builds with $builddir != $srcdir,
	prepend $(srcdir) to all elements of POFILES and GMOFILES.

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

	* javaexec.m4 (gt_JAVAEXEC): Use HAVE_JAVA instead of HAVE_JAVA_JVM.
	The problem seen with automake-1.4 is gone with automake-1.5.

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

	* stdint_h.m4: New file.
	* Makefile.am (EXTRA_DIST): Add it.
	* uintmax_t.m4 (jm_AC_TYPE_UINTMAX_T): Require also
	jm_AC_HEADER_STDINT_H.
	* mkdtemp.m4 (gt_FUNC_MKDTEMP): Call jm_AC_HEADER_INTTYPES_H instead
	of testing for inttypes.h. Call jm_AC_HEADER_STDINT_H instead of
	testing for stdint.h.

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

	* javacomp.m4 (gt_JAVACOMP): Test for the existence of gcj, javac,
	jikes in $PATH. Needed because the call of a program not found in PATH
	yields return code 1 with SunOS 4 /bin/sh and is thus indistinguishable
	from a successful call returning 1.
	* javaexec.m4 (gt_JAVAEXEC): Likewise for gij, java, jre, jview.

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

	* gettext.m4 (AM_GNU_GETTEXT): Make sure "make dist" works even when
	configured with --disable-nls.

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

	* mkdtemp.m4 (gt_FUNC_MKDTEMP): Also check for <inttypes.h>.

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

	* gettext.m4 (AM_GNU_GETTEXT): In INTLLIBS, use ${top_builddir}
	instead of $(top_builddir), so that the value can also be used in
	shell scripts. Note that in Makefiles both ${top_builddir} and
	$(top_builddir) are equivalent.

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

	* gettext.m4 (AM_GNU_GETTEXT): Add check for getc_unlocked.

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

	* hostname.m4: New file.
	* Makefile.am (EXTRA_DIST): Add it.

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

	* javacomp.m4 (gt_JAVACOMP): Ignore gcj version 2.xx, require at least
	gcj 3.0.

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

	* gettext.m4 (AM_GNU_GETTEXT): Inline AM_WITH_NLS call.
	(AM_WITH_NLS): Remove macro.

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

	* siginfo.m4: New file.
	* Makefile.am (EXTRA_DIST): Add it.

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

	* gettext.m4 (AM_WITH_NLS): Test for msgmerge which understands the
	--update option.

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

	Assume strchr() exists.
	* gettext.m4 (AM_GNU_GETTEXT): Remove check for strchr.

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

	* backupfile.m4: New file.
	* Makefile.am (EXTRA_DIST): Add it.

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

	* javacomp.m4: Recognize javac exit code 2.

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

	* gettext.m4 (AM_WITH_NLS): Capture not only the value of $LINGUAS,
	but also whether it was set or unset.
	Reported by Andreas Schwab <schwab@suse.de>.

2001-08-12  Jim Meyering  <meyering@lucent.com>

	* mbrtowc.m4: Quote first arg of AC_DEFUN.
	* mbstate_t.m4: Likewise.
	* mbswidth.m4: Likewise.

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

	* signalblocking.m4: New file.
	* Makefile.am (EXTRA_DIST): Add it.

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

	* javacomp.m4: New file.
	* javaexec.m4: New file.
	* Makefile.am (EXTRA_DIST): Add them.

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

	* setenv.m4: New file.
	* Makefile.am (EXTRA_DIST): Add it.

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

	* mkdtemp.m4: New file.
	* tmpdir.m4: New file.
	* Makefile.am (EXTRA_DIST): Add them.

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

	* flex.m4: New file.
	* Makefile.am (EXTRA_DIST): Add it.

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

	* gettext.m4 (AM_GNU_GETTEXT): Remove computation of CATALOGS.
	(AM_WITH_NLS): Compute ALL_LINGUAS, GMOFILES, POFILES, CATALOGS while
	creating po/Makefile from po/Makefile.in. Remove computation of
	GMOFILES, POFILES during configure.

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

	* gettext.m4 (AM_WITH_NLS): Simplify the logic. Use the same tests
	for MSGFMT and XGETTEXT in the case we use a preinstalled GNU libintl
	and in the case of using the included libintl.

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

	* stdbool.m4: New file.
	* Makefile.am (EXTRA_DIST): Add it.

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

	* ssize_t.m4: New file.
	* unionwait.m4: New file.
	* Makefile.am (EXTRA_DIST): Add them.

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

	* gettext-0.10.40 released.

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

	* gettext.m4 (AM_WITH_NLS): Change version determination of bison, so
	that it also works with bison-1.29.
	Reported by Karl Berry <karl@gnu.org>.

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

	* gettext-0.10.39 released.

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

	* mbswidth.m4: Also check for mbsinit. Needed for SCO 3.2v5.0.2.

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

	* gettext.m4 (AM_WITH_NLS): Add support for autoconf-2.50.

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

	* libtool.m4: Upgrade to libtool-1.4.

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

	* gettext.m4 (AM_WITH_NLS): Look only for GNU msgfmt and GNU xgettext.
	Set the variables to ":" if not found.
	* progtest.m4 (AM_PATH_PROG_WITH_TEST): If not found, print "no", not
	the default value.

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

	* gettext-0.10.38 released.

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

	* iconv.m4 (AM_ICONV): Accept --with-libiconv-prefix option.

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

	* gettext.m4 (AM_WITH_NLS): Fix dcgettext test. Always add $LIBICONV
	when using -lintl, because libintl may be a static library depending
	on a (static or shared) libiconv.

2001-05-12  Paul Eggert  <eggert@twinsun.com>

	* gettext.m4 (AM_GNU_GETTEXT): Add check for strtoul.

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

	* gettext.m4 (AM_WITH_NLS): Create po/POTFILES right before
	po/Makefile, at config.status run time. Make it work independently of
	the subdir name and of the subdir level.
	(AM_GNU_GETTEXT): Don't create po/POTFILES at configure time.

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

	* glibc21.m4: New file, from fileutils-4.1.
	* gettext.m4 (AM_GNU_GETTEXT): Require jm_GLIBC21.
	* Makefile.am (EXTRA_DIST): Add glibc21.m4.
	(aclocal_DATA): Add glibc21.m4.

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

	* gettext.m4 (AM_WITH_NLS): Let the GNU gettext package install its
	libintl when a GNU libintl is already preinstalled.

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

	* gettext.m4 (AM_GNU_GETTEXT): Also check for the getegid, geteuid,
	getgid, getuid functions. Needed for mingw32.

2001-04-27  H. J. Lu  <hjl@lucon.org>
            Bruno Haible  <haible@clisp.cons.org>

	* gettext.m4 (AM_WITH_NLS): Fix $CONFIG_FILES matching so it deals
	correctly with tabs. Define INSTOBJEXT and GENCAT for older Makefiles.

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

	* gettext-0.10.37 released.

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

	* mbswidth.m4: Also include <string.h>; this is where AIX 3.2.5
	declares wcwidth.

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

	* gettext.m4: Workaround an automake-1.4 bug: Don't write
	AM_DISABLE_SHARED, even in comments, because that causes 'aclocal'
	to pull in the libtool.m4 macros, which causes 'automake' to use
	@LIBTOOL@ in its rules, even for packages that haven't called
	AM_PROG_LIBTOOL.

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

	* gettext.m4 (AM_WITH_NLS): Fix syntax error in 'case'. Change
	whitespace in $CONFIG_FILES to spaces for matching with 'case'.
	Reported by Thorsten Kukuk <kukuk@suse.de>.

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

	* gettext.m4 (AM_WITH_NLS): Even if 'msgfmt' is not found in $PATH,
	set CATOBJEXT=.gmo and use the gettext in libc or libintl.

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

	* mbswidth.m4: New file, from textutils-2.0.13 with modifications.
	* mbrtowc.m4: Likewise.
	* mbstate_t.m4: Likewise.
	* Makefile.am (EXTRA_DIST): Add them.

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

	* gettext-0.10.36 released.

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

	* gettext.m4 (AM_WITH_NLS): Check for bison and set INTLBISON.

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

	* iconv.m4 (AM_ICONV): Recommend GNU libiconv.

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

	* gettext.m4 (AM_WITH_NLS): Allow po/Makefile.in to be generated from
	a different file than po/Makefile.in.in.

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

	* getline.m4: New file, from fileutils-4.0.41 with modifications.
	* Makefile.am (EXTRA_DIST): Add it.

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

	* gettext.m4 (AM_WITH_NLS): Accept a second argument 'need-ngettext'.
	If it is given, check for the presence of ngettext() as well.

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

	* signed.m4: Quote first argument of AC_DEFUN.

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

	* Makefile.am (aclocal_DATA): Add codeset.m4 and iconv.m4, both needed
	by gettext.m4.

	* iconv.m4 (AM_ICONV): Cosmetic tweaks.
	* setlocale.m4 (gt_SETLOCALE): Likewise.

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

	* signed.m4: New file.
	* Makefile.am (EXTRA_DIST): Add it.

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

	* gettext.m4 (AM_WITH_NLS): Add $LIBICONV to $INTLLIBS.

2001-02-07  Pavel Roskin  <proski@gnu.org>

	* c-bs-a.m4: Quote first argument of AC_DEFUN.
	* codeset.m4: Likewise.
	* gettext.m4: Likewise.
	* iconv.m4: Likewise.
	* inttypes_h.m4: Likewise.
	* isc-posix.m4: Likewise.
	* lcmessage.m4: Likewise.
	* libtool.m4: Likewise.
	* progtest.m4: Likewise.
	* setlocale.m4: Likewise.
	* uintmax_t.m4: Likewise.
	* ulonglong.m4: Likewise.

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

	Use libtool.
	* libtool.m4: New file, from libtool-1.3.5.
	* Makefile.am (EXTRA_DIST): Add it.
	* gettext.m4 (AM_WITH_NLS): Accept 'use-libtool' as first argument.
	New variable BUILD_INCLUDED_LIBINTL. Don't force USE_NLS, force only
	BUILD_INCLUDED_LIBINTL.
	Remove unused variable INTLDEPS.
	Fix value of INTLLIBS to match documentation.
	Avoid unwanted matches of po/Makefile.in with AC_OUTPUT argument.
	(AM_GNU_GETTEXT): Accept 'use-libtool' as first argument. Rename
	variable l to INTL_LIBTOOL_SUFFIX_PREFIX.

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

	* gettext.m4 (AM_GNU_GETTEXT): Change computation of NEW_LINGUAS to
	not include catalogs which are not present. Reported by Fredrik
	Hallenberg. Also include catalogs of which a variant is requested.

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

	* gettext.m4 (AM_WITH_NLS): Add a third argument to AC_DEFINE.
	* lcmessage.m4 (AM_LC_MESSAGES): Likewise.

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

	* iconv.m4 (AM_ICONV): Also check whether the iconv declaration
	has const.

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

	* gettext.m4 (AM_WITH_NLS): Remove third argument. Don't call
	AC_LINK_FILES. Now done through simple file copy in intl/Makefile.in.
	(AM_GNU_GETTEXT): Remove GT_NO and GT_YES macros.

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

	* gettext.m4 (AM_GNU_GETTEXT): Assume <locale.h> exists.
	* setlocale.m4 (gt_SETLOCALE): Likewise.

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

	Remove catgets fallback code.
	- It does not handle message clash prevention through domains and
	  dgettext().
	- It does not handle message catalog inheritance and the LANGUAGE
	  environment variable.
	- It does not handle locale aliases.
	- It does not handle automatic charset conversion.
	- It does not handle plural form handling and ngettext().
	- It uses a slow string to integer conversion.
	- It is sensitive against installation problems.
	* gettext.m4 (AM_WITH_NLS): Don't look for catgets any more. Don't
	define INSTOBJEXT. Don't create intl/po2msg.sed and intl/po2tbl.sed.

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

	* setlocale.m4: New file.
	* Makefile.am (EXTRA_DIST): Add it.

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

	* gettext.m4 (AM_WITH_NLS): Look for GNU gettext in libc and libintl,
	ignoring Solaris X/Open gettext. Rename cache variables.

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

	* ulonglong.m4: New file, from fileutils-4.0.32.
	* inttypes_h.m4: Likewise.
	* uintmax_t.m4: Likewise.
	* Makefile.am (EXTRA_DIST): Add them.

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

	* gettext.m4 (AM_WITH_NLS): Make the tests for gettext in libc and
	in libintl similar. If found in libintl, add "-lintl" to $LIBS during
	subsequent AC_TRY_LINKs and later to INTLLIBS.
	Reported by Gaël Roualland <gael.roualland@dial.oleane.com>.

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

	* c-bs-a.m4: New file, from sh-utils-2.0j.
	* Makefile.am (EXTRA_DIST): Add it.

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

	* Makefile.am (EXTRA_DIST): Add codeset.m4, iconv.m4.

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

	Drop support for old Linux specific .msg catalog format.
	* gettext.m4 (AM_GNU_GETTEXT): Assume .cat is always X/Open format.
	Renamed xopen-msg.sed to po2msg.sin.

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

	* gettext.m4 (AM_GNU_GETTEXT): Renamed po2tbl.sed.in to po2tbl.sin.

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

	* gettext.m4 (AM_GNU_GETTEXT): The sed scripts are in $srcdir/intl,
	and po2msg.sed, po2tbl.sed must be created in the intl subdir.

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

	* codeset.m4: New file, taken from fileutils-4.0u, with prefix AM.
	* iconv.m4: New file, taken from fileutils-4.0u, with prefix AM.
	* gettext.m4 (AM_GNU_GETTEXT): Add check for headers <stddef.h>,
	<stdlib.h>. Add check for functions feof_unlocked, fgets_unlocked.
	Invoke AM_ICONV and AM_LANGINFO_CODESET. Require AC_CANONICAL_HOST.
	Bump to serial 7.

	* isc-posix.m4: Undefine the macro before calling AC_DEFUN, otherwise
	with autoconf-2.13 we get lots of ***BUG in Autoconf--please report***
	errors.

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

	* gettext.m4: Add tests for tsearch, iconv, and mempcpy.

	* gettext.m4: Lots of bug fixes.

1998-06-01 22:28  Ulrich Drepper  <drepper@cygnus.com>

	* gettext.m4: Allow arguments for AM_GNU_GETTEXT to customize for
	Cygnus trees.

1998-05-01 08:47  Ulrich Drepper  <drepper@cygnus.com>

	* gettext-0.10.35 released.

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

	* gettext.m4: Add AC_OUTPUT_COMMANDS in AM_GNU_GETTEXT to rewrite
	the po/Makefile.

1998-04-29  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am (EXTRA_DIST): No need to mention *.m4 files here.

	* gettext.m4: Fix test for gettext in libintl.
	Patch by Guido Flohr <gufl0000@stud.uni-sb.de>.

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

	* gettext.m4: Don't test for values.h.

1998-04-27 21:17  Ulrich Drepper  <drepper@cygnus.com>

	* gettext.m4, lcmessage.m4, progtest.m4: Moved to here from toplevel.
