/* Header file auto-generated by Charmonizer. 
 * DO NOT EDIT THIS FILE!!
 */

#ifndef H_CHARMONY
#define H_CHARMONY 1

#define CHY_EMPLOY_INTEGERLIMITS
#define CHY_EMPLOY_INTEGERLITERALS
#define CHY_EMPLOY_INTEGERFORMATSTRINGS


/* BuildEnv */
#define CHY_CC cc
#define CHY_CFLAGS  -fno-common -DPERL_DARWIN -mmacosx-version-min=12.4 -fno-strict-aliasing -pipe -fstack-protector-strong -DPERL_USE_SAFE_PUTENV -I/Users/pkarman/perl5/perlbrew/perls/perl-5.36.0/lib/5.36.0/darwin-2level/CORE
#define CHY_EXTRA_CFLAGS -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden

#if defined(CHY_USE_SHORT_NAMES) || defined(CHAZ_USE_SHORT_NAMES)
  #define CC CHY_CC
  #define CFLAGS CHY_CFLAGS
  #define EXTRA_CFLAGS CHY_EXTRA_CFLAGS
#endif /* USE_SHORT_NAMES */


/* DirManip */
#define CHY_HAS_DIRENT_H
#define CHY_HAS_DIRENT_D_NAMLEN
#define CHY_HAS_DIRENT_D_TYPE
#define chy_makedir(_dir, _mode) mkdir(_dir, _mode)
#define CHY_MAKEDIR_MODE_IGNORED 0
#define CHY_DIR_SEP "/"
#define CHY_DIR_SEP_CHAR '/'
#define CHY_REMOVE_ZAPS_DIRS

#if defined(CHY_USE_SHORT_NAMES) || defined(CHAZ_USE_SHORT_NAMES)
  #define HAS_DIRENT_H CHY_HAS_DIRENT_H
  #define HAS_DIRENT_D_NAMLEN CHY_HAS_DIRENT_D_NAMLEN
  #define HAS_DIRENT_D_TYPE CHY_HAS_DIRENT_D_TYPE
  #define makedir(_dir, _mode) chy_makedir(_dir, _mode)
  #define MAKEDIR_MODE_IGNORED CHY_MAKEDIR_MODE_IGNORED
  #define DIR_SEP CHY_DIR_SEP
  #define DIR_SEP_CHAR CHY_DIR_SEP_CHAR
  #define REMOVE_ZAPS_DIRS CHY_REMOVE_ZAPS_DIRS
#endif /* USE_SHORT_NAMES */


/* Headers */
#define CHY_HAS_POSIX
#define CHY_HAS_C89
#define CHY_HAS_C90
#define CHY_HAS_CPIO_H
#define CHY_HAS_DIRENT_H
#define CHY_HAS_FCNTL_H
#define CHY_HAS_GRP_H
#define CHY_HAS_PWD_H
#define CHY_HAS_REGEX_H
#define CHY_HAS_SCHED_H
#define CHY_HAS_SYS_STAT_H
#define CHY_HAS_SYS_TIME_H
#define CHY_HAS_SYS_TIMES_H
#define CHY_HAS_SYS_TYPES_H
#define CHY_HAS_SYS_UTSNAME_H
#define CHY_HAS_SYS_WAIT_H
#define CHY_HAS_TAR_H
#define CHY_HAS_TERMIOS_H
#define CHY_HAS_UNISTD_H
#define CHY_HAS_UTIME_H
#define CHY_HAS_ASSERT_H
#define CHY_HAS_CTYPE_H
#define CHY_HAS_ERRNO_H
#define CHY_HAS_FLOAT_H
#define CHY_HAS_LIMITS_H
#define CHY_HAS_LOCALE_H
#define CHY_HAS_MATH_H
#define CHY_HAS_SETJMP_H
#define CHY_HAS_SIGNAL_H
#define CHY_HAS_STDARG_H
#define CHY_HAS_STDDEF_H
#define CHY_HAS_STDIO_H
#define CHY_HAS_STDLIB_H
#define CHY_HAS_STRING_H
#define CHY_HAS_TIME_H
#define CHY_HAS_PTHREAD_H

