require '_h2ph_pre.ph';

unless(defined(&_VARARGS_H)) {
    eval 'sub _VARARGS_H () {1;}' unless defined(&_VARARGS_H);
    if(defined(&__NeXT__)) {
	if(defined(&_ANSI_STDARG_H_)) {
	    eval 'sub _VA_LIST_ () {1;}' unless defined(&_VA_LIST_);
	}
	eval 'sub _ANSI_STDARG_H_ () {1;}' unless defined(&_ANSI_STDARG_H_);
	undef(&va_alist) if defined(&va_alist);
	undef(&va_dcl) if defined(&va_dcl);
	undef(&va_list) if defined(&va_list);
	undef(&va_start) if defined(&va_start);
	undef(&va_end) if defined(&va_end);
	undef(&va_arg) if defined(&va_arg);
    }
    eval 'sub va_alist () { &__builtin_va_alist;}' unless defined(&va_alist);
    eval 'sub va_dcl () { &__builtin_va_alist_t  &__builtin_va_alist; ...;}' unless defined(&va_dcl);
    unless(defined(&__GNUC_VA_LIST)) {
	eval 'sub __GNUC_VA_LIST () {1;}' unless defined(&__GNUC_VA_LIST);
    }
    eval 'sub va_start {
        local($v) = @_;
	    eval q( &__builtin_varargs_start(($v)));
    }' unless defined(&va_start);
    eval 'sub va_end () { &__builtin_va_end;}' unless defined(&va_end);
    eval 'sub va_arg () { &__builtin_va_arg;}' unless defined(&va_arg);
    eval 'sub __va_copy {
        local($d,$s) = @_;
	    eval q( &__builtin_va_copy(($d),($s)));
    }' unless defined(&__va_copy);
    if(defined(&_HIDDEN_VA_LIST)) {
	undef(&_VA_LIST) if defined(&_VA_LIST);
    }
    if(defined( &__svr4__) || (defined( &_SCO_DS)  && !defined( &__VA_LIST))) {
	unless(defined(&_VA_LIST_)) {
	    eval 'sub _VA_LIST_ () {1;}' unless defined(&_VA_LIST_);
	    if(defined(&__i860__)) {
		unless(defined(&_VA_LIST)) {
		    eval 'sub _VA_LIST () { &va_list;}' unless defined(&_VA_LIST);
		}
	    }
	    if(defined(&_SCO_DS)) {
		eval 'sub __VA_LIST () {1;}' unless defined(&__VA_LIST);
	    }
	}
    } else {
	if(!defined ( &_VA_LIST_) || defined ( &__BSD_NET2__) || defined ( &____386BSD____) || defined ( &__bsdi__) || defined ( &__sequent__) || defined ( &__FreeBSD__) || defined( &WINNT)) {
	    unless(defined(&_VA_LIST_DEFINED)) {
		unless(defined(&_VA_LIST)) {
		    unless(defined(&_VA_LIST_T_H)) {
			unless(defined(&__va_list__)) {
			}
		    }
		}
	    }
	    if(!(defined ( &__BSD_NET2__) || defined ( &____386BSD____) || defined ( &__bsdi__) || defined ( &__sequent__) || defined ( &__FreeBSD__))) {
		eval 'sub _VA_LIST_ () {1;}' unless defined(&_VA_LIST_);
	    }
	    unless(defined(&_VA_LIST)) {
		eval 'sub _VA_LIST () {1;}' unless defined(&_VA_LIST);
	    }
	    unless(defined(&_VA_LIST_DEFINED)) {
		eval 'sub _VA_LIST_DEFINED () {1;}' unless defined(&_VA_LIST_DEFINED);
	    }
	    unless(defined(&_VA_LIST_T_H)) {
		eval 'sub _VA_LIST_T_H () {1;}' unless defined(&_VA_LIST_T_H);
	    }
	    unless(defined(&__va_list__)) {
		eval 'sub __va_list__ () {1;}' unless defined(&__va_list__);
	    }
	}
    }
    if(defined(&_BSD_VA_LIST)) {
	undef(&_BSD_VA_LIST) if defined(&_BSD_VA_LIST);
    }
}
1;
