From 0fc661ebabdf55b8e0d26c4f85f0547c106b6549 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Thu, 21 Sep 2017 15:26:01 +0200 Subject: Got some property dependencies to work. --- prop_to_pred/Makefile | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 prop_to_pred/Makefile (limited to 'prop_to_pred/Makefile') diff --git a/prop_to_pred/Makefile b/prop_to_pred/Makefile new file mode 100644 index 0000000..50cd36a --- /dev/null +++ b/prop_to_pred/Makefile @@ -0,0 +1,53 @@ +## Parameters ################################################################## +TO_PRED_TEMPLATE_DIR ?= +INFERRED_LEVEL_FILE ?= +PARSING_SCRIPT ?= ${CURDIR}/parser.py + +## Parameters Sanity Check ##################################################### +ifeq ($(strip $(PARSING_SCRIPT)),) +$(error No PARSING_SCRIPT defined as parameter.) +endif + +################################################################################ + +## Makefile Magic ############################################################## +PRED_TO_INFER = \ + $(addprefix $(TO_PRED_TEMPLATE_DIR)/,$(notdir $(wildcard $(TEMPLATE_DIR)/*.pp))) +ADDITIONAL_MAKEFILES = \ + $(addsuffix .deps,$(addprefix $(DEPENDENCIES_DIR)/,$(basename $(notdir $(wildcard $(PROPERTIES_DIR)/*.pro))))) + +export +## Makefile Rules ############################################################## +compile: $(PRED_TO_INFER) $(ADDITIONAL_MAKEFILES) + +model: + +solutions: + +clean: + rm -f $(TO_PRED_TEMPLATE_DIR)/* + rm -f $(INFERRED_LEVEL_FILE) + +clean_model: + +clean_solutions: + rm -f $(TO_PRED_TEMPLATE_DIR)/* + rm -f $(INFERRED_LEVEL_FILE) + +######## +$(TO_PRED_TEMPLATE_DIR)/%.pp: $(PROPERTIES_DIR)/%.pro + cat $< | sed 's/.*;;.*//g' | tr -d "\n\r" \ + | sed -n 's/.*(tag_existing[ \t]\+([ \t]*\(\([ \t]*([^)]\+)\)\+\)[ \t]*.*)/\1/p' \ + | sed 's/)/)\n/g' | sed 's/[ \t]\+/ /g' | tr -d "()" \ + | $(PARSING_SCRIPT) \ + $(patsubst %.pp,%,$(notdir $(basename $@))) \ + $@ \ + $(INFERRED_LEVEL_FILE) + $(MAKE) $(DEPENDENCIES_DIR)/$(patsubst %.pp,%,$(notdir $(basename $@))).deps + +$(DEPENDENCIES_DIR)/%.deps: $(PROPERTIES_DIR)/%.pro + printf "$(SOL_DIR)/$(notdir $(basename $@)).sol.ready: " > $@ + for dep in `sed -n 's/^#require \"\(.*\)\"$$/\1/p' $<` ; do \ + printf "$(SOL_DIR)/$$dep.sol " >> $@ ; \ + done + printf "\n\t touch $(SOL_DIR)/$(notdir $(basename $@)).sol.ready\n\n" >> $@ -- cgit v1.2.3-70-g09d2