## DO NOT EDIT! GENERATED AUTOMATICALLY!
## Process this file with automake to produce Makefile.in.
# Copyright (C) 2002-2021 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 <https://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 \
#  --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 \
#  accept \
#  alloca \
#  bind \
#  canonicalize-lgpl \
#  chown \
#  connect \
#  count-one-bits \
#  dirent \
#  dirfd \
#  errno \
#  ffs \
#  fnmatch-gnu \
#  frexpl \
#  gendocs \
#  getcwd \
#  getline \
#  gettimeofday \
#  gitlog-to-changelog \
#  glob \
#  inet_ntop \
#  inttypes \
#  limits-h \
#  listen \
#  lstat \
#  memchr \
#  memmem \
#  mkdir \
#  mkdtemp \
#  mkostemp \
#  netdb \
#  pathmax \
#  rawmemchr \
#  readlink \
#  rename \
#  select \
#  setenv \
#  setsockopt \
#  signal-h \
#  socket \
#  strchrnul \
#  strerror_r-posix \
#  strstr \
#  strtok_r \
#  sys_stat \
#  sys_wait \
#  time_r \
#  unistd \
#  unsetenv \
#  update-copyright \
#  wchar \
#  wctype-h

AUTOMAKE_OPTIONS = 1.11 gnits subdir-objects

SUBDIRS =
noinst_HEADERS =
noinst_LIBRARIES =
noinst_LTLIBRARIES =
EXTRA_DIST =
BUILT_SOURCES =
SUFFIXES =
MOSTLYCLEANFILES = core *.stackdump
MOSTLYCLEANDIRS =
CLEANFILES =
DISTCLEANFILES =
MAINTAINERCLEANFILES =
# No GNU Make output.
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 absolute-header

# Use this preprocessor expression to decide whether #include_next works.
# Do not rely on a 'configure'-time test for this, since the expression
# might appear in an installed header, which is used by some other compiler.
HAVE_INCLUDE_NEXT = (__GNUC__ || __clang__ || 60000000 <= __DECC_VER)

## end   gnulib module absolute-header

## begin gnulib module accept


EXTRA_DIST += accept.c w32sock.h

EXTRA_libgnu_a_SOURCES += accept.c

## end   gnulib module accept

## 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! */'; \
	  sed -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' < $(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 arpa_inet

BUILT_SOURCES += arpa/inet.h

# We need the following in order to create <arpa/inet.h> when the system
# doesn't have one.
arpa/inet.h: arpa_inet.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
	$(AM_V_at)$(MKDIR_P) arpa
	$(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_ARPA_INET_H''@|$(NEXT_ARPA_INET_H)|g' \
	      -e 's|@''HAVE_ARPA_INET_H''@|$(HAVE_ARPA_INET_H)|g' \
	      -e 's/@''GNULIB_INET_NTOP''@/$(GNULIB_INET_NTOP)/g' \
	      -e 's/@''GNULIB_INET_PTON''@/$(GNULIB_INET_PTON)/g' \
	      -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \
	      -e 's|@''HAVE_DECL_INET_NTOP''@|$(HAVE_DECL_INET_NTOP)|g' \
	      -e 's|@''HAVE_DECL_INET_PTON''@|$(HAVE_DECL_INET_PTON)|g' \
	      -e 's|@''REPLACE_INET_NTOP''@|$(REPLACE_INET_NTOP)|g' \
	      -e 's|@''REPLACE_INET_PTON''@|$(REPLACE_INET_PTON)|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)/arpa_inet.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += arpa/inet.h arpa/inet.h-t
MOSTLYCLEANDIRS += arpa

EXTRA_DIST += arpa_inet.in.h

## end   gnulib module arpa_inet

## begin gnulib module assure


EXTRA_DIST += assure.h

## end   gnulib module assure

## begin gnulib module at-internal

libgnu_a_SOURCES += openat-priv.h openat-proc.c

## end   gnulib module at-internal

## begin gnulib module attribute


EXTRA_DIST += attribute.h

## end   gnulib module attribute

## begin gnulib module basename-lgpl

libgnu_a_SOURCES += basename-lgpl.c

EXTRA_DIST += basename-lgpl.h

## end   gnulib module basename-lgpl

## begin gnulib module bind


EXTRA_DIST += bind.c w32sock.h

EXTRA_libgnu_a_SOURCES += bind.c

## end   gnulib module bind

## begin gnulib module btowc


EXTRA_DIST += btowc.c

EXTRA_libgnu_a_SOURCES += btowc.c

## end   gnulib module btowc

## begin gnulib module canonicalize-lgpl


EXTRA_DIST += canonicalize-lgpl.c

EXTRA_libgnu_a_SOURCES += canonicalize-lgpl.c

## end   gnulib module canonicalize-lgpl

## begin gnulib module chdir-long


EXTRA_DIST += chdir-long.c chdir-long.h

EXTRA_libgnu_a_SOURCES += chdir-long.c

## end   gnulib module chdir-long

## begin gnulib module chown


EXTRA_DIST += chown.c fchown-stub.c

EXTRA_libgnu_a_SOURCES += chown.c fchown-stub.c

## end   gnulib module chown

## begin gnulib module cloexec

libgnu_a_SOURCES += cloexec.c

EXTRA_DIST += cloexec.h

## end   gnulib module cloexec

## begin gnulib module close


EXTRA_DIST += close.c

EXTRA_libgnu_a_SOURCES += close.c

## end   gnulib module close

## begin gnulib module closedir


EXTRA_DIST += closedir.c dirent-private.h

EXTRA_libgnu_a_SOURCES += closedir.c

## end   gnulib module closedir

## begin gnulib module connect


EXTRA_DIST += connect.c w32sock.h

EXTRA_libgnu_a_SOURCES += connect.c

## end   gnulib module connect

## begin gnulib module count-one-bits

libgnu_a_SOURCES += count-one-bits.c

EXTRA_DIST += count-one-bits.h

## end   gnulib module count-one-bits

## begin gnulib module ctype

BUILT_SOURCES += ctype.h

# We need the following in order to create <ctype.h> when the system
# doesn't have one that works with the given compiler.
ctype.h: ctype.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|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
	      -e 's|@''NEXT_CTYPE_H''@|$(NEXT_CTYPE_H)|g' \
	      -e 's/@''GNULIB_ISBLANK''@/$(GNULIB_ISBLANK)/g' \
	      -e 's/@''HAVE_ISBLANK''@/$(HAVE_ISBLANK)/g' \
	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
	      < $(srcdir)/ctype.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += ctype.h ctype.h-t

EXTRA_DIST += ctype.in.h

## end   gnulib module ctype

## begin gnulib module dirent

BUILT_SOURCES += dirent.h

# We need the following in order to create <dirent.h> when the system
# doesn't have one that works with the given compiler.
dirent.h: dirent.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_DIRENT_H''@|$(HAVE_DIRENT_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_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \
	      -e 's/@''GNULIB_OPENDIR''@/$(GNULIB_OPENDIR)/g' \
	      -e 's/@''GNULIB_READDIR''@/$(GNULIB_READDIR)/g' \
	      -e 's/@''GNULIB_REWINDDIR''@/$(GNULIB_REWINDDIR)/g' \
	      -e 's/@''GNULIB_CLOSEDIR''@/$(GNULIB_CLOSEDIR)/g' \
	      -e 's/@''GNULIB_DIRFD''@/$(GNULIB_DIRFD)/g' \
	      -e 's/@''GNULIB_FDOPENDIR''@/$(GNULIB_FDOPENDIR)/g' \
	      -e 's/@''GNULIB_SCANDIR''@/$(GNULIB_SCANDIR)/g' \
	      -e 's/@''GNULIB_ALPHASORT''@/$(GNULIB_ALPHASORT)/g' \
	      -e 's/@''HAVE_OPENDIR''@/$(HAVE_OPENDIR)/g' \
	      -e 's/@''HAVE_READDIR''@/$(HAVE_READDIR)/g' \
	      -e 's/@''HAVE_REWINDDIR''@/$(HAVE_REWINDDIR)/g' \
	      -e 's/@''HAVE_CLOSEDIR''@/$(HAVE_CLOSEDIR)/g' \
	      -e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \
	      -e 's|@''HAVE_DECL_FDOPENDIR''@|$(HAVE_DECL_FDOPENDIR)|g' \
	      -e 's|@''HAVE_FDOPENDIR''@|$(HAVE_FDOPENDIR)|g' \
	      -e 's|@''HAVE_SCANDIR''@|$(HAVE_SCANDIR)|g' \
	      -e 's|@''HAVE_ALPHASORT''@|$(HAVE_ALPHASORT)|g' \
	      -e 's|@''REPLACE_OPENDIR''@|$(REPLACE_OPENDIR)|g' \
	      -e 's|@''REPLACE_CLOSEDIR''@|$(REPLACE_CLOSEDIR)|g' \
	      -e 's|@''REPLACE_DIRFD''@|$(REPLACE_DIRFD)|g' \
	      -e 's|@''REPLACE_FDOPENDIR''@|$(REPLACE_FDOPENDIR)|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)/dirent.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += dirent.h dirent.h-t

EXTRA_DIST += dirent.in.h

## end   gnulib module dirent

## begin gnulib module dirfd


EXTRA_DIST += dirfd.c

EXTRA_libgnu_a_SOURCES += dirfd.c

## end   gnulib module dirfd

## begin gnulib module dirname-lgpl

libgnu_a_SOURCES += dirname-lgpl.c stripslash.c

EXTRA_DIST += dirname.h

## end   gnulib module dirname-lgpl

## begin gnulib module dup


EXTRA_DIST += dup.c

EXTRA_libgnu_a_SOURCES += dup.c

## end   gnulib module dup

## begin gnulib module dup2


EXTRA_DIST += dup2.c

EXTRA_libgnu_a_SOURCES += dup2.c

## end   gnulib module dup2

## begin gnulib module eloop-threshold


EXTRA_DIST += eloop-threshold.h

## end   gnulib module eloop-threshold

## begin gnulib module errno

BUILT_SOURCES += $(ERRNO_H)

# We need the following in order to create <errno.h> when the system
# doesn't have one that is POSIX compliant.
if GL_GENERATE_ERRNO_H
errno.h: errno.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_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \
	      -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \
	      -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \
	      -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \
	      -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \
	      -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \
	      -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \
	      < $(srcdir)/errno.in.h; \
	} > $@-t && \
	mv $@-t $@
