## DO NOT EDIT! GENERATED AUTOMATICALLY!
## Process this file with automake to produce Makefile.in.
# Copyright (C) 2002-2012 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this file.  If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License,
# this file may be distributed as part of a program that
# contains a configuration script generated by Autoconf, under
# the same distribution terms as the rest of that program.
#
# Generated by gnulib-tool.
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=import --m4-base=import/m4 --doc-base=doc --tests-base=tests --aux-dir=import/extra --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files fnmatch-gnu frexpl inttypes memmem pathmax unistd update-copyright

AUTOMAKE_OPTIONS = 1.5 gnits

SUBDIRS =
noinst_HEADERS =
noinst_LIBRARIES =
noinst_LTLIBRARIES =
EXTRA_DIST =
BUILT_SOURCES =
SUFFIXES =
MOSTLYCLEANFILES = core *.stackdump
MOSTLYCLEANDIRS =
CLEANFILES =
DISTCLEANFILES =
MAINTAINERCLEANFILES =
EXTRA_DIST += m4/gnulib-cache.m4

AM_CPPFLAGS =
AM_CFLAGS =

noinst_LIBRARIES += libgnu.a

libgnu_a_SOURCES =
libgnu_a_LIBADD = $(gl_LIBOBJS)
libgnu_a_DEPENDENCIES = $(gl_LIBOBJS)
EXTRA_libgnu_a_SOURCES =

## begin gnulib module alloca


libgnu_a_LIBADD += @ALLOCA@
libgnu_a_DEPENDENCIES += @ALLOCA@
EXTRA_DIST += alloca.c

EXTRA_libgnu_a_SOURCES += alloca.c

## end   gnulib module alloca

## begin gnulib module alloca-opt

BUILT_SOURCES += $(ALLOCA_H)

# We need the following in order to create <alloca.h> when the system
# doesn't have one that works with the given compiler.
if GL_GENERATE_ALLOCA_H
alloca.h: alloca.in.h $(top_builddir)/config.status
	$(AM_V_GEN)rm -f $@-t $@ && \
	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
	  cat $(srcdir)/alloca.in.h; \
	} > $@-t && \
	mv -f $@-t $@
else
alloca.h: $(top_builddir)/config.status
	rm -f $@
endif
MOSTLYCLEANFILES += alloca.h alloca.h-t

EXTRA_DIST += alloca.in.h

## end   gnulib module alloca-opt

## begin gnulib module configmake

# Listed in the same order as the GNU makefile conventions, and
# provided by autoconf 2.59c+.
# The Automake-defined pkg* macros are appended, in the order
# listed in the Automake 1.10a+ documentation.
configmake.h: Makefile
	$(AM_V_GEN)rm -f $@-t && \
	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
	  echo '#define PREFIX "$(prefix)"'; \
	  echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
	  echo '#define BINDIR "$(bindir)"'; \
	  echo '#define SBINDIR "$(sbindir)"'; \
	  echo '#define LIBEXECDIR "$(libexecdir)"'; \
	  echo '#define DATAROOTDIR "$(datarootdir)"'; \
	  echo '#define DATADIR "$(datadir)"'; \
	  echo '#define SYSCONFDIR "$(sysconfdir)"'; \
	  echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
	  echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
	  echo '#define INCLUDEDIR "$(includedir)"'; \
	  echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
	  echo '#define DOCDIR "$(docdir)"'; \
	  echo '#define INFODIR "$(infodir)"'; \
	  echo '#define HTMLDIR "$(htmldir)"'; \
	  echo '#define DVIDIR "$(dvidir)"'; \
	  echo '#define PDFDIR "$(pdfdir)"'; \
	  echo '#define PSDIR "$(psdir)"'; \
	  echo '#define LIBDIR "$(libdir)"'; \
	  echo '#define LISPDIR "$(lispdir)"'; \
	  echo '#define LOCALEDIR "$(localedir)"'; \
	  echo '#define MANDIR "$(mandir)"'; \
	  echo '#define MANEXT "$(manext)"'; \
	  echo '#define PKGDATADIR "$(pkgdatadir)"'; \
	  echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
	  echo '#define PKGLIBDIR "$(pkglibdir)"'; \
	  echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
	} | sed '/""/d' > $@-t && \
	mv -f $@-t $@

BUILT_SOURCES += configmake.h
CLEANFILES += configmake.h configmake.h-t

## end   gnulib module configmake

## begin gnulib module float

BUILT_SOURCES += $(FLOAT_H)

# We need the following in order to create <float.h> when the system
# doesn't have one that works with the given compiler.
if GL_GENERATE_FLOAT_H
float.h: float.in.h $(top_builddir)/config.status
	$(AM_V_GEN)rm -f $@-t $@ && \
	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
	      -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
	      -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \
	      < $(srcdir)/float.in.h; \
	} > $@-t && \
	mv $@-t $@
else
float.h: $(top_builddir)/config.status
	rm -f $@
endif
MOSTLYCLEANFILES += float.h float.h-t

EXTRA_DIST += float.c float.in.h itold.c

EXTRA_libgnu_a_SOURCES += float.c itold.c

## end   gnulib module float

## begin gnulib module fnmatch

BUILT_SOURCES += $(FNMATCH_H)

# We need the following in order to create <fnmatch.h> when the system
# doesn't have one that supports the required API.
if GL_GENERATE_FNMATCH_H
fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(ARG_NONNULL_H)
	$(AM_V_GEN)rm -f $@-t $@ && \
	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
	  sed -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
	      < $(srcdir)/fnmatch.in.h; \
	} > $@-t && \
	mv -f $@-t $@
else
fnmatch.h: $(top_builddir)/config.status
	rm -f $@
endif
MOSTLYCLEANFILES += fnmatch.h fnmatch.h-t

EXTRA_DIST += fnmatch.c fnmatch.in.h fnmatch_loop.c

EXTRA_libgnu_a_SOURCES += fnmatch.c fnmatch_loop.c

## end   gnulib module fnmatch

## begin gnulib module fpucw


EXTRA_DIST += fpucw.h

## end   gnulib module fpucw

## begin gnulib module frexp


EXTRA_DIST += frexp.c

EXTRA_libgnu_a_SOURCES += frexp.c

## end   gnulib module frexp

## begin gnulib module frexpl


