| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'instr-to-kodkod/Makefile')
| -rw-r--r-- | instr-to-kodkod/Makefile | 73 |
1 files changed, 36 insertions, 37 deletions
diff --git a/instr-to-kodkod/Makefile b/instr-to-kodkod/Makefile index 322205f..0523a46 100644 --- a/instr-to-kodkod/Makefile +++ b/instr-to-kodkod/Makefile @@ -1,57 +1,48 @@ ## Parameters ################################################################## #### Where to find the level files -ifndef LEVEL_FILES -LEVEL_FILES = -endif +LEVEL_FILES ?= $(wildcard $(LEVELS_DIR)/*.lvl) #### Where to find the properties to verify -ifndef PROPERTY_FILES -PROPERTY_FILES = -endif +PROPERTIES_DIR ?= -#### Where to find the model -ifndef MODEL_DIR -MODEL_DIR = -endif +#### What are the targetted properties +PROPERTIES ?= + +#### Where to find the properties to verify +ALL_PROPERTY_FILES ?= $(wildcard $(PROPERTIES_DIR)/*.pro) + +MODEL_DIR ?= #### Where to store & find the PATH models -ifndef PATH_MODEL_DIR -PATH_MODEL_DIR = $(MODEL_DIR)/path/ -endif +PATH_MODEL_DIR ?= $(MODEL_DIR)/path/ #### Where to output the solutions. -ifndef SOL_DIR -SOL_DIR = -endif +SOL_DIR ?= #### Where to get the missing Jar files. -ifndef JAR_SOURCE -JAR_SOURCE = "https://noot-noot.org/tabellion/jar/" -endif +JAR_SOURCE ?= "https://noot-noot.org/tabellion/jar/" #### Binaries ###### JRE binary -ifndef JAVA JAVA = java -endif ###### JDK binary -ifndef JAVAC JAVAC = javac -endif ##### Downloader -ifndef DOWNLOADER DOWNLOADER = wget -endif ## Parameters Sanity Check ##################################################### ifeq ($(strip $(LEVEL_FILES)),) $(error No LEVEL_FILES defined as parameter.) endif -ifeq ($(strip $(PROPERTY_FILES)),) -$(error No PROPERTY_FILES defined as parameter.) +ifeq ($(strip $(PROPERTIES_DIR)),) +$(error No PROPERTIES_DIR defined as parameter.) +endif + +ifeq ($(strip $(PROPERTIES)),) +$(error No PROPERTIES defined as parameter.) endif ifeq ($(strip $(MODEL_DIR)),) @@ -90,9 +81,9 @@ ANTLR_JAR = ${CURDIR}/antlr-4.7-complete.jar ## Makefile Magic ############################################################## SOURCES = $(wildcard src/*.java) CLASSES = $(SOURCES:.java=.class) -SOLUTION_FILES = $(addprefix $(SOL_DIR)/,$(notdir $(PROPERTY_FILES:.pro=.sol))) +SOLUTION_FILES = $(addsuffix .sol,$(addprefix $(SOL_DIR)/,$(notdir $(PROPERTIES)))) DEPENDENCY_FILES = \ - $(addprefix $(DEPENDENCIES_DIR)/,$(notdir $(PROPERTY_FILES:.pro=.deps))) + $(addprefix $(DEPENDENCIES_DIR)/,$(notdir $(ALL_PROPERTY_FILES:.pro=.deps))) MODEL_FILES = \ $(MODEL_DIR)/structural.mod \ $(MODEL_DIR)/depths.mod \ @@ -118,9 +109,11 @@ clean: rm -f $(CLASSES) rm -f $(SOL_DIR)/*.sol rm -f $(DEPENDENCY_FILES) + rm -f $(wildcard $(MODEL_INFERRED_DIR)/*.mod) clean_model: $(MAKE) -C cfg-to-paths clean_model + rm -f $(wildcard $(MODEL_INFERRED_DIR)/*.mod) clean_solutions: rm -f $(SOL_DIR)/*.sol @@ -133,18 +126,23 @@ cfg-generator: $(PARSER_CLASSES): antlr-4.7-complete.jar kodkod.jar $(PARSER_SOURCES) $(MAKE) -C parser -$(SOL_DIR)/%.sol: \ - $(DEPENDENCIES_DIR)/%.deps $(PROPERTY_FILES) $(MODEL_FILES) $(LEVEL_FILES) - touch $@ +-include $(wildcard $(DEPENDENCIES_DIR)/*) + +$(SOLUTION_FILES): $(SOL_DIR)/%.sol: $(PROPERTIES_DIR)/%.pro \ + $(SOL_DIR)/%.sol.ready $(MODEL_FILES) $(LEVEL_FILES) +# $(addprefix $(SOL_DIR)/,$(addsuffix .sol,$($(DEPENDENCIES_DIR)/%.deps))) + echo "$^" $(JAVA) -cp $(CLASSPATH) Main $@ -v \ - $(filter %$(basename $(notdir $@)).pro,$(PROPERTY_FILES)) \ + $< \ $(LEVEL_FILES) \ $(MODEL_FILES) \ + $(MODEL_INFERRED_DIR)/*.mod \ $(wildcard $(PATH_MODEL_DIR)/*.mod) - -$(DEPENDENCY_FILES): $(PROPERTY_FILES) - sed -n 's/^#require \"\(.*\)\"$$/\1/p' \ - $(filter %$(basename $(notdir $@)).pro,$(PROPERTY_FILES)) > $@ + echo "" >> $@ + $(MAKE) -C .. \ + PROPERTIES=$(basename $(notdir $@)) \ + TEMPLATE_DIR=$(TO_PRED_TEMPLATE_DIR) \ + NICE_MESSAGE=$(MODEL_INFERRED_DIR)/$(basename $(notdir $@)).mod src/%.class: src/%.java $(PARSER_CLASSES) $(REQUIRED_JARS) $(JAVAC) -cp $(CLASSPATH) $< @@ -152,3 +150,4 @@ src/%.class: src/%.java $(PARSER_CLASSES) $(REQUIRED_JARS) %.jar: echo "Attempting to download missing jar '$@'..." $(DOWNLOADER) "$(JAR_SOURCE)/$@" + |


