[ncl-install] compiling wrapit

Mary Haley haley at ucar.edu
Thu Jan 3 20:24:45 MST 2008


Hi Alexander,

I need to look into this, but I think your wrapit.c file got clobbered. 
It shouldn't
be the same as y.tab.c.
-------------- next part --------------
#include <stdio.h>
#include <ncarg/hlu/hlu.h>
#include <ncarg/hlu/NresDB.h>
#include <ncarg/ncl/defs.h>
#include <ncarg/ncl/NclDataDefs.h>
#include "WSymbol.h"
#include "Keywords.h"
#include "fstrings.h"

#ifdef YYDEBUG
int yydebug = 1;
#endif

char *wrapname;

WWrapRecList *wrap_list = NULL;
WWrapRec *current = NULL;
FILE *thefile;

WSrcList *WNewAdditionalSrc(char *b,int order)
{
	WSrcList *new = malloc(sizeof(WSrcList));
	new->src = malloc(strlen(b)+1);
	new->order = order;
	strcpy(new->src,b);
	new->next = NULL;
	return(new);
}

NclScopeRec* WNewFScope()
{
	int i;
	NclScopeRec *thetable;
	thetable = (NclScopeRec*)malloc((unsigned)sizeof(NclScopeRec));
	thetable->this_scope = (NclSymTableElem*)malloc((unsigned)sizeof(NclSymTableElem)* NCL_SYM_TAB_SIZE);
	thetable->cur_offset = 0;
	thetable->level = 0;
        for(i = 0; i< NCL_SYM_TAB_SIZE; i++) {
                thetable->this_scope[i].nelem = 0;
                thetable->this_scope[i].thelist = NULL;
        }
	i = 0;	
	while(fkeytab[i].token != (int)NULL) {
		if(fkeytab[i].uppercase != NULL) {
			_NclAddInScope(thetable,fkeytab[i].uppercase,fkeytab[i].token);
		}
		if(fkeytab[i].lowercase != NULL) {
			_NclAddInScope(thetable,fkeytab[i].lowercase,fkeytab[i].token);
		}
	
		i++;	
	}
	return(thetable);
}
NclScopeRec* WNewWScope()
{
	int i;
	NclScopeRec *thetable;
	thetable = (NclScopeRec*)malloc((unsigned)sizeof(NclScopeRec));
	thetable->this_scope = (NclSymTableElem*)malloc((unsigned)sizeof(NclSymTableElem)* NCL_SYM_TAB_SIZE);
	thetable->cur_offset = 0;
	thetable->level = 0;
        for(i = 0; i< NCL_SYM_TAB_SIZE; i++) {
                thetable->this_scope[i].nelem = 0;
                thetable->this_scope[i].thelist = NULL;
        }
	i = 0;	
	while(wkeytab[i].token != (int)NULL) {
		if(wkeytab[i].uppercase != NULL) {
			_NclAddInScope(thetable,wkeytab[i].uppercase,wkeytab[i].token);
		}
		if(wkeytab[i].lowercase != NULL) {
			_NclAddInScope(thetable,wkeytab[i].lowercase,wkeytab[i].token);
		}
		i++;	
	}
	return(thetable);
}

void WNewWrap()
{
	WWrapRecList* tmp;
	int i;

	tmp = wrap_list;
	wrap_list = (WWrapRecList*)malloc(sizeof(WWrapRecList));
	wrap_list->next = tmp;
	wrap_list->therec = (WWrapRec*)malloc(sizeof(WWrapRec));
	current = wrap_list->therec;
	current->frec = WNewFScope();
	current->wrec = WNewWScope();
	current->crec = WNewWScope();
	current->c_defstring = NULL;
	current->c_argval= NULL;
	current->c_tmpval= NULL;
	current->c_vdefs = NULL;
	current->c_callrec = NULL;
	current->rtrn = NULL;
}

