| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'instr-to-kodkod/cfg-to-paths')
| -rw-r--r-- | instr-to-kodkod/cfg-to-paths/Makefile | 69 | 
1 files changed, 50 insertions, 19 deletions
| 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 | 