#if defined(CHY_USE_SHORT_NAMES) || defined(CHAZ_USE_SHORT_NAMES)
  #define HAS_POSIX CHY_HAS_POSIX
  #define HAS_C89 CHY_HAS_C89
  #define HAS_C90 CHY_HAS_C90
  #define HAS_CPIO_H CHY_HAS_CPIO_H
  #define HAS_DIRENT_H CHY_HAS_DIRENT_H
  #define HAS_FCNTL_H CHY_HAS_FCNTL_H
  #define HAS_GRP_H CHY_HAS_GRP_H
  #define HAS_PWD_H CHY_HAS_PWD_H
  #define HAS_REGEX_H CHY_HAS_REGEX_H
  #define HAS_SCHED_H CHY_HAS_SCHED_H
  #define HAS_SYS_STAT_H CHY_HAS_SYS_STAT_H
  #define HAS_SYS_TIME_H CHY_HAS_SYS_TIME_H
  #define HAS_SYS_TIMES_H CHY_HAS_SYS_TIMES_H
  #define HAS_SYS_TYPES_H CHY_HAS_SYS_TYPES_H
  #define HAS_SYS_UTSNAME_H CHY_HAS_SYS_UTSNAME_H
  #define HAS_SYS_WAIT_H CHY_HAS_SYS_WAIT_H
  #define HAS_TAR_H CHY_HAS_TAR_H
  #define HAS_TERMIOS_H CHY_HAS_TERMIOS_H
  #define HAS_UNISTD_H CHY_HAS_UNISTD_H
  #define HAS_UTIME_H CHY_HAS_UTIME_H
  #define HAS_ASSERT_H CHY_HAS_ASSERT_H
  #define HAS_CTYPE_H CHY_HAS_CTYPE_H
  #define HAS_ERRNO_H CHY_HAS_ERRNO_H
  #define HAS_FLOAT_H CHY_HAS_FLOAT_H
  #define HAS_LIMITS_H CHY_HAS_LIMITS_H
  #define HAS_LOCALE_H CHY_HAS_LOCALE_H
  #define HAS_MATH_H CHY_HAS_MATH_H
  #define HAS_SETJMP_H CHY_HAS_SETJMP_H
  #define HAS_SIGNAL_H CHY_HAS_SIGNAL_H
  #define HAS_STDARG_H CHY_HAS_STDARG_H
  #define HAS_STDDEF_H CHY_HAS_STDDEF_H
  #define HAS_STDIO_H CHY_HAS_STDIO_H
  #define HAS_STDLIB_H CHY_HAS_STDLIB_H
  #define HAS_STRING_H CHY_HAS_STRING_H
  #define HAS_TIME_H CHY_HAS_TIME_H
  #define HAS_PTHREAD_H CHY_HAS_PTHREAD_H
#endif /* USE_SHORT_NAMES */


/* Booleans */
#define CHY_HAS_STDBOOL_H

#if defined(CHY_USE_SHORT_NAMES) || defined(CHAZ_USE_SHORT_NAMES)
  #define HAS_STDBOOL_H CHY_HAS_STDBOOL_H
#endif /* USE_SHORT_NAMES */

#ifdef CHY_EMPLOY_BOOLEANS

#include <stdbool.h>

#endif /* EMPLOY_BOOLEANS */


/* Integers */
#define CHY_LITTLE_END
#define CHY_HAS_INTTYPES_H
#define CHY_HAS_STDINT_H
#define CHY_HAS_LONG_LONG
#define CHY_SIZEOF_CHAR 1
#define CHY_SIZEOF_SHORT 2
#define CHY_SIZEOF_INT 4
#define CHY_SIZEOF_LONG 8
#define CHY_SIZEOF_PTR 8
#define CHY_SIZEOF_SIZE_T 8
#define CHY_SIZEOF_LONG_LONG 8
#define CHY_HAS_INT8_T
#define CHY_HAS_INT16_T
#define CHY_HAS_INT32_T
#define CHY_HAS_INT64_T
#define CHY_PTR_TO_I64(ptr) ((int64_t)(uint64_t)(ptr))
#define CHY_U64_TO_DOUBLE(num) ((double)(num))