EXTRA_DIST += frexp.c frexpl.c

EXTRA_libgnu_a_SOURCES += frexp.c frexpl.c

## end   gnulib module frexpl

## begin gnulib module inttypes-incomplete

BUILT_SOURCES += inttypes.h

# We need the following in order to create <inttypes.h> when the system
# doesn't have one that works with the given compiler.
inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
	$(AM_V_GEN)rm -f $@-t $@ && \
	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
	  sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
	      -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \
	      -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \
	      -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
	      -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
	      -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
	      -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \
	      -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \
	      -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \
	      -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \
	      -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \
	      -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \
	      -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
	      -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
	      -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
	      -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \
	      -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \
	      -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \
	      -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \
	      -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \
	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
	      -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
	      < $(srcdir)/inttypes.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += inttypes.h inttypes.h-t

EXTRA_DIST += inttypes.in.h

## end   gnulib module inttypes-incomplete

## begin gnulib module isnand-nolibm


EXTRA_DIST += float+.h isnan.c isnand-nolibm.h isnand.c

EXTRA_libgnu_a_SOURCES += isnan.c isnand.c

## end   gnulib module isnand-nolibm

## begin gnulib module isnanl-nolibm


EXTRA_DIST += float+.h isnan.c isnanl-nolibm.h isnanl.c

EXTRA_libgnu_a_SOURCES += isnan.c isnanl.c

## end   gnulib module isnanl-nolibm

## begin gnulib module localcharset

libgnu_a_SOURCES += localcharset.h localcharset.c

# We need the following in order to install a simple file in $(libdir)
# which is shared with other installed packages. We use a list of referencing
# packages so that "make uninstall" will remove the file if and only if it
# is not used by another installed package.
# On systems with glibc-2.1 or newer, the file is redundant, therefore we
# avoid installing it.

all-local: charset.alias ref-add.sed ref-del.sed

charset_alias = $(DESTDIR)$(libdir)/charset.alias
charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
install-exec-local: install-exec-localcharset
install-exec-localcharset: all-local
	if test $(GLIBC21) = no; then \
	  case '$(host_os)' in \
	    darwin[56]*) \
	      need_charset_alias=true ;; \
	    darwin* | cygwin* | mingw* | pw32* | cegcc*) \
	      need_charset_alias=false ;; \
	    *) \
	      need_charset_alias=true ;; \
	  esac ; \
	else \
	  need_charset_alias=false ; \
	fi ; \
	if $$need_charset_alias; then \
	  $(mkinstalldirs) $(DESTDIR)$(libdir) ; \
	fi ; \
	if test -f $(charset_alias); then \
	  sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
	  $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
	  rm -f $(charset_tmp) ; \
	else \
	  if $$need_charset_alias; then \
	    sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
	    rm -f $(charset_tmp) ; \
	  fi ; \
	fi

uninstall-local: uninstall-localcharset
uninstall-localcharset: all-local
	if test -f $(charset_alias); then \
	  sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
	  if grep '^# Packages using this file: $$' $(charset_tmp) \
	      > /dev/null; then \
	    rm -f $(charset_alias); \
	  else \
	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
	  fi; \
	  rm -f $(charset_tmp); \
	fi

