-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
executable file
·80 lines (63 loc) · 2.27 KB
/
Makefile
File metadata and controls
executable file
·80 lines (63 loc) · 2.27 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
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: lramirez <lramirez@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2017/04/21 16:48:26 by lramirez #+# #+# #
# Updated: 2017/12/30 16:22:55 by lramirez ### ########.fr #
# #
# **************************************************************************** #
NAME = push_swap
CHECKER_NAME = checker
LIBFT = ./libft/libft.a
SRC_DIR = ./push_swap_dir/sources/
CHECKER_SRC_DIR = ./checker_dir/sources/
OBJ_DIR = ./push_swap_dir/objects/
CHECKER_OBJ_DIR = ./checker_dir/objects/
_OBJ = main.o \
compute_solution.o \
stack_util.o \
instructions.o \
tools.o \
sort.o \
is_sortable.o \
costs.o \
small_compute.o
_OBJ_CHECKER = main.o \
checker_util.o \
get.o \
instructions.o \
display_and_free.o
OBJ = $(patsubst %, $(OBJ_DIR)%, $(_OBJ))
OBJ_CHECKER = $(patsubst %, $(CHECKER_OBJ_DIR)%, $(_OBJ_CHECKER))
CFLAGS = -Wall -Wextra -Werror -O3
VPATH = sources:includes
$(OBJ_DIR)%.o : $(SRC_DIR)%.c
@cc $(CFLAGS) -c -Iincludes -o $@ $<
$(CHECKER_OBJ_DIR)%.o : $(CHECKER_SRC_DIR)%.c
@cc $(CFLAGS) -c -Iincludes -o $@ $<
all: make_libft $(NAME) $(CHECKER_NAME)
$(NAME) : $(OBJ) $(LIBFT)
@gcc $(CFLAGS) $(OBJ) $(LIBFT) -o $(NAME)
$(CHECKER_NAME) : $(OBJ_CHECKER)
@gcc $(CFLAGS) $(OBJ_CHECKER) $(LIBFT) -o $(CHECKER_NAME)
$(OBJ) : ./push_swap_dir/includes/push_swap.h | $(OBJ_DIR)
$(OBJ_DIR) :
@mkdir $(OBJ_DIR)
$(OBJ_CHECKER) : ./checker_dir/includes/checker.h | $(CHECKER_OBJ_DIR)
$(CHECKER_OBJ_DIR) :
@mkdir $(CHECKER_OBJ_DIR)
make_libft:
@make -C ./libft
clean:
@rm -rf $(OBJ_DIR)
@rm -rf $(CHECKER_OBJ_DIR)
@make -C ./libft clean
fclean: clean
@rm -f $(NAME)
@rm -f $(CHECKER_NAME)
@make -C ./libft fclean
re: fclean all
.PHONY: clean fclean re