WGetArgValue *WNewArgVal()
{
	WArgValList* tmp;

	tmp = current->c_argval;
	current->c_argval = (WArgValList*)malloc(sizeof(WArgValList));
	current->c_argval->arec = (WGetArgValue*)malloc(sizeof(WGetArgValue));
	current->c_argval->arec->assign_to = NULL;
	current->c_argval->arec->pnum = -1;
	current->c_argval->arec->totalp = -1;
	current->c_argval->arec->ndims= NULL;
	current->c_argval->arec->dimsizes= NULL;
	current->c_argval->arec->missing= NULL;
	current->c_argval->arec->hasmissing= NULL;
	current->c_argval->arec->type= NULL;
	current->c_argval->arec->rw = -1;
	current->c_argval->arec->additional_src = NULL;
	current->c_argval->next = tmp;
	return(current->c_argval->arec);
}


WCentry *WNewVDef(char* name,int datatype,int isptr,char* array_spec,int order)
{
	WVDefList *tmp;
	NclSymbol *s;

	if(current->c_vdefs != NULL ) {	
		tmp = current->c_vdefs;
		while(tmp->next != NULL) tmp = tmp->next;
		tmp->next = (WVDefList*)malloc(sizeof(WVDefList));
		tmp->next->next = NULL;
		tmp->next->def = (WCentry*)malloc(sizeof(WCentry));
		tmp->next->def->string = (char*)malloc(strlen(name)+1);
		tmp->next->def->datatype = datatype;
		tmp->next->def->array_spec = NULL;
		tmp->next->def->order = order;
		tmp->next->def->additional_src = NULL;
		strcpy(tmp->next->def->string,name);
		if(array_spec != NULL) {
			tmp->next->def->array_spec= malloc(strlen(array_spec)+1);
			strcpy(tmp->next->def->array_spec,array_spec);
		} else {
			tmp->next->def->array_spec = NULL;
		}
		tmp->next->def->isptr = isptr;
		s = _NclAddInScope(current->crec,name,CVAR);
		s->u.centry = tmp->next->def;	
		return(tmp->next->def);
	} else {
		current->c_vdefs = (WVDefList*)malloc(sizeof(WVDefList));
		current->c_vdefs->next = NULL;
		current->c_vdefs->def = (WCentry*)malloc(sizeof(WCentry));
		current->c_vdefs->def->string = (char*)malloc(strlen(name)+1);
		current->c_vdefs->def->datatype = datatype;
		current->c_vdefs->def->array_spec = NULL;
		current->c_vdefs->def->order = order;
		current->c_vdefs->def->additional_src = NULL;
		strcpy(current->c_vdefs->def->string,name);
		if(array_spec != NULL) {
			current->c_vdefs->def->array_spec= malloc(strlen(array_spec)+1);
			strcpy(current->c_vdefs->def->array_spec,array_spec);
		}
		current->c_vdefs->def->isptr = isptr;
		s = _NclAddInScope(current->crec,name,CVAR);
		s->u.centry = current->c_vdefs->def;	
		return(current->c_vdefs->def);
	}
}

#define WNCL_MAX_ARGS  100

WCallRec* WNewCallRec(char* fort_name,int n_args) {
	int i;
	current->c_callrec = (WCallRec*)malloc(sizeof(WCallRec));
/*
	current->c_callrec->fname = malloc(strlen(fort_name)+1);
	strcpy(current->c_callrec->fname,fort_name);
*/
	current->c_callrec->n_args = n_args;
	current->c_callrec->nstrs = 0;
	current->c_callrec->arg_strings = (WCentry**)malloc(WNCL_MAX_ARGS*sizeof(WCentry*));
	for(i = 0; i < WNCL_MAX_ARGS; i++) {
		current->c_callrec->arg_strings[i] = NULL;
	}
	return(current->c_callrec);
}

