-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
129 lines (96 loc) · 4.88 KB
/
Makefile
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: cledant <marvin@42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2015/11/26 10:40:13 by cledant #+# #+# #
# Updated: 2017/05/01 14:15:25 by cledant ### ########.fr #
# #
# **************************************************************************** #
CC = gcc
CFLAGS = -Werror -Wall -Wextra -O2 -fsigned-char
OBJ_DIR_NAME = obj
OBJ_DIR_NAME_SERVEUR = $(OBJ_DIR_NAME)/srv
OBJ_DIR_NAME_CLIENT = $(OBJ_DIR_NAME)/clnt
OBJ_DIR_NAME_CBUFF = $(OBJ_DIR_NAME)/cbuff
LIBS = -lft
LIBS_CLNT = -lft -lncurses
INCLUDES = ./includes
INCLUDES_LIBFT = ./libft/includes
LIBFT_PATH = ./libft
SRCS_NAME_SERVEUR = main.c srv_client_write.c srv_init_fd_client.c \
srv_accept_new_client.c srv_create_server.c srv_init_fd_free.c \
srv_check_fd_select.c srv_do_select.c srv_main_loop.c \
srv_client_read.c srv_init_env.c srv_set_fd_select.c \
srv_init_chan_free.c srv_set_first_nick.c srv_is_nick_free.c \
srv_com_write_welcome.c srv_interpret_new_data.c \
srv_disconnect_client.c srv_create_cmd.c srv_is_cmd_valid.c \
srv_cmd_nick.c srv_execute_cmd.c srv_com_one_time_common_chan.c \
srv_has_sender_target_common_chan.c srv_com_send_to_sender.c \
srv_is_str_a_cmd.c srv_cmd_join.c srv_seek_chan_id.c \
srv_join_user_to_channel.c srv_seek_new_chan_slot.c \
srv_com_send_to_target_chan.c srv_cmd_part.c \
srv_part_user_to_channel.c srv_cmd_quit.c \
srv_com_send_to_target_chan_and_sender.c \
srv_notify_quit_common_chan.c srv_cmd_quit.c srv_cmd_privmsg.c \
srv_seek_user_fd.c srv_com_send_to_user.c srv_get_env.c \
srv_set_signal.c srv_shutdown.c srv_destroy_fd.c \
srv_close_srv_socket.c srv_close_all_client_socket.c \
srv_cmd_names.c srv_seek_userlist.c srv_itoa_buffer.c \
srv_is_nick_valid.c
SRCS_PATH_SERVEUR = ./srcs/srv
OBJ_SRCS_SERVEUR = $(SRCS_NAME_SERVEUR:%.c=$(OBJ_DIR_NAME_SERVEUR)/%.o)
NAME_SERVEUR = serveur
SRCS_NAME_CLIENT = main.c clnt_init_env.c clnt_connect_server.c clnt_init_ncurses.c \
clnt_main_loop.c clnt_set_fd_select.c clnt_do_select.c \
clnt_check_fd_select.c clnt_read.c clnt_write.c \
clnt_interpret_prompt_cmd.c clnt_interpret_server_cmd.c \
clnt_disconnect.c clnt_get_env.c clnt_destroy_env.c \
clnt_close_ncurses.c clnt_set_signal.c clnt_close_client.c \
clnt_cmd_connect.c clnt_cmd_disconnect.c clnt_cmd_exit.c \
clnt_cmd_nick.c clnt_cmd_join.c clnt_cmd_leave.c clnt_cmd_quit.c \
clnt_cmd_who.c clnt_cmd_msg.c clnt_is_str_online_only_cmd.c \
clnt_read_cmd_server.c clnt_disp_first_cmd_check.c \
clnt_parse_smsg.c clnt_disp_smsg.c clnt_disp_second_cmd_check.c \
clnt_disp_welcome.c clnt_disp_nick.c clnt_check_other_cmd.c \
clnt_parse_nick_join_part_quit.c clnt_disp_join.c \
clnt_disp_part.c clnt_disp_quit.c clnt_disp_privmsg.c \
clnt_parse_privmsg.c clnt_parse_names.c clnt_disp_names.c \
clnt_cmd_switch.c clnt_prompt_no_cmd.c
SRCS_PATH_CLIENT = ./srcs/clnt
OBJ_SRCS_CLIENT = $(SRCS_NAME_CLIENT:%.c=$(OBJ_DIR_NAME_CLIENT)/%.o)
NAME_CLIENT = client
SRCS_NAME_CBUFF = cbuff_create.c cbuff_destroy.c cbuff_flush.c cbuff_enqueue.c \
cbuff_dequeue.c cbuff_dequeue_till_head_no_change.c \
cbuff_move_forward_read_head.c
SRCS_PATH_CBUFF = ./srcs/cbuff
OBJ_SRCS_CBUFF = $(SRCS_NAME_CBUFF:%.c=$(OBJ_DIR_NAME_CBUFF)/%.o)
all : libft $(NAME_SERVEUR) $(NAME_CLIENT)
libft :
make -C $(LIBFT_PATH)
$(NAME_SERVEUR) : $(OBJ_SRCS_SERVEUR) $(OBJ_SRCS_CBUFF)
make -C $(LIBFT_PATH)
$(CC) -o $@ $^ $(CFLAGS) $(LIBS) -L$(LIBFT_PATH)
$(NAME_CLIENT) : $(OBJ_SRCS_CLIENT) $(OBJ_SRCS_CBUFF)
make -C $(LIBFT_PATH)
$(CC) -o $@ $^ $(CFLAGS) $(LIBS_CLNT) -L$(LIBFT_PATH)
$(OBJ_DIR_NAME_SERVEUR)/%.o : $(SRCS_PATH_SERVEUR)/%.c
mkdir -p $(OBJ_DIR_NAME_SERVEUR)
$(CC) -o $@ -c $< $(CFLAGS) -I$(INCLUDES) -I$(INCLUDES_LIBFT)
$(OBJ_DIR_NAME_CLIENT)/%.o : $(SRCS_PATH_CLIENT)/%.c
mkdir -p $(OBJ_DIR_NAME_CLIENT)
$(CC) -o $@ -c $< $(CFLAGS) -I$(INCLUDES) -I$(INCLUDES_LIBFT)
$(OBJ_DIR_NAME_CBUFF)/%.o : $(SRCS_PATH_CBUFF)/%.c
mkdir -p $(OBJ_DIR_NAME_CBUFF)
$(CC) -o $@ -c $< $(CFLAGS) -I$(INCLUDES) -I$(INCLUDES_LIBFT)
clean :
rm -rf $(OBJ_DIR_NAME)
make -C $(LIBFT_PATH) clean
fclean : clean
rm -rf $(NAME_SERVEUR)
rm -rf $(NAME_CLIENT)
make -C $(LIBFT_PATH) fclean
re : fclean all
.PHONY : all clean fclean re libft