xref: /btstack/tool/metrics/Makefile (revision d72e9d4b1d8cea3c48e9897368c446f554491bbf)
1C_HEADERS    ?= ~/Projects/c_headers/include/
2BTSTACK_ROOT ?= ../..
3
4VPATH=${BTSTACK_ROOT}/src
5
6INCLUDES= \
7	-I ${BTSTACK_ROOT}/src \
8	-I ${BTSTACK_ROOT}/3rd-party/micro-ecc \
9	-I ${BTSTACK_ROOT}/3rd-party/rijndael \
10	-I ${BTSTACK_ROOT}/platform/embedded \
11	-I ${BTSTACK_ROOT}/platform/freertos \
12	-I .
13
14SRCS = \
15	${BTSTACK_ROOT}/3rd-party/micro-ecc/uECC.c \
16	${BTSTACK_ROOT}/3rd-party/rijndael/rijndael.c \
17	${BTSTACK_ROOT}/src/ad_parser.c \
18	${BTSTACK_ROOT}/src/ble/att_db.c \
19	${BTSTACK_ROOT}/src/ble/att_db_util.c \
20	${BTSTACK_ROOT}/src/ble/att_dispatch.c \
21	${BTSTACK_ROOT}/src/ble/att_server.c \
22	${BTSTACK_ROOT}/src/ble/gatt_client.c \
23	${BTSTACK_ROOT}/src/ble/gatt-service/ancs_client.c \
24	${BTSTACK_ROOT}/src/ble/gatt-service/battery_service_server.c \
25	${BTSTACK_ROOT}/src/ble/gatt-service/battery_service_client.c \
26	${BTSTACK_ROOT}/src/ble/gatt-service/device_information_service_server.c \
27	${BTSTACK_ROOT}/src/ble/gatt-service/device_information_service_client.c \
28	${BTSTACK_ROOT}/src/ble/le_device_db_tlv.c \
29	${BTSTACK_ROOT}/src/ble/sm.c \
30	${BTSTACK_ROOT}/src/btstack_crypto.c \
31	${BTSTACK_ROOT}/src/btstack_linked_list.c \
32	${BTSTACK_ROOT}/src/btstack_memory.c \
33	${BTSTACK_ROOT}/src/btstack_memory_pool.c \
34	${BTSTACK_ROOT}/src/btstack_run_loop.c \
35	${BTSTACK_ROOT}/src/btstack_run_loop_base.c \
36	${BTSTACK_ROOT}/src/btstack_tlv.c \
37	${BTSTACK_ROOT}/src/btstack_util.c \
38	${BTSTACK_ROOT}/src/hci.c \
39	${BTSTACK_ROOT}/src/hci_cmd.c \
40	${BTSTACK_ROOT}/src/hci_dump.c \
41	${BTSTACK_ROOT}/src/hci_transport_h4.c \
42	${BTSTACK_ROOT}/src/l2cap.c \
43	${BTSTACK_ROOT}/src/l2cap_signaling.c \
44	${BTSTACK_ROOT}/platform/embedded/btstack_stdin_embedded.c \
45	${BTSTACK_ROOT}/platform/embedded/btstack_run_loop_embedded.c \
46	${BTSTACK_ROOT}/platform/embedded/btstack_uart_block_embedded.c \
47
48all: metrics.md metrics.html metrics.txt
49
50metrics.tsv: ${SRCS}
51	ccsm --disable-file --disable-global --exclude-std-headers --exclude-file=.h$$ --output-format=tsv --output-metrics=HIS_.* $^ -- -DuECC_NO_DEFAULT_RNG -isystem ${C_HEADERS}/c90 -isystem ${C_HEADERS}/c99 ${INCLUDES} > metrics_raw.tsv
52	echo "# file\tfunction\tGOTO\tRETURN\t_\tSTMT \t_\tCCN\tPATH\tCALLS\tPARAM\tLEVEL\t_\t_\t_" > metrics_header.tsv
53	cat metrics_header.tsv metrics_raw.tsv > $@
54	rm metrics_header.tsv metrics_raw.tsv
55
56metrics.md: metrics.tsv metrics_ccsm.py
57	./metrics_ccsm.py > metrics.md
58
59metrics.html: metrics.md
60	pandoc --from markdown --to html -o metrics.html metrics.md
61
62metrics.txt: metrics.tsv
63	expand -t 70,160,170,180,190,210,220,230,240,250,260,270,280,290,300 metrics.tsv > metrics.txt
64
65clean:
66	rm -f metrics.tsv metrics.md metrics.txt metrics.html metrics_header.tsv metrics_raw.tsv
67