void DoDimsizes(NclSymbol* sym) {
	char buffer[BUFFSIZE];

	sprintf(buffer,"%s_dimsizes",sym->name);
	if( _NclLookUpInScope(current->crec,buffer) == NULL) {
		(void)WNewVDef(buffer,NCL_int,0,"[NCL_MAX_DIMENSIONS]",0);
		sym->u.wparam->getarg->dimsizes = (char*)malloc(strlen(buffer)+1);
		strcpy(sym->u.wparam->getarg->dimsizes,buffer);
	}
	sprintf(buffer,"%s_ndims",sym->name);
	if( _NclLookUpInScope(current->crec,buffer) == NULL) {
		(void)WNewVDef(buffer,NCL_int,0,NULL,0);
		sprintf(buffer,"&%s_ndims",sym->name);
		sym->u.wparam->getarg->ndims= (char*)malloc(strlen(buffer)+1);
		strcpy(sym->u.wparam->getarg->ndims,buffer);
	}
}

void DoTotal(NclSymbol *sym) {
	char buffer[BUFFSIZE];
	WCentry *tmp;


	sprintf(buffer,"%s_total",sym->name);
	if( _NclLookUpInScope(current->crec,buffer) == NULL) {
		tmp = WNewVDef(buffer,NCL_int,0,NULL,0);
		sprintf(buffer,"\t%s_total = 1;\n\tfor(i = 0; i < %s_ndims; i++) {\n\t\t%s_total *= %s_dimsizes[i];\n\t}\n", sym->name,sym->name,sym->name,sym->name);
		tmp->additional_src = WNewAdditionalSrc(buffer,0);
	}
	DoDimsizes(sym);
}


WParamLoc* NewParamLoc(NclSymbol *sym) {
	
	WParamLoc *loc = (WParamLoc*)malloc(sizeof(WParamLoc));
	int i;

	if(sym != NULL) {	
		loc->type = FARGNEW;
		loc->xfarg = sym;
		loc->wsym = NULL;
		loc->cdef = NULL;
		loc->n_dims = sym->u.xref->u.farg->n_dims;
		loc->datatype = sym->u.xref->u.farg->datatype;
		for(i = 0; i < loc->n_dims; i++) {
			loc->dim_sizes[i] = sym->u.xref->u.farg->dim_sizes[i];
			sprintf(loc->dim_refs[i],"(%d)",sym->u.xref->u.farg->dim_sizes[i]);
		}
		return(loc);
	} else {
		loc->type = RETURN;
		loc->xfarg = NULL;
		loc->wsym = NULL;
                loc->cdef = NULL;
		loc->n_dims = -1;
		loc->datatype = NCL_none;
		return(loc);
	}
}

