summaryrefslogtreecommitdiff
path: root/cesar/cp2/fsm/Module
blob: ce78eb866d9e7c410add53e32addb9c030f07197 (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
SOURCES := tables.c fsm.c events.c

cp_fsm_defs_h = $(OBJ_DIR)/inc/cp_fsm_defs.h
cp_fsm_tables_h = $(OBJ_DIR)/inc/cp_fsm_tables.h
CLEAN_FILES += $(cp_fsm_defs_h) $(cp_fsm_tables_h)

$(call src2obj,cp2/fsm/src/tables.c,host): $(cp_fsm_tables_h)
$(call src2obj,cp2/fsm/src/tables.c,target): $(cp_fsm_tables_h)
$(BASE)/cp2/fsm/fsm.h: $(cp_fsm_defs_h)

vpath %.fsm $(BASE)
vpath %.conf $(BASE)
vpath %_defs.h $(BASE)
vpath %_tables.h $(BASE)

cp_fsm_deps = $(call src2src,cp.fsm cp.conf template_defs.h \
          template_tables.h,cp2/fsm/src/fsm)

$(cp_fsm_defs_h) $(cp_fsm_tables_h): $(cp_fsm_deps)
	python $(TOOLS_DIR)/dfagen/dfagen.py -O $(OBJ_DIR)/inc \
	-o c -d $< -c $(filter %.conf,$^) -p cp_fsm

CLEAN_FILES += $(OBJ_DIR)/cp_fsm.png $(OBJ_DIR)/cp_fsm.dot

$(OBJ_DIR)/cp_fsm.png: $(OBJ_DIR)/cp_fsm.dot
	dot -Tpng -o $@ $<

$(OBJ_DIR)/cp_fsm.dot: $(cp_fsm_deps)
	python $(TOOLS_DIR)/dfagen/dfagen.py -O $(OBJ_DIR) \
	-o dot -d $< -p cp_fsm