require '_h2ph_pre.ph';

unless(defined(&_ANSIDECL_H)) {
    eval 'sub _ANSIDECL_H () {1;}' unless defined(&_ANSIDECL_H);
    if(defined ( &__STDC__) || defined ( &_AIX) || (defined ( &__mips)  && defined ( &_SYSTYPE_SVR4)) || defined( &_WIN32)) {
	eval 'sub PTR () { &void *;}' unless defined(&PTR);
	eval 'sub PTRCONST () { &void * &CONST;}' unless defined(&PTRCONST);
	eval 'sub LONG_DOUBLE () {\'long double\';}' unless defined(&LONG_DOUBLE);
	eval 'sub AND () {,;}' unless defined(&AND);
	eval 'sub NOARGS () { &void;}' unless defined(&NOARGS);
	eval 'sub VOLATILE () { &volatile;}' unless defined(&VOLATILE);
	eval 'sub SIGNED () {\'signed\';}' unless defined(&SIGNED);
	eval 'sub PARAMS {
	    local($paramlist) = @_;
    	    eval q($paramlist);
	}' unless defined(&PARAMS);
	eval 'sub ANSI_PROTOTYPES () {1;}' unless defined(&ANSI_PROTOTYPES);
	eval 'sub VPARAMS {
	    local($ARGS) = @_;
    	    eval q($ARGS);
	}' unless defined(&VPARAMS);
	eval 'sub VA_START {
	    local($va_list,$var) = @_;
    	    eval q( &va_start($va_list,$var));
	}' unless defined(&VA_START);
	eval 'sub CONST () { &const;}' unless defined(&CONST);
	eval 'sub DOTS () {, ...;}' unless defined(&DOTS);
	eval 'sub PROTO {
	    local($type, $name, $arglist) = @_;
    	    eval q($type $name $arglist);
	}' unless defined(&PROTO);
	eval 'sub EXFUN {
	    local($name, $proto) = @_;
    	    eval q($name $proto);
	}' unless defined(&EXFUN);
	eval 'sub DEFUN {
	    local($name, $arglist, $args) = @_;
    	    eval q($name($args));
	}' unless defined(&DEFUN);
	eval 'sub DEFUN_VOID {
	    local($name) = @_;
    	    eval q($name( &void));
	}' unless defined(&DEFUN_VOID);
    } else {
	eval 'sub PTR () {\'char\' *;}' unless defined(&PTR);
	eval 'sub PTRCONST () { &PTR;}' unless defined(&PTRCONST);
	eval 'sub LONG_DOUBLE () { &double;}' unless defined(&LONG_DOUBLE);
	eval 'sub AND () {;;}' unless defined(&AND);
	eval 'sub NOARGS () {1;}' unless defined(&NOARGS);
	unless(defined(&const)) {
	    eval 'sub const () {1;}' unless defined(&const);
	}
	eval 'sub VOLATILE () {1;}' unless defined(&VOLATILE);
	eval 'sub SIGNED () {1;}' unless defined(&SIGNED);
	eval 'sub PARAMS {
	    local($paramlist) = @_;
    	    eval q(());
	}' unless defined(&PARAMS);
	eval 'sub VPARAMS {
	    local($ARGS) = @_;
    	    eval q(  &va_dcl);
	}' unless defined(&VPARAMS);
	eval 'sub VA_START {
	    local($va_list,$var) = @_;
    	    eval q( &va_start($va_list));
	}' unless defined(&VA_START);
	eval 'sub CONST () {1;}' unless defined(&CONST);
	eval 'sub DOTS () {1;}' unless defined(&DOTS);
	eval 'sub PROTO {
	    local($type, $name, $arglist) = @_;
    	    eval q($type $name ());
	}' unless defined(&PROTO);
	eval 'sub EXFUN {
	    local($name, $proto) = @_;
    	    eval q($name());
	}' unless defined(&EXFUN);
	eval 'sub DEFUN {
	    local($name, $arglist, $args) = @_;
    	    eval q($name $arglist $args;);
	}' unless defined(&DEFUN);
	eval 'sub DEFUN_VOID {
	    local($name) = @_;
    	    eval q($name());
	}' unless defined(&DEFUN_VOID);
    }
}
1;
