Added upstream from http://ftp.icm.edu.pl/pub/loglan/
[loglan.git] / loglan96 / loglan93 / makefile
1 # CDEFINE : Any symbols used for debugging\r
2 #       RULES_DEBUG       : if defined prints the rules reduced\r
3 #       RULES_ERROR_DEBUG : if defined prints the error rules reduced\r
4 #       TOKENS_DEBUG      : if defined prints the tokens read in the input\r
5 #\r
6 CXX=gcc\r
7 \r
8 LDFLAGS= -lm -lg++\r
9 CDEFINE= \r
10 YACC=bison -y\r
11 YFLAGS=-d -v\r
12 CXXFLAGS= $(CDEFINE) $(CFLAGS)\r
13 \r
14 DIST=   syntax.y lex.l \\r
15         SymTable.cc SymTable.h \\r
16         Objects.cc Objects.h \\r
17         Expr.cc Expr.h \\r
18         Instr.cc Instr.h \\r
19         tstSymbt.cc tstObj.cc tstExpr.cc\\r
20         Makefile \\r
21         test.log test1.log test2.log test3.log test4.log\r
22 \r
23 SYNTAXOBJ=syntax.o lex.o Objects.o Expr.o Instr.o\r
24 \r
25 .l.cc:\r
26         $(LEX) -t $(LFLAGS) $< > $@\r
27 \r
28 all: syntax\r
29 \r
30 check: test\r
31 \r
32 test: all\r
33         ./syntax < test.log 2>&1 > result.out\r
34 \r
35 syntax: $(SYNTAXOBJ)\r
36         $(CXX) -o syntax $(CXXFLAGS) $(SYNTAXOBJ) $(LDFLAGS)\r
37 \r
38 lex.o: lex.cc syntax.h\r
39 \r
40 tstSyntax.o: syntax.cc\r
41         $(CXX) $(CXXFLAGS) -DSYNTAX_ONLY -DRULES_DEBUG -c syntax.cc -o tstSyntax.o\r
42 \r
43 tstLex.o: lex.cc\r
44         $(CXX) $(CXXFLAGS) -DSYNTAX_ONLY -DTOKENS_DEBUG -c lex.cc -o tstLex.o\r
45 \r
46 tstObj: tstObj.o Objects.o\r
47         $(CXX) -o tstOBJ $(CXXFLAGS) $(LDFLAGS) tstObj.o Objects.o\r
48 \r
49 tstSymbt: tstSymbt.o SymTable.o\r
50         $(CXX) -o tstSymbt tstSymbt.o SymTable.o $(CXXFLAGS) $(LDFLAGS)\r
51 \r
52 tstExpr: tstExpr.o Expr.o\r
53         $(CXX) -o tstExpr tstExpr.o Expr.o $(CXXFLAGS) $(LDFLAGS)\r
54 \r
55 tstInstr: tstInstr.o Instr.o Objects.o Expr.o\r
56         $(CXX) -o tstInstr tstInstr.o Instr.o Expr.o Objects.o $(CXXFLAGS) $(LDFLAGS)\r
57 \r
58 tstSyntax: tstSyntax.o tstLex.o\r
59         $(CXX) -o tstSyntax tstSyntax.o tstLex.o $(CXXFLAGS) $(LDFLAGS)\r
60 \r
61 syntax.cc syntax.h: syntax.y\r
62         $(YACC) $(YFLAGS) syntax.y\r
63         mv y.tab.c syntax.cc\r
64         mv y.tab.h syntax.h\r
65         mv y.output syntax.out\r
66 \r
67 clean:\r
68         rm -f syntax.[ch] lex.c *.o syntax.output\r
69         rm -f result.out tst*.o\r
70 \r
71 realclean: clean\r
72         rm -f syntax tst*\r
73 \r
74 dist:\r
75         tar cvf loglan.tar $(DIST)\r