#Makefile.in generated automatically by automake 1.5 from Makefile.am.

#Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
#Free Software Foundation, Inc.
#This Makefile.in is free software; the Free Software Foundation
#gives unlimited permission to copy and/or distribute it,
#with or without modifications, as long as this notice is preserved.

#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY, to the extent permitted by law; without
#even the implied warranty of MERCHANTABILITY or FITNESS FOR A
#PARTICULAR PURPOSE.

"@SET_MAKE@"

#Automake requirements

"SHELL = @SHELL@"

"PACKAGE = sed"

"EXTRA_DIST = BUGS THANKS README.boot bootstrap.sh dc.sed autogen \\"
"	m4/codeset.m4  m4/gettext.m4  m4/iconv.m4      m4/lcmessage.m4 \\"
"	m4/getline.m4  m4/glibc21.m4  m4/isc-posix.m4  m4/progtest.m4 \\"
"	m4/obstack.m4"

"subdir = ."
"ACLOCAL_M4 = $(top_srcdir)/aclocal.m4"
"mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs"
"CONFIG_HEADER = config.h"
"CONFIG_CLEAN_FILES = bootstrap.sh intl/Makefile"
"DIST_SOURCES ="
"DATA = $(noinst_DATA)"

"HEADERS = $(noinst_HEADERS)"


"RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \\"
"	uninstall-info-recursive all-recursive install-data-recursive \\"
"	install-exec-recursive installdirs-recursive install-recursive \\"
"	uninstall-recursive check-recursive installcheck-recursive"
"DIST_COMMON = README $(noinst_HEADERS) ./stamp-h.in ABOUT-NLS AUTHORS \\"
"	COPYING ChangeLog INSTALL Makefile.am Makefile.in NEWS THANKS \\"
"	TODO acconfig.h aclocal.m4 bootstrap.sh.in config.guess \\"
"	config.sub config_h.in configure configure.ac depcomp \\"
"	install-sh missing mkinstalldirs"
"DIST_SUBDIRS = $(SUBDIRS)"
"all: config.h"
"	$(MAKE) $(AM_MAKEFLAGS) all-recursive"

".SUFFIXES:"
"$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)"
"	cd $(top_srcdir) && \\"
"	  $(AUTOMAKE) --gnu  Makefile"
"Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status"
"	cd $(top_builddir) && \\"
"	  CONFIG_HEADERS= CONFIG_LINKS= \\"
"	  CONFIG_FILES=$@ $(SHELL) ./config.status"

"$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)"
"	$(SHELL) ./config.status --recheck"
"$(srcdir)/configure:  $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)"
"	cd $(srcdir) && $(AUTOCONF)"

"$(ACLOCAL_M4):  configure.ac m4/codeset.m4 m4/getline.m4 m4/gettext.m4 m4/glibc21.m4 m4/iconv.m4 m4/isc-posix.m4 m4/lcmessage.m4 m4/obstack.m4 m4/progtest.m4"
"	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)"
"config.h: stamp-h"