2025-11-29 01:49:14 +01:00
|
|
|
CC = gcc
|
|
|
|
|
CFLAGS = -Wall -Wextra -O2 -g -D_GNU_SOURCE
|
2025-11-29 04:58:34 +01:00
|
|
|
LDFLAGS = -lssl -lcrypto -lsqlite3 -lm -lpthread
|
2025-09-25 02:35:00 +02:00
|
|
|
|
2025-11-29 01:49:14 +01:00
|
|
|
SRC_DIR = src
|
|
|
|
|
BUILD_DIR = build
|
|
|
|
|
TESTS_DIR = tests
|
2025-09-25 02:35:00 +02:00
|
|
|
|
2025-11-29 01:49:14 +01:00
|
|
|
SOURCES = $(SRC_DIR)/main.c \
|
|
|
|
|
$(SRC_DIR)/buffer.c \
|
|
|
|
|
$(SRC_DIR)/logging.c \
|
|
|
|
|
$(SRC_DIR)/config.c \
|
|
|
|
|
$(SRC_DIR)/monitor.c \
|
|
|
|
|
$(SRC_DIR)/http.c \
|
|
|
|
|
$(SRC_DIR)/ssl_handler.c \
|
|
|
|
|
$(SRC_DIR)/connection.c \
|
|
|
|
|
$(SRC_DIR)/dashboard.c \
|
2025-11-29 04:58:34 +01:00
|
|
|
$(SRC_DIR)/rate_limit.c \
|
|
|
|
|
$(SRC_DIR)/auth.c \
|
|
|
|
|
$(SRC_DIR)/health_check.c \
|
2025-11-29 01:49:14 +01:00
|
|
|
cJSON.c
|
2025-09-25 02:35:00 +02:00
|
|
|
|
2025-11-29 01:49:14 +01:00
|
|
|
OBJECTS = $(patsubst %.c,$(BUILD_DIR)/%.o,$(notdir $(SOURCES)))
|
|
|
|
|
|
|
|
|
|
TARGET = rproxy
|
|
|
|
|
|
|
|
|
|
TEST_SOURCES = $(TESTS_DIR)/test_main.c \
|
|
|
|
|
$(TESTS_DIR)/test_http.c \
|
|
|
|
|
$(TESTS_DIR)/test_buffer.c \
|
|
|
|
|
$(TESTS_DIR)/test_config.c \
|
|
|
|
|
$(TESTS_DIR)/test_routing.c
|
|
|
|
|
|
|
|
|
|
TEST_OBJECTS = $(patsubst %.c,$(BUILD_DIR)/%.o,$(notdir $(TEST_SOURCES)))
|
|
|
|
|
|
|
|
|
|
TEST_LIB_SOURCES = $(SRC_DIR)/buffer.c \
|
|
|
|
|
$(SRC_DIR)/logging.c \
|
|
|
|
|
$(SRC_DIR)/config.c \
|
|
|
|
|
$(SRC_DIR)/monitor.c \
|
|
|
|
|
$(SRC_DIR)/http.c \
|
|
|
|
|
$(SRC_DIR)/ssl_handler.c \
|
|
|
|
|
$(SRC_DIR)/connection.c \
|
|
|
|
|
$(SRC_DIR)/dashboard.c \
|
2025-11-29 04:58:34 +01:00
|
|
|
$(SRC_DIR)/rate_limit.c \
|
|
|
|
|
$(SRC_DIR)/auth.c \
|
|
|
|
|
$(SRC_DIR)/health_check.c \
|
2025-11-29 01:49:14 +01:00
|
|
|
cJSON.c
|
|
|
|
|
|
|
|
|
|
TEST_LIB_OBJECTS = $(patsubst %.c,$(BUILD_DIR)/%.o,$(notdir $(TEST_LIB_SOURCES)))
|
|
|
|
|
|
|
|
|
|
TEST_TARGET = rproxy_test
|
|
|
|
|
|
|
|
|
|
.PHONY: all clean test legacy run
|
|
|
|
|
|
|
|
|
|
all: $(BUILD_DIR) $(TARGET)
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR):
|
|
|
|
|
mkdir -p $(BUILD_DIR)
|
|
|
|
|
|
|
|
|
|
$(TARGET): $(OBJECTS)
|
|
|
|
|
$(CC) $(OBJECTS) -o $@ $(LDFLAGS)
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/main.o: $(SRC_DIR)/main.c
|
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/buffer.o: $(SRC_DIR)/buffer.c
|
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/logging.o: $(SRC_DIR)/logging.c
|
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/config.o: $(SRC_DIR)/config.c
|
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/monitor.o: $(SRC_DIR)/monitor.c
|
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/http.o: $(SRC_DIR)/http.c
|
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/ssl_handler.o: $(SRC_DIR)/ssl_handler.c
|
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/connection.o: $(SRC_DIR)/connection.c
|
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/dashboard.o: $(SRC_DIR)/dashboard.c
|
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
|
|
2025-11-29 04:58:34 +01:00
|
|
|
$(BUILD_DIR)/rate_limit.o: $(SRC_DIR)/rate_limit.c
|
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/auth.o: $(SRC_DIR)/auth.c
|
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/health_check.o: $(SRC_DIR)/health_check.c
|
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
|
|
2025-11-29 01:49:14 +01:00
|
|
|
$(BUILD_DIR)/cJSON.o: cJSON.c
|
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/test_main.o: $(TESTS_DIR)/test_main.c
|
|
|
|
|
$(CC) $(CFLAGS) -I$(SRC_DIR) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/test_http.o: $(TESTS_DIR)/test_http.c
|
|
|
|
|
$(CC) $(CFLAGS) -I$(SRC_DIR) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/test_buffer.o: $(TESTS_DIR)/test_buffer.c
|
|
|
|
|
$(CC) $(CFLAGS) -I$(SRC_DIR) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/test_config.o: $(TESTS_DIR)/test_config.c
|
|
|
|
|
$(CC) $(CFLAGS) -I$(SRC_DIR) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/test_routing.o: $(TESTS_DIR)/test_routing.c
|
|
|
|
|
$(CC) $(CFLAGS) -I$(SRC_DIR) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
$(TEST_TARGET): $(BUILD_DIR) $(TEST_OBJECTS) $(TEST_LIB_OBJECTS)
|
|
|
|
|
$(CC) $(TEST_OBJECTS) $(TEST_LIB_OBJECTS) -o $@ $(LDFLAGS)
|
|
|
|
|
|
|
|
|
|
test: $(TEST_TARGET)
|
|
|
|
|
./$(TEST_TARGET)
|
|
|
|
|
|
|
|
|
|
legacy: rproxy.c cJSON.c cJSON.h
|
|
|
|
|
$(CC) $(CFLAGS) rproxy.c cJSON.c -o rproxy_legacy $(LDFLAGS)
|
|
|
|
|
|
|
|
|
|
run: $(TARGET)
|
|
|
|
|
./$(TARGET)
|
2025-09-25 02:35:00 +02:00
|
|
|
|
|
|
|
|
clean:
|
2025-11-29 01:49:14 +01:00
|
|
|
rm -rf $(BUILD_DIR) $(TARGET) $(TEST_TARGET) rproxy_legacy
|