require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_SYS_COMMON_LIMITS_H_)) {
    eval 'sub _SYS_COMMON_LIMITS_H_ () {1;}' unless defined(&_SYS_COMMON_LIMITS_H_);
    eval 'sub CHAR_BIT () { &__CHAR_BIT__;}' unless defined(&CHAR_BIT);
    eval 'sub SCHAR_MIN () {(- &__SCHAR_MAX__-1);}' unless defined(&SCHAR_MIN);
    eval 'sub SCHAR_MAX () { &__SCHAR_MAX__;}' unless defined(&SCHAR_MAX);
    eval 'sub UCHAR_MAX () {(2* &SCHAR_MAX+1);}' unless defined(&UCHAR_MAX);
    eval 'sub SHRT_MIN () {(- &__SHRT_MAX__-1);}' unless defined(&SHRT_MIN);
    eval 'sub SHRT_MAX () { &__SHRT_MAX__;}' unless defined(&SHRT_MAX);
    eval 'sub USHRT_MAX () {(2* &SHRT_MAX+1);}' unless defined(&USHRT_MAX);
    eval 'sub INT_MIN () {(- &__INT_MAX__-1);}' unless defined(&INT_MIN);
    eval 'sub INT_MAX () { &__INT_MAX__;}' unless defined(&INT_MAX);
    eval 'sub UINT_MAX () {(2* &INT_MAX+1);}' unless defined(&UINT_MAX);
    eval 'sub LONG_MIN () {(- &__LONG_MAX__-1);}' unless defined(&LONG_MIN);
    eval 'sub LONG_MAX () { &__LONG_MAX__;}' unless defined(&LONG_MAX);
    eval 'sub ULONG_MAX () {(2* &LONG_MAX+1);}' unless defined(&ULONG_MAX);
    if(defined(&_ISOC99_SOURCE) || ((defined(&__STDC_VERSION__) ? &__STDC_VERSION__ : undef) - 0) >= 199901 || defined(&_NETBSD_SOURCE)) {
	eval 'sub LLONG_MIN () {(- &__LONG_LONG_MAX__-1);}' unless defined(&LLONG_MIN);
	eval 'sub LLONG_MAX () { &__LONG_LONG_MAX__;}' unless defined(&LLONG_MAX);
	eval 'sub ULLONG_MAX () {(2* &LLONG_MAX+1);}' unless defined(&ULLONG_MAX);
    }
    if(defined(&_POSIX_C_SOURCE) || defined(&_XOPEN_SOURCE) || defined(&_NETBSD_SOURCE)) {
	eval 'sub SSIZE_MAX () { &LONG_MAX;}' unless defined(&SSIZE_MAX);
	if(defined(&_NETBSD_SOURCE)) {
	    eval 'sub SSIZE_MIN () { &LONG_MIN;}' unless defined(&SSIZE_MIN);
	    eval 'sub SIZE_T_MAX () { &ULONG_MAX;}' unless defined(&SIZE_T_MAX);
	    eval 'sub UQUAD_MAX () { &ULLONG_MAX;}' unless defined(&UQUAD_MAX);
	    eval 'sub QUAD_MAX () { &LLONG_MAX;}' unless defined(&QUAD_MAX);
	    eval 'sub QUAD_MIN () { &LLONG_MIN;}' unless defined(&QUAD_MIN);
	}
    }
    if(defined(&_XOPEN_SOURCE) || defined(&_NETBSD_SOURCE)) {
	eval 'sub LONG_BIT () {( &__SIZEOF_LONG__ * 8);}' unless defined(&LONG_BIT);
	eval 'sub WORD_BIT () {( &__SIZEOF_INT__ * 8);}' unless defined(&WORD_BIT);
	eval 'sub DBL_DIG () { &__DBL_DIG__;}' unless defined(&DBL_DIG);
	eval 'sub DBL_MAX () { &__DBL_MAX__;}' unless defined(&DBL_MAX);
	eval 'sub DBL_MIN () { &__DBL_MIN__;}' unless defined(&DBL_MIN);
	eval 'sub FLT_DIG () { &__FLT_DIG__;}' unless defined(&FLT_DIG);
	eval 'sub FLT_MAX () { &__FLT_MAX__;}' unless defined(&FLT_MAX);
	eval 'sub FLT_MIN () { &__FLT_MIN__;}' unless defined(&FLT_MIN);
	if(defined(&__LDBL_DIG__)) {
	    eval 'sub LDBL_DIG () { &__LDBL_DIG__;}' unless defined(&LDBL_DIG);
	    eval 'sub LDBL_MAX () { &__LDBL_MAX__;}' unless defined(&LDBL_MAX);
	    eval 'sub LDBL_MIN () { &__LDBL_MIN__;}' unless defined(&LDBL_MIN);
	}
    }
}
1;
