summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'instr-to-kodkod/cfg-to-paths/Makefile')
-rw-r--r--instr-to-kodkod/cfg-to-paths/Makefile69
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