/* This file is automatically generated by scripts/option-groups.awk
   in the EGLIBC source tree.

   It defines macros that indicate which EGLIBC option groups were
   configured in 'option-groups.config' when this C library was
   built.  For each option group named OPTION_foo, it #defines
   __OPTION_foo to be 1 if the group is enabled, or leaves that
   symbol undefined if the group is disabled.  */

#ifndef __GNU_OPTION_GROUPS_H
#define __GNU_OPTION_GROUPS_H

#define __OPTION_EGLIBC_ADVANCED_INET6 1
#define __OPTION_EGLIBC_BACKTRACE 1
#define __OPTION_EGLIBC_BIG_MACROS 1
#define __OPTION_EGLIBC_BSD 1
#define __OPTION_EGLIBC_CATGETS 1
#define __OPTION_EGLIBC_CHARSETS 1
#define __OPTION_EGLIBC_CRYPT 1
#define __OPTION_EGLIBC_CRYPT_UFC 1
#define __OPTION_EGLIBC_CXX_TESTS 1
#define __OPTION_EGLIBC_DB_ALIASES 1
#define __OPTION_EGLIBC_ENVZ 1
#define __OPTION_EGLIBC_FCVT 1
#define __OPTION_EGLIBC_FMTMSG 1
#define __OPTION_EGLIBC_FSTAB 1
#define __OPTION_EGLIBC_FTRAVERSE 1
#define __OPTION_EGLIBC_GETLOGIN 1
#define __OPTION_EGLIBC_IDN 1
#define __OPTION_EGLIBC_INET 1
#define __OPTION_EGLIBC_INET_ANL 1
#define __OPTION_EGLIBC_LIBM 1
#define __OPTION_EGLIBC_LOCALES 1
#define __OPTION_EGLIBC_LOCALE_CODE 1
#define __OPTION_EGLIBC_MEMUSAGE 1
#define __OPTION_EGLIBC_NIS 1
#define __OPTION_EGLIBC_NSSWITCH 1
#define __OPTION_EGLIBC_RCMD 1
#define __OPTION_EGLIBC_RTLD_DEBUG 1
#define __OPTION_EGLIBC_SPAWN 1
#define __OPTION_EGLIBC_STREAMS 1
#define __OPTION_EGLIBC_SUNRPC 1
#define __OPTION_EGLIBC_UTMP 1
#define __OPTION_EGLIBC_UTMPX 1
#define __OPTION_EGLIBC_WORDEXP 1
#define __OPTION_POSIX_C_LANG_WIDE_CHAR 1
#define __OPTION_POSIX_REGEXP 1
#define __OPTION_POSIX_REGEXP_GLIBC 1
#define __OPTION_POSIX_WIDE_CHAR_DEVICE_IO 1

#endif /* __GNU_OPTION_GROUPS_H */