charset.alias: config.charset
	$(AM_V_GEN)rm -f t-$@ $@ && \
	$(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \
	mv t-$@ $@

SUFFIXES += .sed .sin
.sin.sed:
	$(AM_V_GEN)rm -f t-$@ $@ && \
	sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \
	mv t-$@ $@

CLEANFILES += charset.alias ref-add.sed ref-del.sed

EXTRA_DIST += config.charset ref-add.sin ref-del.sin

## end   gnulib module localcharset

## begin gnulib module math

BUILT_SOURCES += math.h
libgnu_a_SOURCES += math.c

# We need the following in order to create <math.h> when the system
# doesn't have one that works with the given compiler.
math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
	$(AM_V_GEN)rm -f $@-t $@ && \
	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
	      -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \
	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
	      -e 's|@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@|$(NEXT_AS_FIRST_DIRECTIVE_MATH_H)|g' \
	      -e 's/@''GNULIB_ACOSF''@/$(GNULIB_ACOSF)/g' \
	      -e 's/@''GNULIB_ACOSL''@/$(GNULIB_ACOSL)/g' \
	      -e 's/@''GNULIB_ASINF''@/$(GNULIB_ASINF)/g' \
	      -e 's/@''GNULIB_ASINL''@/$(GNULIB_ASINL)/g' \
	      -e 's/@''GNULIB_ATANF''@/$(GNULIB_ATANF)/g' \
	      -e 's/@''GNULIB_ATANL''@/$(GNULIB_ATANL)/g' \
	      -e 's/@''GNULIB_ATAN2F''@/$(GNULIB_ATAN2F)/g' \
	      -e 's/@''GNULIB_CBRT''@/$(GNULIB_CBRT)/g' \
	      -e 's/@''GNULIB_CBRTF''@/$(GNULIB_CBRTF)/g' \
	      -e 's/@''GNULIB_CBRTL''@/$(GNULIB_CBRTL)/g' \
	      -e 's/@''GNULIB_CEIL''@/$(GNULIB_CEIL)/g' \
	      -e 's/@''GNULIB_CEILF''@/$(GNULIB_CEILF)/g' \
	      -e 's/@''GNULIB_CEILL''@/$(GNULIB_CEILL)/g' \
	      -e 's/@''GNULIB_COPYSIGN''@/$(GNULIB_COPYSIGN)/g' \
	      -e 's/@''GNULIB_COPYSIGNF''@/$(GNULIB_COPYSIGNF)/g' \
	      -e 's/@''GNULIB_COPYSIGNL''@/$(GNULIB_COPYSIGNL)/g' \
	      -e 's/@''GNULIB_COSF''@/$(GNULIB_COSF)/g' \
	      -e 's/@''GNULIB_COSL''@/$(GNULIB_COSL)/g' \
	      -e 's/@''GNULIB_COSHF''@/$(GNULIB_COSHF)/g' \
	      -e 's/@''GNULIB_EXPF''@/$(GNULIB_EXPF)/g' \
	      -e 's/@''GNULIB_EXPL''@/$(GNULIB_EXPL)/g' \
	      -e 's/@''GNULIB_EXP2''@/$(GNULIB_EXP2)/g' \
	      -e 's/@''GNULIB_EXP2F''@/$(GNULIB_EXP2F)/g' \
	      -e 's/@''GNULIB_EXP2L''@/$(GNULIB_EXP2L)/g' \
	      -e 's/@''GNULIB_EXPM1''@/$(GNULIB_EXPM1)/g' \
	      -e 's/@''GNULIB_EXPM1F''@/$(GNULIB_EXPM1F)/g' \
	      -e 's/@''GNULIB_EXPM1L''@/$(GNULIB_EXPM1L)/g' \
	      -e 's/@''GNULIB_FABSF''@/$(GNULIB_FABSF)/g' \
	      -e 's/@''GNULIB_FABSL''@/$(GNULIB_FABSL)/g' \
	      -e 's/@''GNULIB_FLOOR''@/$(GNULIB_FLOOR)/g' \
	      -e 's/@''GNULIB_FLOORF''@/$(GNULIB_FLOORF)/g' \
	      -e 's/@''GNULIB_FLOORL''@/$(GNULIB_FLOORL)/g' \
	      -e 's/@''GNULIB_FMA''@/$(GNULIB_FMA)/g' \
	      -e 's/@''GNULIB_FMAF''@/$(GNULIB_FMAF)/g' \
	      -e 's/@''GNULIB_FMAL''@/$(GNULIB_FMAL)/g' \
	      -e 's/@''GNULIB_FMOD''@/$(GNULIB_FMOD)/g' \
	      -e 's/@''GNULIB_FMODF''@/$(GNULIB_FMODF)/g' \
	      -e 's/@''GNULIB_FMODL''@/$(GNULIB_FMODL)/g' \
	      -e 's/@''GNULIB_FREXPF''@/$(GNULIB_FREXPF)/g' \
	      -e 's/@''GNULIB_FREXP''@/$(GNULIB_FREXP)/g' \
	      -e 's/@''GNULIB_FREXPL''@/$(GNULIB_FREXPL)/g' \
	      -e 's/@''GNULIB_HYPOT''@/$(GNULIB_HYPOT)/g' \
	      -e 's/@''GNULIB_HYPOTF''@/$(GNULIB_HYPOTF)/g' \
	      -e 's/@''GNULIB_HYPOTL''@/$(GNULIB_HYPOTL)/g' \
	      < $(srcdir)/math.in.h | \
	  sed -e 's/@''GNULIB_ILOGB''@/$(GNULIB_ILOGB)/g' \
	      -e 's/@''GNULIB_ILOGBF''@/$(GNULIB_ILOGBF)/g' \
	      -e 's/@''GNULIB_ILOGBL''@/$(GNULIB_ILOGBL)/g' \
	      -e 's/@''GNULIB_ISFINITE''@/$(GNULIB_ISFINITE)/g' \
	      -e 's/@''GNULIB_ISINF''@/$(GNULIB_ISINF)/g' \
	      -e 's/@''GNULIB_ISNAN''@/$(GNULIB_ISNAN)/g' \
	      -e 's/@''GNULIB_ISNANF''@/$(GNULIB_ISNANF)/g' \
	      -e 's/@''GNULIB_ISNAND''@/$(GNULIB_ISNAND)/g' \
	      -e 's/@''GNULIB_ISNANL''@/$(GNULIB_ISNANL)/g' \
	      -e 's/@''GNULIB_LDEXPF''@/$(GNULIB_LDEXPF)/g' \
	      -e 's/@''GNULIB_LDEXPL''@/$(GNULIB_LDEXPL)/g' \
	      -e 's/@''GNULIB_LOG''@/$(GNULIB_LOG)/g' \
	      -e 's/@''GNULIB_LOGF''@/$(GNULIB_LOGF)/g' \
	      -e 's/@''GNULIB_LOGL''@/$(GNULIB_LOGL)/g' \
	      -e 's/@''GNULIB_LOG10''@/$(GNULIB_LOG10)/g' \
	      -e 's/@''GNULIB_LOG10F''@/$(GNULIB_LOG10F)/g' \
	      -e 's/@''GNULIB_LOG10L''@/$(GNULIB_LOG10L)/g' \
	      -e 's/@''GNULIB_LOG1P''@/$(GNULIB_LOG1P)/g' \
	      -e 's/@''GNULIB_LOG1PF''@/$(GNULIB_LOG1PF)/g' \
	      -e 's/@''GNULIB_LOG1PL''@/$(GNULIB_LOG1PL)/g' \
	      -e 's/@''GNULIB_LOG2''@/$(GNULIB_LOG2)/g' \
	      -e 's/@''GNULIB_LOG2F''@/$(GNULIB_LOG2F)/g' \
	      -e 's/@''GNULIB_LOG2L''@/$(GNULIB_LOG2L)/g' \
	      -e 's/@''GNULIB_LOGB''@/$(GNULIB_LOGB)/g' \
	      -e 's/@''GNULIB_LOGBF''@/$(GNULIB_LOGBF)/g' \
	      -e 's/@''GNULIB_LOGBL''@/$(GNULIB_LOGBL)/g' \
	      -e 's/@''GNULIB_MODF''@/$(GNULIB_MODF)/g' \
	      -e 's/@''GNULIB_MODFF''@/$(GNULIB_MODFF)/g' \
	      -e 's/@''GNULIB_MODFL''@/$(GNULIB_MODFL)/g' \
	      -e 's/@''GNULIB_POWF''@/$(GNULIB_POWF)/g' \
	      -e 's/@''GNULIB_REMAINDER''@/$(GNULIB_REMAINDER)/g' \
	      -e 's/@''GNULIB_REMAINDERF''@/$(GNULIB_REMAINDERF)/g' \
	      -e 's/@''GNULIB_REMAINDERL''@/$(GNULIB_REMAINDERL)/g' \
	      -e 's/@''GNULIB_RINT''@/$(GNULIB_RINT)/g' \
	      -e 's/@''GNULIB_RINTF''@/$(GNULIB_RINTF)/g' \
	      -e 's/@''GNULIB_RINTL''@/$(GNULIB_RINTL)/g' \
	      -e 's/@''GNULIB_ROUND''@/$(GNULIB_ROUND)/g' \
	      -e 's/@''GNULIB_ROUNDF''@/$(GNULIB_ROUNDF)/g' \
	      -e 's/@''GNULIB_ROUNDL''@/$(GNULIB_ROUNDL)/g' \
	      -e 's/@''GNULIB_SIGNBIT''@/$(GNULIB_SIGNBIT)/g' \
	      -e 's/@''GNULIB_SINF''@/$(GNULIB_SINF)/g' \
	      -e 's/@''GNULIB_SINL''@/$(GNULIB_SINL)/g' \
	      -e 's/@''GNULIB_SINHF''@/$(GNULIB_SINHF)/g' \
	      -e 's/@''GNULIB_SQRTF''@/$(GNULIB_SQRTF)/g' \
	      -e 's/@''GNULIB_SQRTL''@/$(GNULIB_SQRTL)/g' \
	      -e 's/@''GNULIB_TANF''@/$(GNULIB_TANF)/g' \
	      -e 's/@''GNULIB_TANL''@/$(GNULIB_TANL)/g' \
	      -e 's/@''GNULIB_TANHF''@/$(GNULIB_TANHF)/g' \
	      -e 's/@''GNULIB_TRUNC''@/$(GNULIB_TRUNC)/g' \
	      -e 's/@''GNULIB_TRUNCF''@/$(GNULIB_TRUNCF)/g' \
	      -e 's/@''GNULIB_TRUNCL''@/$(GNULIB_TRUNCL)/g' \
	  | \
	  sed -e 's|@''HAVE_ACOSF''@|$(HAVE_ACOSF)|g' \
	      -e 's|@''HAVE_ACOSL''@|$(HAVE_ACOSL)|g' \
	      -e 's|@''HAVE_ASINF''@|$(HAVE_ASINF)|g' \
	      -e 's|@''HAVE_ASINL''@|$(HAVE_ASINL)|g' \
	      -e 's|@''HAVE_ATANF''@|$(HAVE_ATANF)|g' \
	      -e 's|@''HAVE_ATANL''@|$(HAVE_ATANL)|g' \
	      -e 's|@''HAVE_ATAN2F''@|$(HAVE_ATAN2F)|g' \
	      -e 's|@''HAVE_CBRT''@|$(HAVE_CBRT)|g' \
	      -e 's|@''HAVE_CBRTF''@|$(HAVE_CBRTF)|g' \
	      -e 's|@''HAVE_CBRTL''@|$(HAVE_CBRTL)|g' \
	      -e 's|@''HAVE_COPYSIGN''@|$(HAVE_COPYSIGN)|g' \
	      -e 's|@''HAVE_COPYSIGNL''@|$(HAVE_COPYSIGNL)|g' \
	      -e 's|@''HAVE_COSF''@|$(HAVE_COSF)|g' \
	      -e 's|@''HAVE_COSL''@|$(HAVE_COSL)|g' \
	      -e 's|@''HAVE_COSHF''@|$(HAVE_COSHF)|g' \
	      -e 's|@''HAVE_EXPF''@|$(HAVE_EXPF)|g' \
	      -e 's|@''HAVE_EXPL''@|$(HAVE_EXPL)|g' \
	      -e 's|@''HAVE_EXPM1''@|$(HAVE_EXPM1)|g' \
	      -e 's|@''HAVE_EXPM1F''@|$(HAVE_EXPM1F)|g' \
	      -e 's|@''HAVE_FABSF''@|$(HAVE_FABSF)|g' \
	      -e 's|@''HAVE_FABSL''@|$(HAVE_FABSL)|g' \
	      -e 's|@''HAVE_FMA''@|$(HAVE_FMA)|g' \
	      -e 's|@''HAVE_FMAF''@|$(HAVE_FMAF)|g' \
	      -e 's|@''HAVE_FMAL''@|$(HAVE_FMAL)|g' \
	      -e 's|@''HAVE_FMODF''@|$(HAVE_FMODF)|g' \
	      -e 's|@''HAVE_FMODL''@|$(HAVE_FMODL)|g' \
	      -e 's|@''HAVE_FREXPF''@|$(HAVE_FREXPF)|g' \
	      -e 's|@''HAVE_HYPOTF''@|$(HAVE_HYPOTF)|g' \
	      -e 's|@''HAVE_HYPOTL''@|$(HAVE_HYPOTL)|g' \
	      -e 's|@''HAVE_ILOGB''@|$(HAVE_ILOGB)|g' \
	      -e 's|@''HAVE_ILOGBF''@|$(HAVE_ILOGBF)|g' \
	      -e 's|@''HAVE_ILOGBL''@|$(HAVE_ILOGBL)|g' \
	      -e 's|@''HAVE_ISNANF''@|$(HAVE_ISNANF)|g' \
	      -e 's|@''HAVE_ISNAND''@|$(HAVE_ISNAND)|g' \
	      -e 's|@''HAVE_ISNANL''@|$(HAVE_ISNANL)|g' \
	      -e 's|@''HAVE_LDEXPF''@|$(HAVE_LDEXPF)|g' \
	      -e 's|@''HAVE_LOGF''@|$(HAVE_LOGF)|g' \
	      -e 's|@''HAVE_LOGL''@|$(HAVE_LOGL)|g' \
	      -e 's|@''HAVE_LOG10F''@|$(HAVE_LOG10F)|g' \
	      -e 's|@''HAVE_LOG10L''@|$(HAVE_LOG10L)|g' \
	      -e 's|@''HAVE_LOG1P''@|$(HAVE_LOG1P)|g' \
	      -e 's|@''HAVE_LOG1PF''@|$(HAVE_LOG1PF)|g' \
	      -e 's|@''HAVE_LOG1PL''@|$(HAVE_LOG1PL)|g' \
	      -e 's|@''HAVE_LOGBF''@|$(HAVE_LOGBF)|g' \
	      -e 's|@''HAVE_LOGBL''@|$(HAVE_LOGBL)|g' \
	      -e 's|@''HAVE_MODFF''@|$(HAVE_MODFF)|g' \
	      -e 's|@''HAVE_MODFL''@|$(HAVE_MODFL)|g' \
	      -e 's|@''HAVE_POWF''@|$(HAVE_POWF)|g' \
	      -e 's|@''HAVE_REMAINDER''@|$(HAVE_REMAINDER)|g' \
	      -e 's|@''HAVE_REMAINDERF''@|$(HAVE_REMAINDERF)|g' \
	      -e 's|@''HAVE_RINT''@|$(HAVE_RINT)|g' \
	      -e 's|@''HAVE_RINTL''@|$(HAVE_RINTL)|g' \
	      -e 's|@''HAVE_SINF''@|$(HAVE_SINF)|g' \
	      -e 's|@''HAVE_SINL''@|$(HAVE_SINL)|g' \
	      -e 's|@''HAVE_SINHF''@|$(HAVE_SINHF)|g' \
	      -e 's|@''HAVE_SQRTF''@|$(HAVE_SQRTF)|g' \
	      -e 's|@''HAVE_SQRTL''@|$(HAVE_SQRTL)|g' \
	      -e 's|@''HAVE_TANF''@|$(HAVE_TANF)|g' \
	      -e 's|@''HAVE_TANL''@|$(HAVE_TANL)|g' \
	      -e 's|@''HAVE_TANHF''@|$(HAVE_TANHF)|g' \
	      -e 's|@''HAVE_DECL_ACOSL''@|$(HAVE_DECL_ACOSL)|g' \
	      -e 's|@''HAVE_DECL_ASINL''@|$(HAVE_DECL_ASINL)|g' \
	      -e 's|@''HAVE_DECL_ATANL''@|$(HAVE_DECL_ATANL)|g' \
	      -e 's|@''HAVE_DECL_CBRTF''@|$(HAVE_DECL_CBRTF)|g' \
	      -e 's|@''HAVE_DECL_CBRTL''@|$(HAVE_DECL_CBRTL)|g' \
	      -e 's|@''HAVE_DECL_CEILF''@|$(HAVE_DECL_CEILF)|g' \
	      -e 's|@''HAVE_DECL_CEILL''@|$(HAVE_DECL_CEILL)|g' \
	      -e 's|@''HAVE_DECL_COPYSIGNF''@|$(HAVE_DECL_COPYSIGNF)|g' \
	      -e 's|@''HAVE_DECL_COSL''@|$(HAVE_DECL_COSL)|g' \
	      -e 's|@''HAVE_DECL_EXPL''@|$(HAVE_DECL_EXPL)|g' \
	      -e 's|@''HAVE_DECL_EXP2''@|$(HAVE_DECL_EXP2)|g' \
	      -e 's|@''HAVE_DECL_EXP2F''@|$(HAVE_DECL_EXP2F)|g' \
	      -e 's|@''HAVE_DECL_EXP2L''@|$(HAVE_DECL_EXP2L)|g' \
	      -e 's|@''HAVE_DECL_EXPM1L''@|$(HAVE_DECL_EXPM1L)|g' \
	      -e 's|@''HAVE_DECL_FLOORF''@|$(HAVE_DECL_FLOORF)|g' \
	      -e 's|@''HAVE_DECL_FLOORL''@|$(HAVE_DECL_FLOORL)|g' \
	      -e 's|@''HAVE_DECL_FREXPL''@|$(HAVE_DECL_FREXPL)|g' \
	      -e 's|@''HAVE_DECL_LDEXPL''@|$(HAVE_DECL_LDEXPL)|g' \
	      -e 's|@''HAVE_DECL_LOGL''@|$(HAVE_DECL_LOGL)|g' \
	      -e 's|@''HAVE_DECL_LOG10L''@|$(HAVE_DECL_LOG10L)|g' \
	      -e 's|@''HAVE_DECL_LOG2''@|$(HAVE_DECL_LOG2)|g' \
	      -e 's|@''HAVE_DECL_LOG2F''@|$(HAVE_DECL_LOG2F)|g' \
	      -e 's|@''HAVE_DECL_LOG2L''@|$(HAVE_DECL_LOG2L)|g' \
	      -e 's|@''HAVE_DECL_LOGB''@|$(HAVE_DECL_LOGB)|g' \
	      -e 's|@''HAVE_DECL_REMAINDER''@|$(HAVE_DECL_REMAINDER)|g' \
	      -e 's|@''HAVE_DECL_REMAINDERL''@|$(HAVE_DECL_REMAINDERL)|g' \
	      -e 's|@''HAVE_DECL_RINTF''@|$(HAVE_DECL_RINTF)|g' \
	      -e 's|@''HAVE_DECL_ROUND''@|$(HAVE_DECL_ROUND)|g' \
	      -e 's|@''HAVE_DECL_ROUNDF''@|$(HAVE_DECL_ROUNDF)|g' \
	      -e 's|@''HAVE_DECL_ROUNDL''@|$(HAVE_DECL_ROUNDL)|g' \
	      -e 's|@''HAVE_DECL_SINL''@|$(HAVE_DECL_SINL)|g' \
	      -e 's|@''HAVE_DECL_SQRTL''@|$(HAVE_DECL_SQRTL)|g' \
	      -e 's|@''HAVE_DECL_TANL''@|$(HAVE_DECL_TANL)|g' \
	      -e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \
	      -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \
	      -e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \
	  | \
	  sed -e 's|@''REPLACE_CBRTF''@|$(REPLACE_CBRTF)|g' \
	      -e 's|@''REPLACE_CBRTL''@|$(REPLACE_CBRTL)|g' \
	      -e 's|@''REPLACE_CEIL''@|$(REPLACE_CEIL)|g' \
	      -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \
	      -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \
	      -e 's|@''REPLACE_EXPM1''@|$(REPLACE_EXPM1)|g' \
	      -e 's|@''REPLACE_EXPM1F''@|$(REPLACE_EXPM1F)|g' \
	      -e 's|@''REPLACE_EXP2''@|$(REPLACE_EXP2)|g' \
	      -e 's|@''REPLACE_EXP2L''@|$(REPLACE_EXP2L)|g' \
	      -e 's|@''REPLACE_FABSL''@|$(REPLACE_FABSL)|g' \
	      -e 's|@''REPLACE_FLOOR''@|$(REPLACE_FLOOR)|g' \
	      -e 's|@''REPLACE_FLOORF''@|$(REPLACE_FLOORF)|g' \
	      -e 's|@''REPLACE_FLOORL''@|$(REPLACE_FLOORL)|g' \
	      -e 's|@''REPLACE_FMA''@|$(REPLACE_FMA)|g' \
	      -e 's|@''REPLACE_FMAF''@|$(REPLACE_FMAF)|g' \
	      -e 's|@''REPLACE_FMAL''@|$(REPLACE_FMAL)|g' \
	      -e 's|@''REPLACE_FMOD''@|$(REPLACE_FMOD)|g' \
	      -e 's|@''REPLACE_FMODF''@|$(REPLACE_FMODF)|g' \
	      -e 's|@''REPLACE_FMODL''@|$(REPLACE_FMODL)|g' \
	      -e 's|@''REPLACE_FREXPF''@|$(REPLACE_FREXPF)|g' \
	      -e 's|@''REPLACE_FREXP''@|$(REPLACE_FREXP)|g' \
	      -e 's|@''REPLACE_FREXPL''@|$(REPLACE_FREXPL)|g' \
	      -e 's|@''REPLACE_HUGE_VAL''@|$(REPLACE_HUGE_VAL)|g' \
	      -e 's|@''REPLACE_HYPOT''@|$(REPLACE_HYPOT)|g' \
	      -e 's|@''REPLACE_HYPOTF''@|$(REPLACE_HYPOTF)|g' \
	      -e 's|@''REPLACE_HYPOTL''@|$(REPLACE_HYPOTL)|g' \
	      -e 's|@''REPLACE_ILOGB''@|$(REPLACE_ILOGB)|g' \
	      -e 's|@''REPLACE_ILOGBF''@|$(REPLACE_ILOGBF)|g' \
	      -e 's|@''REPLACE_ISFINITE''@|$(REPLACE_ISFINITE)|g' \
	      -e 's|@''REPLACE_ISINF''@|$(REPLACE_ISINF)|g' \
	      -e 's|@''REPLACE_ISNAN''@|$(REPLACE_ISNAN)|g' \
	      -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \
	      -e 's|@''REPLACE_LDEXPL''@|$(REPLACE_LDEXPL)|g' \
	      -e 's|@''REPLACE_LOG''@|$(REPLACE_LOG)|g' \
	      -e 's|@''REPLACE_LOGF''@|$(REPLACE_LOGF)|g' \
	      -e 's|@''REPLACE_LOGL''@|$(REPLACE_LOGL)|g' \
	      -e 's|@''REPLACE_LOG10''@|$(REPLACE_LOG10)|g' \
	      -e 's|@''REPLACE_LOG10F''@|$(REPLACE_LOG10F)|g' \
	      -e 's|@''REPLACE_LOG10L''@|$(REPLACE_LOG10L)|g' \
	      -e 's|@''REPLACE_LOG1P''@|$(REPLACE_LOG1P)|g' \
	      -e 's|@''REPLACE_LOG1PF''@|$(REPLACE_LOG1PF)|g' \
	      -e 's|@''REPLACE_LOG1PL''@|$(REPLACE_LOG1PL)|g' \
	      -e 's|@''REPLACE_LOG2''@|$(REPLACE_LOG2)|g' \
	      -e 's|@''REPLACE_LOG2F''@|$(REPLACE_LOG2F)|g' \
	      -e 's|@''REPLACE_LOG2L''@|$(REPLACE_LOG2L)|g' \
	      -e 's|@''REPLACE_LOGB''@|$(REPLACE_LOGB)|g' \
	      -e 's|@''REPLACE_LOGBF''@|$(REPLACE_LOGBF)|g' \
	      -e 's|@''REPLACE_LOGBL''@|$(REPLACE_LOGBL)|g' \
	      -e 's|@''REPLACE_MODF''@|$(REPLACE_MODF)|g' \
	      -e 's|@''REPLACE_MODFF''@|$(REPLACE_MODFF)|g' \
	      -e 's|@''REPLACE_MODFL''@|$(REPLACE_MODFL)|g' \
	      -e 's|@''REPLACE_NAN''@|$(REPLACE_NAN)|g' \
	      -e 's|@''REPLACE_REMAINDER''@|$(REPLACE_REMAINDER)|g' \
	      -e 's|@''REPLACE_REMAINDERF''@|$(REPLACE_REMAINDERF)|g' \
	      -e 's|@''REPLACE_REMAINDERL''@|$(REPLACE_REMAINDERL)|g' \
	      -e 's|@''REPLACE_ROUND''@|$(REPLACE_ROUND)|g' \
	      -e 's|@''REPLACE_ROUNDF''@|$(REPLACE_ROUNDF)|g' \
	      -e 's|@''REPLACE_ROUNDL''@|$(REPLACE_ROUNDL)|g' \
	      -e 's|@''REPLACE_SIGNBIT''@|$(REPLACE_SIGNBIT)|g' \
	      -e 's|@''REPLACE_SIGNBIT_USING_GCC''@|$(REPLACE_SIGNBIT_USING_GCC)|g' \
	      -e 's|@''REPLACE_SQRTL''@|$(REPLACE_SQRTL)|g' \
	      -e 's|@''REPLACE_TRUNC''@|$(REPLACE_TRUNC)|g' \
	      -e 's|@''REPLACE_TRUNCF''@|$(REPLACE_TRUNCF)|g' \
	      -e 's|@''REPLACE_TRUNCL''@|$(REPLACE_TRUNCL)|g' \
	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
	      -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += math.h math.h-t

EXTRA_DIST += math.in.h

## end   gnulib module math

## begin gnulib module mbrtowc


EXTRA_DIST += mbrtowc.c

EXTRA_libgnu_a_SOURCES += mbrtowc.c

## end   gnulib module mbrtowc

## begin gnulib module mbsinit


EXTRA_DIST += mbsinit.c

EXTRA_libgnu_a_SOURCES += mbsinit.c

## end   gnulib module mbsinit

## begin gnulib module mbsrtowcs


EXTRA_DIST += mbsrtowcs-impl.h mbsrtowcs-state.c mbsrtowcs.c

EXTRA_libgnu_a_SOURCES += mbsrtowcs-state.c mbsrtowcs.c

## end   gnulib module mbsrtowcs

## begin gnulib module memchr


EXTRA_DIST += memchr.c memchr.valgrind

EXTRA_libgnu_a_SOURCES += memchr.c

## end   gnulib module memchr

## begin gnulib module memmem-simple


EXTRA_DIST += memmem.c str-two-way.h

EXTRA_libgnu_a_SOURCES += memmem.c

## end   gnulib module memmem-simple

## begin gnulib module pathmax


EXTRA_DIST += pathmax.h

## end   gnulib module pathmax

## begin gnulib module snippet/arg-nonnull

# The BUILT_SOURCES created by this Makefile snippet are not used via #include
# statements but through direct file reference. Therefore this snippet must be
# present in all Makefile.am that need it. This is ensured by the applicability
# 'all' defined above.

BUILT_SOURCES += arg-nonnull.h
# The arg-nonnull.h that gets inserted into generated .h files is the same as
# build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut
# off.
arg-nonnull.h: $(top_srcdir)/import/extra/snippet/arg-nonnull.h
	$(AM_V_GEN)rm -f $@-t $@ && \
	sed -n -e '/GL_ARG_NONNULL/,$$p' \
	  < $(top_srcdir)/import/extra/snippet/arg-nonnull.h \
	  > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t

ARG_NONNULL_H=arg-nonnull.h

EXTRA_DIST += $(top_srcdir)/import/extra/snippet/arg-nonnull.h

## end   gnulib module snippet/arg-nonnull

## begin gnulib module snippet/c++defs

# The BUILT_SOURCES created by this Makefile snippet are not used via #include
# statements but through direct file reference. Therefore this snippet must be
# present in all Makefile.am that need it. This is ensured by the applicability
# 'all' defined above.

BUILT_SOURCES += c++defs.h
# The c++defs.h that gets inserted into generated .h files is the same as
# build-aux/snippet/c++defs.h, except that it has the copyright header cut off.
c++defs.h: $(top_srcdir)/import/extra/snippet/c++defs.h
	$(AM_V_GEN)rm -f $@-t $@ && \
	sed -n -e '/_GL_CXXDEFS/,$$p' \
	  < $(top_srcdir)/import/extra/snippet/c++defs.h \
	  > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += c++defs.h c++defs.h-t

CXXDEFS_H=c++defs.h

EXTRA_DIST += $(top_srcdir)/import/extra/snippet/c++defs.h

## end   gnulib module snippet/c++defs

## begin gnulib module snippet/warn-on-use

BUILT_SOURCES += warn-on-use.h
# The warn-on-use.h that gets inserted into generated .h files is the same as
# build-aux/snippet/warn-on-use.h, except that it has the copyright header cut
# off.
warn-on-use.h: $(top_srcdir)/import/extra/snippet/warn-on-use.h
	$(AM_V_GEN)rm -f $@-t $@ && \
	sed -n -e '/^.ifndef/,$$p' \
	  < $(top_srcdir)/import/extra/snippet/warn-on-use.h \
	  > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t

WARN_ON_USE_H=warn-on-use.h

EXTRA_DIST += $(top_srcdir)/import/extra/snippet/warn-on-use.h

## end   gnulib module snippet/warn-on-use

## begin gnulib module stdbool

BUILT_SOURCES += $(STDBOOL_H)

# We need the following in order to create <stdbool.h> when the system
# doesn't have one that works.
if GL_GENERATE_STDBOOL_H
stdbool.h: stdbool.in.h $(top_builddir)/config.status
	$(AM_V_GEN)rm -f $@-t $@ && \
	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
	  sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
	} > $@-t && \
	mv $@-t $@
