1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
/*
* expression library
*/
.SOURCE.h : ../ast /home/erg/src/gviz/build/sgi.mips3/include
CCFLAGS = $(CC.OPTIMIZE) $(CC.SUFFIX.DYNAMIC:@?$(CC.DLL)??)
/* NOTE: -o mam bug in -I for exparse.c if exparse.y not first */
expr 2.0 :LIBRARY: RELEASE expr.h exlib.h exgram.h exparse.y \
excc.c excontext.c exdata.c exeval.c exexpr.c \
exerror.c exopen.c exrewind.c extoken.c extype.c \
exzero.c
if CC.HOSTTYPE == "*.i386" || "$(-mam)" == "static*"
exeval.o : .CC.NOOPTIMIZE
end
exop.h : exparse.h
{
echo "static const char* exop[] = {"
$(SED) -e '/^[ ]*#[ ]*define[ ][ ]*[A-Z]/!d' -e 's/^[ ]*#[ ]*define[ ]*\([A-Z0-9_]*\).*/ "\1",/'
echo "};"
} < $(*) > $(<)
$(INCLUDEDIR) :INSTALLPROTO: expr.h
$(INCLUDEDIR) :INSTALLDIR: exparse.h
YACCFIX.exparse = ex
/*
* NOTE: the solaris yacc botches the yyact[] indices (large positive)
*/
YACC.BOTCH.PATTERN = ',[0-9][0-9][0-9][0-9][0-9]*,'
YACC.BOTCH.FIX : .VIRTUAL .FORCE .AFTER
if $(GREP) -c $(YACC.BOTCH.PATTERN) $(<<:N=*.c) >/dev/null
then : $(YACC) is botched : yyact indices are bogus :
$(CP) $(<<:N=*.c:/^/O/:T=F) $(<<:N=*.c)
$(CP) $(<<:N=*.h:/^/O/:T=F) $(<<:N=*.h)
else for i in $(<<:N=*.h) $(<<:N=*.c)
do $(SED) -e '1i\
/* : : generated by a yacc that works -- solaris take note : : */' -e '/^[ ]*#[ ]*[il][di][en][ne][t]*[ ]["0-9].*/s,,/* & */,' -e '/^[ ]*#[ ]*include[ ]*"exlib\.h"/i\
#ifndef gettxt\
#define gettxt(h,t) (t)\
#endif' $i > O$i
done
fi
%.c %.h : %.y YACC.BOTCH.FIX
:SAVE: Oexparse.c Oexparse.h
|