#if defined(CHY_USE_SHORT_NAMES) || defined(CHAZ_USE_SHORT_NAMES)
  #define LITTLE_END CHY_LITTLE_END
  #define HAS_INTTYPES_H CHY_HAS_INTTYPES_H
  #define HAS_STDINT_H CHY_HAS_STDINT_H
  #define HAS_LONG_LONG CHY_HAS_LONG_LONG
  #define SIZEOF_CHAR CHY_SIZEOF_CHAR
  #define SIZEOF_SHORT CHY_SIZEOF_SHORT
  #define SIZEOF_INT CHY_SIZEOF_INT
  #define SIZEOF_LONG CHY_SIZEOF_LONG
  #define SIZEOF_PTR CHY_SIZEOF_PTR
  #define SIZEOF_SIZE_T CHY_SIZEOF_SIZE_T
  #define SIZEOF_LONG_LONG CHY_SIZEOF_LONG_LONG
  #define HAS_INT8_T CHY_HAS_INT8_T
  #define HAS_INT16_T CHY_HAS_INT16_T
  #define HAS_INT32_T CHY_HAS_INT32_T
  #define HAS_INT64_T CHY_HAS_INT64_T
  #define PTR_TO_I64(ptr) CHY_PTR_TO_I64(ptr)
  #define U64_TO_DOUBLE(num) CHY_U64_TO_DOUBLE(num)
#endif /* USE_SHORT_NAMES */


/* IntegerTypes */

#if defined(CHY_USE_SHORT_NAMES) || defined(CHAZ_USE_SHORT_NAMES)
#endif /* USE_SHORT_NAMES */

#ifdef CHY_EMPLOY_INTEGERTYPES

#include <stdint.h>

#endif /* EMPLOY_INTEGERTYPES */


/* IntegerLimits */

#if defined(CHY_USE_SHORT_NAMES) || defined(CHAZ_USE_SHORT_NAMES)
#endif /* USE_SHORT_NAMES */

#ifdef CHY_EMPLOY_INTEGERLIMITS

#include <stdint.h>

#endif /* EMPLOY_INTEGERLIMITS */


/* IntegerLiterals */

#if defined(CHY_USE_SHORT_NAMES) || defined(CHAZ_USE_SHORT_NAMES)
#endif /* USE_SHORT_NAMES */

#ifdef CHY_EMPLOY_INTEGERLITERALS

#include <stdint.h>

#endif /* EMPLOY_INTEGERLITERALS */


/* IntegerFormatStrings */

#if defined(CHY_USE_SHORT_NAMES) || defined(CHAZ_USE_SHORT_NAMES)
#endif /* USE_SHORT_NAMES */

#ifdef CHY_EMPLOY_INTEGERFORMATSTRINGS

#include <inttypes.h>

#endif /* EMPLOY_INTEGERFORMATSTRINGS */


/* Floats */
typedef union { unsigned char c[4]; float f; } chy_floatu32;
typedef union { unsigned char c[8]; double d; } chy_floatu64;
#ifdef CHY_BIG_END
static const chy_floatu32 chy_f32inf
    = { { 0x7F, 0x80, 0, 0 } };
static const chy_floatu32 chy_f32neginf
    = { { 0xFF, 0x80, 0, 0 } };
static const chy_floatu32 chy_f32nan
    = { { 0x7F, 0xC0, 0, 0 } };
static const chy_floatu64 chy_f64inf
    = { { 0x7F, 0xF0, 0, 0, 0, 0, 0, 0 } };
static const chy_floatu64 chy_f64neginf
    = { { 0xFF, 0xF0, 0, 0, 0, 0, 0, 0 } };
static const chy_floatu64 chy_f64nan
    = { { 0x7F, 0xF8, 0, 0, 0, 0, 0, 0 } };
#else /* BIG_END */
static const chy_floatu32 chy_f32inf
    = { { 0, 0, 0x80, 0x7F } };
static const chy_floatu32 chy_f32neginf
    = { { 0, 0, 0x80, 0xFF } };
static const chy_floatu32 chy_f32nan
    = { { 0, 0, 0xC0, 0x7F } };
static const chy_floatu64 chy_f64inf
    = { { 0, 0, 0, 0, 0, 0, 0xF0, 0x7F } };
static const chy_floatu64 chy_f64neginf
    = { { 0, 0, 0, 0, 0, 0, 0xF0, 0xFF } };
static const chy_floatu64 chy_f64nan
    = { { 0, 0, 0, 0, 0, 0, 0xF8, 0x7F } };
#endif /* BIG_END */
#define CHY_F32_INF (chy_f32inf.f)
#define CHY_F32_NEGINF (chy_f32neginf.f)
#define CHY_F32_NAN (chy_f32nan.f)
#define CHY_F64_INF (chy_f64inf.d)
#define CHY_F64_NEGINF (chy_f64neginf.d)
#define CHY_F64_NAN (chy_f64nan.d)