else
errno.h: $(top_builddir)/config.status
	rm -f $@
endif
MOSTLYCLEANFILES += errno.h errno.h-t

EXTRA_DIST += errno.in.h

## end   gnulib module errno

## begin gnulib module error


EXTRA_DIST += error.c error.h

EXTRA_libgnu_a_SOURCES += error.c

## end   gnulib module error

## begin gnulib module exitfail

libgnu_a_SOURCES += exitfail.c

EXTRA_DIST += exitfail.h

## end   gnulib module exitfail

## begin gnulib module fchdir


EXTRA_DIST += fchdir.c

EXTRA_libgnu_a_SOURCES += fchdir.c

## end   gnulib module fchdir

## begin gnulib module fcntl


EXTRA_DIST += fcntl.c

EXTRA_libgnu_a_SOURCES += fcntl.c

## end   gnulib module fcntl

## begin gnulib module fcntl-h

BUILT_SOURCES += fcntl.h

# We need the following in order to create <fcntl.h> when the system
# doesn't have one that works with the given compiler.
fcntl.h: fcntl.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_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \
	      -e 's/@''GNULIB_CREAT''@/$(GNULIB_CREAT)/g' \
	      -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \
	      -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \
	      -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \
	      -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \
	      -e 's/@''GNULIB_MDA_CREAT''@/$(GNULIB_MDA_CREAT)/g' \
	      -e 's/@''GNULIB_MDA_OPEN''@/$(GNULIB_MDA_OPEN)/g' \
	      -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \
	      -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \
	      -e 's|@''REPLACE_CREAT''@|$(REPLACE_CREAT)|g' \
	      -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \
	      -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \
	      -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|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)/fcntl.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += fcntl.h fcntl.h-t

EXTRA_DIST += fcntl.in.h

## end   gnulib module fcntl-h

## begin gnulib module fd-hook

libgnu_a_SOURCES += fd-hook.c

EXTRA_DIST += fd-hook.h

## end   gnulib module fd-hook

## begin gnulib module fd-safer-flag

libgnu_a_SOURCES += fd-safer-flag.c dup-safer-flag.c

## end   gnulib module fd-safer-flag

## begin gnulib module fdopendir


EXTRA_DIST += fdopendir.c

EXTRA_libgnu_a_SOURCES += fdopendir.c

## end   gnulib module fdopendir

## begin gnulib module ffs


EXTRA_DIST += ffs.c

EXTRA_libgnu_a_SOURCES += ffs.c

## end   gnulib module ffs

## begin gnulib module filename


EXTRA_DIST += filename.h

## end   gnulib module filename

## begin gnulib module filenamecat-lgpl

libgnu_a_SOURCES += filenamecat-lgpl.c

EXTRA_DIST += filenamecat.h

## end   gnulib module filenamecat-lgpl

## begin gnulib module flexmember


EXTRA_DIST += flexmember.h

## end   gnulib module flexmember

## 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


EXTRA_DIST += fnmatch.c fnmatch_loop.c

EXTRA_libgnu_a_SOURCES += fnmatch.c fnmatch_loop.c

## end   gnulib module fnmatch

## begin gnulib module fnmatch-gnu


EXTRA_DIST += fnmatch.c

EXTRA_libgnu_a_SOURCES += fnmatch.c

## end   gnulib module fnmatch-gnu

## begin gnulib module fnmatch-h

BUILT_SOURCES += $(FNMATCH_H)

# We need the following in order to create <fnmatch.h>.
if GL_GENERATE_FNMATCH_H
fnmatch.h: fnmatch.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_FNMATCH_H''@|$(HAVE_FNMATCH_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_FNMATCH_H''@|$(NEXT_FNMATCH_H)|g' \
	      -e 's/@''GNULIB_FNMATCH''@/$(GNULIB_FNMATCH)/g' \
	      -e 's|@''HAVE_FNMATCH''@|$(HAVE_FNMATCH)|g' \
	      -e 's|@''REPLACE_FNMATCH''@|$(REPLACE_FNMATCH)|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)/fnmatch.in.h; \
	} > $@-t && \
	mv $@-t $@
else
fnmatch.h: $(top_builddir)/config.status
	rm -f $@
endif
MOSTLYCLEANFILES += fnmatch.h fnmatch.h-t

EXTRA_DIST += fnmatch.in.h

## end   gnulib module fnmatch-h

## begin gnulib module fpucw


EXTRA_DIST += fpucw.h

## end   gnulib module fpucw

## begin gnulib module free-posix


EXTRA_DIST += free.c

EXTRA_libgnu_a_SOURCES += free.c

## end   gnulib module free-posix

## 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 fstat


EXTRA_DIST += fstat.c stat-w32.c stat-w32.h

EXTRA_libgnu_a_SOURCES += fstat.c stat-w32.c

## end   gnulib module fstat

## begin gnulib module fstatat


EXTRA_DIST += at-func.c fstatat.c

EXTRA_libgnu_a_SOURCES += at-func.c fstatat.c

## end   gnulib module fstatat

## begin gnulib module gendocs


EXTRA_DIST += $(top_srcdir)/import/extra/gendocs.sh

## end   gnulib module gendocs

## begin gnulib module getcwd


EXTRA_DIST += getcwd.c

EXTRA_libgnu_a_SOURCES += getcwd.c

## end   gnulib module getcwd

## begin gnulib module getcwd-lgpl


EXTRA_DIST += getcwd-lgpl.c

EXTRA_libgnu_a_SOURCES += getcwd-lgpl.c

## end   gnulib module getcwd-lgpl

## begin gnulib module getdelim


EXTRA_DIST += getdelim.c

EXTRA_libgnu_a_SOURCES += getdelim.c

## end   gnulib module getdelim

## begin gnulib module getdtablesize


EXTRA_DIST += getdtablesize.c

EXTRA_libgnu_a_SOURCES += getdtablesize.c

## end   gnulib module getdtablesize

## begin gnulib module getline


EXTRA_DIST += getline.c

EXTRA_libgnu_a_SOURCES += getline.c

## end   gnulib module getline

## begin gnulib module getlogin_r


EXTRA_DIST += getlogin_r.c

EXTRA_libgnu_a_SOURCES += getlogin_r.c

## end   gnulib module getlogin_r

## begin gnulib module getprogname

libgnu_a_SOURCES += getprogname.h getprogname.c

## end   gnulib module getprogname

## begin gnulib module getrandom


EXTRA_DIST += getrandom.c

EXTRA_libgnu_a_SOURCES += getrandom.c

## end   gnulib module getrandom

## begin gnulib module gettext-h

libgnu_a_SOURCES += gettext.h

## end   gnulib module gettext-h

## begin gnulib module gettimeofday


