summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-08-03 16:02:19 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-08-03 16:02:19 +0200
commitb16812434d54a9d7480564cbf4f299168ca6a1a1 (patch)
treef923ee4b4705bb792f15be6304eee2f108160593
parent90bb7e959496c3a12bebe055f6344b9f06f22809 (diff)
The Makefile of instr-to-kodkod's parser is done.
-rw-r--r--instr-to-kodkod/Makefile2
-rw-r--r--instr-to-kodkod/parser/Makefile64
2 files changed, 62 insertions, 4 deletions
diff --git a/instr-to-kodkod/Makefile b/instr-to-kodkod/Makefile
index 815c527..45c752a 100644
--- a/instr-to-kodkod/Makefile
+++ b/instr-to-kodkod/Makefile
@@ -101,7 +101,7 @@ run: cfg-generator parser $(SOLUTION_FILES)
cfg-generator:
$(MAKE) -C cfg-to-paths
-parser: antlr-4.7-complete.jar
+parser: antlr-4.7-complete.jar kodkod.jar
$(MAKE) -C parser
clean:
diff --git a/instr-to-kodkod/parser/Makefile b/instr-to-kodkod/parser/Makefile
index 8f36479..bcc216a 100644
--- a/instr-to-kodkod/parser/Makefile
+++ b/instr-to-kodkod/parser/Makefile
@@ -1,8 +1,66 @@
+## Parameters ##################################################################
+#### ANTLR's Jar
+ifndef ANTLR_JAR
+ANTLR_JAR = ../antlr-4.7-complete.jar
+endif
+
+#### KODKOD's Jar
+ifndef KODKOD_JAR
+KODKOD_JAR = ../kodkod.jar
+endif
+
+#### Main program's sources
+ifndef MAIN_PROGRAM_SRC
+MAIN_PROGRAM_SRC = ../src/
+endif
+
+#### JRE binary
+ifndef JAVA
+JAVA = java
+endif
+
+#### JDK binary
+ifndef JAVAC
+JAVAC = javac
+endif
+
+## Parameters Sanity Check #####################################################
+ifeq ($(strip $(ANTLR_JAR)),)
+$(error No ANTLR_JAR defined as parameter.)
+endif
+
+ifeq ($(strip $(KODKOD_JAR)),)
+$(error No ANTLR_JAR defined as parameter.)
+endif
+
+ifeq ($(strip $(MAIN_PROGRAM_SRC)),)
+$(error No MAIN_PROGRAM_SRC defined as parameter.)
+endif
+
+ifeq ($(strip $(JAVA)),)
+$(error No Java executable defined as parameter.)
+endif
+
+ifeq ($(strip $(JAVAC)),)
+$(error No Java compiler defined as parameter.)
+endif
+
+################################################################################
+ANTLR_SOURCES = $(wildcard *.g4)
+JAVA_SOURCES = $(ANTLR_SOURCES:.g4=.java)
+CLASSES = $(JAVA_SOURCES:.java=.class)
+CLASSPATH = ".:$(MAIN_PROGRAM_SRC):$(KODKOD_JAR):$(ANTLR_JAR)"
+
+compile: $(CLASSES)
+
PropertyParser.java: PropertyLexer.g4 PropertyParser.g4
- java -jar ../antlr-4.7-complete.jar PropertyLexer.g4 PropertyParser.g4
clean:
rm -f *.java *.class *.tokens
-#test_run:
-# java -cp ".:../antlr-4.7-complete.jar" org.antlr.v4.gui.TestRig Property prog -gui
+# Pattern rules can be used to generate multiple target in a single action.
+PropertyLexer%java PropertyParser%java: $(ANTLR_SOURCES)
+ $(JAVA) -jar $(ANTLR_JAR) $^
+
+%.class: %.java
+ $(JAVAC) -cp $(CLASSPATH) $<