-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
120 lines (83 loc) · 2.41 KB
/
Makefile
File metadata and controls
120 lines (83 loc) · 2.41 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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#------------------- common ---------------------------
SRC_COMMON = lst_new.c \
lst_find.c \
lst_push.c \
lst_size.c \
lst_clear.c \
new_node.c \
order_nodes.c \
clear_tree.c \
#------------------- encoder ------------------------
SRC_ENCODER = encoder.c \
read_file.c \
get_frequency.c \
get_nodes.c \
create_tree.c \
huffman_code.c \
get_text.c \
share_memory.c \
create_code_array.c \
create_letter_array.c \
join_data.c \
encode_to_binary.c \
compress_text.c \
read_shm.c \
dettach_segment.c \
verify_text_integrity.c \
get_nodes_copy.c \
OBJS_DIR_ENCODER = objects_encoder
OBJS_ENCODER = $(patsubst %.c,objects_encoder/%.o, $(SRC_ENCODER) $(SRC_COMMON))
NAME_ENCODER = encoder
#---------------------------------------------------
#------------------- decoder ------------------------
SRC_DECODER = decoder.c \
read_memory.c \
recreate_dictionary.c \
decode_text.c \
finalize_shm.c \
add_info_to_text.c \
recreate_tree.c \
recreate_text.c \
#------------------------------------------------------
OBJS_DIR_DECODER = objects_decoder
OBJS_DECODER = $(patsubst %.c,objects_decoder/%.o, $(SRC_DECODER) $(SRC_COMMON))
NAME_DECODER = decoder
#---------------------------------------------------
LIBFT = ./libft/libftprintf.a
CFLAGS = -I./ -g -Wall -Wextra
NAME = minitalk
VPATH = ./src/encoder \
./src/decoder \
./src/encoder/lst \
./src/encoder/tree \
./src/encoder/shm \
./src/decoder/others \
./src/encoder/text \
./src/encoder/huffman \
$(OBJS_DIR_ENCODER)/%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
$(OBJS_DIR_DECODER)/%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
all: $(NAME)
$(OBJS_DIR_ENCODER):
mkdir -p $@
$(OBJS_DIR_DECODER):
mkdir -p $@
$(NAME_ENCODER): $(OBJS_DIR_ENCODER) $(OBJS_ENCODER) $(LIBFT)
cc ${OBJS_ENCODER} ${CFLAGS} ${LIBFT} -o $@
$(NAME_DECODER): $(OBJS_DIR_DECODER) $(OBJS_DECODER) $(LIBFT)
cc ${OBJS_DECODER} ${CFLAGS} ${LIBFT} -o $@
$(NAME): $(NAME_ENCODER) $(NAME_DECODER)
$(LIBFT):
make -C ./libft bonus
clean:
rm -rf ${OBJS_DIR_ENCODER} ${OBJS_DIR_DECODER}
make -C ./libft clean
fclean: clean
rm -f ${NAME_ENCODER} ${NAME_DECODER}
make -C ./libft fclean
re: fclean all
push:
git push
git push 42 master
.PHONY: all clean fclean re