aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 10ef0e092047641d413b1b5f6bd6c2e26c3d97d2 (plain)
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
RM = rm -f

LIBFT_DIR = libft

CC = gcc
CCFLAGS = -I$(COMMON_DIR) -I$(LIBFT_DIR)/include -Wall -Wextra #-Werror
LDFLAGS = -L$(LIBFT_DIR) -lft

SRC_DIR = src

COMMON_DIR = $(SRC_DIR)/common
CHECKER_NAME = checker

COMMON_HEADER = $(COMMON_DIR)/common.h
COMMON_FILES = stack_core.c stack_op.c stack_helper.c parse.c
COMMON_SRC = $(addprefix $(COMMON_DIR)/,$(COMMON_FILES))
COMMON_OBJ = $(COMMON_SRC:.c=.o)

PUSH_SWAP_NAME = push_swap
CHECKER_DIR = $(SRC_DIR)/checker
PUSH_SWAP_DIR = $(SRC_DIR)/push_swap

CHECKER_HEADER = $(CHECKER_DIR)/checker.h
CHECKER_FILES = main.c check.c
CHECKER_SRC = $(addprefix $(CHECKER_DIR)/,$(CHECKER_FILES))
CHECKER_OBJ = $(CHECKER_SRC:.c=.o)
CHECKER_OBJ += $(COMMON_OBJ)

PUSH_SWAP_HEADER = $(PUSH_SWAP_DIR)/push_swap.h
PUSH_SWAP_FILES = main.c sort.c stack_wrapper.c
PUSH_SWAP_SRC = $(addprefix $(PUSH_SWAP_DIR)/,$(PUSH_SWAP_FILES))
PUSH_SWAP_OBJ = $(PUSH_SWAP_SRC:.c=.o)
PUSH_SWAP_OBJ += $(COMMON_OBJ)

all: libft_all $(CHECKER_NAME) $(PUSH_SWAP_NAME)

$(CHECKER_NAME): CCFLAGS += -I$(CHECKER_DIR)
$(CHECKER_NAME): $(CHECKER_OBJ) $(CHECKER_HEADER) $(LIBFT_DIR)/libft.a
	$(CC) -o $@ $(CHECKER_OBJ) $(LDFLAGS)

$(PUSH_SWAP_NAME): CCFLAGS += -I$(PUSH_SWAP_DIR)
$(PUSH_SWAP_NAME): $(PUSH_SWAP_OBJ) $(PUSH_SWAP_HEADER) $(LIBFT_DIR)/libft.a
	$(CC) -o $@ $(PUSH_SWAP_OBJ) $(LDFLAGS)

%.o: %.c
	$(CC) $(CCFLAGS) -c -o $@ $<

clean:
	$(RM) $(CHECKER_OBJ)
	$(RM) $(PUSH_SWAP_OBJ)
	make -C $(LIBFT_DIR) fclean

fclean:
	$(RM) $(CHECKER_OBJ) $(CHECKER_NAME)
	$(RM) $(PUSH_SWAP_OBJ) $(PUSH_SWAP_NAME)
	make -C $(LIBFT_DIR) fclean

re:
	make fclean
	make all

libft_all:
	make -C $(LIBFT_DIR)