Reorganize project structure: move sources to src/, update Makefile, add header symlinks
This commit is contained in:
1 parent
9eab53179d
commit
f2c10dcbf9
45 files changed
+1612
-1825
No files matched your search
@@ -1,8 +1,15 @@
|
||||
CC := gcc
|
||||
CFLAGS := -Os -std=c99 -Wall -Wextra -D_ISOC99_SOURCE -DENABLE_TESTS -DETCP_DEBUG -DETCP_DEBUG_EXT
|
||||
INCLUDES := -Itinycrypt/lib/include/ -Itinycrypt/lib/source/ -Itinycrypt/tests/include/ -I.
|
||||
SRC_DIR := src
|
||||
TEST_DIR := tests
|
||||
INCLUDES := -I$(SRC_DIR) -Itinycrypt/lib/include/ -Itinycrypt/lib/source/ -Itinycrypt/tests/include/ -I.
|
||||
|
||||
# Директории для объектных файлов
|
||||
OBJ_DIR := obj
|
||||
SRC_OBJ_DIR := $(OBJ_DIR)/src
|
||||
TEST_OBJ_DIR := $(OBJ_DIR)/tests
|
||||
|
||||
# Исходники tinycrypt
|
||||
TINYCRYPT_SRCS := \
|
||||
tinycrypt/lib/source/ecc.c \
|
||||
tinycrypt/lib/source/ecc_dh.c \
|
||||
@@ -13,65 +20,124 @@ TINYCRYPT_SRCS := \
|
||||
tinycrypt/lib/source/ctr_mode.c \
|
||||
tinycrypt/lib/source/ccm_mode.c
|
||||
|
||||
# Объектные файлы tinycrypt (остаются в своих директориях)
|
||||
TINYCRYPT_OBJS := $(TINYCRYPT_SRCS:.c=.o)
|
||||
|
||||
SC_LIB_OBJS := sc_lib.o
|
||||
UASYNC_OBJS := u_async.o timeout_heap.o
|
||||
PN_OBJS := pkt_normalizer.o settings.o
|
||||
LL_QUEUE_OBJS := ll_queue.o
|
||||
ETCP_OBJS := etcp.o
|
||||
CONFIG_PARSER_OBJS := config_parser.o
|
||||
TUN_IF_OBJS := tun_if.o
|
||||
# Основные объектные файлы (будут в obj/src/)
|
||||
SC_LIB_OBJS := $(SRC_OBJ_DIR)/sc_lib.o
|
||||
UASYNC_OBJS := $(SRC_OBJ_DIR)/u_async.o $(SRC_OBJ_DIR)/timeout_heap.o
|
||||
PN_OBJS := $(SRC_OBJ_DIR)/pkt_normalizer.o $(SRC_OBJ_DIR)/settings.o
|
||||
LL_QUEUE_OBJS := $(SRC_OBJ_DIR)/ll_queue.o
|
||||
ETCP_OBJS := $(SRC_OBJ_DIR)/etcp.o
|
||||
CONFIG_PARSER_OBJS := $(SRC_OBJ_DIR)/config_parser.o
|
||||
TUN_IF_OBJS := $(SRC_OBJ_DIR)/tun_if.o
|
||||
CONNECTION_OBJS := $(SRC_OBJ_DIR)/connection.o
|
||||
ROUTING_OBJS := $(SRC_OBJ_DIR)/routing.o
|
||||
CONTROL_SOCKET_OBJS := $(SRC_OBJ_DIR)/control_socket.o
|
||||
UTUN_OBJS := $(SRC_OBJ_DIR)/utun.o
|
||||
|
||||
all: utun $(TEST_DIR)/test_sc_lib $(TEST_DIR)/test_udp_secure $(TEST_DIR)/test_pkt_normalizer $(TEST_DIR)/test_etcp $(TEST_DIR)/test_etcp_stress $(TEST_DIR)/test_etcp_simple $(TEST_DIR)/test_connection $(TEST_DIR)/test_connection_stress $(TEST_DIR)/test_new_features $(TEST_DIR)/test_utun_integration $(TEST_DIR)/test_utun_fork
|
||||
# Тестовые объектные файлы (будут в obj/tests/)
|
||||
TEST_PKT_NORMALIZER_OBJS := $(TEST_OBJ_DIR)/test_pkt_normalizer.o
|
||||
TEST_ETCP_OBJS := $(TEST_OBJ_DIR)/test_etcp.o
|
||||
TEST_ETCP_STRESS_OBJS := $(TEST_OBJ_DIR)/test_etcp_stress.o
|
||||
TEST_ETCP_SIMPLE_OBJS := $(TEST_OBJ_DIR)/test_etcp_simple.o
|
||||
TEST_CONNECTION_OBJS := $(TEST_OBJ_DIR)/test_connection.o
|
||||
TEST_CONNECTION_STRESS_OBJS := $(TEST_OBJ_DIR)/test_connection_stress.o
|
||||
TEST_NEW_FEATURES_OBJS := $(TEST_OBJ_DIR)/test_new_features.o
|
||||
TEST_SC_LIB_OBJS := $(TEST_OBJ_DIR)/test_sc_lib.o
|
||||
TEST_UDP_SECURE_OBJS := $(TEST_OBJ_DIR)/test_udp_secure.o
|
||||
TEST_UTUN_INTEGRATION_OBJS := $(TEST_OBJ_DIR)/test_utun_integration.o
|
||||
TEST_UTUN_FORK_OBJS := $(TEST_OBJ_DIR)/test_utun_fork.o
|
||||
SIMPLE_UASYNC_OBJS := $(TEST_OBJ_DIR)/simple_uasync.o
|
||||
|
||||
$(TEST_DIR)/test_pkt_normalizer: $(TEST_DIR)/test_pkt_normalizer.o $(PN_OBJS) $(LL_QUEUE_OBJS) $(UASYNC_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
# Основная цель
|
||||
all: utun \
|
||||
$(TEST_DIR)/test_sc_lib \
|
||||
$(TEST_DIR)/test_udp_secure \
|
||||
$(TEST_DIR)/test_pkt_normalizer \
|
||||
$(TEST_DIR)/test_etcp \
|
||||
$(TEST_DIR)/test_etcp_stress \
|
||||
$(TEST_DIR)/test_etcp_simple \
|
||||
$(TEST_DIR)/test_connection \
|
||||
$(TEST_DIR)/test_connection_stress \
|
||||
$(TEST_DIR)/test_new_features \
|
||||
$(TEST_DIR)/test_utun_integration \
|
||||
$(TEST_DIR)/test_utun_fork
|
||||
|
||||
$(TEST_DIR)/test_etcp: $(TEST_DIR)/test_etcp.o $(ETCP_OBJS) $(LL_QUEUE_OBJS) $(UASYNC_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
# Создание директорий
|
||||
$(OBJ_DIR):
|
||||
mkdir -p $(OBJ_DIR)
|
||||
|
||||
$(TEST_DIR)/test_etcp_stress: $(TEST_DIR)/test_etcp_stress.o $(ETCP_OBJS) $(LL_QUEUE_OBJS) $(TEST_DIR)/simple_uasync.o
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
$(SRC_OBJ_DIR): $(OBJ_DIR)
|
||||
mkdir -p $(SRC_OBJ_DIR)
|
||||
|
||||
$(TEST_DIR)/test_etcp_simple: $(TEST_DIR)/test_etcp_simple.o $(ETCP_OBJS) $(LL_QUEUE_OBJS) $(TEST_DIR)/simple_uasync.o
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
$(TEST_OBJ_DIR): $(OBJ_DIR)
|
||||
mkdir -p $(TEST_OBJ_DIR)
|
||||
|
||||
$(TEST_DIR)/test_connection: $(TEST_DIR)/test_connection.o connection.o $(ETCP_OBJS) $(PN_OBJS) $(LL_QUEUE_OBJS) $(UASYNC_OBJS) $(SC_LIB_OBJS) $(TINYCRYPT_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_connection_stress: $(TEST_DIR)/test_connection_stress.o connection.o $(ETCP_OBJS) $(PN_OBJS) $(LL_QUEUE_OBJS) $(UASYNC_OBJS) $(SC_LIB_OBJS) $(TINYCRYPT_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_new_features: $(TEST_DIR)/test_new_features.o $(ETCP_OBJS) $(PN_OBJS) $(LL_QUEUE_OBJS) $(UASYNC_OBJS) connection.o $(SC_LIB_OBJS) $(TINYCRYPT_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
utun: utun.o $(CONFIG_PARSER_OBJS) $(TUN_IF_OBJS) connection.o routing.o control_socket.o $(ETCP_OBJS) $(PN_OBJS) $(LL_QUEUE_OBJS) $(UASYNC_OBJS) $(SC_LIB_OBJS) $(TINYCRYPT_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_sc_lib: $(TEST_DIR)/test_sc_lib.o $(SC_LIB_OBJS) $(TINYCRYPT_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_udp_secure: $(TEST_DIR)/test_udp_secure.o $(SC_LIB_OBJS) $(UASYNC_OBJS) $(TINYCRYPT_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_utun_integration: $(TEST_DIR)/test_utun_integration.o $(CONFIG_PARSER_OBJS) $(TUN_IF_OBJS) connection.o $(ETCP_OBJS) $(PN_OBJS) $(LL_QUEUE_OBJS) $(UASYNC_OBJS) $(SC_LIB_OBJS) $(TINYCRYPT_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_utun_fork: $(TEST_DIR)/test_utun_fork.o $(SC_LIB_OBJS) $(TINYCRYPT_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_pkt_normalizer: $(TEST_DIR)/test_pkt_normalizer.o $(PN_OBJS) $(LL_QUEUE_OBJS) $(UASYNC_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_etcp: $(TEST_DIR)/test_etcp.o $(ETCP_OBJS) $(LL_QUEUE_OBJS) $(UASYNC_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
%.o: %.c
|
||||
# Правило компиляции для исходников из src/
|
||||
$(SRC_OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(SRC_OBJ_DIR)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
|
||||
|
||||
# Правило компиляции для тестовых .c файлов
|
||||
$(TEST_OBJ_DIR)/%.o: $(TEST_DIR)/%.c | $(TEST_OBJ_DIR)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
|
||||
|
||||
# Правило компиляции для tinycrypt (оставляем в оригинальных директориях)
|
||||
tinycrypt/lib/source/%.o: tinycrypt/lib/source/%.c
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
|
||||
|
||||
# Правила линковки
|
||||
utun: $(UTUN_OBJS) $(CONFIG_PARSER_OBJS) $(TUN_IF_OBJS) $(CONNECTION_OBJS) $(ROUTING_OBJS) $(CONTROL_SOCKET_OBJS) $(ETCP_OBJS) $(PN_OBJS) $(LL_QUEUE_OBJS) $(UASYNC_OBJS) $(SC_LIB_OBJS) $(TINYCRYPT_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_pkt_normalizer: $(TEST_PKT_NORMALIZER_OBJS) $(PN_OBJS) $(LL_QUEUE_OBJS) $(UASYNC_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_etcp: $(TEST_ETCP_OBJS) $(ETCP_OBJS) $(LL_QUEUE_OBJS) $(UASYNC_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_etcp_stress: $(TEST_ETCP_STRESS_OBJS) $(ETCP_OBJS) $(LL_QUEUE_OBJS) $(SIMPLE_UASYNC_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_etcp_simple: $(TEST_ETCP_SIMPLE_OBJS) $(ETCP_OBJS) $(LL_QUEUE_OBJS) $(SIMPLE_UASYNC_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_connection: $(TEST_CONNECTION_OBJS) $(CONNECTION_OBJS) $(ETCP_OBJS) $(PN_OBJS) $(LL_QUEUE_OBJS) $(UASYNC_OBJS) $(SC_LIB_OBJS) $(TINYCRYPT_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_connection_stress: $(TEST_CONNECTION_STRESS_OBJS) $(CONNECTION_OBJS) $(ETCP_OBJS) $(PN_OBJS) $(LL_QUEUE_OBJS) $(UASYNC_OBJS) $(SC_LIB_OBJS) $(TINYCRYPT_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_new_features: $(TEST_NEW_FEATURES_OBJS) $(ETCP_OBJS) $(PN_OBJS) $(LL_QUEUE_OBJS) $(UASYNC_OBJS) $(CONNECTION_OBJS) $(SC_LIB_OBJS) $(TINYCRYPT_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_sc_lib: $(TEST_SC_LIB_OBJS) $(SC_LIB_OBJS) $(TINYCRYPT_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_udp_secure: $(TEST_UDP_SECURE_OBJS) $(SC_LIB_OBJS) $(UASYNC_OBJS) $(TINYCRYPT_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_utun_integration: $(TEST_UTUN_INTEGRATION_OBJS) $(CONFIG_PARSER_OBJS) $(TUN_IF_OBJS) $(CONNECTION_OBJS) $(ETCP_OBJS) $(PN_OBJS) $(LL_QUEUE_OBJS) $(UASYNC_OBJS) $(SC_LIB_OBJS) $(TINYCRYPT_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
$(TEST_DIR)/test_utun_fork: $(TEST_UTUN_FORK_OBJS) $(SC_LIB_OBJS) $(TINYCRYPT_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
|
||||
|
||||
# Очистка
|
||||
clean:
|
||||
rm -f utun $(TEST_DIR)/test_sc_lib $(TEST_DIR)/test_udp_secure $(TEST_DIR)/test_pkt_normalizer $(TEST_DIR)/test_etcp $(TEST_DIR)/test_etcp_stress $(TEST_DIR)/test_etcp_simple $(TEST_DIR)/test_connection $(TEST_DIR)/test_connection_stress $(TEST_DIR)/test_new_features $(TEST_DIR)/test_utun_integration $(TEST_DIR)/test_utun_fork \
|
||||
*.o tinycrypt/lib/source/*.o $(TEST_DIR)/*.o
|
||||
rm -rf $(OBJ_DIR)
|
||||
rm -f utun \
|
||||
$(TEST_DIR)/test_sc_lib \
|
||||
$(TEST_DIR)/test_udp_secure \
|
||||
$(TEST_DIR)/test_pkt_normalizer \
|
||||
$(TEST_DIR)/test_etcp \
|
||||
$(TEST_DIR)/test_etcp_stress \
|
||||
$(TEST_DIR)/test_etcp_simple \
|
||||
$(TEST_DIR)/test_connection \
|
||||
$(TEST_DIR)/test_connection_stress \
|
||||
$(TEST_DIR)/test_new_features \
|
||||
$(TEST_DIR)/test_utun_integration \
|
||||
$(TEST_DIR)/test_utun_fork
|
||||
rm -f *.o $(TEST_DIR)/*.o tinycrypt/lib/source/*.o
|
||||
|
||||
.PHONY: all clean
|
||||
Reference in new issue
Block a user