diff options
Diffstat (limited to 'project/codegen.mk')
-rw-r--r-- | project/codegen.mk | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/project/codegen.mk b/project/codegen.mk new file mode 100644 index 0000000..fe1b610 --- /dev/null +++ b/project/codegen.mk @@ -0,0 +1,46 @@ +clean: clean-gen + +clean-gen: + rm -f gen.tag + rm -f $(GEN_IR_SRCS) + rm -f $(GEN_IR_HEADERS) + +GEN_ALL = $(GEN_IR_SRCS) \ + $(GEN_IR_HEADERS) \ + + +# gen-ir +GEN_IR_TOOL = $(SOURCE_DIR)/scripts/gen_ir.py +GEN_IR_SPEC = $(SOURCE_DIR)/scripts/ir_spec.py + + +build/gen/ir/ir/%.c: $(SOURCE_DIR)/scripts/templates/%.c \ + $(GEN_IR_TOOL) $(GEN_IR_SPEC) tree.tag + $(GEN_IR_TOOL) $(GEN_IR_SPEC) $< > $@ + + +build/gen/ir/ir/%.h: $(SOURCE_DIR)/scripts/templates/%.h \ + $(GEN_IR_TOOL) $(GEN_IR_SPEC) tree.tag + $(GEN_IR_TOOL) $(GEN_IR_SPEC) $< > $@ + + +build/gen/include/libfirm/nodes.h: $(SOURCE_DIR)/scripts/templates/nodes.h \ + $(GEN_IR_TOOL) $(GEN_IR_SPEC) tree.tag + $(GEN_IR_TOOL) $(GEN_IR_SPEC) $< > $@ + + + +# gen-all +gen-ir: $(GEN_IR_SRCS) $(GEN_IR_HEADERS) + +gen-all: gen-ir + +gen.tag: $(GEN_ALL) + touch gen.tag + +gen: gen.tag + + +.PHONY: clean-gen \ + gen gen-all \ + gen-ir |