else
stdbool.h: $(top_builddir)/config.status
	rm -f $@
endif
MOSTLYCLEANFILES += stdbool.h stdbool.h-t

EXTRA_DIST += stdbool.in.h

## end   gnulib module stdbool

## begin gnulib module stddef

BUILT_SOURCES += $(STDDEF_H)

# We need the following in order to create <stddef.h> when the system
# doesn't have one that works with the given compiler.
if GL_GENERATE_STDDEF_H
stddef.h: stddef.in.h $(top_builddir)/config.status
	$(AM_V_GEN)rm -f $@-t $@ && \
	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
	      -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
	      -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \
	      -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
	      < $(srcdir)/stddef.in.h; \
	} > $@-t && \
	mv $@-t $@
else
stddef.h: $(top_builddir)/config.status
	rm -f $@
endif
MOSTLYCLEANFILES += stddef.h stddef.h-t

EXTRA_DIST += stddef.in.h

## end   gnulib module stddef

## begin gnulib module stdint

BUILT_SOURCES += $(STDINT_H)

# We need the following in order to create <stdint.h> when the system
# doesn't have one that works with the given compiler.
if GL_GENERATE_STDINT_H
stdint.h: stdint.in.h $(top_builddir)/config.status
	$(AM_V_GEN)rm -f $@-t $@ && \
	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
	      -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
	      -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
	      -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
	      -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
	      -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
	      -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
	      -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
	      -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
	      -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
	      -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
	      -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
	      -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
	      -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
	      -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
	      -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
	      -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
	      -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
	      -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
	      -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
	      -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
	      -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
	      -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
	      -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
	      < $(srcdir)/stdint.in.h; \
	} > $@-t && \
	mv $@-t $@