main(int argc,char* argv[])
{
	WWrapRecList* tmp;
	WArgValList *arg_list;
	int i,j;
	NclSymbol* s;
	char *buffer[1024];
	char upper[1024];
	char lower[1024];
	char *type = "NclANY";
	

	fprintf(stdout,initial_fmt);
	if(!yyparse()) {
/*
		tmp = wrap_list;
		while(tmp!= NULL) {
			fprintf(stdout,"extern NhlErrorTypes %s_W(\n#if NhlNeedProto\nvoid\n#endif\n);\n\n",tmp->therec->c_defstring);
			tmp = tmp->next;
			
		}
*/
		fprintf(stdout,init_fmt);
		tmp = wrap_list;
		while(tmp!= NULL) {
			fprintf(stdout,"\tnargs = 0;\n");
			fprintf(stdout,"\targs = NewArgs(%d);\n",tmp->therec->c_callrec->n_args);
			arg_list = tmp->therec->c_argval;
			i = 0;
			while(arg_list != NULL) {
				s = _NclLookUpInScope(tmp->therec->wrec,arg_list->arec->assign_to);
				if(s != NULL) {
					switch (s->u.wparam->datatype) {
						case NCL_int:
							type = "integer";
							break;
						case NCL_long:
							type = "long";
							break;
						case NCL_short:
							type = "short";
							break;
						case NCL_float:
							type = "float";
							break;
						case NCL_double:
							type = "double";
							break;
						case NCL_byte:
							type = "byte";
							break;
						case NCL_char:
							type = "character";
							break;
						case NCL_string:
							type = "string";
							break;
						case NCL_logical:
							type = "logical";
							break;	
					}
					if(s->u.wparam->n_dims > 0 ) {
						for(j = 0; j < s->u.wparam->n_dims; j++) {
							fprintf(stdout,"\tdimsizes[%d] = %d;\n",j,s->u.wparam->dim_sizes[j]);
						}
						fprintf(stdout,"\tSetArgTemplate(args,%d,\"%s\",%d,dimsizes);nargs++;\n",arg_list->arec->pnum,type,s->u.wparam->n_dims);
					} else {
						fprintf(stdout,"\tSetArgTemplate(args,%d,\"%s\",NclANY,NclANY);nargs++;\n",arg_list->arec->pnum,type);
					}
					
				}
				i++;	
				arg_list = arg_list->next;
			}
			for(j = 0; j < strlen(tmp->therec->c_defstring); j++) {
				if((!isdigit(tmp->therec->c_defstring[j]))&&(isalpha(tmp->therec->c_defstring[j]))) {
					if(isupper(tmp->therec->c_defstring[j])) {
						upper[j] = tmp->therec->c_defstring[j];
						lower[j] = (char)((int)tmp->therec->c_defstring[j] + 32) ;
					} else {
						lower[j] = tmp->therec->c_defstring[j];
						upper[j] = (char)((int)tmp->therec->c_defstring[j] - 32) ;
					}
				} else {
					upper[j] = lower[j] = tmp->therec->c_defstring[j];
				}
			}
			upper[j] = lower[j] = '\0';

			if(tmp->therec->f_or_p) {
				fprintf(stdout,"\tNclRegisterFunc(%s_W,args,\"%s\",nargs);\n\n",tmp->therec->c_defstring,upper);
			} else {
				fprintf(stdout,"\tNclRegisterProc(%s_W,args,\"%s\",nargs);\n\n",tmp->therec->c_defstring,upper);
			}
			if(tmp->therec->f_or_p) {
				fprintf(stdout,"\tNclRegisterFunc(%s_W,args,\"%s\",nargs);\n\n",tmp->therec->c_defstring,lower);
			} else {
				
				fprintf(stdout,"\tNclRegisterProc(%s_W,args,\"%s\",nargs);\n\n",tmp->therec->c_defstring,lower);
			}
			tmp = tmp->next;
		}
		fprintf(stdout,endf_fmt);
		exit(0);
	} else {
		fprintf(stdout,"Everything is NOT ok!\n");
		exit(1);
	}
}
-------------- next part --------------


Can you take the attached wrapit.c file, copy it to 
$NCARG/ni/src/mkwrap, and
then type:

    cd $NCARG/ni/src/mkwrap
   make install

Let me know if your wrapit.c file ends up being the same as y.tab.c 
again.

Thanks,

--Mary



On Jan 3, 2008, at 4:41 PM, Alexander Petkov wrote:

