| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-08-03 16:57:20 +0200 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-08-03 16:57:20 +0200 |
| commit | 71f3a1bb063087e51f2b2e2ef940e773e2e084d1 (patch) | |
| tree | 424f694ff9f711623fb06a184309d44fd1ef9a06 | |
| parent | b16812434d54a9d7480564cbf4f299168ca6a1a1 (diff) | |
Other than the pretty-printer, it seems done.
| -rw-r--r-- | Makefile | 6 | ||||
| -rw-r--r-- | ast-to-instr/Makefile | 1 | ||||
| -rw-r--r-- | instr-to-kodkod/Makefile | 29 | ||||
| -rw-r--r-- | instr-to-kodkod/cfg-to-paths/Makefile | 69 | ||||
| -rw-r--r-- | instr-to-kodkod/parser/Makefile | 6 |
5 files changed, 74 insertions, 37 deletions
@@ -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 |