EXTRA_DIST += gettimeofday.c

EXTRA_libgnu_a_SOURCES += gettimeofday.c

## end   gnulib module gettimeofday

## begin gnulib module gitlog-to-changelog


EXTRA_DIST += $(top_srcdir)/import/extra/gitlog-to-changelog

## end   gnulib module gitlog-to-changelog

## begin gnulib module glob


EXTRA_DIST += glob.c glob_internal.h glob_pattern_p.c globfree.c

EXTRA_libgnu_a_SOURCES += glob.c glob_pattern_p.c globfree.c

## end   gnulib module glob

## begin gnulib module glob-h

BUILT_SOURCES += $(GLOB_H)

# We need the following in order to create <glob.h>.
if GL_GENERATE_GLOB_H
glob.h: glob.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_GLOB_H''@|$(HAVE_GLOB_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_GLOB_H''@|$(NEXT_GLOB_H)|g' \
	      -e 's/@''GNULIB_GLOB''@/$(GNULIB_GLOB)/g' \
	      -e 's|@''HAVE_GLOB''@|$(HAVE_GLOB)|g' \
	      -e 's|@''HAVE_GLOB_PATTERN_P''@|$(HAVE_GLOB_PATTERN_P)|g' \
	      -e 's|@''REPLACE_GLOB''@|$(REPLACE_GLOB)|g' \
	      -e 's|@''REPLACE_GLOB_PATTERN_P''@|$(REPLACE_GLOB_PATTERN_P)|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)/glob.in.h; \
	} > $@-t && \
	mv $@-t $@
else
glob.h: $(top_builddir)/config.status
	rm -f $@
endif
MOSTLYCLEANFILES += glob.h glob.h-t

EXTRA_DIST += glob-libc.h glob.in.h

## end   gnulib module glob-h

## begin gnulib module hard-locale

libgnu_a_SOURCES += hard-locale.c

EXTRA_DIST += hard-locale.h

## end   gnulib module hard-locale

## begin gnulib module idx

libgnu_a_SOURCES += idx.h

## end   gnulib module idx

## begin gnulib module inet_ntop


EXTRA_DIST += inet_ntop.c

EXTRA_libgnu_a_SOURCES += inet_ntop.c

## end   gnulib module inet_ntop

## begin gnulib module intprops


EXTRA_DIST += intprops.h

## end   gnulib module intprops

## 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/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/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/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/g' \
	      -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \
	      -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/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 isblank


EXTRA_DIST += isblank.c

EXTRA_libgnu_a_SOURCES += isblank.c

## end   gnulib module isblank

## 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 libc-config


EXTRA_DIST += cdefs.h libc-config.h

## end   gnulib module libc-config

## begin gnulib module limits-h

BUILT_SOURCES += $(LIMITS_H)

# We need the following in order to create <limits.h> when the system
# doesn't have one that is compatible with GNU.
if GL_GENERATE_LIMITS_H
limits.h: limits.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_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \
	      < $(srcdir)/limits.in.h; \
	} > $@-t && \
	mv $@-t $@
else
limits.h: $(top_builddir)/config.status
	rm -f $@
endif
MOSTLYCLEANFILES += limits.h limits.h-t

EXTRA_DIST += limits.in.h

## end   gnulib module limits-h

## begin gnulib module listen


EXTRA_DIST += listen.c w32sock.h

EXTRA_libgnu_a_SOURCES += listen.c

## end   gnulib module listen

## begin gnulib module localcharset

libgnu_a_SOURCES += localcharset.c

EXTRA_DIST += localcharset.h

## end   gnulib module localcharset

## begin gnulib module locale

BUILT_SOURCES += locale.h

# We need the following in order to create <locale.h> when the system
# doesn't have one that provides all definitions.
locale.h: locale.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_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \
	      -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \
	      -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \
	      -e 's/@''GNULIB_SETLOCALE_NULL''@/$(GNULIB_SETLOCALE_NULL)/g' \
	      -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \
	      -e 's/@''GNULIB_LOCALENAME''@/$(GNULIB_LOCALENAME)/g' \
	      -e 's|@''HAVE_NEWLOCALE''@|$(HAVE_NEWLOCALE)|g' \
	      -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \
	      -e 's|@''HAVE_FREELOCALE''@|$(HAVE_FREELOCALE)|g' \
	      -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \
	      -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \
	      -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \
	      -e 's|@''REPLACE_NEWLOCALE''@|$(REPLACE_NEWLOCALE)|g' \
	      -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \
	      -e 's|@''REPLACE_FREELOCALE''@|$(REPLACE_FREELOCALE)|g' \
	      -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|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)/locale.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += locale.h locale.h-t

EXTRA_DIST += locale.in.h

## end   gnulib module locale

## begin gnulib module lock

libgnu_a_SOURCES += glthread/lock.h glthread/lock.c

## end   gnulib module lock

## begin gnulib module lstat


EXTRA_DIST += lstat.c

EXTRA_libgnu_a_SOURCES += lstat.c

## end   gnulib module lstat

## begin gnulib module malloc-posix


EXTRA_DIST += malloc.c

EXTRA_libgnu_a_SOURCES += malloc.c

## end   gnulib module malloc-posix

## begin gnulib module malloca

libgnu_a_SOURCES += malloca.c

EXTRA_DIST += malloca.h

## end   gnulib module malloca

## 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' \
	      -e 's/@''GNULIB_MDA_J0''@/$(GNULIB_MDA_J0)/g' \
	      -e 's/@''GNULIB_MDA_J1''@/$(GNULIB_MDA_J1)/g' \
	      -e 's/@''GNULIB_MDA_JN''@/$(GNULIB_MDA_JN)/g' \
	      -e 's/@''GNULIB_MDA_Y0''@/$(GNULIB_MDA_Y0)/g' \
	      -e 's/@''GNULIB_MDA_Y1''@/$(GNULIB_MDA_Y1)/g' \
	      -e 's/@''GNULIB_MDA_YN''@/$(GNULIB_MDA_YN)/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_ACOSF''@|$(REPLACE_ACOSF)|g' \
	      -e 's|@''REPLACE_ASINF''@|$(REPLACE_ASINF)|g' \
	      -e 's|@''REPLACE_ATANF''@|$(REPLACE_ATANF)|g' \
	      -e 's|@''REPLACE_ATAN2F''@|$(REPLACE_ATAN2F)|g' \
	      -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_COSF''@|$(REPLACE_COSF)|g' \
	      -e 's|@''REPLACE_COSHF''@|$(REPLACE_COSHF)|g' \
	      -e 's|@''REPLACE_EXPF''@|$(REPLACE_EXPF)|g' \
	      -e 's|@''REPLACE_EXPL''@|$(REPLACE_EXPL)|g' \
	      -e 's|@''REPLACE_EXPM1''@|$(REPLACE_EXPM1)|g' \
	      -e 's|@''REPLACE_EXPM1F''@|$(REPLACE_EXPM1F)|g' \
	      -e 's|@''REPLACE_EXPM1L''@|$(REPLACE_EXPM1L)|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_ILOGBL''@|$(REPLACE_ILOGBL)|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_RINTL''@|$(REPLACE_RINTL)|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_BUILTINS''@|$(REPLACE_SIGNBIT_USING_BUILTINS)|g' \
	      -e 's|@''REPLACE_SINF''@|$(REPLACE_SINF)|g' \
	      -e 's|@''REPLACE_SINHF''@|$(REPLACE_SINHF)|g' \
	      -e 's|@''REPLACE_SQRTF''@|$(REPLACE_SQRTF)|g' \
	      -e 's|@''REPLACE_SQRTL''@|$(REPLACE_SQRTL)|g' \
	      -e 's|@''REPLACE_TANF''@|$(REPLACE_TANF)|g' \
	      -e 's|@''REPLACE_TANHF''@|$(REPLACE_TANHF)|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 += lc-charset-dispatch.c lc-charset-dispatch.h mbrtowc-impl-utf8.h mbrtowc-impl.h mbrtowc.c mbtowc-lock.c mbtowc-lock.h windows-initguard.h

EXTRA_libgnu_a_SOURCES += lc-charset-dispatch.c mbrtowc.c mbtowc-lock.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 mbtowc


EXTRA_DIST += mbtowc-impl.h mbtowc.c

EXTRA_libgnu_a_SOURCES += mbtowc.c

## end   gnulib module mbtowc

## begin gnulib module memchr


EXTRA_DIST += memchr.c memchr.valgrind

EXTRA_libgnu_a_SOURCES += memchr.c

## end   gnulib module memchr

## begin gnulib module memmem


EXTRA_DIST += memmem.c

