Added:
[repair.git] / Repair / RepairCompiler / MCC / Makefile
1 # Model Constraint Compiler MAKEFILE
2 # Auth: Daniel Roy, David Ziegler
3
4 PROGRAM = MCC
5 SHELL = /bin/sh
6 TARGET = $(PROGRAM)-working
7
8 SCANNER = Lexer
9
10 SYMBOLS = Sym
11 PARSERS = \
12 MDLParser.java MDLParser.class \
13 TDLParser.java TDLParser.class \
14 CDLParser.java CDLParser.class \
15 SDLParser.java SDLParser.class
16
17 COMPILER_CLASS = Compiler.class
18 CLI_CLASS = CLI.class
19 OTHER_CLASS = State.class LineCount.class Symbol.class
20
21 IR_CLASS = IR/ParseNode.class IR/ParseNodeVector.class IR/ParseNodeDOTVisitor.class \
22 IR/SemanticChecker.class IR/Expr.class IR/VarExpr.class IR/OpExpr.class IR/DotExpr.class \
23 IR/LiteralExpr.class IR/IntegerLiteralExpr.class IR/BooleanLiteralExpr.class \
24 IR/TokenLiteralExpr.class IR/Descriptor.class IR/TypeDescriptor.class IR/StructureTypeDescriptor.class \
25 IR/MissingTypeDescriptor.class IR/ReservedTypeDescriptor.class IR/ArrayDescriptor.class \
26 IR/FieldDescriptor.class IR/LabelDescriptor.class IR/ReservedFieldDescriptor.class \
27 IR/SymbolTable.class IR/IRException.class IR/Opcode.class IR/SimpleIRErrorReporter.class \
28 IR/IRErrorReporter.class IR/SetDescriptor.class IR/MissingSetDescriptor.class \
29 IR/RelationDescriptor.class IR/ReservedSetDescriptor.class IR/TokenSetDescriptor.class \
30 IR/Quantifier.class IR/SetQuantifier.class IR/ImageSetExpr.class \
31 IR/CastExpr.class IR/SizeofExpr.class IR/SetExpr.class IR/VarDescriptor.class \
32 IR/LogicStatement.class IR/Predicate.class IR/InclusionPredicate.class \
33 IR/ExprPredicate.class IR/Constraint.class IR/RelationExpr.class \
34 IR/RelationQuantifier.class IR/ForQuantifier.class IR/GraphNode.class \
35 IR/DependencyBuilder.class IR/RelationInclusion.class IR/SetInclusion.class \
36 IR/TupleOfExpr.class IR/ElementOfExpr.class IR/Rule.class IR/Inclusion.class \
37 IR/NaiveGenerator.class IR/CodeWriter.class IR/SymbolTableStack.class \
38 IR/StandardCodeWriter.class IR/WorklistGenerator.class IR/WorkList.class \
39 IR/Optimizer.class IR/MetaInclusion.class IR/SizeofFunction.class \
40 IR/RelationFunctionExpr.class
41
42 #MODEL_CLASS = Field.class Literal.class Quantifier.class               \
43 #Set.class TypeElement.class                                            \
44 #MDElementExpr.class Rule.class Guard.class Type.class                  \
45 #ParseException.class ModelInclusionConstraint.class
46
47 ALL_CLASS = $(COMPILER_CLASS) $(CLI_CLASS) $(OTHER_CLASS) $(IR_CLASS)
48
49 ALLCLASSES = *.class IR/*.class
50 ALLJAVA = *.java IR/*.java
51
52 .PHONY: java clean all tests javadoc
53
54 all: $(TARGET).tar.gz $(TARGET).jar 
55
56 tests: $(TARGET).tar.gz $(TARGET).jar
57 #       ./tests.pl scanner
58
59 $(TARGET).tar.gz: $(TARGET).tar
60         gzip $(TARGET).tar -c > $(TARGET).tar.gz
61
62 $(TARGET).tar: $(ALLJAVA) Makefile $(SCANNER).lex 
63         tar cf $@ $(ALLJAVA) Makefile $(SCANNER).lex
64
65 $(TARGET).jar: java
66         jar cf $@ $(ALLCLASSES)
67
68 clean:
69         rm -f $(ALLCLASSES)
70         rm -f $(SCANNER).lex.java $(SCANNER).java
71         rm -f MDLParser.java TDLParser.java CDLParser.java SDLParser.java Sym.java
72         rm -f $(TARGET).tar.gz $(TARGET).tar $(TARGET).jar
73         rm -f *~ IR/*~
74
75 java: $(PARSERS) $(SCANNER).class $(ALL_CLASS)
76
77 parser: $(PARSERS) $(SCANNER).java
78
79 %Parser.java: %.cup
80         java -classpath ../ java_cup.Main -nosummary -symbols $(SYMBOLS) -parser $*Parser < $*.cup
81         javac $(SYMBOLS).java
82
83 %.class: %.java
84         javac -classpath ../ -source 1.4 $<
85 #       jikes -classpath $(CLASSPATH):../ $<
86
87 %.lex.java: %.lex
88         java -classpath ../ JLex.Main $<
89
90 $(SCANNER).java: $(SCANNER).lex.java
91         cp $(SCANNER).lex.java $(SCANNER).java
92         rm $(SCANNER).lex.java
93
94 javadoc:
95         javadoc -package -d ../javadoc/ -windowtitle MCC $(ALLJAVA)
96