-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
98 lines (94 loc) · 6.39 KB
/
Copy pathMakefile
File metadata and controls
98 lines (94 loc) · 6.39 KB
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
CC ?= cc
CFLAGS ?= -std=c11 -Wall -Wextra -Wpedantic -O2
BIN := build/forc
TEST_IRC := build/test_irc
TEST_DISPATCHER := build/test_dispatcher
TEST_EVENTS := build/test_events
TEST_RUNTIME := build/test_runtime
TEST_BOT_STATE := build/test_bot_state
TEST_BOT_CAPS := build/test_bot_caps
TEST_BOT_RUNTIME := build/test_bot_runtime
TEST_BOT_STATE_BACKEND := build/test_bot_state_backend
TEST_BOT_STATE_CODEC := build/test_bot_state_file_codec
TEST_BOT_STATE_CODEC_INVALID := build/test_bot_state_file_codec_invalid
TEST_BOT_RUNTIME_PERSISTENCE := build/test_bot_runtime_persistence
TEST_RUNTIME_DISPATCH := build/test_runtime_dispatch
TEST_TIMERS := build/test_timers
TEST_TIMER_HANDLERS := build/test_timer_handlers
TEST_FORTH_VM := build/test_forth_vm
TEST_FORTH_TIMER := build/test_forth_timer
SRC := src/bot_state.c src/bot_caps.c src/bot_runtime.c src/bot_state_file.c src/bot_state_file_codec.c src/bot_state_file_save.c src/irc_output.c src/irc_output_sink.c src/main.c src/irc_core.c src/dispatcher.c src/events.c src/runtime_adapter.c src/runtime_dispatch.c src/timers.c src/timer_handlers.c src/forth_vm.c
.PHONY: all test clean
all: $(BIN)
$(BIN): $(SRC)
@mkdir -p build
$(CC) $(CFLAGS) $(SRC) -o $(BIN)
$(TEST_BOT_STATE): tests/test_bot_state.c src/bot_state.c src/bot_state.h src/irc_core.c src/irc_core.h
@mkdir -p build
$(CC) $(CFLAGS) tests/test_bot_state.c src/bot_state.c src/irc_core.c -o $(TEST_BOT_STATE)
$(TEST_BOT_CAPS): tests/test_bot_caps.c src/bot_caps.c src/bot_caps.h
@mkdir -p build
$(CC) $(CFLAGS) tests/test_bot_caps.c src/bot_caps.c -o $(TEST_BOT_CAPS)
$(TEST_BOT_RUNTIME): tests/test_bot_runtime.c src/bot_runtime.c src/bot_runtime.h src/bot_state.c src/bot_caps.c
@mkdir -p build
$(CC) $(CFLAGS) tests/test_bot_runtime.c src/bot_runtime.c src/bot_state.c src/bot_caps.c src/bot_state_file.c src/bot_state_file_codec.c src/bot_state_file_save.c -o $(TEST_BOT_RUNTIME)
$(TEST_IRC): tests/test_irc.c src/irc_core.c src/irc_core.h
@mkdir -p build
$(CC) $(CFLAGS) tests/test_irc.c src/irc_core.c src/irc_output.c -o $(TEST_IRC)
$(TEST_DISPATCHER): tests/test_dispatcher.c src/irc_core.c src/dispatcher.c src/irc_core.h src/dispatcher.h
@mkdir -p build
$(CC) $(CFLAGS) tests/test_dispatcher.c src/irc_core.c src/dispatcher.c -o $(TEST_DISPATCHER)
$(TEST_EVENTS): tests/test_events.c src/irc_core.c src/events.c src/irc_core.h src/events.h
@mkdir -p build
$(CC) $(CFLAGS) tests/test_events.c src/irc_core.c src/events.c -o $(TEST_EVENTS)
$(TEST_RUNTIME): tests/test_runtime.c src/runtime_adapter.c src/runtime_adapter.h src/forth_vm.c src/forth_vm.h src/irc_core.h
@mkdir -p build
$(CC) $(CFLAGS) tests/test_runtime.c src/runtime_adapter.c src/forth_vm.c src/bot_runtime.c src/bot_state.c src/bot_caps.c src/bot_state_file.c src/bot_state_file_codec.c src/bot_state_file_save.c src/events.c src/timers.c src/timer_handlers.c src/irc_output.c src/irc_output_sink.c -o $(TEST_RUNTIME)
$(TEST_RUNTIME_DISPATCH) $(TEST_TIMERS) $(TEST_TIMER_HANDLERS): tests/test_runtime_dispatch.c src/irc_core.c src/runtime_adapter.c src/runtime_dispatch.c src/forth_vm.c
@mkdir -p build
$(CC) $(CFLAGS) tests/test_runtime_dispatch.c src/irc_core.c src/runtime_adapter.c src/runtime_dispatch.c src/forth_vm.c src/bot_runtime.c src/bot_state.c src/bot_caps.c src/bot_state_file.c src/bot_state_file_codec.c src/bot_state_file_save.c src/events.c src/timers.c src/timer_handlers.c src/irc_output.c src/irc_output_sink.c -o $(TEST_RUNTIME_DISPATCH)
$(TEST_FORTH_VM): tests/test_forth_vm.c src/forth_vm.c src/forth_vm.h
@mkdir -p build
$(CC) $(CFLAGS) tests/test_forth_vm.c src/forth_vm.c -o $(TEST_FORTH_VM)
$(TEST_TIMERS): tests/test_timers.c src/timers.c src/timers.h
@mkdir -p build
$(CC) $(CFLAGS) tests/test_timers.c src/timers.c -o $(TEST_TIMERS)
$(TEST_TIMER_HANDLERS): tests/test_timer_handlers.c src/timer_handlers.c src/timer_handlers.h
@mkdir -p build
$(CC) $(CFLAGS) tests/test_timer_handlers.c src/timer_handlers.c -o $(TEST_TIMER_HANDLERS)
$(TEST_FORTH_TIMER): tests/test_forth_timer.c src/runtime_adapter.c src/forth_vm.c src/timers.c src/timer_handlers.c
@mkdir -p build
$(CC) $(CFLAGS) tests/test_forth_timer.c src/runtime_adapter.c src/forth_vm.c src/bot_runtime.c src/bot_state.c src/bot_caps.c src/bot_state_file.c src/bot_state_file_codec.c src/bot_state_file_save.c src/events.c src/timers.c src/timer_handlers.c src/irc_output.c src/irc_output_sink.c -o $(TEST_FORTH_TIMER)
test: $(BIN) $(TEST_BOT_RUNTIME_PERSISTENCE) $(TEST_BOT_STATE_BACKEND) $(TEST_BOT_STATE_CODEC) $(TEST_BOT_STATE_CODEC_INVALID) $(TEST_IRC) $(TEST_DISPATCHER) $(TEST_EVENTS) $(TEST_RUNTIME) $(TEST_RUNTIME_DISPATCH) $(TEST_BOT_STATE) $(TEST_BOT_CAPS) $(TEST_BOT_RUNTIME) $(TEST_FORTH_VM) $(TEST_FORTH_TIMER)
@./$(BIN) | grep -q "ForC M0"
@./$(TEST_IRC)
@./$(TEST_DISPATCHER)
@./$(TEST_EVENTS)
@./$(TEST_RUNTIME)
@./$(TEST_RUNTIME_DISPATCH)
@./$(TEST_BOT_STATE)
@./$(TEST_BOT_CAPS)
@./$(TEST_BOT_RUNTIME)
@./$(TEST_BOT_STATE_BACKEND)
@./$(TEST_BOT_STATE_CODEC)
@./$(TEST_BOT_STATE_CODEC_INVALID)
@./$(TEST_BOT_RUNTIME_PERSISTENCE)
@./$(TEST_TIMERS)
@./$(TEST_TIMER_HANDLERS)
@./$(TEST_FORTH_VM)
@./$(TEST_FORTH_TIMER)
@echo "ForC M1 tests: PASS"
clean:
rm -rf build
$(TEST_BOT_STATE_BACKEND): tests/test_bot_state_backend.c src/bot_state.c src/bot_state.h src/bot_state_backend.h
@mkdir -p build
$(CC) $(CFLAGS) tests/test_bot_state_backend.c src/bot_state.c -o $(TEST_BOT_STATE_BACKEND)
$(TEST_BOT_STATE_CODEC): tests/test_bot_state_file_codec.c src/bot_state_file_codec.c src/bot_state.c src/bot_state.h
@mkdir -p build
$(CC) $(CFLAGS) tests/test_bot_state_file_codec.c src/bot_state_file_codec.c src/bot_state.c -o $(TEST_BOT_STATE_CODEC)
$(TEST_BOT_STATE_CODEC_INVALID): tests/test_bot_state_file_codec_invalid.c src/bot_state_file_codec.c src/bot_state.c src/bot_state.h
@mkdir -p build
$(CC) $(CFLAGS) tests/test_bot_state_file_codec_invalid.c src/bot_state_file_codec.c src/bot_state.c -o $(TEST_BOT_STATE_CODEC_INVALID)
$(TEST_BOT_RUNTIME_PERSISTENCE): tests/test_bot_runtime_persistence.c src/bot_runtime.c src/bot_runtime.h src/bot_state.c src/bot_state.h src/bot_caps.c src/bot_caps.h src/bot_state_backend.h src/bot_state_file.c src/bot_state_file.h src/bot_state_file_codec.c src/bot_state_file_codec.h src/bot_state_file_save.c src/bot_state_file_save.h
@mkdir -p build
$(CC) $(CFLAGS) tests/test_bot_runtime_persistence.c src/bot_runtime.c src/bot_state.c src/bot_caps.c src/bot_state_file.c src/bot_state_file_codec.c src/bot_state_file_save.c -o $(TEST_BOT_RUNTIME_PERSISTENCE)