EXTRA_libgnu_a_SOURCES += memmem.c

## end   gnulib module memmem

## 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 mempcpy


EXTRA_DIST += mempcpy.c

EXTRA_libgnu_a_SOURCES += mempcpy.c

## end   gnulib module mempcpy

## begin gnulib module memrchr


EXTRA_DIST += memrchr.c

EXTRA_libgnu_a_SOURCES += memrchr.c

## end   gnulib module memrchr

## begin gnulib module minmax

libgnu_a_SOURCES += minmax.h

## end   gnulib module minmax

## begin gnulib module mkdir


EXTRA_DIST += mkdir.c

EXTRA_libgnu_a_SOURCES += mkdir.c

## end   gnulib module mkdir

## begin gnulib module mkdtemp


EXTRA_DIST += mkdtemp.c

EXTRA_libgnu_a_SOURCES += mkdtemp.c

## end   gnulib module mkdtemp

## begin gnulib module mkostemp


EXTRA_DIST += mkostemp.c

EXTRA_libgnu_a_SOURCES += mkostemp.c

## end   gnulib module mkostemp

## begin gnulib module msvc-inval


EXTRA_DIST += msvc-inval.c msvc-inval.h

EXTRA_libgnu_a_SOURCES += msvc-inval.c

## end   gnulib module msvc-inval

## begin gnulib module msvc-nothrow


EXTRA_DIST += msvc-nothrow.c msvc-nothrow.h

EXTRA_libgnu_a_SOURCES += msvc-nothrow.c

## end   gnulib module msvc-nothrow

## begin gnulib module netdb

BUILT_SOURCES += netdb.h

# We need the following in order to create <netdb.h> when the system
# doesn't have one that works with the given compiler.
netdb.h: netdb.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_NETDB_H''@|$(NEXT_NETDB_H)|g' \
	      -e 's|@''HAVE_NETDB_H''@|$(HAVE_NETDB_H)|g' \
	      -e 's/@''GNULIB_GETADDRINFO''@/$(GNULIB_GETADDRINFO)/g' \
	      -e 's|@''HAVE_STRUCT_ADDRINFO''@|$(HAVE_STRUCT_ADDRINFO)|g' \
	      -e 's|@''HAVE_DECL_FREEADDRINFO''@|$(HAVE_DECL_FREEADDRINFO)|g' \
	      -e 's|@''HAVE_DECL_GAI_STRERROR''@|$(HAVE_DECL_GAI_STRERROR)|g' \
	      -e 's|@''HAVE_DECL_GETADDRINFO''@|$(HAVE_DECL_GETADDRINFO)|g' \
	      -e 's|@''HAVE_DECL_GETNAMEINFO''@|$(HAVE_DECL_GETNAMEINFO)|g' \
	      -e 's|@''REPLACE_GAI_STRERROR''@|$(REPLACE_GAI_STRERROR)|g' \
	      -e 's|@''REPLACE_GETADDRINFO''@|$(REPLACE_GETADDRINFO)|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)/netdb.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += netdb.h netdb.h-t

EXTRA_DIST += netdb.in.h

## end   gnulib module netdb

## begin gnulib module netinet_in

BUILT_SOURCES += $(NETINET_IN_H)

# We need the following in order to create <netinet/in.h> when the system
# doesn't have one.
if GL_GENERATE_NETINET_IN_H
netinet/in.h: netinet_in.in.h $(top_builddir)/config.status
	$(AM_V_at)$(MKDIR_P) netinet
	$(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_NETINET_IN_H''@|$(NEXT_NETINET_IN_H)|g' \
	      -e 's|@''HAVE_NETINET_IN_H''@|$(HAVE_NETINET_IN_H)|g' \
	      < $(srcdir)/netinet_in.in.h; \
	} > $@-t && \
	mv $@-t $@
else
netinet/in.h: $(top_builddir)/config.status
	rm -f $@
endif
MOSTLYCLEANFILES += netinet/in.h netinet/in.h-t
MOSTLYCLEANDIRS += netinet

EXTRA_DIST += netinet_in.in.h

## end   gnulib module netinet_in

## begin gnulib module open


EXTRA_DIST += open.c

EXTRA_libgnu_a_SOURCES += open.c

## end   gnulib module open

## begin gnulib module openat


EXTRA_DIST += openat.c

EXTRA_libgnu_a_SOURCES += openat.c

## end   gnulib module openat

## begin gnulib module openat-die

libgnu_a_SOURCES += openat-die.c

## end   gnulib module openat-die

## begin gnulib module openat-h


EXTRA_DIST += openat.h

## end   gnulib module openat-h

## begin gnulib module opendir


EXTRA_DIST += dirent-private.h opendir.c

EXTRA_libgnu_a_SOURCES += opendir.c

## end   gnulib module opendir

## begin gnulib module pathmax


EXTRA_DIST += pathmax.h

## end   gnulib module pathmax

## begin gnulib module pipe-posix


EXTRA_DIST += pipe.c

EXTRA_libgnu_a_SOURCES += pipe.c

## end   gnulib module pipe-posix

## begin gnulib module rawmemchr


EXTRA_DIST += rawmemchr.c rawmemchr.valgrind

EXTRA_libgnu_a_SOURCES += rawmemchr.c

## end   gnulib module rawmemchr

## begin gnulib module readdir


EXTRA_DIST += dirent-private.h readdir.c

EXTRA_libgnu_a_SOURCES += readdir.c

## end   gnulib module readdir

## begin gnulib module readlink


EXTRA_DIST += readlink.c

EXTRA_libgnu_a_SOURCES += readlink.c

## end   gnulib module readlink

## begin gnulib module realloc-posix


EXTRA_DIST += realloc.c

EXTRA_libgnu_a_SOURCES += realloc.c

## end   gnulib module realloc-posix

## begin gnulib module rename


EXTRA_DIST += rename.c

EXTRA_libgnu_a_SOURCES += rename.c

## end   gnulib module rename

## begin gnulib module rewinddir


EXTRA_DIST += dirent-private.h rewinddir.c

EXTRA_libgnu_a_SOURCES += rewinddir.c

## end   gnulib module rewinddir

## begin gnulib module rmdir


EXTRA_DIST += rmdir.c

EXTRA_libgnu_a_SOURCES += rmdir.c

## end   gnulib module rmdir

## begin gnulib module same-inode


EXTRA_DIST += same-inode.h

## end   gnulib module same-inode

## begin gnulib module save-cwd

libgnu_a_SOURCES += save-cwd.c

EXTRA_DIST += save-cwd.h

## end   gnulib module save-cwd

## begin gnulib module scratch_buffer

libgnu_a_SOURCES += malloc/scratch_buffer_dupfree.c                 malloc/scratch_buffer_grow.c                 malloc/scratch_buffer_grow_preserve.c                 malloc/scratch_buffer_set_array_size.c

EXTRA_DIST += malloc/scratch_buffer.h scratch_buffer.h

## end   gnulib module scratch_buffer

## begin gnulib module select


EXTRA_DIST += select.c

EXTRA_libgnu_a_SOURCES += select.c

## end   gnulib module select

## begin gnulib module setenv


EXTRA_DIST += setenv.c

EXTRA_libgnu_a_SOURCES += setenv.c

## end   gnulib module setenv

## begin gnulib module setlocale-null

libgnu_a_SOURCES += setlocale_null.c

EXTRA_DIST += setlocale-lock.c setlocale_null.h windows-initguard.h

EXTRA_libgnu_a_SOURCES += setlocale-lock.c

## end   gnulib module setlocale-null

## begin gnulib module setsockopt


EXTRA_DIST += setsockopt.c w32sock.h

EXTRA_libgnu_a_SOURCES += setsockopt.c

## end   gnulib module setsockopt

## begin gnulib module signal-h

BUILT_SOURCES += signal.h

# We need the following in order to create <signal.h> when the system
# doesn't have a complete one.
signal.h: signal.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_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \
	      -e 's/@''GNULIB_PTHREAD_SIGMASK''@/$(GNULIB_PTHREAD_SIGMASK)/g' \
	      -e 's/@''GNULIB_RAISE''@/$(GNULIB_RAISE)/g' \
	      -e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GNULIB_SIGNAL_H_SIGPIPE)/g' \
	      -e 's/@''GNULIB_SIGPROCMASK''@/$(GNULIB_SIGPROCMASK)/g' \
	      -e 's/@''GNULIB_SIGACTION''@/$(GNULIB_SIGACTION)/g' \
	      -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \
	      -e 's|@''HAVE_PTHREAD_SIGMASK''@|$(HAVE_PTHREAD_SIGMASK)|g' \
	      -e 's|@''HAVE_RAISE''@|$(HAVE_RAISE)|g' \
	      -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \
	      -e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \
	      -e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \
	      -e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g' \
	      -e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \
	      -e 's|@''HAVE_SIGHANDLER_T''@|$(HAVE_SIGHANDLER_T)|g' \
	      -e 's|@''REPLACE_PTHREAD_SIGMASK''@|$(REPLACE_PTHREAD_SIGMASK)|g' \
	      -e 's|@''REPLACE_RAISE''@|$(REPLACE_RAISE)|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)/signal.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += signal.h signal.h-t

