# SCCS @(#)Makefile 1.2 - 05/20/99 - 15:34:19 # $log$ # Specify the system to build # choices are: # calc -- calculator using flex lexer # calcx -- calculator using generic lexer # idl -- idl parser using flex lexer # java -- java parser using flex lexer # javax -- java parser using generic lexer E=alpha #DEBUG=-debug BISON=bison -v #BISON=/tools/serl/bison-1.25/bin/bison FLEX=flex #FLEX=/usr/usc/gnu/flex/default/bin/flex #FLEX=/tools/serl/flex-2.5.3/bin/flex all: NPP.class run: NPP.class java NPP $(DEBUG) <$(E).cmds clean: rm -f *.class rm -f YYparse.java YYlex.java util/YYtokentypes.java rm -f *.tab.c *.lex.java *.yy.c NPP.class YYparse.class YYlex.class util/YYtokentypes.class: \ NPP.java YYparse.java YYlex.java util/YYtokentypes.java javac -g NPP.java YYparse.java YYlex.java util/YYtokentypes.java YYparse.java YYlex.java util/YYtokentypes.java: \ $(E).tab.c \ $(E).lex.java \ jbf/yyparse.template \ util/yytokentypes.template jbf/jb jbf/jb -yyerror yyverror $(E).tab.c \ jbf/yyparse.template YYparse.java \ util/yytokentypes.template util/YYtokentypes.java \ $(E).lex.java YYlex.java ################################################## alpha.tab.c alpha.output: alpha.y $(BISON) --no-lines alpha.y alphax.tab.c alphax.cmds: alpha.tab.c rm -f alphax.tab.c alphax.cmds cp alpha.tab.c alphax.tab.c cp alpha.cmds alphax.cmds # Construct lexer using the generic lexer alphax.lex.java: jbf/yylex.generic jbf/YYlexbuffer.class jbf/YYtoken.class cat jbf/yylex.generic | sed -e 's@//alpha>>@@g' > ./alphax.lex.java # Alternate construction using flex alpha.lex.java: alpha.lex jbf/jf jbf/yylex.template \ jbf/YYlexbuffer.class jbf/YYtoken.class chmod 755 jbf/jb chmod 755 jbf/jf $(FLEX) -oalpha.yy.c alpha.lex jbf/jf alpha.yy.c jbf/yylex.template alpha.lex.java ################################################## calc.tab.c calc.output: calc.y $(BISON) --no-lines calc.y calcx.tab.c calcx.cmds: calc.tab.c rm -f calcx.tab.c calcx.cmds cp calc.tab.c calcx.tab.c cp calc.cmds calcx.cmds # Construct lexer using the generic lexer calcx.lex.java: jbf/yylex.generic jbf/YYlexbuffer.class jbf/YYtoken.class cat jbf/yylex.generic | sed -e 's@//calc>>@@g' > ./calcx.lex.java # Alternate construction using flex calc.lex.java: calc.lex jbf/jf jbf/yylex.template \ jbf/YYlexbuffer.class jbf/YYtoken.class $(FLEX) -ocalc.yy.c calc.lex jbf/jf calc.yy.c jbf/yylex.template calc.lex.java idl.tab.c: idl.y $(BISON) --no-lines idl.y idl.lex.java: idl.lex jbf/jf jbf/yylex.template \ jbf/YYlexbuffer.class jbf/YYtoken.class $(FLEX) -oidl.yy.c idl.lex jbf/jf idl.yy.c jbf/yylex.template idl.lex.java java.tab.c: java.y $(BISON) --no-lines java.y javax.tab.c javax.cmds: java.tab.c rm -f javax.tab.c javax.cmds cp java.tab.c javax.tab.c cp java.cmds javax.cmds # Construct lexer using flex java.lex.java: java.lex jbf/yylex.template jbf/jf $(FLEX) -ojava.yy.c java.lex jbf/jf java.yy.c jbf/yylex.template java.lex.java # Construct lexer using a generic lexer javax.lex.java: jbf/yylex.generic jbf/YYlexbuffer.class jbf/YYtoken.class cat jbf/yylex.generic | sed -e 's@//java>>@@g' > ./javax.lex.java # Ignore following jbf/YYtoken.class jbf/YYlexbuffer.class: jbf/YYlexbuffer.java jbf/YYtoken.java (cd jbf; make all) jbf:: (cd jbf; make clean all)