else
stdint.h: $(top_builddir)/config.status
	rm -f $@
endif
MOSTLYCLEANFILES += stdint.h stdint.h-t

EXTRA_DIST += stdint.in.h

## end   gnulib module stdint

## begin gnulib module streq


EXTRA_DIST += streq.h

## end   gnulib module streq

## begin gnulib module string

BUILT_SOURCES += string.h

# We need the following in order to create <string.h> when the system
# doesn't have one that works with the given compiler.
string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
	$(AM_V_GEN)rm -f $@-t $@ && \
	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
	      -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \
	      -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \
	      -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \
	      -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \
	      -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \
	      -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \
	      -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \
	      -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \
	      -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \
	      -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \
	      -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \
	      -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \
	      -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \
	      -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \
	      -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \
	      -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \
	      -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \
	      -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \
	      -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \
	      -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \
	      -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \
	      -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \
	      -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \
	      -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \
	      -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \
	      -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \
	      -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \
	      -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \
	      -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \
	      -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \
	      -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \
	      -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \
	      -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \
	      -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \
	      -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \
	      -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \
	      -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \
	      -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \
	      < $(srcdir)/string.in.h | \
	  sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
	      -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \
	      -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \
	      -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \
	      -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
	      -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
	      -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \
	      -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \
	      -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \
	      -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \
	      -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \
	      -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \
	      -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \
	      -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \
	      -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \
	      -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
	      -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
	      -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
	      -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \
	      -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
	      -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
	      -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
	      -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
	      -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
	      -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
	      -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \
	      -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
	      -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
	      -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
	      -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \
	      -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \
	      -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \
	      -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \
	      -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \
	      -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \
	      -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \
	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
	      -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
	      < $(srcdir)/string.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += string.h string.h-t