EXTRA_DIST += signal.in.h

## end   gnulib module signal-h

## begin gnulib module snippet/_Noreturn

# Because this Makefile snippet defines a variable used by other
# gnulib Makefile snippets, it must be present in all makefiles that
# need it. This is ensured by the applicability 'all' defined above.

_NORETURN_H=$(srcdir)/_Noreturn.h

EXTRA_DIST += _Noreturn.h

## end   gnulib module snippet/_Noreturn

## begin gnulib module snippet/arg-nonnull

# Because this Makefile snippet defines a variable used by other
# gnulib Makefile snippets, it must be present in all makefiles that
# need it. This is ensured by the applicability 'all' defined above.

ARG_NONNULL_H=$(srcdir)/arg-nonnull.h

EXTRA_DIST += arg-nonnull.h

## end   gnulib module snippet/arg-nonnull

## begin gnulib module snippet/c++defs

# Because this Makefile snippet defines a variable used by other
# gnulib Makefile snippets, it must be present in all makefiles that
# need it. This is ensured by the applicability 'all' defined above.

CXXDEFS_H=$(srcdir)/c++defs.h

EXTRA_DIST += c++defs.h

## end   gnulib module snippet/c++defs

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

# Because this Makefile snippet defines a variable used by other
# gnulib Makefile snippets, it must be present in all makefiles that
# need it. This is ensured by the applicability 'all' defined above.

WARN_ON_USE_H=$(srcdir)/warn-on-use.h

EXTRA_DIST += warn-on-use.h

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

## begin gnulib module socket


EXTRA_DIST += socket.c w32sock.h

EXTRA_libgnu_a_SOURCES += socket.c

## end   gnulib module socket

## begin gnulib module sockets

libgnu_a_SOURCES += sockets.h sockets.c

EXTRA_DIST += w32sock.h

## end   gnulib module sockets

## begin gnulib module stat


EXTRA_DIST += stat-w32.c stat-w32.h stat.c

EXTRA_libgnu_a_SOURCES += stat-w32.c stat.c

## end   gnulib module stat

## begin gnulib module stat-time

libgnu_a_SOURCES += stat-time.c

EXTRA_DIST += stat-time.h

## end   gnulib module stat-time

## begin gnulib module stdalign

BUILT_SOURCES += $(STDALIGN_H)

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

EXTRA_DIST += stdalign.in.h

## end   gnulib module stdalign

## 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_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|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_C99_STDINT_H''@/$(HAVE_C99_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/@''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' \
	      -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/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 stdio

BUILT_SOURCES += stdio.h

# We need the following in order to create <stdio.h> when the system
# doesn't have one that works with the given compiler.
stdio.h: stdio.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_STDIO_H''@|$(NEXT_STDIO_H)|g' \
	      -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \
	      -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \
	      -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \
	      -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \
	      -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \
	      -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \
	      -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \
	      -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \
	      -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \
	      -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \
	      -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \
	      -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \
	      -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \
	      -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \
	      -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \
	      -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \
	      -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \
	      -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \
	      -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \
	      -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \
	      -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \
	      -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \
	      -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \
	      -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \
	      -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \
	      -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \
	      -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \
	      -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \
	      -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \
	      -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \
	      -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \
	      -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \
	      -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \
	      -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \
	      -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \
	      -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \
	      -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \
	      -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \
	      -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \
	      -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \
	      -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \
	      -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \
	      -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \
	      -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \
	      -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \
	      -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \
	      -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \
	      -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \
	      -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \
	      -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \
	      -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \
	      -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \
	      -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \
	      -e 's/@''GNULIB_MDA_FCLOSEALL''@/$(GNULIB_MDA_FCLOSEALL)/g' \
	      -e 's/@''GNULIB_MDA_FDOPEN''@/$(GNULIB_MDA_FDOPEN)/g' \
	      -e 's/@''GNULIB_MDA_FILENO''@/$(GNULIB_MDA_FILENO)/g' \
	      -e 's/@''GNULIB_MDA_GETW''@/$(GNULIB_MDA_GETW)/g' \
	      -e 's/@''GNULIB_MDA_PUTW''@/$(GNULIB_MDA_PUTW)/g' \
	      -e 's/@''GNULIB_MDA_TEMPNAM''@/$(GNULIB_MDA_TEMPNAM)/g' \
	      < $(srcdir)/stdio.in.h | \
	  sed -e 's|@''HAVE_DECL_FCLOSEALL''@|$(HAVE_DECL_FCLOSEALL)|g' \
	      -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \
	      -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \
	      -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \
	      -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \
	      -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \
	      -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \
	      -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \
	      -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \
	      -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \
	      -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \
	      -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \
	      -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \
	      -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \
	      -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \
	      -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \
	      -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \
	      -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \
	      -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \
	      -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \
	      -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \
	      -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \
	      -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \
	      -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \
	      -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \
	      -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \
	      -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \
	      -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \
	      -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \
	      -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \
	      -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \
	      -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \
	      -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \
	      -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \
	      -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \
	      -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \
	      -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \
	      -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \
	      -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \
	      -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \
	      -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \
	      -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \
	      -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \
	      -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \
	      -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \
	      -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \
	      -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \
	      -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \
	      -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \
	      -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|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 += stdio.h stdio.h-t

EXTRA_DIST += stdio.in.h

## end   gnulib module stdio

## begin gnulib module stdlib

BUILT_SOURCES += stdlib.h

