summaryrefslogtreecommitdiff
path: root/project/codegen.mk
blob: fe1b610af5c86d6485a5f60643a80ddb10bf5351 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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