EXTRA_DIST += string.in.h

## end   gnulib module string

## begin gnulib module strnlen1

libgnu_a_SOURCES += strnlen1.h strnlen1.c

## end   gnulib module strnlen1

## begin gnulib module sys_types

BUILT_SOURCES += sys/types.h

# We need the following in order to create <sys/types.h> when the system
# doesn't have one that works with the given compiler.
sys/types.h: sys_types.in.h $(top_builddir)/config.status
	$(AM_V_at)$(MKDIR_P) sys
	$(AM_V_GEN)rm -f $@-t $@ && \
	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
	      -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \
	      -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \
	      < $(srcdir)/sys_types.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += sys/types.h sys/types.h-t

EXTRA_DIST += sys_types.in.h

## end   gnulib module sys_types

## begin gnulib module unistd

BUILT_SOURCES += unistd.h
libgnu_a_SOURCES += unistd.c

# We need the following in order to create an empty placeholder for
# <unistd.h> when the system doesn't have one.
unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
	$(AM_V_GEN)rm -f $@-t $@ && \
	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
	      -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
	      -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
	      -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \
	      -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \
	      -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \
	      -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
	      -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \
	      -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \
	      -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \
	      -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \
	      -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \
	      -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \
	      -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \
	      -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \
	      -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \
	      -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \
	      -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \
	      -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \
	      -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \
	      -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \
	      -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \
	      -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \
	      -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \
	      -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \
	      -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \
	      -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \
	      -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \
	      -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \
	      -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \
	      -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \
	      -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \
	      -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \
	      -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \
	      -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \
	      -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \
	      -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \
	      -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \
	      -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \
	      -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \
	      -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \
	      -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \
	      -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \
	      -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \
	      -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \
	      -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \
	      -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \
	      -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \
	      -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \
	      -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \
	      -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \
	      -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \
	      -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \
	      < $(srcdir)/unistd.in.h | \
	  sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \
	      -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
	      -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \
	      -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \
	      -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \
	      -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \
	      -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \
	      -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \
	      -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \
	      -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
	      -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \
	      -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \
	      -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \
	      -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \
	      -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
	      -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \
	      -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \
	      -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \
	      -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \
	      -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \
	      -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \
	      -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \
	      -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \
	      -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
	      -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \
	      -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \
	      -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
	      -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \
	      -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \
	      -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \
	      -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \
	      -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
	      -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \
	      -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \
	      -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \
	      -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
	      -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \
	      -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \
	      -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \
	      -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \
	      -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
	      -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
	  | \
	  sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
	      -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
	      -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \
	      -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
	      -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
	      -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \
	      -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
	      -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
	      -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
	      -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
	      -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
	      -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \
	      -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
	      -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \
	      -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \
	      -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
	      -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \
	      -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \
	      -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \
	      -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \
	      -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \
	      -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \
	      -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \
	      -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \
	      -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \
	      -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \
	      -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \
	      -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \
	      -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \
	      -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \
	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
	      -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += unistd.h unistd.h-t