# We need the following in order to create <stdlib.h> when the system
# doesn't have one that works with the given compiler.
stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
  $(_NORETURN_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_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
	      -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \
	      -e 's/@''GNULIB_ALIGNED_ALLOC''@/$(GNULIB_ALIGNED_ALLOC)/g' \
	      -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \
	      -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \
	      -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \
	      -e 's/@''GNULIB_FREE_POSIX''@/$(GNULIB_FREE_POSIX)/g' \
	      -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \
	      -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \
	      -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \
	      -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \
	      -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \
	      -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \
	      -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \
	      -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \
	      -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \
	      -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \
	      -e 's/@''GNULIB_POSIX_MEMALIGN''@/$(GNULIB_POSIX_MEMALIGN)/g' \
	      -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \
	      -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \
	      -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \
	      -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \
	      -e 's/@''GNULIB_QSORT_R''@/$(GNULIB_QSORT_R)/g' \
	      -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \
	      -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \
	      -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
	      -e 's/@''GNULIB_REALLOCARRAY''@/$(GNULIB_REALLOCARRAY)/g' \
	      -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \
	      -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \
	      -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \
	      -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \
	      -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \
	      -e 's/@''GNULIB_STRTOLD''@/$(GNULIB_STRTOLD)/g' \
	      -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \
	      -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \
	      -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \
	      -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \
	      -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \
	      -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \
	      -e 's/@''GNULIB_MDA_ECVT''@/$(GNULIB_MDA_ECVT)/g' \
	      -e 's/@''GNULIB_MDA_FCVT''@/$(GNULIB_MDA_FCVT)/g' \
	      -e 's/@''GNULIB_MDA_GCVT''@/$(GNULIB_MDA_GCVT)/g' \
	      -e 's/@''GNULIB_MDA_MKTEMP''@/$(GNULIB_MDA_MKTEMP)/g' \
	      -e 's/@''GNULIB_MDA_PUTENV''@/$(GNULIB_MDA_PUTENV)/g' \
	      < $(srcdir)/stdlib.in.h | \
	  sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \
	      -e 's|@''HAVE_ALIGNED_ALLOC''@|$(HAVE_ALIGNED_ALLOC)|g' \
	      -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \
	      -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \
	      -e 's|@''HAVE_DECL_ECVT''@|$(HAVE_DECL_ECVT)|g' \
	      -e 's|@''HAVE_DECL_FCVT''@|$(HAVE_DECL_FCVT)|g' \
	      -e 's|@''HAVE_DECL_GCVT''@|$(HAVE_DECL_GCVT)|g' \
	      -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
	      -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
	      -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \
	      -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \
	      -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \
	      -e 's|@''HAVE_MBTOWC''@|$(HAVE_MBTOWC)|g' \
	      -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
	      -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \
	      -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \
	      -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \
	      -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \
	      -e 's|@''HAVE_POSIX_MEMALIGN''@|$(HAVE_POSIX_MEMALIGN)|g' \
	      -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \
	      -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \
	      -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \
	      -e 's|@''HAVE_QSORT_R''@|$(HAVE_QSORT_R)|g' \
	      -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \
	      -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \
	      -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \
	      -e 's|@''HAVE_REALLOCARRAY''@|$(HAVE_REALLOCARRAY)|g' \
	      -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \
	      -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
	      -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \
	      -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \
	      -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \
	      -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \
	      -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
	      -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \
	      -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
	      -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
	      -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \
	      -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \
	      -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \
	      -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
	      -e 's|@''REPLACE_ALIGNED_ALLOC''@|$(REPLACE_ALIGNED_ALLOC)|g' \
	      -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \
	      -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \
	      -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \
	      -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \
	      -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
	      -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
	      -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
	      -e 's|@''REPLACE_POSIX_MEMALIGN''@|$(REPLACE_POSIX_MEMALIGN)|g' \
	      -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \
	      -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
	      -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
	      -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \
	      -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \
	      -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
	      -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \
	      -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
	      -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \
	      -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \
	      -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \
	      -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \
	      -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \
	      -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \
	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
	      -e '/definition of _Noreturn/r $(_NORETURN_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 += stdlib.h stdlib.h-t

EXTRA_DIST += stdlib.in.h

## end   gnulib module stdlib

## begin gnulib module strchrnul


EXTRA_DIST += strchrnul.c strchrnul.valgrind

EXTRA_libgnu_a_SOURCES += strchrnul.c

## end   gnulib module strchrnul

## begin gnulib module strdup-posix


EXTRA_DIST += strdup.c

EXTRA_libgnu_a_SOURCES += strdup.c

## end   gnulib module strdup-posix

## begin gnulib module streq


EXTRA_DIST += streq.h

## end   gnulib module streq

## begin gnulib module strerror


EXTRA_DIST += strerror.c

EXTRA_libgnu_a_SOURCES += strerror.c

## end   gnulib module strerror

## begin gnulib module strerror-override


EXTRA_DIST += strerror-override.c strerror-override.h

EXTRA_libgnu_a_SOURCES += strerror-override.c

## end   gnulib module strerror-override

## begin gnulib module strerror_r-posix


EXTRA_DIST += strerror_r.c

EXTRA_libgnu_a_SOURCES += strerror_r.c

## end   gnulib module strerror_r-posix

## 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_EXPLICIT_BZERO''@/$(GNULIB_EXPLICIT_BZERO)/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_STRERRORNAME_NP''@/$(GNULIB_STRERRORNAME_NP)/g' \
	      -e 's/@''GNULIB_SIGABBREV_NP''@/$(GNULIB_SIGABBREV_NP)/g' \
	      -e 's/@''GNULIB_SIGDESCR_NP''@/$(GNULIB_SIGDESCR_NP)/g' \
	      -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \
	      -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \
	      -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GNULIB_MDA_MEMCCPY)/g' \
	      -e 's/@''GNULIB_MDA_STRDUP''@/$(GNULIB_MDA_STRDUP)/g' \
	      < $(srcdir)/string.in.h | \
	  sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \
	      -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
	      -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \
	      -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|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_STRERRORNAME_NP''@|$(HAVE_STRERRORNAME_NP)|g' \
	      -e 's|@''HAVE_SIGABBREV_NP''@|$(HAVE_SIGABBREV_NP)|g' \
	      -e 's|@''HAVE_SIGDESCR_NP''@|$(HAVE_SIGDESCR_NP)|g' \
	      -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
	      -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
	      -e 's|@''REPLACE_FFSLL''@|$(REPLACE_FFSLL)|g' \
	      -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
	      -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
	      -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
	      -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \
	      -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|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_STRSTR''@|$(REPLACE_STRSTR)|g' \
	      -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
	      -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \
	      -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
	      -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \
	      -e 's|@''REPLACE_STRERRORNAME_NP''@|$(REPLACE_STRERRORNAME_NP)|g' \
	      -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|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 strings

BUILT_SOURCES += strings.h

# We need the following in order to create <strings.h> when the system
# doesn't have one that works with the given compiler.
strings.h: strings.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|@''GUARD_PREFIX''@|GL|g' \
	      -e 's|@''HAVE_STRINGS_H''@|$(HAVE_STRINGS_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_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \
	      -e 's/@''GNULIB_FFS''@/$(GNULIB_FFS)/g' \
	      -e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \
	      -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \
	      -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|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)/strings.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += strings.h strings.h-t

EXTRA_DIST += strings.in.h

## end   gnulib module strings

## begin gnulib module strnlen


EXTRA_DIST += strnlen.c

EXTRA_libgnu_a_SOURCES += strnlen.c

## end   gnulib module strnlen

## begin gnulib module strnlen1

libgnu_a_SOURCES += strnlen1.h strnlen1.c

## end   gnulib module strnlen1

## begin gnulib module strstr


EXTRA_DIST += strstr.c

EXTRA_libgnu_a_SOURCES += strstr.c

## end   gnulib module strstr

## begin gnulib module strstr-simple


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

EXTRA_libgnu_a_SOURCES += strstr.c

## end   gnulib module strstr-simple

## begin gnulib module strtok_r


EXTRA_DIST += strtok_r.c

EXTRA_libgnu_a_SOURCES += strtok_r.c

## end   gnulib module strtok_r

## begin gnulib module sys_random

BUILT_SOURCES += sys/random.h

# We need the following in order to create <sys/random.h> when the system
# doesn't have one.
sys/random.h: sys_random.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
	$(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_RANDOM_H''@|$(NEXT_SYS_RANDOM_H)|g' \
	      -e 's|@''HAVE_SYS_RANDOM_H''@|$(HAVE_SYS_RANDOM_H)|g' \
	      -e 's/@''GNULIB_GETRANDOM''@/$(GNULIB_GETRANDOM)/g' \
	      -e 's/@''HAVE_GETRANDOM''@/$(HAVE_GETRANDOM)/g' \
	      -e 's/@''REPLACE_GETRANDOM''@/$(REPLACE_GETRANDOM)/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)/sys_random.in.h; \
	} > $@-t && \
	mv -f $@-t $@
MOSTLYCLEANFILES += sys/random.h sys/random.h-t
MOSTLYCLEANDIRS += sys

EXTRA_DIST += sys_random.in.h

## end   gnulib module sys_random

## begin gnulib module sys_select

BUILT_SOURCES += sys/select.h

# We need the following in order to create <sys/select.h> when the system
# doesn't have one that works with the given compiler.
sys/select.h: sys_select.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
	$(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_SELECT_H''@|$(NEXT_SYS_SELECT_H)|g' \
	      -e 's|@''HAVE_SYS_SELECT_H''@|$(HAVE_SYS_SELECT_H)|g' \
	      -e 's/@''GNULIB_PSELECT''@/$(GNULIB_PSELECT)/g' \
	      -e 's/@''GNULIB_SELECT''@/$(GNULIB_SELECT)/g' \
	      -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
	      -e 's|@''HAVE_PSELECT''@|$(HAVE_PSELECT)|g' \
	      -e 's|@''REPLACE_PSELECT''@|$(REPLACE_PSELECT)|g' \
	      -e 's|@''REPLACE_SELECT''@|$(REPLACE_SELECT)|g' \
	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
	      < $(srcdir)/sys_select.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += sys/select.h sys/select.h-t
MOSTLYCLEANDIRS += sys

EXTRA_DIST += sys_select.in.h

## end   gnulib module sys_select

## begin gnulib module sys_socket

BUILT_SOURCES += sys/socket.h
libgnu_a_SOURCES += sys_socket.c

# We need the following in order to create <sys/socket.h> when the system
# doesn't have one that works with the given compiler.
sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
	$(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_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \
	      -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \
	      -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
	      -e 's/@''GNULIB_SOCKET''@/$(GNULIB_SOCKET)/g' \
	      -e 's/@''GNULIB_CONNECT''@/$(GNULIB_CONNECT)/g' \
	      -e 's/@''GNULIB_ACCEPT''@/$(GNULIB_ACCEPT)/g' \
	      -e 's/@''GNULIB_BIND''@/$(GNULIB_BIND)/g' \
	      -e 's/@''GNULIB_GETPEERNAME''@/$(GNULIB_GETPEERNAME)/g' \
	      -e 's/@''GNULIB_GETSOCKNAME''@/$(GNULIB_GETSOCKNAME)/g' \
	      -e 's/@''GNULIB_GETSOCKOPT''@/$(GNULIB_GETSOCKOPT)/g' \
	      -e 's/@''GNULIB_LISTEN''@/$(GNULIB_LISTEN)/g' \
	      -e 's/@''GNULIB_RECV''@/$(GNULIB_RECV)/g' \
	      -e 's/@''GNULIB_SEND''@/$(GNULIB_SEND)/g' \
	      -e 's/@''GNULIB_RECVFROM''@/$(GNULIB_RECVFROM)/g' \
	      -e 's/@''GNULIB_SENDTO''@/$(GNULIB_SENDTO)/g' \
	      -e 's/@''GNULIB_SETSOCKOPT''@/$(GNULIB_SETSOCKOPT)/g' \
	      -e 's/@''GNULIB_SHUTDOWN''@/$(GNULIB_SHUTDOWN)/g' \
	      -e 's/@''GNULIB_ACCEPT4''@/$(GNULIB_ACCEPT4)/g' \
	      -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
	      -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \
	      -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \
	      -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY''@|$(HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY)|g' \
	      -e 's|@''HAVE_SA_FAMILY_T''@|$(HAVE_SA_FAMILY_T)|g' \
	      -e 's|@''HAVE_ACCEPT4''@|$(HAVE_ACCEPT4)|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)/sys_socket.in.h; \
	} > $@-t && \
	mv -f $@-t $@
