| summaryrefslogtreecommitdiff | 
path: root/instr-to-kodkod
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 /instr-to-kodkod | |
| parent | b16812434d54a9d7480564cbf4f299168ca6a1a1 (diff) | |
Other than the pretty-printer, it seems done.
Diffstat (limited to 'instr-to-kodkod')
| -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 | 
3 files changed, 70 insertions, 34 deletions
| 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 | 