EXTRA_DIST += unistd.in.h

## end   gnulib module unistd

## begin gnulib module update-copyright


EXTRA_DIST += $(top_srcdir)/import/extra/update-copyright

## end   gnulib module update-copyright

## begin gnulib module verify


EXTRA_DIST += verify.h

## end   gnulib module verify

## begin gnulib module wchar

BUILT_SOURCES += wchar.h

# We need the following in order to create <wchar.h> when the system
# version does not work standalone.
wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
	$(AM_V_GEN)rm -f $@-t $@ && \
	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
	      -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \
	      -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
	      -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \
	      -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \
	      -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \
	      -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \
	      -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \
	      -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \
	      -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \
	      -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \
	      -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \
	      -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \
	      -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \
	      -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \
	      -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \
	      -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \
	      -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \
	      -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \
	      -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \
	      -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \
	      -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \
	      -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \
	      -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \
	      -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \
	      -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \
	      -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \
	      -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \
	      -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \
	      -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \
	      -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \
	      -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \
	      -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \
	      -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \
	      -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \
	      -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \
	      -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \
	      -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \
	      -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \
	      -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \
	      -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \
	      -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \
	      -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \
	      < $(srcdir)/wchar.in.h | \
	  sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
	      -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \
	      -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \
	      -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \
	      -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \
	      -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \
	      -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \
	      -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \
	      -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \
	      -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \
	      -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \
	      -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \
	      -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \
	      -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \
	      -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \
	      -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \
	      -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \
	      -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \
	      -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \
	      -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \
	      -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \
	      -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \
	      -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \
	      -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \
	      -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \
	      -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \
	      -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \
	      -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \
	      -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \
	      -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \
	      -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \
	      -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \
	      -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \
	      -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \
	      -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \
	      -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \
	      -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \
	      -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \
	      -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \
	      -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
	  | \
	  sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \
	      -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \
	      -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \
	      -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \
	      -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \
	      -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \
	      -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \
	      -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \
	      -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \
	      -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \
	      -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \
	      -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
	      -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \
	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
	      -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += wchar.h wchar.h-t

EXTRA_DIST += wchar.in.h

## end   gnulib module wchar

## begin gnulib module wctype-h

BUILT_SOURCES += wctype.h
libgnu_a_SOURCES += wctype-h.c

# We need the following in order to create <wctype.h> when the system
# doesn't have one that works with the given compiler.
wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
	$(AM_V_GEN)rm -f $@-t $@ && \
	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
	      -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
	      -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
	      -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \
	      -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \
	      -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \
	      -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \
	      -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \
	      -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \
	      -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
	      -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \
	      -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \
	      -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
	      -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \
	      -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \
	      -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \
	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
	      < $(srcdir)/wctype.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += wctype.h wctype.h-t

EXTRA_DIST += wctype.in.h

## end   gnulib module wctype-h


mostlyclean-local: mostlyclean-generic
	@for dir in '' $(MOSTLYCLEANDIRS); do \
	  if test -n "$$dir" && test -d $$dir; then \
	    echo "rmdir $$dir"; rmdir $$dir; \
	  fi; \
	done; \
	:
