mirror of
https://github.com/DavidGailleton/42-Push_Swap.git
synced 2026-01-26 16:31:58 +00:00
170 lines
4.3 KiB
Makefile
170 lines
4.3 KiB
Makefile
#============================
|
|
# ALL FOLDERS
|
|
#============================
|
|
|
|
STACK_UTILS_DIR = stack_utils
|
|
|
|
ALGO_UTILS_DIR = algorithms/utils
|
|
|
|
INSERT_DIR = algorithms/insertion
|
|
|
|
ALGO_DIR = algorithms
|
|
|
|
PARS_DIR = parsing
|
|
|
|
MEDIUM_DIR = medium
|
|
|
|
COMPLEX_DIR = radix
|
|
|
|
FLAGS_DIR = flags
|
|
|
|
CHECKER_DIR = check_error
|
|
|
|
INCLUDES = includes
|
|
|
|
#============================
|
|
# ALL FILES WITHOUT PATH
|
|
#============================
|
|
|
|
SRC = main.c ft_putnbr.c secure_write.c
|
|
|
|
INSERTION = insertion.c
|
|
|
|
FLAGS_FILES = algorithms_sort.c flag.c bench.c
|
|
|
|
PARSING = ft_atoi.c parsing.c ft_strncmp.c ft_split.c ft_strlen.c ft_substr.c ft_itoa.c ft_isdigit.c \
|
|
ft_strjoin.c ft_strlcat.c ft_strlcpy.c parsing_2.c disorder.c indexer.c
|
|
|
|
CHECKER_FILES = check_error.c verif_flag.c verif_is_digit.c verif_overflow.c verif_double.c
|
|
|
|
STACK_UTILS = push.c rev_rotate.c rotate.c stack_add.c stack_remove.c stacks_len.c swap.c
|
|
|
|
MEDIUM_ALGO = utils_medium.c utils_struct_tab.c utils_medium_two.c sort_utils.c sort_utils_two.c medium_algo.c \
|
|
move_patha.c move_pathb.c
|
|
|
|
COMPLEX_ALGO = radix.c
|
|
|
|
ALGO_UTILS = check_order.c compare.c iterate.c pre_sort.c
|
|
|
|
#============================
|
|
# ADDING PATH TO THE FILES
|
|
#============================
|
|
|
|
ALL_FILES = $(SRC) $(STACK_UTILS_DIR)/$(STACK_UTILS) $(PARS_DIR)/$(PARSING) \
|
|
$(ALGO_DIR)/$(MEDIUM_DIR)/$(MEDIUM_ALGO) $(ALGO_UTILS_DIR)/$(ALGO_UTILS) \
|
|
$(INSERT_DIR)/$(INSERTION) $(ALGO_DIR)/$(COMPLEX_DIR)/$(COMPLEX_ALGO) \
|
|
$(FLAGS_DIR)/$(FLAGS_FILES) $(CHECKER_DIR)/$(CHECKER_FILES)
|
|
|
|
OBJ_DIR = obj
|
|
|
|
CC = cc
|
|
|
|
CFLAGS = -Wall -Werror -Wextra -I$(INCLUDES)
|
|
|
|
NAME = push_swap
|
|
|
|
OBJ = $(addprefix $(OBJ_DIR)/, $(notdir $(ALL_FILES:.c=.o)))
|
|
DEP = $(OBJ:.o=.d)
|
|
|
|
#============================
|
|
# BONUS CONFIG
|
|
#============================
|
|
|
|
BONUS_DIR = bonus
|
|
|
|
GNL_D = GNL
|
|
|
|
GNL_DIR = bonus/GNL
|
|
|
|
BONUS_FILES = checker_bonus.c
|
|
|
|
GNL_FILES = get_next_line.c get_next_line_utils.c
|
|
|
|
SRC_FOR_BONUS = ft_putnbr.c secure_write.c
|
|
|
|
ALL_BONUS_FILES = $(SRC_FOR_BONUS) $(BONUS_DIR)/$(BONUS_FILES) $(BONUS_DIR)/$(GNL_D)/$(GNL_FILES) \
|
|
$(STACK_UTILS_DIR)/$(STACK_UTILS) $(PARS_DIR)/$(PARSING) \
|
|
$(ALGO_DIR)/$(MEDIUM_DIR)/$(MEDIUM_ALGO) $(ALGO_UTILS_DIR)/$(ALGO_UTILS) \
|
|
$(INSERT_DIR)/$(INSERTION) $(ALGO_DIR)/$(COMPLEX_DIR)/$(COMPLEX_ALGO) \
|
|
$(FLAGS_DIR)/$(FLAGS_FILES) $(CHECKER_DIR)/$(CHECKER_FILES)
|
|
|
|
BONUS_OBJ = $(addprefix $(OBJ_DIR)/, $(notdir $(ALL_BONUS_FILES:.c=.o)))
|
|
|
|
NAME_BONUS = checker
|
|
|
|
.PHONY: all clean fclean re bonus
|
|
|
|
all: $(NAME)
|
|
|
|
$(NAME): $(OBJ)
|
|
@$(CC) $(CFLAGS) $(OBJ) -o $(NAME)
|
|
@echo "===================================="
|
|
@echo "======= PUSH SWAP COMPILED ========="
|
|
@echo "===================================="
|
|
|
|
$(NAME_BONUS): $(BONUS_OBJ)
|
|
@$(CC) $(CFLAGS) $(BONUS_OBJ) -o $(NAME_BONUS)
|
|
@echo "===================================="
|
|
@echo "======= CHECKER COMPILED ==========="
|
|
@echo "===================================="
|
|
|
|
$(OBJ_DIR)/%.o: $(PARS_DIR)/%.c | $(OBJ_DIR)
|
|
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
$(OBJ_DIR)/%.o: $(INSERT_DIR)/%.c | $(OBJ_DIR)
|
|
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
$(OBJ_DIR)/%.o: $(STACK_UTILS_DIR)/%.c | $(OBJ_DIR)
|
|
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
$(OBJ_DIR)/%.o: $(ALGO_DIR)/%.c | $(OBJ_DIR)
|
|
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
$(OBJ_DIR)/%.o: $(ALGO_DIR)/$(MEDIUM_DIR)/%.c | $(OBJ_DIR)
|
|
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
$(OBJ_DIR)/%.o: $(ALGO_DIR)/$(COMPLEX_DIR)/%.c | $(OBJ_DIR)
|
|
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
$(OBJ_DIR)/%.o: $(ALGO_UTILS_DIR)/%.c | $(OBJ_DIR)
|
|
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
$(OBJ_DIR)/%.o: $(FLAGS_DIR)/%.c | $(OBJ_DIR)
|
|
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
$(OBJ_DIR)/%.o: $(CHECKER_DIR)/%.c | $(OBJ_DIR)
|
|
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
$(OBJ_DIR)/%.o: $(BONUS_DIR)/%.c | $(OBJ_DIR)
|
|
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
$(OBJ_DIR)/%.o: $(BONUS_DIR)/$(GNL_D)/%.c | $(OBJ_DIR)
|
|
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
$(OBJ_DIR)/%.o: %.c | $(OBJ_DIR)
|
|
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
$(OBJ_DIR_BONUS)/%.o: %.c | $(OBJ_DIR_BONUS)
|
|
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
|
|
|
|
$(OBJ_DIR):
|
|
@mkdir -p $(OBJ_DIR)
|
|
|
|
clean:
|
|
@rm -rf $(OBJ_DIR)
|
|
@echo "===================================="
|
|
@echo "= ALL OBJECT AND DEPENDENCES CLEAN ="
|
|
@echo "===================================="
|
|
|
|
fclean: clean
|
|
@rm -f $(NAME)
|
|
@rm -f $(NAME_BONUS)
|
|
@echo "========== EXEC DELETED ============"
|
|
@echo "===================================="
|
|
|
|
re: fclean all
|
|
|
|
bonus: $(NAME_BONUS)
|
|
|
|
-include $(DEP)
|