#if defined(CHY_USE_SHORT_NAMES) || defined(CHAZ_USE_SHORT_NAMES)
  #define F32_INF CHY_F32_INF
  #define F32_NEGINF CHY_F32_NEGINF
  #define F32_NAN CHY_F32_NAN
  #define F64_INF CHY_F64_INF
  #define F64_NEGINF CHY_F64_NEGINF
  #define F64_NAN CHY_F64_NAN
#endif /* USE_SHORT_NAMES */


/* LargeFiles */
#define CHAZ_HAS_SYS_STAT_H
#define CHAZ_HAS_FCNTL_H
#define CHAZ_HAS_STAT_ST_SIZE
#define CHAZ_HAS_STAT_ST_BLOCKS
#define CHY_HAS_64BIT_OFFSET_TYPE
#define chy_off64_t off_t
#define CHY_HAS_64BIT_STDIO
#define chy_fopen64 fopen
#define chy_ftello64 ftello
#define chy_fseeko64 fseeko
#define CHY_HAS_64BIT_LSEEK
#define chy_lseek64 lseek
#define CHY_HAS_64BIT_PREAD
#define chy_pread64 pread

#if defined(CHY_USE_SHORT_NAMES) || defined(CHAZ_USE_SHORT_NAMES)
  #define HAS_64BIT_OFFSET_TYPE CHY_HAS_64BIT_OFFSET_TYPE
  #define off64_t chy_off64_t
  #define HAS_64BIT_STDIO CHY_HAS_64BIT_STDIO
  #define fopen64 chy_fopen64
  #define ftello64 chy_ftello64
  #define fseeko64 chy_fseeko64
  #define HAS_64BIT_LSEEK CHY_HAS_64BIT_LSEEK
  #define lseek64 chy_lseek64
  #define HAS_64BIT_PREAD CHY_HAS_64BIT_PREAD
  #define pread64 chy_pread64
#endif /* USE_SHORT_NAMES */


/* Memory */
#define CHY_HAS_SYS_MMAN_H
#define CHY_HAS_ALLOCA_H
#define chy_alloca alloca

#if defined(CHY_USE_SHORT_NAMES) || defined(CHAZ_USE_SHORT_NAMES)
  #define HAS_SYS_MMAN_H CHY_HAS_SYS_MMAN_H
  #define HAS_ALLOCA_H CHY_HAS_ALLOCA_H
#endif /* USE_SHORT_NAMES */


/* RegularExpressions */
#define CHY_HAS_REG_ENHANCED

#if defined(CHY_USE_SHORT_NAMES) || defined(CHAZ_USE_SHORT_NAMES)
  #define HAS_REG_ENHANCED CHY_HAS_REG_ENHANCED
#endif /* USE_SHORT_NAMES */


/* VariadicMacros */
#define CHY_HAS_VARIADIC_MACROS
#define CHY_HAS_ISO_VARIADIC_MACROS
#define CHY_HAS_GNUC_VARIADIC_MACROS

#if defined(CHY_USE_SHORT_NAMES) || defined(CHAZ_USE_SHORT_NAMES)
  #define HAS_VARIADIC_MACROS CHY_HAS_VARIADIC_MACROS
  #define HAS_ISO_VARIADIC_MACROS CHY_HAS_ISO_VARIADIC_MACROS
  #define HAS_GNUC_VARIADIC_MACROS CHY_HAS_GNUC_VARIADIC_MACROS
#endif /* USE_SHORT_NAMES */

#ifdef CHY_HAS_SYS_TYPES_H
  #include <sys/types.h>
#endif

#ifdef CHY_HAS_ALLOCA_H
  #include <alloca.h>
#elif defined(CHY_HAS_MALLOC_H)
  #include <malloc.h>
#elif defined(CHY_ALLOCA_IN_STDLIB_H)
  #include <stdlib.h>
#endif

#ifdef CHY_HAS_WINDOWS_H
  /* Target Windows XP. */
  #ifndef WINVER
    #define WINVER 0x0500
  #endif
  #ifndef _WIN32_WINNT
    #define _WIN32_WINNT 0x0500
  #endif
#endif

#endif /* H_CHARMONY */

