Checking in specs
[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 CLASSPATH = /usr/java/j2sdk1.4.2_03/jre/lib/charsets.jar:/usr/java/j2sdk1.4.2_03/jre/lib/jce.jar:/usr/java/j2sdk1.4.2_03/jre/lib/jsse.jar:/usr/java/j2sdk1.4.2_03/jre/lib/plugin.jar:/usr/java/j2sdk1.4.2_03/jre/lib/rt.jar:/usr/java/j2sdk1.4.2_03/jre/lib/sunrsasign.jar
18
19 COMPILER_CLASS = Compiler.class
20 CLI_CLASS = CLI.class
21 OTHER_CLASS = State.class LineCount.class Symbol.class
22
23 IR_CLASS = IR/ParseNode.class IR/ParseNodeVector.class                  \
24 IR/ParseNodeDOTVisitor.class IR/SemanticChecker.class IR/Expr.class     \
25 IR/VarExpr.class IR/OpExpr.class IR/DotExpr.class IR/LiteralExpr.class  \
26 IR/IntegerLiteralExpr.class IR/BooleanLiteralExpr.class                 \
27 IR/TokenLiteralExpr.class IR/Descriptor.class IR/TypeDescriptor.class   \
28 IR/StructureTypeDescriptor.class IR/MissingTypeDescriptor.class         \
29 IR/ReservedTypeDescriptor.class IR/ArrayDescriptor.class                \
30 IR/FieldDescriptor.class IR/LabelDescriptor.class                       \
31 IR/ReservedFieldDescriptor.class IR/SymbolTable.class                   \
32 IR/IRException.class IR/Opcode.class IR/SimpleIRErrorReporter.class     \
33 IR/IRErrorReporter.class IR/SetDescriptor.class                         \
34 IR/MissingSetDescriptor.class IR/RelationDescriptor.class               \
35 IR/ReservedSetDescriptor.class IR/TokenSetDescriptor.class              \
36 IR/Quantifier.class IR/SetQuantifier.class IR/ImageSetExpr.class        \
37 IR/CastExpr.class IR/SizeofExpr.class IR/SetExpr.class                  \
38 IR/VarDescriptor.class IR/LogicStatement.class IR/Predicate.class       \
39 IR/InclusionPredicate.class IR/ExprPredicate.class IR/Constraint.class  \
40 IR/RelationExpr.class IR/RelationQuantifier.class                       \
41 IR/ForQuantifier.class IR/GraphNode.class IR/DependencyBuilder.class    \
42 IR/RelationInclusion.class IR/SetInclusion.class IR/TupleOfExpr.class   \
43 IR/ElementOfExpr.class IR/Rule.class IR/Inclusion.class                 \
44 IR/NaiveGenerator.class IR/CodeWriter.class IR/SymbolTableStack.class   \
45 IR/StandardCodeWriter.class IR/WorklistGenerator.class                  \
46 IR/WorkList.class IR/Optimizer.class IR/MetaInclusion.class             \
47 IR/SizeofFunction.class IR/RelationFunctionExpr.class                   \
48 IR/RepairGenerator.class IR/AbstractInterferes.class                    \
49 IR/PrettyPrinter.class IR/AbstractRepair.class IR/Quantifiers.class     \
50 IR/Binding.class IR/ConcreteInterferes.class IR/Conjunction.class       \
51 IR/Repair.class IR/ConsequenceNode.class IR/Cost.class                  \
52 IR/DNFConstraint.class IR/DNFExpr.class IR/DNFPredicate.class           \
53 IR/RuleConjunction.class IR/DNFRule.class IR/ScopeNode.class            \
54 IR/SemanticAnalyzer.class IR/GraphAnalysis.class IR/SetAnalysis.class   \
55 IR/Sources.class IR/StructureGenerator.class IR/ImplicitSchema.class    \
56 IR/Termination.class IR/LinedMessage.class IR/TermNode.class            \
57 IR/UpdateNode.class IR/MultUpdateNode.class IR/Updates.class            \
58 IR/Walkable.class
59
60 #MODEL_CLASS = Field.class Literal.class Quantifier.class Set.class     \
61 #TypeElement.class MDElementExpr.class Rule.class Guard.class           \
62 #Type.class ParseException.class ModelInclusionConstraint.class
63
64 ALL_CLASS = $(COMPILER_CLASS) $(CLI_CLASS) $(OTHER_CLASS) $(IR_CLASS)
65
66 ALLCLASSES = *.class IR/*.class
67 ALLJAVA = *.java IR/*.java
68
69 .PHONY: java clean all tests javadoc
70
71 all: $(TARGET).tar.gz $(TARGET).jar 
72
73 tests: $(TARGET).tar.gz $(TARGET).jar
74 #       ./tests.pl scanner
75
76 $(TARGET).tar.gz: $(TARGET).tar
77         gzip $(TARGET).tar -c > $(TARGET).tar.gz
78
79 $(TARGET).tar: $(ALLJAVA) Makefile $(SCANNER).lex 
80         tar cf $@ $(ALLJAVA) Makefile $(SCANNER).lex
81
82 $(TARGET).jar: java
83         jar cf $@ $(ALLCLASSES)
84
85 clean:
86         rm -f $(ALLCLASSES)
87         rm -f $(SCANNER).lex.java $(SCANNER).java
88         rm -f MDLParser.java TDLParser.java CDLParser.java SDLParser.java Sym.java
89         rm -f $(TARGET).tar.gz $(TARGET).tar $(TARGET).jar
90         rm -f *~ IR/*~
91
92 java: $(PARSERS) $(SCANNER).class $(ALL_CLASS)
93
94 parser: $(PARSERS) $(SCANNER).java
95
96 %Parser.java: %.cup
97         java -classpath ../ java_cup.Main -nosummary -symbols $(SYMBOLS) -parser $*Parser < $*.cup
98         javac $(SYMBOLS).java
99
100 %.class: %.java
101         javac -classpath ../ -source 1.4 $<
102 #       jikes -classpath $(CLASSPATH):../ $<
103
104 %.lex.java: %.lex
105         java -classpath ../ JLex.Main $<
106
107 $(SCANNER).java: $(SCANNER).lex.java
108         cp $(SCANNER).lex.java $(SCANNER).java
109         rm $(SCANNER).lex.java
110
111 javadoc:
112         javadoc -source 1.4 -classpath ../ -package -d ../javadoc/ -windowtitle MCC $(ALLJAVA)
113