Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
101 lines (97 loc) · 6.63 KB
/
Copy pathMakefile
File metadata and controls
101 lines (97 loc) · 6.63 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
99
100
101
CC ?= cc
CFLAGS ?= -std=c11 -Wall -Wextra -Wpedantic -O2
BIN := build/lics
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_RUNTIME_TIMERS := build/test_runtime_timers
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/scheme_backend.c
TINYSCHEME_DIR ?= vendor/tinyscheme-1.42
.PHONY: all test test-tinyscheme 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/scheme_backend.c src/runtime_adapter.h src/scheme_backend.h src/irc_core.h
@mkdir -p build
$(CC) $(CFLAGS) tests/test_runtime.c src/runtime_adapter.c src/scheme_backend.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) $(TEST_RUNTIME_TIMERS): tests/test_runtime_dispatch.c src/irc_core.c src/runtime_adapter.c src/runtime_dispatch.c src/scheme_backend.c
@mkdir -p build
$(CC) $(CFLAGS) tests/test_runtime_dispatch.c src/irc_core.c src/runtime_adapter.c src/runtime_dispatch.c src/scheme_backend.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_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_RUNTIME_TIMERS): tests/test_runtime_timers.c src/runtime_adapter.c src/timers.c src/timer_handlers.c
@mkdir -p build
$(CC) $(CFLAGS) tests/test_runtime_timers.c src/runtime_adapter.c src/timers.c src/timer_handlers.c -o $(TEST_RUNTIME_TIMERS)
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)
@./$(BIN) | grep -q "LiCs 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_RUNTIME_TIMERS)
@echo "LiCs M1 tests: PASS"
test-tinyscheme:
@test -f $(TINYSCHEME_DIR)/scheme.c || (echo "TinyScheme source missing at $(TINYSCHEME_DIR)"; exit 1)
@mkdir -p build
$(CC) $(CFLAGS) -DLICS_WITH_TINYSCHEME -DUSE_DL=0 -DSTANDALONE=0 -include sys/types.h -include $(TINYSCHEME_DIR)/scheme-private.h -I$(TINYSCHEME_DIR) tests/test_runtime_dispatch.c src/irc_core.c src/runtime_adapter.c src/runtime_dispatch.c src/scheme_backend.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 $(TINYSCHEME_DIR)/scheme.c -lm -o build/test_runtime_dispatch_scheme
@./build/test_runtime_dispatch_scheme
@echo "LiCs TinyScheme timer integration: PASS"
@echo "LiCs TinyScheme IRC VM test: 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)