> Hi:
>
> I have 2 problems with compiling wrapit77 in the $NCARG/ni/src/mkwrap 
> directory:
> 1) The generated Makefile tell gcc to link both y.tab.o and wrapit.o
> while it compiles wrapit77:
> gcc -ansi -fPIC  -O    -o wrapit77 y.tab.o lex.yy.o Symbol.o wrapit.o
> -L/opt/ncl_ncarg-5.0.0/lib -L/usr/X11R6/lib64
> -L/opt/netcdf-3.6.2/gnu/lib -L/opt/hdf4/lib  -lfl
>
> This results in a number of "multiple definition" errors. I can see
> that wrapit.c and y.tab.c are tha same file.
> I can get around this problem by editing the Makefile.
>
> 2) There are number of "undefined reference" messages to functions
> which I cannot find where they are defined. Can I get any help with
> that?
>
>
> Here is the error output of the make all target for wrapit77:
>
> gcc -ansi -fPIC  -O    -o wrapit77 y.tab.o lex.yy.o	 Symbol.o wrapit.o
>  -L/opt/ncl_ncarg-5.0.0/lib -L/usr/X11R6/lib64
> -L/opt/netcdf-3.6.2/gnu/lib -L/opt/hdf4/lib  -lfl
> wrapit.o(.bss+0x0): multiple definition of `theparam'
> y.tab.o(.bss+0x0): first defined here
> wrapit.o(.text+0x0): In function `WMakeListNode':
> : multiple definition of `WMakeListNode'
> y.tab.o(.text+0x0): first defined here
> wrapit.o(.text+0x22): In function `FType':
> : multiple definition of `FType'
> y.tab.o(.text+0x22): first defined here
> wrapit.o(.text+0x43): In function `NType':
> : multiple definition of `NType'
> y.tab.o(.text+0x43): first defined here
> wrapit.o(.text+0xc9): In function `CType':
> : multiple definition of `CType'
> y.tab.o(.text+0xc9): first defined here
> wrapit.o(.text+0x146): In function `yyparse':
> : multiple definition of `yyparse'
> y.tab.o(.text+0x146): first defined here
> wrapit.o(.text+0x5309): In function `yyerror':
> : multiple definition of `yyerror'
> y.tab.o(.text+0x5309): first defined here
> y.tab.o(.text+0x475): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x54e): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x660): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x6b1): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x702): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x87c): more undefined references to `current' follow
> y.tab.o(.text+0xdf0): In function `yyparse':
> : undefined reference to `WNewCallRec'
> y.tab.o(.text+0xfb1): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x1060): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x10f2): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x1147): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x1184): In function `yyparse':
> : undefined reference to `WNewArgVal'
> y.tab.o(.text+0x12c4): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x13cd): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x1433): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> y.tab.o(.text+0x14b4): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x150e): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> y.tab.o(.text+0x1583): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> y.tab.o(.text+0x1632): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x1646): In function `yyparse':
> : undefined reference to `DoDimsizes'
> y.tab.o(.text+0x16e6): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> y.tab.o(.text+0x17c0): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x1817): In function `yyparse':
> : undefined reference to `WNewCallRec'
> y.tab.o(.text+0x19eb): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x1a8f): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x1ad0): In function `yyparse':
> : undefined reference to `WNewArgVal'
> y.tab.o(.text+0x1c0f): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x1d15): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x1d7a): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> y.tab.o(.text+0x1dfa): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x1e54): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> y.tab.o(.text+0x1ec9): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> y.tab.o(.text+0x1f78): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x1f8c): In function `yyparse':
> : undefined reference to `DoDimsizes'
> y.tab.o(.text+0x202c): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> y.tab.o(.text+0x20b9): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x2116): In function `yyparse':
> : undefined reference to `WNewCallRec'
> y.tab.o(.text+0x24e5): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x25de): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x2f6b): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x300d): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x3079): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x30e5): more undefined references to `current' follow
> y.tab.o(.text+0x321c): In function `yyparse':
> : undefined reference to `WNewArgVal'
> y.tab.o(.text+0x3279): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x32f5): In function `yyparse':
> : undefined reference to `WNewArgVal'
> y.tab.o(.text+0x3325): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x33e1): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x349a): In function `yyparse':
> : undefined reference to `WNewArgVal'
> y.tab.o(.text+0x34eb): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x35b4): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x35f6): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x36d9): In function `yyparse':
> : undefined reference to `WNewArgVal'
> y.tab.o(.text+0x372e): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x37f5): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x3862): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x38f0): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x3b7f): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x3da4): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x3ed6): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> y.tab.o(.text+0x3ef0): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> y.tab.o(.text+0x3f25): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x3f71): In function `yyparse':
> : undefined reference to `NewParamLoc'
> y.tab.o(.text+0x3fb9): In function `yyparse':
> : undefined reference to `WNewVDef'
> y.tab.o(.text+0x40b5): In function `yyparse':
> : undefined reference to `DoTotal'
> y.tab.o(.text+0x4178): In function `yyparse':
> : undefined reference to `NewParamLoc'
> y.tab.o(.text+0x418a): In function `yyparse':
> : undefined reference to `DoDimsizes'
> y.tab.o(.text+0x41ad): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x42a6): In function `yyparse':
> : undefined reference to `NewParamLoc'
> y.tab.o(.text+0x42b8): In function `yyparse':
> : undefined reference to `DoTotal'
> y.tab.o(.text+0x432a): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x437e): In function `yyparse':
> : undefined reference to `NewParamLoc'
> y.tab.o(.text+0x4390): In function `yyparse':
> : undefined reference to `DoDimsizes'
> y.tab.o(.text+0x4418): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x446c): In function `yyparse':
> : undefined reference to `NewParamLoc'
> y.tab.o(.text+0x447f): In function `yyparse':
> : undefined reference to `DoDimsizes'
> y.tab.o(.text+0x44eb): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x45e5): In function `yyparse':
> : undefined reference to `DoTotal'
> y.tab.o(.text+0x4626): In function `yyparse':
> : undefined reference to `DoDimsizes'
> y.tab.o(.text+0x466f): In function `yyparse':
> : undefined reference to `DoDimsizes'
> y.tab.o(.text+0x46e9): In function `yyparse':
> : undefined reference to `DoTotal'
> y.tab.o(.text+0x472a): In function `yyparse':
> : undefined reference to `DoDimsizes'
> y.tab.o(.text+0x4773): In function `yyparse':
> : undefined reference to `DoDimsizes'
> y.tab.o(.text+0x4824): In function `yyparse':
> : undefined reference to `DoTotal'
> y.tab.o(.text+0x4865): In function `yyparse':
> : undefined reference to `DoDimsizes'
> y.tab.o(.text+0x48ae): In function `yyparse':
> : undefined reference to `DoDimsizes'
> y.tab.o(.text+0x4ad7): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x4ba1): In function `yyparse':
> : undefined reference to `current'
> y.tab.o(.text+0x4dc2): In function `yyparse':
> : undefined reference to `current'
> lex.yy.o(.text+0x215): In function `yylex':
> : undefined reference to `WNewWrap'
> lex.yy.o(.text+0x28b): In function `yylex':
> : undefined reference to `current'
> lex.yy.o(.text+0x2d3): In function `yylex':
> : undefined reference to `current'
> lex.yy.o(.text+0x309): In function `yylex':
> : undefined reference to `current'
> wrapit.o(.text+0x475): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x54e): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x660): more undefined references to `current' follow
> wrapit.o(.text+0xdf0): In function `yyparse':
> : undefined reference to `WNewCallRec'
> wrapit.o(.text+0xfb1): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x1060): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x10f2): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x1147): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x1184): In function `yyparse':
> : undefined reference to `WNewArgVal'
> wrapit.o(.text+0x12c4): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x13cd): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x1433): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> wrapit.o(.text+0x14b4): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x150e): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> wrapit.o(.text+0x1583): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> wrapit.o(.text+0x1632): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x1646): In function `yyparse':
> : undefined reference to `DoDimsizes'
> wrapit.o(.text+0x16e6): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> wrapit.o(.text+0x17c0): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x1817): In function `yyparse':
> : undefined reference to `WNewCallRec'
> wrapit.o(.text+0x19eb): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x1a8f): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x1ad0): In function `yyparse':
> : undefined reference to `WNewArgVal'
> wrapit.o(.text+0x1c0f): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x1d15): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x1d7a): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> wrapit.o(.text+0x1dfa): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x1e54): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> wrapit.o(.text+0x1ec9): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> wrapit.o(.text+0x1f78): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x1f8c): In function `yyparse':
> : undefined reference to `DoDimsizes'
> wrapit.o(.text+0x202c): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> wrapit.o(.text+0x20b9): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x2116): In function `yyparse':
> : undefined reference to `WNewCallRec'
> wrapit.o(.text+0x24e5): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x25de): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x2f6b): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x300d): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x3079): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x30e5): more undefined references to `current' follow
> wrapit.o(.text+0x321c): In function `yyparse':
> : undefined reference to `WNewArgVal'
> wrapit.o(.text+0x3279): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x32f5): In function `yyparse':
> : undefined reference to `WNewArgVal'
> wrapit.o(.text+0x3325): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x33e1): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x349a): In function `yyparse':
> : undefined reference to `WNewArgVal'
> wrapit.o(.text+0x34eb): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x35b4): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x35f6): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x36d9): In function `yyparse':
> : undefined reference to `WNewArgVal'
> wrapit.o(.text+0x372e): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x37f5): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x3862): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x38f0): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x3b7f): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x3da4): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x3ed6): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> wrapit.o(.text+0x3ef0): In function `yyparse':
> : undefined reference to `WNewAdditionalSrc'
> wrapit.o(.text+0x3f25): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x3f71): In function `yyparse':
> : undefined reference to `NewParamLoc'
> wrapit.o(.text+0x3fb9): In function `yyparse':
> : undefined reference to `WNewVDef'
> wrapit.o(.text+0x40b5): In function `yyparse':
> : undefined reference to `DoTotal'
> wrapit.o(.text+0x4178): In function `yyparse':
> : undefined reference to `NewParamLoc'
> wrapit.o(.text+0x418a): In function `yyparse':
> : undefined reference to `DoDimsizes'
> wrapit.o(.text+0x41ad): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x42a6): In function `yyparse':
> : undefined reference to `NewParamLoc'
> wrapit.o(.text+0x42b8): In function `yyparse':
> : undefined reference to `DoTotal'
> wrapit.o(.text+0x432a): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x437e): In function `yyparse':
> : undefined reference to `NewParamLoc'
> wrapit.o(.text+0x4390): In function `yyparse':
> : undefined reference to `DoDimsizes'
> wrapit.o(.text+0x4418): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x446c): In function `yyparse':
> : undefined reference to `NewParamLoc'
> wrapit.o(.text+0x447f): In function `yyparse':
> : undefined reference to `DoDimsizes'
> wrapit.o(.text+0x44eb): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x45e5): In function `yyparse':
> : undefined reference to `DoTotal'
> wrapit.o(.text+0x4626): In function `yyparse':
> : undefined reference to `DoDimsizes'
> wrapit.o(.text+0x466f): In function `yyparse':
> : undefined reference to `DoDimsizes'
> wrapit.o(.text+0x46e9): In function `yyparse':
> : undefined reference to `DoTotal'
> wrapit.o(.text+0x472a): In function `yyparse':
> : undefined reference to `DoDimsizes'
> wrapit.o(.text+0x4773): In function `yyparse':
> : undefined reference to `DoDimsizes'
> wrapit.o(.text+0x4824): In function `yyparse':
> : undefined reference to `DoTotal'
> wrapit.o(.text+0x4865): In function `yyparse':
> : undefined reference to `DoDimsizes'
> wrapit.o(.text+0x48ae): In function `yyparse':
> : undefined reference to `DoDimsizes'
> wrapit.o(.text+0x4ad7): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x4ba1): In function `yyparse':
> : undefined reference to `current'
> wrapit.o(.text+0x4dc2): In function `yyparse':
> : undefined reference to `current'
> collect2: ld returned 1 exit status
> make: *** [wrapit77] Error 1
> _______________________________________________
> ncl-install mailing list
> ncl-install at ucar.edu
> http://mailman.ucar.edu/mailman/listinfo/ncl-install


More information about the ncl-install mailing list