2022-04-16 21:21:04 +02:00
|
|
|
CC = gcc
|
2022-04-24 13:20:34 +02:00
|
|
|
CFLAGS += -std=c99 -Wall -Werror -pedantic -ggdb3
|
2022-04-16 21:21:04 +02:00
|
|
|
INCDIR = ./lib/utils ./lib/ini ./lib/threadpool ./src ./lib/log ./lib/api
|
|
|
|
|
INCLUDES := $(patsubst %,-I %,$(INCDIR))
|
2022-04-24 13:01:13 +02:00
|
|
|
LDFLAGS = -L . -lm
|
2022-04-17 19:22:22 +02:00
|
|
|
OPTFLAGS = #-O3
|
2022-04-16 21:21:04 +02:00
|
|
|
LIBS = -lpthread
|
|
|
|
|
SOCKET = ./cs_sock
|
2022-03-11 12:03:59 +01:00
|
|
|
|
2022-04-16 21:21:04 +02:00
|
|
|
BUILD_DIR = ./build
|
|
|
|
|
SRC_DIR = ./src
|
|
|
|
|
LIB_DIR = ./lib
|
|
|
|
|
OBJ_DIR = ./obj
|
2022-03-11 12:03:59 +01:00
|
|
|
|
2022-04-16 21:21:04 +02:00
|
|
|
OBJ_SRC_SERVER := $(addprefix $(OBJ_DIR)/,$(patsubst %.c,%.o,$(notdir $(wildcard $(SRC_DIR)/server*.c))))
|
|
|
|
|
OBJ_SRC_CLIENT := $(addprefix $(OBJ_DIR)/,$(patsubst %.c,%.o,$(notdir $(wildcard $(SRC_DIR)/client*.c))))
|
|
|
|
|
OBJ_LIBS_SERVER := $(addprefix $(OBJ_DIR)/,$(patsubst %.c,%.o,$(notdir $(filter-out $(wildcard $(LIB_DIR)/api/*.c),$(wildcard $(LIB_DIR)/*/*.c)))))
|
|
|
|
|
OBJ_LIBS_CLIENT := $(addprefix $(OBJ_DIR)/,$(patsubst %.c,%.o,$(notdir $(filter-out $(wildcard $(LIB_DIR)/threadpool/*.c) $(wildcard $(LIB_DIR)/log/*.c),$(wildcard $(LIB_DIR)/*/*.c)))))
|
2022-04-16 15:07:25 +02:00
|
|
|
|
2022-04-16 21:21:04 +02:00
|
|
|
OBJ_SERVER := $(OBJ_SRC_SERVER) $(OBJ_LIBS_SERVER)
|
|
|
|
|
OBJ_CLIENT := $(OBJ_SRC_CLIENT) $(OBJ_LIBS_CLIENT)
|
2022-04-16 15:07:25 +02:00
|
|
|
|
2022-03-11 12:03:59 +01:00
|
|
|
|
2022-04-16 21:21:04 +02:00
|
|
|
VPATH := $(SRC_DIR) $(wildcard $(LIB_DIR)/*)
|
2022-04-04 22:31:14 +02:00
|
|
|
|
2022-04-16 21:21:04 +02:00
|
|
|
.DEFAULT_GOAL := all
|
2022-03-11 12:03:59 +01:00
|
|
|
|
|
|
|
|
.PHONY: all clean cleanall
|
|
|
|
|
|
|
|
|
|
|
2022-04-16 15:07:25 +02:00
|
|
|
all: $(BUILD_DIR)/server $(BUILD_DIR)/client
|
2022-04-23 17:43:38 +02:00
|
|
|
@echo "Compiled!"
|
2022-03-11 12:03:59 +01:00
|
|
|
|
|
|
|
|
|
2022-04-16 15:07:25 +02:00
|
|
|
# -SERVER-RULES-----------------------------------------------------------------
|
2022-04-09 00:37:56 +02:00
|
|
|
$(OBJ_DIR)/fileQueue.o: fileQueue.c fileQueue.h conn.h fileQueue.h util.h
|
2022-04-17 19:00:20 +02:00
|
|
|
@$(CC) $(CFLAGS) $(OPTFLAGS) $(INCLUDES) -c $< -o $@
|
2022-04-16 15:07:25 +02:00
|
|
|
@echo $@
|
2022-04-04 22:31:14 +02:00
|
|
|
|
2022-04-09 00:37:56 +02:00
|
|
|
$(OBJ_DIR)/apiFile.o: apiFile.c apiFile.h fileQueue.h taglialegna.h conn.h
|
2022-04-17 19:00:20 +02:00
|
|
|
@$(CC) $(CFLAGS) $(OPTFLAGS) $(INCLUDES) -c $< -o $@
|
2022-04-16 15:07:25 +02:00
|
|
|
@echo $@
|
2022-04-04 22:31:14 +02:00
|
|
|
|
2022-04-09 00:37:56 +02:00
|
|
|
$(OBJ_DIR)/taglialegna.o: taglialegna.c taglialegna.h fileQueue.h
|
2022-04-17 19:00:20 +02:00
|
|
|
@$(CC) $(CFLAGS) $(OPTFLAGS) $(INCLUDES) -c $< -o $@
|
2022-04-16 15:07:25 +02:00
|
|
|
@echo $@
|
2022-04-04 22:31:14 +02:00
|
|
|
|
2022-04-09 00:37:56 +02:00
|
|
|
$(OBJ_DIR)/threadpool.o: threadpool.c util.h threadpool.h
|
2022-04-17 19:00:20 +02:00
|
|
|
@$(CC) $(CFLAGS) $(OPTFLAGS) $(INCLUDES) -c $< -o $@
|
2022-04-16 15:07:25 +02:00
|
|
|
@echo $@
|
2022-03-11 12:03:59 +01:00
|
|
|
|
2022-04-09 00:37:56 +02:00
|
|
|
$(OBJ_DIR)/ini.o: ini.c ini.h
|
2022-04-17 19:00:20 +02:00
|
|
|
@$(CC) $(CFLAGS) $(OPTFLAGS) $(INCLUDES) -c $< -o $@
|
2022-04-16 15:07:25 +02:00
|
|
|
@echo $@
|
2022-04-04 22:31:14 +02:00
|
|
|
|
2022-04-11 18:38:04 +02:00
|
|
|
$(OBJ_DIR)/strsep_gnu.o: strsep_gnu.c strsep_gnu.h
|
2022-04-17 19:00:20 +02:00
|
|
|
@$(CC) $(CFLAGS) $(OPTFLAGS) $(INCLUDES) -c $< -o $@
|
2022-04-16 15:07:25 +02:00
|
|
|
@echo $@
|
2022-04-11 18:38:04 +02:00
|
|
|
|
|
|
|
|
$(OBJ_DIR)/serverWorker.o: serverWorker.c serverWorker.h apiFile.h fileQueue.h taglialegna.h threadpool.h conn.h message.h strsep_gnu.h
|
2022-04-17 19:00:20 +02:00
|
|
|
@$(CC) $(CFLAGS) $(OPTFLAGS) $(INCLUDES) -c $< -o $@
|
2022-04-16 15:07:25 +02:00
|
|
|
@echo $@
|
2022-04-04 22:31:14 +02:00
|
|
|
|
2022-04-09 00:37:56 +02:00
|
|
|
$(OBJ_DIR)/server.o: server.c threadpool.h conn.h util.h serverWorker.h ini.h serverUtil.h fileQueue.h taglialegna.h
|
2022-04-17 19:00:20 +02:00
|
|
|
@$(CC) $(CFLAGS) $(OPTFLAGS) $(INCLUDES) -c $< -o $@
|
2022-04-16 15:07:25 +02:00
|
|
|
@echo $@
|
2022-04-04 22:31:14 +02:00
|
|
|
|
|
|
|
|
$(BUILD_DIR)/server: $(OBJ_SERVER)
|
2022-04-24 13:01:13 +02:00
|
|
|
@$(CC) $(CFLAGS) $(OPTFLAGS) $(OPTFLAGS) $(LIBS) $(OBJ_SERVER) $(LDFLAGS) -o $(BUILD_DIR)/server
|
2022-04-16 15:07:25 +02:00
|
|
|
@echo $@
|
2022-03-11 12:03:59 +01:00
|
|
|
|
|
|
|
|
|
2022-04-16 15:07:25 +02:00
|
|
|
# -CLIENT-RULES-----------------------------------------------------------------
|
2022-04-16 21:21:04 +02:00
|
|
|
$(OBJ_DIR)/api.o: api.c api.h
|
2022-04-17 19:00:20 +02:00
|
|
|
@$(CC) $(CFLAGS) $(OPTFLAGS) $(INCLUDES) -c $< -o $@
|
2022-04-16 21:21:04 +02:00
|
|
|
@echo $@
|
|
|
|
|
|
|
|
|
|
$(OBJ_DIR)/client.o: client.c api.h
|
2022-04-17 19:00:20 +02:00
|
|
|
@$(CC) $(CFLAGS) $(OPTFLAGS) $(INCLUDES) -c $< -o $@
|
2022-04-16 15:07:25 +02:00
|
|
|
@echo $@
|
|
|
|
|
|
|
|
|
|
$(BUILD_DIR)/client: $(OBJ_CLIENT)
|
2022-04-24 13:01:13 +02:00
|
|
|
@$(CC) $(CFLAGS) $(OPTFLAGS) $(LIBS) $(OBJ_CLIENT) $(LDFLAGS) -o $(BUILD_DIR)/client
|
2022-04-16 15:07:25 +02:00
|
|
|
@echo $@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# -PHONY------------------------------------------------------------------------
|
2022-04-23 15:05:31 +02:00
|
|
|
clean:
|
2022-03-11 12:03:59 +01:00
|
|
|
@rm -rf $(BUILD_DIR)/* logs/*.log
|
|
|
|
|
|
2022-04-23 15:05:31 +02:00
|
|
|
cleanall: clean
|
2022-03-11 12:03:59 +01:00
|
|
|
@rm -rf $(OBJ_DIR)/*
|
|
|
|
|
@rm -f $(SOCKET)
|
2022-04-16 15:07:25 +02:00
|
|
|
|
2022-04-23 15:05:31 +02:00
|
|
|
print-%: ; @echo $* = $($*)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# -TESTS------------------------------------------------------------------------
|
|
|
|
|
|
2022-04-23 17:43:38 +02:00
|
|
|
test1: all
|
|
|
|
|
@echo "[threadpool]\n\nquantity = 1\npending = 10\n\n[files]\n\nMaxFiles = 10000\nMaxSize = 128000\n\n[log]\n\nlogFile = ./logs/l.log\n\n[socket]\n\nname = ./socket\nbacklog = 100\n" > build/confix.txt
|
2022-04-24 15:38:30 +02:00
|
|
|
valgrind --leak-check=full --track-origins=yes $(BUILD_DIR)/server &
|
2022-04-23 17:43:38 +02:00
|
|
|
bash scripts/test1.sh
|
2022-04-23 15:05:31 +02:00
|
|
|
pkill -1 memcheck-amd64
|
2022-04-23 17:43:38 +02:00
|
|
|
|
|
|
|
|
test2: all
|
|
|
|
|
@echo "[threadpool]\n\nquantity = 4\npending = 100\n\n[files]\n\nMaxFiles = 10\nMaxSize = 1000\n\n[log]\n\nlogFile = ./logs/l.log\n\n[socket]\n\nname = ./socket\nbacklog = 100\n" > build/confix.txt
|
|
|
|
|
$(BUILD_DIR)/server &
|
|
|
|
|
bash scripts/test2.sh
|
|
|
|
|
pkill -1 server
|