MOSTLYCLEANFILES += sys/socket.h sys/socket.h-t
MOSTLYCLEANDIRS += sys

EXTRA_DIST += sys_socket.in.h

## end   gnulib module sys_socket

## begin gnulib module sys_stat

BUILT_SOURCES += sys/stat.h

# We need the following in order to create <sys/stat.h> when the system
# has one that is incomplete.
sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
	$(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_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \
	      -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \
	      -e 's|@''WINDOWS_STAT_TIMESPEC''@|$(WINDOWS_STAT_TIMESPEC)|g' \
	      -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \
	      -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/g' \
	      -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \
	      -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \
	      -e 's/@''GNULIB_GETUMASK''@/$(GNULIB_GETUMASK)/g' \
	      -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \
	      -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \
	      -e 's/@''GNULIB_MKDIR''@/$(GNULIB_MKDIR)/g' \
	      -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \
	      -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \
	      -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \
	      -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \
	      -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \
	      -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \
	      -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \
	      -e 's/@''GNULIB_OVERRIDES_STRUCT_STAT''@/$(GNULIB_OVERRIDES_STRUCT_STAT)/g' \
	      -e 's/@''GNULIB_MDA_CHMOD''@/$(GNULIB_MDA_CHMOD)/g' \
	      -e 's/@''GNULIB_MDA_MKDIR''@/$(GNULIB_MDA_MKDIR)/g' \
	      -e 's/@''GNULIB_MDA_UMASK''@/$(GNULIB_MDA_UMASK)/g' \
	      -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \
	      -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \
	      -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \
	      -e 's|@''HAVE_GETUMASK''@|$(HAVE_GETUMASK)|g' \
	      -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \
	      -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \
	      -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \
	      -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \
	      -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \
	      -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \
	      -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \
	      -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \
	      -e 's|@''REPLACE_FCHMODAT''@|$(REPLACE_FCHMODAT)|g' \
	      -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \
	      -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \
	      -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \
	      -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \
	      -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \
	      -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \
	      -e 's|@''REPLACE_MKFIFOAT''@|$(REPLACE_MKFIFOAT)|g' \
	      -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \
	      -e 's|@''REPLACE_MKNODAT''@|$(REPLACE_MKNODAT)|g' \
	      -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \
	      -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|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)/sys_stat.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t
MOSTLYCLEANDIRS += sys

EXTRA_DIST += sys_stat.in.h

## end   gnulib module sys_stat

## begin gnulib module sys_time

BUILT_SOURCES += sys/time.h

# We need the following in order to create <sys/time.h> when the system
# doesn't have one that works with the given compiler.
sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
	$(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/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_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_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \
	      -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \
	      -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
	      -e 's/@''HAVE_GETTIMEOFDAY''@/$(HAVE_GETTIMEOFDAY)/g' \
	      -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \
	      -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \
	      -e 's/@''REPLACE_STRUCT_TIMEVAL''@/$(REPLACE_STRUCT_TIMEVAL)/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)/sys_time.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += sys/time.h sys/time.h-t

EXTRA_DIST += sys_time.in.h

## end   gnulib module sys_time

## 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' \
	      -e 's|@''WINDOWS_STAT_INODES''@|$(WINDOWS_STAT_INODES)|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 sys_uio

BUILT_SOURCES += sys/uio.h

# We need the following in order to create <sys/uio.h> when the system
# doesn't have one that works with the given compiler.
sys/uio.h: sys_uio.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_UIO_H''@|$(NEXT_SYS_UIO_H)|g' \
	      -e 's|@''HAVE_SYS_UIO_H''@|$(HAVE_SYS_UIO_H)|g' \
	      < $(srcdir)/sys_uio.in.h; \
	} > $@-t && \
	mv -f $@-t $@
MOSTLYCLEANFILES += sys/uio.h sys/uio.h-t
MOSTLYCLEANDIRS += sys

EXTRA_DIST += sys_uio.in.h

## end   gnulib module sys_uio

## begin gnulib module sys_wait

BUILT_SOURCES += sys/wait.h

# We need the following in order to create <sys/wait.h> when the system
# has one that is incomplete.
sys/wait.h: sys_wait.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
	$(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_WAIT_H''@|$(NEXT_SYS_WAIT_H)|g' \
	      -e 's/@''GNULIB_WAITPID''@/$(GNULIB_WAITPID)/g' \
	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
	      < $(srcdir)/sys_wait.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += sys/wait.h sys/wait.h-t
MOSTLYCLEANDIRS += sys

EXTRA_DIST += sys_wait.in.h

## end   gnulib module sys_wait

## begin gnulib module tempname

libgnu_a_SOURCES += tempname.c

EXTRA_DIST += tempname.h

## end   gnulib module tempname

## begin gnulib module threadlib

libgnu_a_SOURCES += glthread/threadlib.c

## end   gnulib module threadlib

## begin gnulib module time

BUILT_SOURCES += time.h

# We need the following in order to create <time.h> when the system
# doesn't have one that works with the given compiler.
time.h: time.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_TIME_H''@|$(NEXT_TIME_H)|g' \
	      -e 's/@''GNULIB_CTIME''@/$(GNULIB_CTIME)/g' \
	      -e 's/@''GNULIB_LOCALTIME''@/$(GNULIB_LOCALTIME)/g' \
	      -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \
	      -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \
	      -e 's/@''GNULIB_STRFTIME''@/$(GNULIB_STRFTIME)/g' \
	      -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \
	      -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \
	      -e 's/@''GNULIB_TIMESPEC_GET''@/$(GNULIB_TIMESPEC_GET)/g' \
	      -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \
	      -e 's/@''GNULIB_TIME_RZ''@/$(GNULIB_TIME_RZ)/g' \
	      -e 's/@''GNULIB_TZSET''@/$(GNULIB_TZSET)/g' \
	      -e 's/@''GNULIB_MDA_TZSET''@/$(GNULIB_MDA_TZSET)/g' \
	      -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \
	      -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \
	      -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \
	      -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \
	      -e 's|@''HAVE_TIMESPEC_GET''@|$(HAVE_TIMESPEC_GET)|g' \
	      -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \
	      -e 's|@''REPLACE_CTIME''@|$(REPLACE_CTIME)|g' \
	      -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \
	      -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \
	      -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \
	      -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \
	      -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \
	      -e 's|@''REPLACE_STRFTIME''@|$(REPLACE_STRFTIME)|g' \
	      -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \
	      -e 's|@''REPLACE_TZSET''@|$(REPLACE_TZSET)|g' \
	      -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \
	      -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \
	      -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \
	      -e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|g' \
	      -e 's|@''TIME_H_DEFINES_TIME_UTC''@|$(TIME_H_DEFINES_TIME_UTC)|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)/time.in.h; \
	} > $@-t && \
	mv $@-t $@
MOSTLYCLEANFILES += time.h time.h-t

EXTRA_DIST += time.in.h

## end   gnulib module time

## begin gnulib module time_r


EXTRA_DIST += time_r.c

EXTRA_libgnu_a_SOURCES += time_r.c

## end   gnulib module time_r

## 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_ACCESS''@/$(GNULIB_ACCESS)/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_COPY_FILE_RANGE''@/$(GNULIB_COPY_FILE_RANGE)/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_EXECL''@/$(GNULIB_EXECL)/g' \
	      -e 's/@''GNULIB_EXECLE''@/$(GNULIB_EXECLE)/g' \
	      -e 's/@''GNULIB_EXECLP''@/$(GNULIB_EXECLP)/g' \
	      -e 's/@''GNULIB_EXECV''@/$(GNULIB_EXECV)/g' \
	      -e 's/@''GNULIB_EXECVE''@/$(GNULIB_EXECVE)/g' \
	      -e 's/@''GNULIB_EXECVP''@/$(GNULIB_EXECVP)/g' \
	      -e 's/@''GNULIB_EXECVPE''@/$(GNULIB_EXECVPE)/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_GETENTROPY''@/$(GNULIB_GETENTROPY)/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_GETOPT_POSIX''@/$(GNULIB_GETOPT_POSIX)/g' \
	      -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \
	      -e 's/@''GNULIB_GETPASS''@/$(GNULIB_GETPASS)/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_TRUNCATE''@/$(GNULIB_TRUNCATE)/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' \
	      -e 's/@''GNULIB_MDA_ACCESS''@/$(GNULIB_MDA_ACCESS)/g' \
	      -e 's/@''GNULIB_MDA_CHDIR''@/$(GNULIB_MDA_CHDIR)/g' \
	      -e 's/@''GNULIB_MDA_CLOSE''@/$(GNULIB_MDA_CLOSE)/g' \
	      -e 's/@''GNULIB_MDA_DUP''@/$(GNULIB_MDA_DUP)/g' \
	      -e 's/@''GNULIB_MDA_DUP2''@/$(GNULIB_MDA_DUP2)/g' \
	      -e 's/@''GNULIB_MDA_EXECL''@/$(GNULIB_MDA_EXECL)/g' \
	      -e 's/@''GNULIB_MDA_EXECLE''@/$(GNULIB_MDA_EXECLE)/g' \
	      -e 's/@''GNULIB_MDA_EXECLP''@/$(GNULIB_MDA_EXECLP)/g' \
	      -e 's/@''GNULIB_MDA_EXECV''@/$(GNULIB_MDA_EXECV)/g' \
	      -e 's/@''GNULIB_MDA_EXECVE''@/$(GNULIB_MDA_EXECVE)/g' \
	      -e 's/@''GNULIB_MDA_EXECVP''@/$(GNULIB_MDA_EXECVP)/g' \
	      -e 's/@''GNULIB_MDA_EXECVPE''@/$(GNULIB_MDA_EXECVPE)/g' \
	      -e 's/@''GNULIB_MDA_GETCWD''@/$(GNULIB_MDA_GETCWD)/g' \
	      -e 's/@''GNULIB_MDA_GETPID''@/$(GNULIB_MDA_GETPID)/g' \
	      -e 's/@''GNULIB_MDA_ISATTY''@/$(GNULIB_MDA_ISATTY)/g' \
	      -e 's/@''GNULIB_MDA_LSEEK''@/$(GNULIB_MDA_LSEEK)/g' \
	      -e 's/@''GNULIB_MDA_READ''@/$(GNULIB_MDA_READ)/g' \
	      -e 's/@''GNULIB_MDA_RMDIR''@/$(GNULIB_MDA_RMDIR)/g' \
	      -e 's/@''GNULIB_MDA_SWAB''@/$(GNULIB_MDA_SWAB)/g' \
	      -e 's/@''GNULIB_MDA_UNLINK''@/$(GNULIB_MDA_UNLINK)/g' \
	      -e 's/@''GNULIB_MDA_WRITE''@/$(GNULIB_MDA_WRITE)/g' \
	      < $(srcdir)/unistd.in.h | \
	  sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \
	      -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \
	      -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \
	      -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \
	      -e 's|@''HAVE_EXECVPE''@|$(HAVE_EXECVPE)|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_GETENTROPY''@|$(HAVE_GETENTROPY)|g' \
	      -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \
	      -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \
	      -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
	      -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|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_EXECVPE''@|$(HAVE_DECL_EXECVPE)|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''@|$(HAVE_DECL_GETLOGIN)|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_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|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_ACCESS''@|$(REPLACE_ACCESS)|g' \
	      -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_EXECL''@|$(REPLACE_EXECL)|g' \
	      -e 's|@''REPLACE_EXECLE''@|$(REPLACE_EXECLE)|g' \
	      -e 's|@''REPLACE_EXECLP''@|$(REPLACE_EXECLP)|g' \
	      -e 's|@''REPLACE_EXECV''@|$(REPLACE_EXECV)|g' \
	      -e 's|@''REPLACE_EXECVE''@|$(REPLACE_EXECVE)|g' \
	      -e 's|@''REPLACE_EXECVP''@|$(REPLACE_EXECVP)|g' \
	      -e 's|@''REPLACE_EXECVPE''@|$(REPLACE_EXECVPE)|g' \
	      -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|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_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|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_GETPASS''@|$(REPLACE_GETPASS)|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_READLINKAT''@|$(REPLACE_READLINKAT)|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_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \
	      -e 's|@''REPLACE_TRUNCATE''@|$(REPLACE_TRUNCATE)|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_SYS_RANDOM_H''@|$(UNISTD_H_HAVE_SYS_RANDOM_H)|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 unistd-safer

libgnu_a_SOURCES += dup-safer.c fd-safer.c pipe-safer.c

EXTRA_DIST += unistd--.h unistd-safer.h

## end   gnulib module unistd-safer

## begin gnulib module unsetenv


EXTRA_DIST += unsetenv.c

EXTRA_libgnu_a_SOURCES += unsetenv.c

## end   gnulib module unsetenv

## 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/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \
	      -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/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_WMEMPCPY''@/$(GNULIB_WMEMPCPY)/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' \
	      -e 's/@''GNULIB_WCSFTIME''@/$(GNULIB_WCSFTIME)/g' \
	      -e 's/@''GNULIB_MDA_WCSDUP''@/$(GNULIB_MDA_WCSDUP)/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_WMEMPCPY''@|$(HAVE_WMEMPCPY)|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_WCSFTIME''@|$(HAVE_WCSFTIME)|g' \
	      -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \
	      -e 's|@''HAVE_DECL_WCSDUP''@|$(HAVE_DECL_WCSDUP)|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 's|@''REPLACE_WCSFTIME''@|$(REPLACE_WCSFTIME)|g' \
	      -e 's|@''REPLACE_WCSTOK''@|$(REPLACE_WCSTOK)|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/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \
	      -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \
	      -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \
	      -e 's/@''GNULIB_ISWDIGIT''@/$(GNULIB_ISWDIGIT)/g' \
	      -e 's/@''GNULIB_ISWXDIGIT''@/$(GNULIB_ISWXDIGIT)/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_ISWDIGIT''@/$(REPLACE_ISWDIGIT)/g' \
	      -e 's/@''REPLACE_ISWXDIGIT''@/$(REPLACE_ISWXDIGIT)/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

## begin gnulib module windows-mutex


EXTRA_DIST += windows-initguard.h windows-mutex.c windows-mutex.h

EXTRA_libgnu_a_SOURCES += windows-mutex.c

## end   gnulib module windows-mutex

## begin gnulib module windows-once


EXTRA_DIST += windows-once.c windows-once.h

EXTRA_libgnu_a_SOURCES += windows-once.c

## end   gnulib module windows-once

## begin gnulib module windows-recmutex


EXTRA_DIST += windows-initguard.h windows-recmutex.c windows-recmutex.h

EXTRA_libgnu_a_SOURCES += windows-recmutex.c

## end   gnulib module windows-recmutex

## begin gnulib module windows-rwlock


EXTRA_DIST += windows-initguard.h windows-rwlock.c windows-rwlock.h

EXTRA_libgnu_a_SOURCES += windows-rwlock.c

## end   gnulib module windows-rwlock

## begin gnulib module wmemchr


EXTRA_DIST += wmemchr-impl.h wmemchr.c

EXTRA_libgnu_a_SOURCES += wmemchr.c

## end   gnulib module wmemchr

## begin gnulib module wmempcpy


EXTRA_DIST += wmempcpy.c

EXTRA_libgnu_a_SOURCES += wmempcpy.c

## end   gnulib module wmempcpy

## begin gnulib module xalloc-oversized


EXTRA_DIST += xalloc-oversized.h

## end   gnulib module xalloc-oversized


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