summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-08-03 16:57:20 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-08-03 16:57:20 +0200
commit71f3a1bb063087e51f2b2e2ef940e773e2e084d1 (patch)
tree424f694ff9f711623fb06a184309d44fd1ef9a06
parentb16812434d54a9d7480564cbf4f299168ca6a1a1 (diff)
Other than the pretty-printer, it seems done.
-rw-r--r--Makefile6
-rw-r--r--ast-to-instr/Makefile1
-rw-r--r--instr-to-kodkod/Makefile29
-rw-r--r--instr-to-kodkod/cfg-to-paths/Makefile69
-rw-r--r--instr-to-kodkod/parser/Makefile6
5 files changed, 74 insertions, 37 deletions
diff --git a/Makefile b/Makefile
index 4846880..70bf737 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
## Makefile Parameters #########################################################
-LEVEL_FILES = $(wildcard $(PWD)/data/level/*.lvl)
-PROPERTY_FILES = $(wildcard $(PWD)/data/property/*.pro)
-AST_FILE = $(PWD)/data/ast/best_chronometer_ever.xml
+LEVEL_FILES = $(wildcard ${CURDIR}/data/level/*.lvl)
+PROPERTY_FILES = $(wildcard ${CURDIR}/data/property/*.pro)
+AST_FILE = ${CURDIR}/data/ast/best_chronometer_ever.xml
TMP_DIR = /tmp/tabellion
MODEL_DIR = $(TMP_DIR)/mod
diff --git a/ast-to-instr/Makefile b/ast-to-instr/Makefile
index 86a6d88..bb50219 100644
--- a/ast-to-instr/Makefile
+++ b/ast-to-instr/Makefile
@@ -52,6 +52,7 @@ $(MODEL_DIR)/structural.mod: $(CLASSES) $(AST_FILE)
clean:
rm -f $(CLASSES)
rm -f $(MODEL_DIR)/*.mod
+ rm -f $(MODEL_DIR)/*.map
%.class: %.java
$(JAVAC) -cp $(CLASSPATH) $<
diff --git a/instr-to-kodkod/Makefile b/instr-to-kodkod/Makefile
index 45c752a..dd94b48 100644
--- a/instr-to-kodkod/Makefile
+++ b/instr-to-kodkod/Makefile
@@ -14,9 +14,9 @@ ifndef MODEL_DIR
MODEL_DIR =
endif
-#### Where to store the CFG models
-ifndef CFG_MODEL_DIR
-CFG_MODEL_DIR = $(MODEL_DIR)/cfg/
+#### Where to store & find the PATH models
+ifndef PATH_MODEL_DIR
+PATH_MODEL_DIR = $(MODEL_DIR)/path/
endif
#### Where to output the solutions.
@@ -58,8 +58,8 @@ ifeq ($(strip $(MODEL_DIR)),)
$(error No MODEL_DIR defined as parameter.)
endif
-ifeq ($(strip $(CFG_MODEL_DIR)),)
-$(error No CFG_MODEL_DIR defined as parameter.)
+ifeq ($(strip $(PATH_MODEL_DIR)),)
+$(error No PATH_MODEL_DIR defined as parameter.)
endif
ifeq ($(strip $(SOL_DIR)),)
@@ -85,6 +85,7 @@ endif
################################################################################
CLASSPATH = "kodkod.jar:./src/:./parser/:org.sat4j.core.jar:antlr-4.7-complete.jar"
REQUIRED_JARS = kodkod.jar org.sat4j.core.jar antlr-4.7-complete.jar
+ANTLR_JAR = ${CURDIR}/antlr-4.7-complete.jar
## Makefile Magic ##############################################################
SOURCES = $(wildcard src/*.java)
@@ -92,31 +93,35 @@ CLASSES = $(SOURCES:.java=.class)
SOLUTION_FILES = $(addprefix $(SOL_DIR)/,$(notdir $(PROPERTY_FILES:.pro=.sol)))
MODEL_FILES = \
$(MODEL_DIR)/structural.mod \
- $(filter-out %structural.mod,$(wildcard $(MODEL_DIR)/*.mod))
+ $(MODEL_DIR)/depth.mod \
+ $(filter-out %structural.mod,$(wildcard $(MODEL_DIR)/cfg_*.mod))
+PARSER_SOURCES = $(wildcard parser/*.g4)
+PARSER_CLASSES = $(PARSER_SOURCES:.g4=.class)
export
## Makefile Rules ##############################################################
-run: cfg-generator parser $(SOLUTION_FILES)
+run: cfg-generator $(PARSER_CLASSES) $(SOLUTION_FILES) $(CLASSES)
cfg-generator:
$(MAKE) -C cfg-to-paths
-parser: antlr-4.7-complete.jar kodkod.jar
+$(PARSER_CLASSES): antlr-4.7-complete.jar kodkod.jar $(PARSER_SOURCES)
$(MAKE) -C parser
clean:
$(MAKE) -C parser clean
$(MAKE) -C cfg-to-paths clean
rm -f $(CLASSES)
+ rm -f $(SOL_DIR)/*.sol
-%.sol: cfg-generator parser $(CLASSES) $(PROPERTY_FILES) $(MODEL_FILES) $(LEVEL_FILES)
+%.sol: cfg-generator $(PARSER_CLASSES) $(CLASSES) $(PROPERTY_FILES) $(MODEL_FILES) $(LEVEL_FILES)
$(JAVA) -cp $(CLASSPATH) Main $@ \
$(filter %$(basename $(notdir $@)).pro,$(PROPERTY_FILES)) \
$(LEVEL_FILES) \
- $(MODEL_FILES)
- -v
+ $(MODEL_FILES) \
+ $(wildcard $(PATH_MODEL_DIR)/*.mod)
-%.class: %.java $(REQUIRED_JARS) parser
+src/%.class: src/%.java $(PARSER_CLASSES) $(REQUIRED_JARS)
$(JAVAC) -cp $(CLASSPATH) $<
%.jar:
diff --git a/instr-to-kodkod/cfg-to-paths/Makefile b/instr-to-kodkod/cfg-to-paths/Makefile
index c9d14be..3fa5e5c 100644
--- a/instr-to-kodkod/cfg-to-paths/Makefile
+++ b/instr-to-kodkod/cfg-to-paths/Makefile
@@ -1,35 +1,66 @@
-## Target(s) Configuration #####################################################
-MODEL_FILES = $(wildcard ../ast-to-instr/cfg_*.mod)
-OUTPUT_FILES = $(patsubst ../ast-to-instr/%.mod,%.cfg.mod,$(MODEL_FILES))
+## Parameters ##################################################################
+#### Where to find the model
+ifndef MODEL_DIR
+MODEL_DIR =
+endif
-## Executables #################################################################
-JAVAC = javac
+#### Where to store the CFG models
+ifndef PATH_MODEL_DIR
+PATH_MODEL_DIR =
+endif
+
+#### Binaries
+###### JRE binary
+ifndef JAVA
JAVA = java
+endif
+
+###### JDK binary
+ifndef JAVAC
+JAVAC = javac
+endif
+
+## Parameters Sanity Check #####################################################
+ifeq ($(strip $(MODEL_DIR)),)
+$(error No MODEL_DIR defined as parameter.)
+endif
+
+ifeq ($(strip $(PATH_MODEL_DIR)),)
+$(error No CFG_MODEL_DIR defined as parameter.)
+endif
-## Java Config #################################################################
+ifeq ($(strip $(JAVA)),)
+$(error No Java executable defined as parameter.)
+endif
+
+ifeq ($(strip $(JAVAC)),)
+$(error No Java compiler defined as parameter.)
+endif
+
+################################################################################
CLASSPATH = "./src/"
+PATTERN = 's/\(is_start_node ([0-9]+).*/\1/p'
## Makefile Magic ##############################################################
SOURCES = $(wildcard src/*.java)
CLASSES = $(SOURCES:.java=.class)
+CFG_MODEL_FILES = $(wildcard $(MODEL_DIR)/cfg_*.mod)
+PATH_MODEL_FILES = $(addprefix $(PATH_MODEL_DIR)/,$(notdir $(CFG_MODEL_FILES)))
-## Makefile Rules ##############################################################
-
-all: $(CLASSES) $(OUTPUT_FILES)
-clean:
- rm -f $(CLASSES)
- rm -f *.mod
-
-#run: $(CLASSES)
-# $(JAVA) -cp $(CLASSPATH) Main $(MODEL_FILE) $(ROOT_NODE) $(ID_PREFIX) \
-# $(OUTPUT_FILE)
+## Makefile Rules ##############################################################
+all: $(PATH_MODEL_DIR) $(PATH_MODEL_FILES) $(CLASSES)
%.class: %.java
$(JAVAC) -cp $(CLASSPATH) $<
-PATTERN = 's/\(is_start_node ([0-9]+).*/\1/p'
-
-%.cfg.mod: ../ast-to-instr/%.mod $(CLASSES)
+$(PATH_MODEL_DIR)/%: $(MODEL_DIR)/% $(CLASSES)
$(eval ROOT_NODE := $(shell cat $< | grep 'is_start_node' | sed -En $(PATTERN)))
$(JAVA) -cp $(CLASSPATH) Main $< $(ROOT_NODE) "p$(ROOT_NODE)_" $@
+
+$(PATH_MODEL_DIR):
+ mkdir -p $(PATH_MODEL_DIR)
+
+clean:
+ rm -f $(CLASSES)
+ rm -f $(PATH_MODEL_DIR)/*.mod
diff --git a/instr-to-kodkod/parser/Makefile b/instr-to-kodkod/parser/Makefile
index bcc216a..435a687 100644
--- a/instr-to-kodkod/parser/Makefile
+++ b/instr-to-kodkod/parser/Makefile
@@ -1,17 +1,17 @@
## Parameters ##################################################################
#### ANTLR's Jar
ifndef ANTLR_JAR
-ANTLR_JAR = ../antlr-4.7-complete.jar
+ANTLR_JAR = ${CURDIR}/../antlr-4.7-complete.jar
endif
#### KODKOD's Jar
ifndef KODKOD_JAR
-KODKOD_JAR = ../kodkod.jar
+KODKOD_JAR = ${CURDIR}/../kodkod.jar
endif
#### Main program's sources
ifndef MAIN_PROGRAM_SRC
-MAIN_PROGRAM_SRC = ../src/
+MAIN_PROGRAM_SRC = ${CURDIR}/../src/
endif
#### JRE binary